我要开发的质量是编写更简洁的代码。至少在我看来,随着编写得更加简洁,向代码中添加错误的机会更小了。阅读其他代码更容易。
我的问题是,这是随经验而来的,还是您可以明确地为提高质量而做的事情?
我要开发的质量是编写更简洁的代码。至少在我看来,随着编写得更加简洁,向代码中添加错误的机会更小了。阅读其他代码更容易。
我的问题是,这是随经验而来的,还是您可以明确地为提高质量而做的事情?
Answers:
我要说的是,总的来说,这是时间和经验所带来的,但是您可能会发现,如果您使用更简洁的语言来进行某些工作,则会将这种品质带回到您的常规工作语言中。
当然,在使用Ruby一两年后,我发现我的C#变得很乱。我想,如果我想更好地理解函数式编程(一个不断的雄心壮志),那么我可能会从中受益匪浅。
也有一些准则可以帮助您-例如,如果您多次编写相同的两行,则将它们分成自己的方法。这是一个简单的指导原则,但很快就减少了代码行并剪切和粘贴了编程,而我们大多数人都不时会感到内。
如果您了解继承,则可以通过为父类提供通用功能来节省重复代码的地方。原则上这是显而易见的,但实际上人们经常会错过一些东西。
可以有之间的差异写更少的代码,并在你的应用程序-具有更少的代码,有时你可以使用代码生成,以避免重复自己,所以你只写几行代码,但那些然后生成一大堆的其他代码为你-可以给您很大的杠杆作用。看一下Rails或Entity Framework之类的工具在这方面做了什么,以了解其有用性。不过,请务必清楚它的需求,然后再三遍,三遍,再四遍考虑自己的代码生成,这会让您陷入YAGNI的地狱。
了解您的语言,API和工具。同样,这似乎很明显,但是多年来,我写了很多代码,后来我意识到是再现功能,我本可以从API继承来的,或者使用语言功能来简化我已经意识到花了几个小时来阅读与我一起使用的API文档将为我节省许多时间,以后再进行编码或调试。同样,与您合作的大多数平台都有自己的特色-学习按照他们期望的方式工作,您的生活会轻松很多。花一些时间为正在使用的平台找到阻力最小的方向,您会做得更好。
如果您想知道是否有更好的方法来做某事,那么可能存在,并且总是值得寻找如何做得更好的方法。
减少代码编写的一种好方法是,尝试避免重新发明轮子,并在可用时使用现有的软件组件。
当我问为什么人们做自己的ORM,自己的日志记录引擎,自己的UI组件或自己的所有事情时,我得到一个常见的答案:
但是我们更好
我相信这种说法在大多数情况下是正确的,但是在大多数情况下,对ROI的负面影响非常大。你妈妈做的最好的菜好吗?但是你不能要求你妈妈每天回家做准备。
这就是为什么我确实认为开发人员应该对他们选择的财务影响感兴趣。他们之中有一些是:
我想认为这些组件供应商是您的扩展团队,只为您自己建立,维护和改进它而付出的一小部分。
对于整个公司而言,最好是最大程度地提高ROI,而不是致力于最大程度地提高我们的自我满意度;)公司获得的资金越多,您的工作条件和薪水增长的可能性就越大。
除了理解编程语言之外,我认为人们对问题的理解以及提出一个好的解决方案也与之息息相关。大多数问题都有许多解决方案,但并非所有解决方案都是最佳的。您可以通过不同的道路从城市A到城市B行驶-一个可能要花两个小时,另一个可能要花一倍。在编程中是相同的想法。您可能非常了解一种语言,但是您可能会想出一种解决方案,该解决方案需要占用两页代码,而其他人会想出一种解决方案,该解决方案可以用一半的代码大小来实现。这些年来,我已经看到很多。
确保您对问题有很好的理解。分析一下,提出解决方案,权衡利弊(当然,“带有's'的解决方案”因问题而异-在这里一般来说就是这样。)然后就是所选解决方案的实现,是您对语言(和框架,如果适用)的理解将发挥作用的地方。
像其他所有苦难一样,如果您不承认有问题,就不会寻找解决方案。当您了解更少的代码后,经验便开始成为一个因素。当您重新访问代码时,是确定是否可以重用代码或重构为更少代码的好时机。Microsoft能够通过不假脱机两次来提高Windows 2000的打印速度(引用Microsoft员工的免费演示版中的一个)。