在从事软件开发的这几年中,我见过无数程序员写的代码,风格迥异,有工作仅两年就有良好编码能力的,也有工作七八年代码写的一团乱的,当然,我私下里也和这些程序员们沟通过不少,然后发现初学者有很多思想上的误区。
首先,他们会在网上找很多IDE,然后在各种社区看他们的评价,两三天换一个,一个好的IDE软件固然重要,但是IDE不能作为写好代码的标准。
其次,初学者更多关注的是代码的最终结果。比如一段代码能成功运行了,就认为自己实现了目标,殊不知从代码运行速度,扩展性等方面,还有很多值得改进的地方,就是因为不注意这些细节,很多程序员到了职业生涯的后期,编码技术一直未能提升。
坏的编码习惯影响的不仅仅是项目进度,还会严重影响自己的职业生涯,随着互联网的不断发展,很多公司的编码已经渐渐的向“标准”靠拢,对于程序员的编码风格和习惯都很看重。
对此,我总结了五种提高代码质量的方法,希望对初级程序员以及老程序员能改进他们的编码。
1.将大部分时间花在分析问题上
大多数的程序员在看完需求之后会直接跳入编码阶段。这种情况在初级软件程序员的身上尤为明显。初级程序员的性子都非常急躁,想尽快用更多的项目实践来填充自己的履历,提高自己的技术,但是这种方法尤不可取,越老道的程序员越会明白一个道理:
一个项目,70%的时间用于分析,30%时间敲代码。
如果不去分析而直接编码,首当齐冲的问题就是项目完成后会出现非常多的BUG,为解决这些BUG,你可以能花费很长时间,甚至会将原代码推翻重新去写。这样反而得不偿失。
所以每当进行新项目的时候,一定要先分析,提出一个解决方案,梳理成一个流程图,然后再进行编码。
2.一个问题,多种方案
“一个问题,多种方案”,是每个程序员最容易忽略的一点,一段代码一旦完成就过了,不愿花费更多的时间去多找寻几种解决方案,虽然说这会花费很多时间,但是如果能坚持这个习惯,思维逻辑会有很大增强,同时以后遇到相同的问题,你会找出最佳的解决方案。
这种方法也有助于提高程序员在后期所需要的批判性思维,有了批判性思维,遇到问题之后可以迅速整合出多种方案,根据速度,内存等其他因素选择出最适合的解决方案。
当然,很多人在刚开始的时候根本想不出多种解决方案,我这里有个方法,可以在开源平台或者社区搜索。比如StackOverflow和Github
3.多看看别人的代码
即使在同一个项目组,也很少有程序员会互相看同事的代码,只完成属于自己的模块。同理,初学者也不会去网上看其他人的代码。
正如我上面所说的,每个程序员都有独特的编码风格。阅读其他人的代码会给自己带来很多收益,除此之外,如果进行的是同一个项目,你也能了解到其他模块的进度,能更加熟悉整个项目
所以在完成工作后,抽出一点时间来看看其他同事提交的代码,进一步了解自己的项目。
4.培养自己的耐心
很多开发人员不注重细节,对待事情也没有耐心,比如项目的单元测试,很多人对单元测试不屑一顾,认为单元测试的主要目的是测试代码的覆盖率,其实并非如此。
单元测试可以帮助开发者删除不必要的代码行,改善代码和整体项目的性能。
我建议大家可以耐心一点,最好能给每个模块编写单元测试用例。试着实现90%以上的代码覆盖率,删除不必要的代码。
5.时刻更新自己的知识
如果自己不学习新的技术,那么五年之内,你必将遭到淘汰。
这句话并不是危言耸听,而是时时刻刻正在发生着,就连负责维护开发语言的厂商,每年都在更迭版本,确保语言不会落后,被市场淘汰。
当然,这些语言的技术更新也会给开发者带来很多便利,比如以下代码:
// Old approachIf (sampleObject != null)
{
If (sampleObject.result != null)
{
string result =sampleObject.result;
}
}
// New approachIf (sampleObject != null)
{
string result = sampleObject?.result;
}
在旧的方法中,首先检查对象是否为null,然后检查该对象内部的特定值是否可用。最后才可以将该值分配给变量。
在新方法中,可以直接查询对象的属性,如果属性为null,则返回null值,而不是抛出null引用异常。
这个实例很好的诠释了新语言的便捷性。
所以我们要经常学习心得知识,关注技术博客,阅读有关新功能的文档。在新的项目中尝试使用。
写到最后,以上就是改善自己代码技术的五种方式,希望对大家有所帮助。