专业主义
职业道德
-
所谓专业人士,就是能对自己犯下的错误负责的人,哪怕哪些错误实际上在所难免。
-
写一些随时都能运行的单元测试,然后尽可能多地执行这些测试,全部代码都要测。
-
随时重构代码,让软件保持固定不变才是危险的!
了解你的领域
下面列出了每个专业软件开发人员必须精通的事项:
- 设计模式。必须能描述 GOF 书中的全部 24 种模式,同时还要有 POSA 书中的多数模式的实战经验。
- 设计原则。必须了解 SOLID 原则,而且要深刻理解组件设计原则。
- 方法。必须理解 XP、Scrum、精益、看板、瀑布、结构化分析及结构化设计等。
- 实践。必须掌握测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程。
- 工件。必须了解如何使用 UML 图、DFD 图、结构图、Petri 网络图、状态迁移图表、流程图和决策表。
说“不”
对抗角色
-
不要说“我会尽量试试”,完成不了就直接说明,并说明具体需要的时间。至于为什么需要这些时间,并不重要。
-
越是关键时刻,“不”字越有价值。
-
许诺“尝试”,意味着你承认自己之前未尽全力。说“不”,表明你一直在全力以赴,确实完成不了。
说“是”的成本
-
客户没你想的那么在乎 ddl ,他们经常一而再地推后项目截止日期。就是这样,在你已加班 20 小时把一切差不多都弄好时,他们又多给了你几天时间,然后又再加一周时间,好提出新的需求……
-
对任何需要可怕的加班与做出牺牲的需求说“不”。牺牲专业原则以求全,并非问题的解决之道。舍弃这些原则,只会制造出更多的麻烦。
编码
-
疲劳的时候,千万不要写代码。要确保自己已经将睡眠、健康和生活方式调整到最佳状况,才能做到在每天的 8 小时工作时间内全力以赴。
-
被中途打断时,去帮助别人。给他人提供帮助并非说明你比人家聪明很多,而是因为你带来了一个新的视角,对于解决问题起到了显著的催化作用。
-
软件开发是一场马拉松,而不是短跑冲刺。专业程序员也会同样仔细地保存好自己的精力和创造力。
测试驱动开发(TDD)
-
先写好一个单元测试的一小部分代码,很快,你会发现还缺少一些类或函数,所以单元测试无法编译。因此必须编写产品代码,让这些测试能够编译成功。产品代码够用即可,然后再回头接着写单元测试代码。
-
看到糟糕的代码时,你为什么不修改呢?因为去动它要冒破坏它的风险。这时 TDD 最强大之处,拥有一套值得信赖的测试,便可完全打消对修改代码的全部恐惧。
练习
- 尝试自己喜欢的项目和技术,以此来保持自己的技能不落伍。
验收测试
- 在工作中,有一种现象叫观察者效应,或者不确定原则。每次你向业务方展示一项功能,他们就获得了比之前更多的信息,这些新信息反过来又会影响他们对整个系统的看法。
- 需求是一定会变化的,所以追求那种精确性是徒劳的。
- 通常,业务分析员测试“正确路径”,以证明功能的业务价值;QA 则测试“错误路径”,边界条件、异常、例外情况,因为 QA 的职责是考虑哪些部分可能出问题。
- 验收测试不是单元测试。
- 单元测试描述了底层结构和代码的行为,调用特定类的方法;
- 验收测试描述了业务方认为系统应该如何运行,通常是在 API 或者是 UI 级别进行。
时间管理
-
“立会”。在开会时,所有参会者必须站着。到场的人依次回答以下 3 个问题:文章来源:https://www.toymoban.com/news/detail-508907.html
- 我昨天干了什么?
- 我今天打算干什么?
- 我遇到了什么问题?
这就是全部会议内容。每个问题的回答时间不应当超过 20 秒,所以每个人的发言不超过 1 分钟。文章来源地址https://www.toymoban.com/news/detail-508907.html
协作
- 结对编程
- 一些公司试图围绕项目来构建团队,这是一种愚蠢的做法。按照这种做法,团队永远都不可能形成凝聚力。每个人都只是项目中的过客,只有一部分时间是在为项目工作,因此他们永远都学不会如何默契配合。
辅导、学徒期与技艺
- 即使是最好的计算机科学学位教学计划,通常也不足以帮助年轻毕业生充分准备好应付工作后遇到的挑战。在学校中所学的内容和在工作中发现的实际需要,这两者之间通常会有巨大的差异。
到了这里,关于入门学习《代码整洁之道:职业素养》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!