我已经关注了一段时间了,我经常看到人们询问最快的做事方式。我当然承认代码必须写得很好,甚至经常调整,但在我的日常工作中,我更关心代码的可维护性,偶尔我只需要调整代码以使代码更快。
因此,我想知道其他人在编写代码时遵循的优先级。换句话说:代码最重要的属性是什么?作为后续问题,我想知道是谁做出了这个决定(管理层或开发人员)?
答案 0 :(得分:7)
代码必须在足够短的时间内执行其预期任务才能使用。应用程序之间的差异很大。当你无法理解需要的速度时,努力使你的代码“快速”是浪费时间;同时,当你缺乏对代码意图完成的清晰,高层次的概念时,努力使你的代码“可维护”是注定要失败的。因此,必须优先考虑理解你想要解决的问题;其他一切都来自于这种理解。
答案 1 :(得分:6)
mdbritt's answer非常接近我的态度,但其他一些事情:
答案 2 :(得分:5)
Software Quality应位于每个代码编写优先级列表的顶部...
答案 3 :(得分:4)
我的优先事项:
代码必须可读。
代码应该做一些有用的事情。
在很多情况下,它必须快速出门,在这种情况下,我可能会对下面的事情做出妥协。
代码应该很好地分解为模块。
它应该足够快。
上次我的代码不够快是在我编写方程求解器并需要将方程转换为代码时,这意味着用有效的程序标识符替换任意变量名。结果是30个单一替换的序列不是很聪明---分配太多了。在一次通过中对所有30个变量进行单次替换可以节省当天的时间。
答案 4 :(得分:2)
编码时:
按此顺序。
设计时:
按顺序。
答案 5 :(得分:1)
测试是我重要属性列表中的首要任务。让路上的生活变得更加轻松。这是我决定在我工作的地方做,因为没有其他人做TDD。
答案 6 :(得分:1)
关注点分离对我来说非常重要。如果每个类的目的有限(希望是一个),那么无论何时需要维护代码,您都可以查看更少的位置。这也避免了只有Bob可以修复或工作的数千行怪异。结合适当的单元测试,每个类的范围和测试都会减少,从而确保每个代码段更易于理解和诊断。
答案 7 :(得分:1)
这实际上取决于您正在开发的软件以及它的用途。
如果您正在为企业编写LOB Web应用程序,其中每个人都使用相同版本的IE进行所有Web浏览,那么导致您的应用程序在Fire Fox中可怕地中断的错误并不重要。
如果您是谷歌开发Gmail,那么这样的错误将变得更加重要。
有时候,表现会影响正确性。例如,如果您有一个影响0.1%客户的错误,修复它会要求您大幅减慢其他99.9%的应用程序速度,那么性能就变得更加重要。
所以,我说这实际上取决于你的个人情况。
答案 8 :(得分:1)
开发IME的最快方法是积累了很多部分解决方案,这些解决方案大部分都很容易组装成新问题。例如,我有一个我一直使用的数据引擎,我有一个服务基类,一个调度程序,复制文件和检查它们的哈希等功能。我通常可以相当快地推出一个程序,因为我有这些先前开发的和测试的代码。
答案 9 :(得分:1)
除了批量处理数千个数据文件外,性能通常不是问题。简单性带来了很多性能,这是我的优先事项之一。我会按以下顺序看到我的优先事项:
答案 10 :(得分:1)
我的优先级是 LTFCE : L 非常, T estable, F 灵活, C < / strong> ompliant, E conomical,按顺序排列。有关这些优先事项的更详细讨论发布在this question的答案中。
正如你所看到的,我同意你的看法,几乎总是速度远远不是最关注的问题。
答案 11 :(得分:1)
我的首要任务是,要求的变化,无论多大,只需要代码中的小更改。无论你怎么想,或者他们告诉你什么,他们 都会改变要求。而且没有一个是安全的。
如果需求发生变化,我必须在多个地方更改代码,我觉得我失败了。但后来我弄清楚如何重写代码,以便当需求第二次更改时(你知道它会),我可以在一个地方更改它。
为什么人们会发明像n层和MVC以及其他解耦技术这样的东西。
-
BMB