1.1 清楚你要什么
“专业主义”有很深的含义,它不但象征着荣耀与骄傲,而且明确意味着责任与义务。
1.2 担当责任
1.3 首先,不行损害之事
1.3.1 不要破坏软件功能
所谓专业人士,就是能对自己犯下的错误负责的人,哪怕那些错误实际上在所难免。
失误率永远不可能等于零,但你有责任让它无限接近零。
1. 让QA找不出任何问题
2. 要确信代码正常运行
3. 自动化QA
1.3.2 不要破坏结构
所有软件项目的根本指导原则是,软件要易于修改。
要证明软件易于修改,唯一办法就是做些实际的修改。
1.4 职业道德
职业发展是你自己的事。
你应该计划每周工作60小时。前40小时是给雇主的,后20小时是给自己的。
1.4.1 了解你的领域
你知道什么是N-S(Nassi-Schneiderman)图表吗?你知道“米利型”(Mealy)和“摩尔型”(Moore)这两种状态机的差别吗?你能不查阅算法手册就可以写出一个快速排序程序吗?你知道“变换分析”(Transform Analysis)这个术语的意思吗?你知道如何用数据流图进行功能分解吗?你知道“临时传递数据”(Tramp Data)的意思吗?你听说过“耦合性”(Conascence)吗?什么是Parnas表呢?
下面列出每个专业软件开发人员必须精通的事项。
- 设计模式。必须能描述GOF书中的全部24种模式,同时还要有POSA书中的多数模式的实战经验。
- 设计原则。必须了解SOLID原则,而且要深刻理解组件设计原则。
- 方法。必须理解XP、Scurm、精益、看板、瀑布、结构化分析及结构化设计等。
- 实践。必须理解测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程。
- 工件。必须了解如何使用UML图、DFD图、结构图、Petri网络图、状态迁移图表、流程图和决策图。
1.4.2 坚持学习
读书,看相关文章,关注博客和微博,参加技术大会,访问用户群,多参与读书与学习小组。
1.4.3 练习
练习,指的是在日常工作之余专门练习技能,以期自我提升。
1.4.4 合作
学习的第二个最佳方法是与他人合作。
1.4.5 辅导
俗话说,教学相长。
1.4.6 了解业务领域
每位专业软件开发人员都有义务了解自己开发的解决方案所对应的业务领域。
1.4.7 与雇主/客户保持一致
雇主的问题就是你的问题。你必须弄明白这些问题,并寻求最佳的解决方案。每次开发系统,都应该站在雇主的角度来思考,确保开发的功能真正能满足雇主的需要。
1.4.8 谦逊
在发现自己成为笑柄时,专业人士会第一个发笑。他从不会嘲讽别人,自作自受时她会接受别人的嘲讽。反之,他则会一笑了之。他不会因别人犯错就对之横加贬损,因为他知道,自己很可能就是下一个犯错的人。