【程序员的自我修养】读书笔记

   “哦,笑吧,科廷,老伙计。这是上帝,或者也可以说是命运或自然,跟我们开的一个玩笑。不过,不管这家伙是谁或是什么,他真幽默,哈哈!”    

                                                                                              --------------霍华德,《碧血沙金》

 

专业主义

     专业主义不但象征着荣誉与骄傲,而且明确意味着责任与义务。

假如不小心在程序中写了一个Bug,以致于公司损失10万,对于非专业人士来说,只会耸耸肩:状况总是难免的,但是对于专业人士来说,自掏腰包!专业人士会为自己的错误买单,专业主义就意味着责任与担当。

不为自己找托词

     开发的软件有Bug会损害软件的功能,因此,必须要专业,不要留下Bug,也许你会说,“那怎么可能,软件开发太复杂了,怎么可能没有Bug!”

当然,你说的没错,软件开发太复杂了,不可能没什么Bug,但是很不幸,这并不能为你开脱。人体太复杂,不可能尽知全部,但医生仍誓言不伤害病人,如果他们都不拿“人体的复杂性做托词”,我们又怎么好意思推脱我们自己的责任呢?

     所谓的专业人士就是能够对自己的错误负责的人,哪怕那些错误实际上在所难免。我们必须学会道歉,但是道歉是不够的,我们不能一而再再而三的犯同样的错误。职业经验多了之后,我们要将我们的失误率缩减到0,或者说无限接近于0

不断重构

    在现有代码的基础上,可能我们会觉得现存代码正在正常运行,去修改它是非常危险的,但是这种想法是错误的,让软件保持固定不变才是最危险的,如果一直不对代码进行重构,最终到不得不重构的时候你已经发现,代码已经僵化了!

 

“能就说能,不能就说不能。不要说:试试看”

                               ------------------尤达

对话一:

项目经理:明天下班之前把这个模块的报表全部完成!

程序员:哦!好,明天一定要吗?

项目经理:明天报表要上线!

程序员:好吧!那我尽量!

这么简短的一个对话过程,没有任何冲突,双方都微笑离开,一派和谐。

可能完成这个模块的报表,开发到测试不止1到2天就能结束,但是程序员的回答:我尽量试试,这无异于在撒谎,或者说就算完成了也是存在很多Bug,根本没有完全测试。

对话二:

项目经理:明天下班之前把这个模块的报表全部完成!

程序员:抱歉,那么多报表,开发加上测试,这么短的时间是没法完成的

项目经理:那什么时候能结束呢?

程序员:一周时间怎么样?

项目经理:(在本子上记录下时间)那一周后提交!

这种对话也是很不专业的,双方都没有寻求最佳的可能结果,程序员不该问一周时间可不可以,应该直接说:需要一周时间,项目经理也不应该毫无意义的接受这个时间,仿佛他自己的目标无关紧要似的,或者说,在boss面前,项目经理直接汇报说:由于程序员的原因,报表不得不推迟上线。

项目经理:明天下班之前把这个模块的报表全部完成!

程序员:不行的,这个活至少得1周时间才能完成

项目经理:一周?架构师说你这个技术层次的开发报表30分钟就能完成一张报表了!

程序员:他只是预估我的开发速度,开发报表确实很快,但是开发完成之后,还需要数据进行验证,测试,测试可要耗费大量工作时间的

项目经理:那明天客户需要看报表样例了!

程序员:明天下班前你需要哪些报表能正常使用,根据优先级优先开发!开发部分先用于演示

项目经理:我要报表1,…报表4,先用这4张报表用于演示吧

程序员:ok,没问题

在这个例子中,他们达到了最佳的可能结果,他们各自表态,然后找到双方都能接受的解决方案!

在此例子中,双方表现的都非常专业,虽然在交流过程中可能有冲突,但是最终都达到了一直的解决方案,没有给彼此在交付东西的时候埋雷。

 

posted @ 2019-01-24 15:39  OLIVER_QIN  阅读(176)  评论(0编辑  收藏  举报