Python之禅

保持简单、追求简单,我想这就是编码之中的禅,一种回归本真的境界。这种禅意在 Python 的设计哲学中体现的淋漓尽致,在 Python 解释器中输入“import this”,便会出现经典的 Python 之禅。

Beautiful is better than ugly.
优美胜于丑陋。

Explicit is better than implicit.
显式胜于隐式。

Simple is better than complex.
简单胜于复杂。

Complex is better than complicated.
复杂胜于难懂。

Flat is better than nested.
扁平胜于嵌套。

Sparse is better than dense.
分散胜于密集。

Readability counts.
可读性应当被重视。

Special cases aren’t special enough to break the rules. Although practicality beats purity.
尽管实用性会打败纯粹性,特例也不能凌驾于规则之上。

Errors should never pass silently. Unless explicitly silenced.
除非明确地使其沉默,错误永远不应该默默地溜走。

In the face of ambiguity, refuse the temptation to guess.
面对不明确的定义,拒绝猜测的诱惑。

There should be one– and preferably only one –obvious way to do it.
用一种方法,最好只有一种方法来做一件事。

Although that way way not be obvious at first unless you’re Dutch.
虽然一开始这种方法并不是显而易见的,但谁叫你不是Python之父呢。

Now is better than never. Although never is often better than right now.
做比不做好,但立马去做有时还不如不做。

If the implementation is hard to explain, it’s a bad idea.
如果实现很难说明,那它是个坏想法。

If the implementation is easy to explain, it may be a good idea.
如果实现容易解释,那它有可能是个好想法。

Namespaces are one honking great idea – let’s do more of those!
命名空间是个绝妙的想法,让我们多多地使用它们吧!

参考

技术团队管理者的软技能

2016年4月份受邀在中生代技术微信群(freshmanTechnology)做了一次群分享,感谢群主邀请,感谢群友收听,更要感谢 @王友强 的细心整理。原文及语音见底部链接。

大纲

  • 前言
  • 团队文化
  • 沟通文化
  • 四种不同的领导力风格
  • 领导力类型的区别
  • 踢猫效应
  • 管理的来源
  • 传统管理
  • 觉察/激情/教练
  • 三种因素决定员工行为
  • 技术管理者的领导力
  • 技术管理者的技能树
  • 绩效考核怎么做
  • 高效团队
  • 群友问答Q&A

继续阅读 More

申请导师级Certified Team Coach认证的攻略秘籍

本系列文章分为三部分:

  1. 敏捷教练和ScrumMaster的职业现在有多吃香?
  2. 我是怎样成为敏捷教练的?
  3. 申请导师级Certified Team Coach认证的攻略秘籍

申请CTC的攻略秘籍

前面两篇文章讲了敏捷教练职业发展的光明前景,以及我成为敏捷教练一路的心得,如果你也想和我一样去冲击最高级别的Scrum导师级认证,那就继续往下看吧。

从去年底推出试点以来,CTC已经正式开放申请,目前我从论坛上看到已有很多东南亚的人士已经在积极申请,而中国区申请人数不多,大家还需要努力啊,我相信国内的敏捷水平可是要远远高于东南亚的啊!

ScrumAlliance对敏捷教练定义的五种能力

前方高能预警

继续阅读 More

我是怎样成为敏捷教练的?

本系列文章分为三部分:

  1. 敏捷教练和ScrumMaster的职业现在有多吃香?
  2. 我是怎样成为敏捷教练的?
  3. 申请导师级Certified Team Coach认证的攻略秘籍

初识敏捷

2007年我加入诺基亚西门子通信,正好赶上3G Platform产品线全面推广敏捷,那个时候在全球真正敢于大规模推广敏捷的大型公司并没有几个。2008年时我获得了CSM认证。在诺西那几年我陆续担任过高级软件工程师、资源线经理、质量经理、项目经理、ScrumMaster、敏捷教练等职位,也和很多敏捷方面的专家共事过,不夸张地说,诺西真的可谓中国敏捷的黄埔军校。至于我个人,在管理方面,学会了更多授权、精益思想和系统思考。在技术和工程实践方面,全面地接受了XP中持续集成的理念,将自动化测试和重构融入到了日常工作中,认识到技术敏捷性的重要。后来的LeSS框架基本上就是诺西那几年在组织级大规模推广Scrum的经验教训的总结。

