程序员的职业素养

最近看完了Bob大叔的“代码整洁之道-程序员的职业素养”一书,对于我认为比较重要的内容做下记录。

专业主义

  • 将软件给QA测试前,自己要先做一遍测试工作,尽量让QA找不出任何问题。
  • 好的软件结构应该是易于修改的,不要为了赶项目进度而破坏这种结构。
  • 证明软件是易于修改的方式就是随时修改,一旦发现某些部分设计不合理,就应该尽快修改,使后续修改变的简单。
  • 害怕修改代码的一个原因之一是因为没有做过完善的测试,对自己的代码没有信心,这个时候你需要一个能覆盖百分之九十以上代码且快速执行的自动化测试工具。
  • 证明你不怕修改代码的方式就是一直改代码。
  • 如果你每天抽出3个小时,那么你每周有21个小时用于自我学习和提升。
  • 熟练掌握设计模式,设计原则,设计方法。
  • 熟练掌握UML图,DFD图,结构图,Petri网络图,状态迁移图,流程图和决策表。
  • 坚持学习新技术,技多不压身。
  • 了解你开发的解决方案所对应的业务领域。
  • 别人犯错的时候不要嘲讽别人,下一个犯错的有可能就是你。
  • 多站在客户角度想问题,确保开发的功能真正满足客户。

说不

  • 能就是能,不能就是不能,尽量不要说试试看,要坚守原则。
  • 在无法按照对方的安排完成某项任务时,努力尝试找到双方都能接受的目标。

说是

  • 承诺包括口头上说,心里认真对待承诺,真正付诸行动。
  • 不要使用一些推卸责任的语句,例如希望我明天能完成任务,让我们抓紧完成这个项目,而是对你将要做的事做清晰的事实陈述,例如,我将在周二以前完成这项任务。
  • 如果你无法兑现你的承诺,那么要尽早向你承诺的对象发出预警,越快越好。

编码

  • 不要在疲劳时写代码,疲劳时容易写出错误的代码,导致后面浪费更多时间。
  • 不要在焦虑时写代码,焦虑时工作效率低下,尽量调整好心情后再写代码。
  • 心流态是进入一种意识高度专注但思维视野却会收拢到狭窄的状态,当进入心流态时,为了追求所谓的速度或者愉快感,理性思考的能力会下降,这个时候需要做一些其他事情换换脑筋,例如看电影,开车,吃饭等。
  • 听歌会占用脑力资源,也更容易使人进入心流态,所以尽量不要在写代码时听歌,复制粘贴以及测试的时候除外。
  • 写代码过程时中断无法避免,也许下次你请求帮助的时候也会打断别人,因此对于他人的中断应该表现出乐于助人的态度;测试驱动开发可以减少中断的影响。
  • 写代码过程中也会遇到阻塞,死活不知道怎么写,这个时候需要找一些其他事情干,比如洗澡,看书,散步。阻塞的原因包括睡眠不足,焦虑,恐惧,沮丧。
  • 创造力可以激发创造力,所以闲暇时可以接触一些计算机以外的资料来激发创造力,例如小说,电影,音乐,展览等。
  • 三人行必有我师,即使你的技术再高超,也肯定能从另外一名程序员的思考与想法中获益。
  • 互相帮助是程序员的职责所在,帮助别人的过程中你也会学到不少东西。

测试驱动开发

  • 在写好单元测试之前,不要写任何产品代码。
  • 只要有一个单元测试失败了,就不要再写测试代码。
  • 产品代码恰好能让当前失败的单元测试通过即可,不要多写。
  • 先写测试代码的好处是,你为了编写测试代码,需要将函数与函数间解耦,换言之,先写测试代码会迫使你去考虑什么是好的设计。
  • 事后写的测试只是一种防守,先行编写的测试则是进攻。

需求沟通

  • 项目刚开始评估需求时,不要贪求需求的精确性,因为需求一定是会变化的,要推迟精细化,例如用什么数据库,用什么网络库,用什么界面库。
  • 消除需求中不确定因素的一个办法是进行验收测试,其目的在于确认需求已经完成。
  • 验收测试应当自动化进行,理想情况下,验收测试程序由业务方和QA协助编写,程序员来检查测试之间是否有冲突或者矛盾;如果只能由开发人员编写测试,应当确保写验收测试的和写项目的不是同一人。
  • 实现某项功能的代码,应该在对应的验收测试写好后开始,开发人员运行这些验收测试,观察失败的原因,然后实现需要的功能,让测试通过。
  • 单元测试时程序员写给程序员的,验收测试时业务方(程序员)写给业务方的。单元测试是深入系统内部进行,调用特定类的方法,验收测试是在系统外部,通常是系统API或者UI级别进行。
  • GUI是易变的,GUI和业务一定要解耦。

关心你的时间

  • 受到邀请的会议没必要全部参加,邀请你参加会议的人不负责管理你的时间,为时间负责的只有你,所以如果你觉得没有参加会议的必要,应当礼貌的拒绝。
  • 如果你觉得参加会议是浪费时间,应当想个礼貌的办法退出来。
  • 每天至少睡眠7个小时。
  • 适当的咖啡因可以有效提高注意力,例如咖啡或者无糖可乐。
  • 当没办法控制注意力时,尽量换下脑子,做一些其它事情恢复注意力,例如散步,聊天等。
  • 肌肉注意力有助于改善心智注意力,例如搏击,瑜伽,羽毛球,骑车,定期训练肌肉注意力可以提升心智注意力上限。
  • 有时候我们会为了逃避真正的工作,说服自己另外一个任务更重要,提高某个任务的优先级。专业开发人员应该排除个人的喜好和需要,来评估每个任务的优先级,按照真实的紧急程度来执行任务。
  • 当遇到死胡同时,比如走不通的技术道路,应当迅速意识到并有足够的勇气回头。专业的开发人员应该保持开放的头脑来听取其他人的意见。
  • 当某个项目不断扩展,越来越复杂,现有设计越来越跟不上脚步时,而你意识到一开始就做出了错误的设计时,应该立即回头,否则会陷入泥潭,永远不得脱身。

软件大师的定义

  • 十年以上从业经验。
  • 曾领导过多个重要软件项目的开发。
  • 曾在多个不同类型的系统,语言,操作系统上工作过。
  • 懂的如何领导和协调多个团队。
  • 他们是熟练的设计师和架构师以及程序员。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,513评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,312评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,124评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,529评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,937评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,913评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,084评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,816评论 0 205
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,593评论 1 249
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,788评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,267评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,601评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,265评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,158评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,953评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,066评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,852评论 2 277

推荐阅读更多精彩内容