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

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

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

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


当前回答

c++的STL库是如此通用,以至于它对任何人都不是最优的。

其他回答

这个问题让我感到有趣的是,我刚刚读了答案的第一页,到目前为止,我还没有发现一个有争议的观点。

也许这更能说明stackoverflow产生共识的方式。也许我应该从最底层开始。: -)

生成文档良好的代码比生成文档不良的代码花费的时间更少

When I say well-documented I mean with comments that communicate your intention clearly at every step. Yes, typing comments takes some time. And yes, your coworkers should all be smart enough to figure out what you intended just by reading your descriptive function and variable names and spelunking their way through all your executable statements. But it takes more of their time to do it than if you had just explained your intentions, and clear documentation is especially helpful when the logic of the code turns out to be wrong. Not that your code would ever be wrong...

I firmly believe that if you time it from when you start a project to when you ship a defect-free product, writing well-documented code takes less time. For one thing, having to explain clearly what you're doing forces you to think it through clearly, and if you can't write a clear, concise explanation of what your code is accomplishing then it's probably not designed well. And for another purely selfish reason, well-documented and well-structured code is far easier to dump onto someone else to maintain - thus freeing the original author to go create the next big thing. I rarely if ever have to stop what I'm doing to explain how my code was meant to work because it's blatantly obvious to anyone who can read English (even if they can't read C/C++/C# etc.). And one more reason is, frankly, my memory just isn't that good! I can't recall what I had for breakfast yesterday, much less what I was thinking when I wrote code a month or a year ago. Perhaps your memory is far better than mine, but because I document my intentions I can quickly pick up wherever I left off and make changes without having to first figure out what I was thinking when I wrote it.

这就是为什么我能很好地编写文档——不是因为我觉得编写适合展示的漂亮代码是一种崇高的使命,也不是因为我是一个纯粹主义者,而只是因为端到端让我在更短的时间内发布高质量的软件。

软件开发是计算机科学的一个非常小的子集。

人们有时似乎认为这两者是同义词,但实际上,计算机科学的许多方面是普通开发人员很少(如果有的话)接触到的。根据一个人的职业目标,我认为有很多计算机专业的毕业生如果接受某种软件工程教育可能会更好。

我非常重视教育,拥有计算机科学学士学位,并在业余时间攻读计算机科学硕士学位,但我认为许多获得这些学位的人将学位视为达到目的的手段,受益甚微。我认识很多人,他们上过和我一样的系统软件课程,写过和我一样的汇编程序,但直到今天他们都没有看到他们所做的任何价值。

记事本是一个完美的文本编辑器。(有时是非窗口换行符的写字板)

编辑配置文件 查看日志文件 发展

我知道有人真的相信这一点!然而,他们将使用IDE进行开发,但继续使用记事本进行其他一切!

编程:这是一份有趣的工作。

我似乎看到了两类开发人员。有些人不喜欢,但他们有能力,薪水也不错。另一组人喜欢它的程度有点令人毛骨悚然。这似乎就是他们的生活。

我只是觉得这份工作薪水高,而且有趣。每一天的每一分钟都有各种各样的学习新东西的空间。我想不出其他我更喜欢的工作了。但这仍然是一份工作。妥协是要做出来的,你生产的东西并不总是那么好。

因为我更愿意在沙滩上喝啤酒或和孩子们一起玩。