1. 如何写出诗一样优雅的代码 引言

我承认,这篇文章的名字有点标题党了。

但就我而言,写代码和写诗是很类似的工作,程序员的产出代码就是代码,手下跳动的字符就是我们写作的诗篇。优雅的诗不仅语句优美,让人读起来赏心悦目;同时也结构严谨,能够清晰无误地表达作者的意图。代码也是一样,好的代码让人阅读之后身心愉快,而不是"闻者伤心,读者流泪";好的代码简单清晰,不容易出现错误,而不是bug百出,让用户叫苦不迭。所以我觉得以诗人的标准要求程序员是合理的。

当然,代码灵活性很高,写出好的代码是难的,就如同 "诗一样"的代码和“屎一样”的代码,只有一字之差。所以我们需要一些有帮助性的原则和技巧来指导我们写出好的代码。

为什么要写这个系列的文章?

一方面来自于作者的切身之痛。因为发现工作中很多人并不重视代码质量,代码只要能跑就行,结果造成了很多的问题。你是否遇到过这样子的情况: 代码随着需求变更导致复杂度不停提高,逐渐难以维护,从而影响到实际用户的使用效果与稳定性,甚至造成了产品的失败; 代码很难修改,牵一发而动全身,往往一个简单的新功能会造成很多的代码变更,需要更多的测试精力投入,从而拖慢项目的进度;把最后的测试阶段当成唯一的质量控制手段,从而导致bug不停出现,系统稳定性一直无法收敛;产品上线,一直不停地出问题,每个bug都要花费很长的精力才能定位和修复,而且有可能引入新的bug... 以上这些问题都跟程序员没有良好的编码习惯有关系,如果能够在编码阶段就能够解决这些问题,可以极大降低软件维护成本,加快迭代效率。

另一方面,这系列文章也是作为作者的个人工作学习的总结。俗话说地好,有输出才能倒逼输入,提高学习的效果。我也希望把自己在工作中的心得体会总结出来,不管是踩过的坑,还是实践过比较好用的技巧,可以分享出来便于帮助到其他有类似问题的人。这样子既能够帮助到别人,也能够帮助到自己。

打算如何来写?

我希望能够写出自己的特色,因为现在已经有太多的讲如何写好代码的书籍与博客了。我希望结合自己的实际工作经历,通过分享真实的例子,来帮助大家了解优雅代码在实际产品中落地的情况。我只分享那些自己真正用过,觉得确实帮助大的例子,来帮助大家学习真正使用的软件开发技巧。

其次,我希望写得尽量浅显易懂,简短有力,让大家可以在上下班的路上就可以阅读。我会尽量挑选一些比较简单但是又能体现真实情况的例子来帮助大家理解。一图胜千言,所以我也会通过一些容易阅读和记忆的配图来解释问题的本质。同时我希望自己的语言能够更加轻松诙谐一些,从而让大家在阅读过程中更加轻松愉快,这样子有提升阅读体验。

适合什么样的人群?

  • 如果你是该毕业的学生,对于如何写出成熟的工业化代码感兴趣,建议你阅读下。
  • 如果你参加工作多年,但是经常被手头糟糕的项目代码所困扰,建议你阅读下。
  • 如果你对代码质量要求很高,希望写出可维护性高的优雅代码,建议你阅读下。
  • 如果你只是对于如何写出优雅代码感兴趣,希望了解背后的原理,也建议你阅读下。

参考书目

现在已经有太多的讲解如何写出优雅代码的书籍和博客了,但是鱼龙混杂,我建议对于初学者,可以先着重阅读下最经典的几本书,然后再结合自己的实际工作遇到的问题再来针对性阅读。以下推荐的经典书籍都是我亲身阅读并实践过,觉得比较有用的:

    • 这本书算是我的入门,强烈推荐。正如书名所说,这本书最大的特点是实用,因为作者讲解了很多非常工作中的常用技巧,实操性很高。并且这本书的可读性很高,没有晦涩难懂的生僻专业词汇,读起来饶有趣味。写代码只是程序员的工作之一,所以这本书不只是将代码上的技巧,而是从程序员修炼各种方面给大家提出建议。书的各个章节之间相互独立,也比较简短清晰,适合读者利用上下班或者吃饭等排队的零碎时间阅读。
    • 很多人推荐的经典书籍,我也非常喜欢这本书,因为它对于工作的帮助很大。作者认为优雅的代码就是简洁的代码,然后而要写出简洁易懂的代码,不是简单减少代码行数就能达到的,所以作者提供了很多如何写出简洁代码的技巧和原则。作者在书中除了讲解一些细节的技巧,包括如何命名,如何写简洁优雅的函数等等,也讲解了一些宏观的系统设计方面的经验分享,算是比较全面了。另外作者还写了 《Clean Architecture》(架构简洁之道),《Clean Coder》(简洁开发者) 等一系列帮助程序员在各种维度提升简洁度的方法,大家有兴趣也可以读一下。
    • 经典之作,代码优化过程就是不断的重构过程,作者提出了如何通过一系列很小的重构工作,逐渐提高现有软件的可维护度的方法。这个对于我最大的启发就是,原来重构是贯穿在整个软件开发过程中的,通过小的步骤,每次优化一点点,在提升软件可维护性的同时,保证软件可以正常工作。而不是等到代码臭不可闻的时候,才会专门腾出来较长的时间进行清理。而作者讲解了很多如何做重构的技巧,并将其分门别类,提供了每个技巧的单独插图,解释和实际例子来帮助大家理解,作者希望这本书可以成为程序员案头的可以随时查阅,按图索骥的工具书,从而更好地帮助大家进行重构。

以上的推荐书籍建议大家如果有能力的话,尽量阅读英文原版,因为有些信息会在翻译过程中丢失,不及原版详实,另外上面这些书籍的语言都很浅显易懂,没有生僻词汇,即使有些英语单词当时不了解意思,也不影响我们理解作者想要表达的意图。

有经济能力的同学,也建议你们购买正版书籍。一方面这是作者多年的心血结晶,我们作为软件开发者也不希望自己辛苦投入的工作被别人无条件地剽窃。另外一方面通过付费购买,也能督促自己阅读完全部内容,而不是半途而废。最后也是因为以上书籍的内容非常有用,对于大家的能力提升和升职加薪也当然帮助很大,绝对值回书价。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值