当过班长的程序员

上大学的那会,老班长点名点腻了,想当小兵,不仅可以不点名,而且可以偶尔翘翘课。我不知其中的苦恼,愣是接了他的差事,干了一段班长,管了一会班委会。如今细细想来,这段经历还是相当珍贵的,单从现在从事的编程工作来讲。

一个好班长和一个平庸班长的最大区别,就是,好的班长,自己不累,可以把班委会的各个成员,如生活委员,学习委员,文艺委员的积极性都给调动起来,让他们各自发挥各自的特长,好刀都用到好刃儿上,进而又快又好的完成指导员交予的任务。而平庸的班长,则“独揽大权”,什么活都一个人干,自己累个半死,他人闲个半死。

把这个场景和编程做一下对比,会发现,它们之间有异曲同工之妙。把指导员和同学比作用户,把班委会比作为同学和指导员服务的接口。班委会的各成员就是实际实现这些服务的角儿。离接口最近的人,是班长,因为总是他第一时间收到用户的请求,其他的委员离接口相对远些,因为他又受班长的指派。这样一来,一个好的班长,作为服务的总实现者,从来不去做具体的事情,而是把任务指派下去,实现分布式工作,而平庸的班长,会使用集中性处理。

对应到编程上,前者,创建了很多小的单元,每个单元做自己擅长的是,实现了模块化,责任结构一目了然。后者,一团糟,都纠结在了一起。总结一下,在编程里,离接口越近的类,具体实现就应该越少,指派的越多,而离接口越远的类,就应该指派的越少,而具体实现的越多。各自做各自擅长的事情。