继续阅读 More

敏捷教练的职业真的很吃香

本系列文章分为三部分:

  1. 敏捷教练和ScrumMaster的职业现在有多吃香?
  2. 我是怎样成为敏捷教练的?
  3. 申请导师级Certified Team Coach认证的攻略秘籍

敏捷教练的职业发展?不必困惑!

敏捷教练是个新鲜头衔,敏捷转型的公司内都有人在做着一些事,其中很多人还是在过去的职位上,却做着全新的事情,于是就难免产生顾虑和疑惑:

公司让我做敏捷教练或ScrumMaster,到底有什么前途?我该如何发展?

继续阅读 More

远程协作大成功!台湾某Scrum虚拟项目团队的奇幻之旅

为什么转这篇文章

原文作者周龍鴻(Roger)是台湾敏捷与Scrum的推广者和践行者。去年与他合作过以Scrum方式组成远程虚拟字幕组,合作完成Spotify系列视频的中文字幕翻译,免费回馈给海峡两岸的敏捷社区。

最近,他和台湾的小伙伴再次出发。这次他们组成了多个虚拟Scrum团队(你可以称之为规模化敏捷部落:p),采用远程协作的方式共同对《ISO 21500 项目管理标准》进行翻译、修订,递交台湾”国家标准检验局”,成功通过审查成为台湾的”国标”(CNS)。

这些小伙伴没有报酬,全凭热情工作在一起,认真地践行Scrum和敏捷工作方式。从Roger的故事中,以及后半部分志愿者的心得中,整个过程的辛苦和收获,更能感受到他们的用心、严谨和喜悦!

征得原作者同意,我将此文《我在CNS Scrum專案的奇幻之旅》转到墙内,让大家了解到Scrum不仅仅限于IT软件领域。希望更多人能够和他们一起来享受这个敏捷奇幻之旅,用敏捷来改变大家的工作方式,改变世界。

原文Facebook链接:https://goo.gl/HqBXHn

继续阅读 More

用Python实现编程练习Kata-FizzBuzzWhizz

Functional programming leads to deep insights into the nature of computation. – Martin Odersky

近日软件匠艺小组的朋友用函数式编程的方式重新实现了一个古老的Kata练习题:FizzBuzzWhizz,用了很多种语言及其特性,非常精妙。这是一个软件匠艺的文艺复兴时代。
原帖见https://codingstyle.cn/topics/100

题目

FizzBuzzWhizz详细描述请自行查阅相关资料。此处以3, 5, 7为例,形式化地描述一下问题。

r1
+ times(3) -> Fizz
+ times(5) -> Buzz
+ times(7) -> Whizz
r2
+ times(3) && times(5) && times(7) -> FizzBuzzWhizz
+ times(3) && times(5) -> FizzBuzz
+ times(3) && times(7) -> FizzWhizz
+ times(5) && times(7) -> BuzzWhizz
r3
+ contains(3) -> Fizz
+ the priority of contains(3) is highest
rd
+ others -> others

Python实现

借助原帖的测试用例,我用python语言也练习了一把。本来想引入Pipe库用管道式的方式写,可能会取得一些方便,但想想还是用原生的语法来做吧。

继续阅读 More

写出angularjs风格的源代码提交历史

你的项目中是怎么写提交历史的?

不论你是用SVN、GIT或是其他源代码仓库,去看看实际项目中的提交历史吧,你是否能很快地从中找到之前某次改动吗?

看看这张图中的提交历史,眼熟吗?

这还算是不错的呢,还有很多项目的提交历史根本就是大段空白!很多程序员其实并不清楚为什么要写 提交历史(commit messge)

继续阅读 More