我知道这可能被认为是主观的,但这绝对不是我的本意。我一直在寻找一些我可能从未听说过的技术,这些技术可以帮助提高软件工程师的生产率和质量。
特别是,我正在寻找工具、技术、方法、提示和技巧、最佳实践等,以帮助您提高作为软件工程师的工作效率和质量。这实际上是一个与流程相关的问题。因此,请不要从您的角度来回答您的观点,即哪种编程语言是最好的。
我希望答案是主观的。但这就是它的美妙之处。并不是所有的东西都适合每个人。我们都有一组不同的约束,我们在其中进行操作。因此,我们做出不同的选择是不可避免的。如果答案是矛盾的,那就太好了!
具体有哪些对你有帮助的技术?他们有什么不同呢?你用什么标准来得出这个结论?
发布于 2010-08-05 19:00:39
好的,这里是我的主观答案。
在我看来,提高质量的标准方法是单元测试。当然,您仍然可以编写糟糕的代码,并进行单元测试来确认它的工作,但至少您知道它是工作的。单元测试真正给你带来优势的地方是当你想要修改你的代码或者添加额外的功能时。有了单元测试,你的代码就能继续工作。
至于生产力和单元测试,这取决于您是关注短期生产力还是长期生产力。单元测试需要时间,因此您编写实际功能的效率较低。从长远来看,我绝对相信你会更有效率,因为你的单元测试保证了在维护期间所有的功能都能正常工作。
第二个提高生产力和质量的技巧是透彻地考虑每个新特性。一旦发布了新特性,您就必须对其进行维护。维护需要时间,而且会降低工作效率。这个新功能有必要吗?有多少客户真正想要此功能?始终尝试着眼于更大的图景,您自己对产品的愿景是什么,新功能是否符合这种愿景。
你拥有的代码越少,你需要维护的代码就越少,错误也就越少。我总是试图把这一点牢记在心。
发布于 2010-08-05 18:56:19
委派给适当的一方。然后定期检查分配的任务。
一旦你知道谁是最好的委托者,谁能正确有效地完成任务,它就会极大地提高你的生产力。
它让你专注于你想要或需要做的事情。
例如,回答stackoverflow问题。
发布于 2010-08-05 19:15:40
学习如何有效地使用递归。它为我提供了一个框架,可以将复杂的问题分解成可理解的代码。它帮助我更快地编写困难的代码,没有或几乎没有错误。教我如何以这种方式思考的书是DP Friedman的“小阴谋家”。
第二个我想说的是学习Lisp。它帮助我更快地学习其他语言。我现在可以根据实现的Lisp功能的子集对其他语言进行分类。
附注:在我的软件中我不经常使用递归。大多数现代语言和框架都有一些特性和实用函数,使您可以避免使用递归来解决更简单的问题。
https://stackoverflow.com/questions/3413933
复制相似问题