序言和引言部分就不多说,总之是溢美之词多一些。当然引言部分说了一下bob大叔的个人经历是如何从吊死转型的。
第一章 专业主义
清楚你要什么
“专业主义”不但象征着荣誉与骄傲,而且明确意味着责任与义务。专业主义就意味担当责任。{当然在后面的章节里 责任和担当是经常被强调的,其实无论对于那个行业来说能够担当责任都是一种非常重要的品质。这让我回顾最近两三周的自己,好像沾染了很多不良恶习 ……}
担当责任
“我因为不负责任尝尽了苦头,所以明白尽职尽责的重要意义”--这段是回顾bob刚出道时的一些事情所说的,就在引言部分里。{我个人来说感觉有些幸运,至少看到了这本书,不过也正如本章开头所说的 我想成为一名专业的软件工程师。}这部分讲述了一个 因为没有经过测试就上线的结果惨遭报应的案例。未对程序进行测试是不负责任的。
{想来我的代码也是未经测试的,只是让他跑了跑没问题然后叫告诉老大说,可以了,呃 ,所以一个新的计划就是要在假期期间看看测试是怎么一回事。}
首先,不行损害之事
不破坏软件的功能与架构。
不要破坏软件功能
不要留bug。没人能写出完美的软件,但这并不代表你不对不完美负责。所谓专业人士,就是能对自己犯下的错误责任的人,哪怕那些错误实际上在所难免。所以要练习的第一件事就是“道歉“ 。道歉势必要的但是不能一而再而三的犯同样的错误。职业经验多了之后,你的失误率应该快速减少,甚至渐进于零。失误率永远不可能等于零,但你有责任让他无限接近零。
让QA找不出任何问题
{QA(QUALITY ASSURANCE)中文意思是“品质保证”,这还是处在iso中的内容,索然我上学时考取过iso9000的证书但是这个还真忘记了。哎 真是 ……}
QA会发现bug,所以准备好道歉吧,然后反思那些bug是怎样跳过你的注意,想办防止它再次出现。
要确信代码正常运行
你怎知道代码能不能运行呢?很简单测试,一遍一遍的测试翻来覆去的测试。你写的每一行代码都要测试! 这是要求!
怎么可能,那么最好的办法就是先写测试,就是测试驱动开发。TDD
自动化QA
执行单元测试和验收测试。
不要破坏结构
成熟的专业开发人员知道,聪明人不会为了发布新功能而破坏结构。结构良好的代码更灵活。以牺牲结构为代价,得不偿失,将来必追悔莫及。
所有软件项目的根本指导原则是,软件要易于修改。如果你希望自己的软件灵活可变,那就应该市场修改它。
该在什么时候做些小的修改呢?随时! 所谓的”无情重构“ ”童子军守则“ 对每个模块,每检入一次代码,就要让他比原来更为简洁。每次读代码,别忘了进行点滴的改善。专业开发人员对待代码,就如同雕塑家对待泥巴一样,要多他进行不断的变形与塑造。
职业道德
雇主除了钱,你必须付出时间和精力。就用每周工作40小时来说,这40小时应该用来解决雇主的问题,而不是你自己的问题。你应该计划每周工作60小时,前40小时是给雇主的,后20小时是给自己的。在这剩余的20小时里,你应该看书,练习,学习,或者做能够提升职业能力的事情。每周二外增加20小时,也就是每天3小时。如果你在午饭时间看书,在通勤路上听听播客,花90分钟学一门新的语言,那么你就能兼顾到了。
一周168小时,你个雇主40小时,为自己的职业发展留20小时,剩下的108小时再留给睡眠,那么还剩52小时可做其他的事情。
或许你不愿意那么勤勉。没问题,只是那样的话你也不能自视为专业人了。
了解你的领域
设计模式,GOF书中的全部24种模式,POSA书中的多数模式
设计原则,必须了解SOLID原则
方法 理解XP,Scrum,精益,看板,瀑布,结构化及结构化设计等
实践 掌握测试驱动开发,面向对象设计,结构化编程,持续继承和结对编程
工件 必须了解如何使用uml,DFD 结构图,Petir网络图,状态迁移图表,流程图和决策表
坚持学习
.net 去学学java ,java学学ruby ,c学学lisp 想练练脑子学学Prolog和Forth吧
{PHP呢?学什么?我假期准备学习python}
练习
业精于勤。真正的专业人士往往勤学苦干,以求得自身技能的纯属精炼。
合作
辅导
教学相长
了解业务领域
与雇主/客户保持一致
谦逊