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

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

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

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


当前回答

大多数编程面试问题都是毫无意义的。尤其是那些由程序员想出的。

这是一种常见的情况,至少根据我和我的朋友的经验,吹牛 程序员,问你一些他花了几周时间在谷歌上搜索的棘手问题。有趣的是,你回到家,一分钟内就把它炸飞了。这就像他们经常试图用他们复杂的武器打败你,而不是检查你是否是一个全面的、务实的团队合作者。

在我看来,类似的愚蠢是当你被要求提供高度可访问的基础知识时,比如:“哦,等等,让我看看你是否可以在一张纸上伪代码insert_name_here-算法(sic!)”。在申请高级编程工作时,我真的需要记住它吗?我应该有效地解决问题或谜题吗?

其他回答

代码即设计:Jack W. Reeves的三篇文章

任何软件的源代码都是其最准确的设计文档。其他的一切(规格,文档,有时还有注释)要么是不正确的,过时的,要么是误导性的。

肯定会让你在任何地方被炒。

还没有测试它的争议,但可能有潜力:

最好的代码行是你从未写过的那行。

编码是一门艺术

一些人认为编码是一门艺术,而另一些人认为编码是一门科学。

“科学”派认为,既然目标是为某种情况获得最优代码,那么编码就是研究如何获得这种最优代码的科学。

“艺术”派认为,有很多方法可以获得最优的代码,这个过程充满了主观性,根据自己的技能和经验做出明智的选择是一种艺术。

设计模式是不好的。

实际上,设计模式不是。

您可以编写糟糕的代码,并将其埋没在一堆模式之下。使用单例变量作为全局变量,使用状态作为goto。无论什么。

设计模式是针对特定问题的标准解决方案,但要求您首先理解问题。如果您不这样做,设计模式就会成为下一个开发人员的问题之一。

web的MVC应该比传统的MVC简单得多。

Traditional MVC involves code that "listens" for "events" so that the view can continually be updated to reflect the current state of the model. In the web paradigm however, the web server already does the listening, and the request is the event. Therefore MVC for the web need only be a specific instance of the mediator pattern: controllers mediating between views and the model. If a web framework is crafted properly, a re-usable core should probably not be more than 100 lines. That core need only implement the "page controller" paradigm but should be extensible so as to be able to support the "front controller" paradigm.

下面是我自己的框架的核心方法,它成功地应用于一家财富100强的网络硬件制造商为一家财富50强的媒体公司生产的嵌入式消费设备。我的方法被一位前Smalltalk程序员和Oreilly一本关于有史以来最杰出的Java web框架的书的作者比作Smalltalk;此外,我已经将相同的框架移植到mod_python/psp。

static function sendResponse(IBareBonesController $controller) {
  $controller->setMto($controller->applyInputToModel());
  $controller->mto->applyModelToView();
}