杂想(一)

毕业也近一年了,目前也在不知名小厂搬砖,简单的写写最近的一些思考与感悟。

  1. 关于代码屎山
    首先是人皆吐槽的屎山。最近工作也遇到需要优化一部分老代码,但是发现这块代码写的长长的一大串,没有任何注释,第一眼看到我是真的血压高和口吐芬芳了,内心真的非常想把这个锅甩掉。代码将数据处理、业务逻辑服务RPC调用各种混杂在一起,让人看起来非常的难以理解,并且也没有任何注释和说明文档,其实本次修改的内容也很简单,只是修改相应的RPC调用部分,但是一整块冗杂起来却是不太好处理了。因此,这个我也和mentor沟通了下,考虑到服务的重要程度与重构的工作量,最终决定还是不调整整个结构,还是只改动中间涉及到的服务调用部分,这样将会导致原来一些无效的代码仍然需要保留,只是我都改动也将小很多,针对特定的点修改就可以了。其实这样的修改其实也是非常的不优雅,感觉像是在原来的代码上又拉了一坨屎,最终自己也偷懒默认了这样的做法。代码屎山是由诸多因素造成的,历史包袱、不够好的设计等等原因,目前固然无法说解决,但是对于一个程序员也应当考虑提高自己的水平,避免称为一个屎山的缔造者,也避免出现某天自己看到一段代码吐槽了下再看看提交记录发现committer居然是自己的尴尬场面。关于如何避免,主要是从几个方面:
    • 提高代码的可读性。可读性的提高有很多方面,比如命名便是一个最基础亦是最困难的,一个好的函数名或者变量名便可以让阅读者知晓其中的内涵,而一个随意的命名往往让人很困惑与懵逼。其次是代码尽量补充注释或者文档,在编码时候对于关键步骤写下注释是非常简单,事后自己阅读也更加方便,对于阅读者而言也比较好理解整体的思路。
    • 合理的设计。此处就不详谈吧,毕竟自己也比较菜,在设计模式的使用上还非常的小白,后续有什么想法再补充吧。
  2. 关于代码健壮性与简洁性
    最近也遇到一个需求,在实现上总是需要考虑对一些异常场景的兜底,最好感觉整块代码也因为这些兜底逻辑而变得没有那么简洁,固然提高了整体的健壮性,能够处理各种异常场景,但是个人感觉这其中的代码变得不够简洁与优雅了,感觉在原来功能基础上打了N个补丁。此处并非说代码健壮性不重要,只是思考二者是如何合理的兼容,如何做到既简洁又巨有鲁棒性?可能这里也是需要一个合理的设计吧,初始并没有考虑到各种异常场景,导致后面编码完成再补充就像给原来打补丁似的。所以终究是缺乏合理的设计,同时对问题场景的思考深度与广度仍然不够,还是需要多总结吧。

毕业以来,因为工作忙也因为自己懒,没有更新过博客了。工作了发现还是很多需要学习与深入的,后续也努力督促自己。路漫漫其修远兮,吾将上下而求索。