编程本质上是一门手艺活,既然是手艺,里面就会有很多个人技巧和经验。
“破窗理论”,DRY(Don't repeat yourself),曳光弹,正交性,这些词的意思是什么你还记得么?
《程序员修炼之道》这本书在我看来就是一本师傅写给徒弟的开发哲学指南。
里面既讲了一些软件开发的哲学,比如破窗理论,它解释了你的代码为什么很快就会变成“屎山”。也讲了一些有用的技巧和工具,比如如何利用好shell,提升你的编程效率。
这本书没有复杂的代码,没有晦涩难懂的原理,你完全可以当作一本闲书来看。
这本书里提到的看似人人都懂的道理,恰恰是很多码农们平常工作中最不重视,却应该去遵守的理念。
我提炼了一些书中我觉得至今仍然没有过时的观点(毕竟本书有一定的年头了,读起来很有年代感),和大家分享下,这中间也夹杂着一些我的看法和思考。
这一点大家肯定也深有感触,在你写代码的项目里一旦看到了一些乱七八糟的结构和设计,你也会不自觉地开始往上面写凑活的代码,慢慢就变成屎山了。
非正交的一个典型体现是前端的CSS,网上有很多调侃CSS的段子,CSS的一个修改经常会影响到别的地方,这也是CSS很让人痛苦的一个地方。在后端开发里,我们要尽量让系统间不要相互影响,这对系统的伤害是很大的,并且在排查问题时非常痛苦。
我们日常开发中经常使用配置文件和分布式配置中心,把能够放入配置文件的数据尽量放入,这样不仅方便维护和修改,也能够实现不重启应用修改应用行为的功能。代码中应该只有我们对业务的抽象。
这个要求是不是看起来很稀松平常,大家都会?其实很多大型系统,尤其是老的系统,都没有考虑并发问题(去问问传统软件企业做的软件,你就知道了)。并发其实可以算作是互联网公司最常遇到的问题,也是各种技术面试会问的很深的问题,要好好掌握。
我们入行初期,经常会有些代码,调着调着就跑通了,但是连你自己也不知道为什么。这种代码风险会很大。毕竟,他也许不是真的能工作,他也许只是看起来能工作。
我是一名奋斗在互联网一线的后端开发工程师。
平时主要关注后端开发,数据安全,欢迎交流。
原创文章主要内容:
个人公众号:后端技术漫谈
如果文章对你有帮助,请各位老板转发支持一下,你的支持和鼓励对我非常重要~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。