这绝对是主观的,但我想尽量避免它变成争论。我认为如果人们恰当地对待它,这将是一个有趣的问题。

这个问题的想法来自于我对“你最讨厌的语言的哪五件事?”问题的回答。我认为c#中的类在默认情况下应该是密封的——我不会把我的理由放在这个问题上,但我可能会写一个更完整的解释来回答这个问题。我对评论中的讨论热度感到惊讶(目前有25条评论)。

那么,你有什么有争议的观点?我宁愿避免那些基于相对较少的基础而导致相当宗教的事情(例如,大括号放置),但例如可能包括“单元测试实际上并没有多大帮助”或“公共字段确实是可以的”之类的事情。重要的是(至少对我来说)你的观点背后是有理由的。

请提出你的观点和理由——我鼓励人们投票给那些有充分论证和有趣的观点,不管你是否恰好同意这些观点。


当前回答

软件复用是优化软件开发的重要途径

不知怎的,软件重用一度流行,但后来失去了它的魅力,因为许多公司发现,仅仅写带有重用口号的powerpoint演示文稿实际上并没有帮助。他们认为软件重用“不够好”,无法实现他们的梦想。因此,它似乎不再流行了——它被许多项目管理新手所取代(例如敏捷)。

事实是,任何真正优秀的开发人员都会自己执行某种软件重用。我会说任何不做软件重用的开发人员都是糟糕的开发人员!

我亲身经历过,软件重用在多大程度上可以提高开发的性能和稳定性。当然,一组幻灯片和管理层的半心半意的坦白并不足以在一家公司充分发挥其潜力。

我已经链接了一篇关于软件重用的旧文章(见标题)。它最初是用德语写的,后来被翻译了——所以,如果它写得不好,请原谅。

其他回答

开发人员不应该测试他们自己的软件

开发和测试是两个截然相反的学科。开发就是建造,测试就是拆除。有效的测试需要一种特定的心态和方法来发现开发人员的错误,找到他们假设中的漏洞,以及他们逻辑中的缺陷。大多数人,包括我自己在内,根本无法将自己和自己的代码置于这样的审查之下,并且仍然保持客观。

并不是所有东西都需要封装到自己的方法中。有时候让一个方法做不止一件事是可以的。

软件工程师不应该和计算机科学家一起工作

他们的区别: se关心代码的可重用性,而CSs只关心代码 se关心性能,而CSs只想现在就把事情做好 se关心整个结构,而CSs则不在乎 ...

我不明白为什么人们认为Java绝对是大学里最好的“首选”编程语言。

首先,我认为第一种编程语言应该强调学习控制流和变量的必要性,而不是对象和语法

另一方面,我相信没有在C / c++中调试内存泄漏经验的人无法完全理解Java带来的好处。

同样,自然的进展应该是从“我怎么能做这个”到“我怎么能找到做那个的库”,而不是相反。

世界需要更多的goto

人们虔诚地避免goto,除了“我的教授告诉我goto不好”之外,没有其他理由。它们有一个目的,可以在很多地方极大地简化生产代码。

也就是说,在你所编写的99%的代码中,它们都是不必要的。