带你读《2022技术人的百宝黑皮书》——关于程序员的职业操守,从《匠艺整洁之道》谈起(3) https://developer.aliyun.com/article/1238260?groupCode=taobaotech
避免伤害,尽力而为
思考:以下两种系统,哪个系统的价值更高?
1. 工作完美,但不可修改
2. 不能正确地做任何事情,但却容易修改
上述的两个系统,分别体现了软件的两个价值:
1. 行为价值:让程序能够正确工作
2. 结构价值:让程序易于调整
一个软件系统如果无法被改变,即使它能够正确工作,最终也摆脱不了被淘汰的命运:
一个软件系统要想能够提供长期价值,它就必须能够响应需求的变化。因此,除了最紧急的情况之外(对人、对公司、对社会造成灾难的情况),我们应该优先选用第二种系统。即使我们需要一点时间和金钱的投入,但在那之后,它就将可以永远继续工作。
坚持好结构,它与我们利益相关
为了能使软件能够提供长期价值,不对当下的同事、未来的同事造成伤害,就要求我们写出来的软件要有一个好的结构,一个好结构带来的价值有:
1. 容易测试
2. 容易修改
3. 容易重用
要写出一个好的结构,往往要花我们更多的时间。我们经常会遇到这样的场景:
一个紧急的需求过来,要求我们在指定时间内完成并上线,但这些时间往往只够我们完成需求,同时你的老板也要求你尽快完成这个紧急需求。如果是你,会如何应对这种情况呢?
首先要记住的一点是:一个项目/软件的成功,对我们的事业、声誉有着直接的影响,它与我们的利益息息相关。因此,作为利益关联者,我们对系统的开发和结构有发言权;同时,我们也是工程师,公司雇佣我们,是因为我们知
道如何构建软件系统,如何搭建这些系统的结构,并使其能够提供长期价值,我们需要确保系统不会因为坏行为和坏结构而遭到破坏。
回过头再来看这个问题,我们的老板了解结构吗?或者老板的理解仅限于行为吗?如果老板明确告诉你不要理会结构,应完全关注行为,我们该怎么办?
我们得拒绝,因为我们是工程师,是利益相关者。也许会有争斗、对抗,但我们的专业不允许我们退缩。也许你认为拒绝就会被解雇,但大多数情况下不会。因为大多数经理也期望为他们需要和相信的东西而奋斗,而且他们尊重那些愿意做同样事情的人(否则还会有那么多的技术沙龙、技术分享交流会吗?)。
带你读《2022技术人的百宝黑皮书》——关于程序员的职业操守,从《匠艺整洁之道》谈起(5) https://developer.aliyun.com/article/1238257?groupCode=taobaotech