【开发者的减法日常】开发懒人的减法心得

我正在参加「声网 RTE 开发者社区」征文活动

虽然加法是人们解决问题的日常习惯,但是减法才是真正的YYDS,尤其在代码开发中。

1 保持代码的整洁,一味的加只会破窗,然后在摆烂的路上狂奔到底

为什么破窗很可怕:

发表于1982年3月版《The Atlantic Monthly》的一篇题为《Broken Windows》的文章;破窗理论认为环境中的不良现象如果被放任存在,会诱使人们仿效,甚至变本加厉。

一幢有少许破窗的建筑为例,如果那些窗不被修理好,可能将会有破坏者破坏更多的窗户。最终他们甚至会闯入建筑内,如果发现无人居住,也许就在那里定居或者纵火。一面墙,如果出现一些涂鸦没有被清洗掉,很快的,墙上就布满了乱七八糟、不堪入目的东西;一条人行道有些许纸屑,不久后就会有更多垃圾,最终人们会视若理所当然地将垃圾顺手丢弃在地上。代码又何尝不是呢,可以想想看代码中被骂的最多的地方是不是没注意整洁的地方,于是就成了垃圾堆,没人想也没人敢改。

2 尽可能多的使用工具,避免重复浪费时间

工具是推动进步的重要因素,它们为人类提供了方便,在实现任何事情上有着不可取代的位置。工具对我们每一个人而言,在生活和工作中都起着至关重要的作用。 从古至今,工具以其独到的作用而受到瞩目,工具可以帮助人类解决许多问题,尤瓦尔.赫拉利-《人类简史》。

开发工作亦然,当一件事情你发现自己反复5次以上需要人工介入核对时,就需要考虑使用工具了;举个例子,当时开发卫星通讯时有个很特殊的编解码和码流打包格式,因此没做过当出现Bug时就需要反复检查哪个字段错,一开始当然是二进制一个字节一个字节肉眼核对,效率可想而知了,一个上午处理一个问题就不错了;当然进度要求摆在那,如果只给自己加压,只不过是把这个问题无限熟练而已,即使效率提升一倍,也只是一上午两个问题;如果换个思路,做个解析小工具,靠机器解决无聊低效的格式解析处理,你只是来验证对还是不对,完全不可同日而语了;而且解决了不止你会,别人也很方便学会的问题。别急,到这里还没结束,这个工具有没有可能更优更通用?肯定的,我把它做成了一个wireshark的插件,直接打开码流,选择一下自定义格式就可以了,都不用再额外的工具了。想想在这个过程中你得到了什么?留下一个现在其他小伙伴都还在用的工具,学会了wireshark的插件制作方法,入门了lua语言(wireshark的插件可以用lua写);其实算一下在时间相等甚至更少的情况下,不仅完成了任务,还学到不少新东西,所以减反而更高效。

3 站在巨人肩膀上,不要重复造轮子,如果确实没有轮子,就造一个,让别人站在你的肩膀上

业界有很多大牛,同时也有非常多的开发小伙伴,不要什么都从头开始做开始学,没有哪个任务会等你的;同样当发现有可以抽象共用的代码模块时,要敢于提出,敢于尝试,总有一天,你或其他小伙伴会受益的。

最后写代码历程类似的小伙伴共勉:从“hello world”简单函数-单个类/结构体-单函数/类中狂加功能-公共模块/类抽象。



推荐阅读
相关专栏
开发者实践
182 文章
本专栏仅用于分享音视频相关的技术文章,与其他开发者和声网 研发团队交流、分享行业前沿技术、资讯。发帖前,请参考「社区发帖指南」,方便您更好的展示所发表的文章和内容。