很讨厌临时方案
说实话我很讨厌临时方案,这句话我说过很多次,任职不同的公司都说过。临时方案就像毒品,一旦用多了,你还戒不掉,慢慢还能产生依赖。于是一个接一个临时方案,最终堆积如山,成了祖传代码,不断易手变得不可维护,要不然只能重构或者丢弃整个产品。
为什么会有那么多临时方案?很明显是开发之前没有考虑到可能面临的问题,没有设计好扩展性,只想着快点完成功能开发,做完就完事。抱着这样的想法,一个产品迭代几轮下来,基本上就改成了大坑,如何解决呢?答案很简单,拒绝临时方案,保持原来简单的架构,重新开发模块,在原有结构上平行扩展,一定不要在某个奇怪的地方加规则解决,看似简单,其实可维护性极差。
面临需求变更是很正常的,唯一不变的需求就是变需求,开发一部分功能以后需求频繁变更,对于很多程序员来说又舍不得丢弃原来的,于是在原有模块基础上做兼容,今天改成这样,明天改成那样,改着改着自己都不想看了,最后要新增需求变得极其困难,然后提出来要重构。
直面需求变更最好的办法就是软件分模块,分层抽象,抽时间一定要看看设计模式 ,多研究别的软件架构,你碰到的问题,别人之前一定碰到过。分层分模块,可以保证最小的改动,很多时候只要新增就可以,不要通过把某个模块变得特别复杂来解决问题,要多过模块组合来解决问题,这也是Go语言的设计哲学。
好吧,就吐槽这么多,希望程序员在开发之前多花时间思考,不要急着上来就堆代码,认真思考,多写技术文档,千万不要排斥写文档,把功能细节都想明白了,再动手开发,所谓磨刀不误砍柴工。
写于2022年9月28日 深圳