在Stack Overflow上有这样的一个贴子《What’s your most controversial programming opinion?》,翻译成中文就是“你认为最有争议的编程观点是什么?”,不过,在400多个主回贴,以及千把个子回贴中,好像并不是很有争议,而是令人相当的茅塞顿开,下面罗列一些,并通过我自己的经历和理解发挥了一些,希望对你有帮助。
0. The only “best practice” you should be using all the time is “Use Your Brain”.
唯一的“Best Practice”并不是使用各种各样被前人总结过的各种设计方法、模式,框架,那些著名的方法、模式、框架只代码赞同他们的人多,并不代表他们适合你,你应该更多的去使用你的大脑,独立地思考那些方法、模式、框架出现的原因和其背后的想法和思想,那才是“best practice”。事实上来说,那些所谓的“Best Practice”只不过是限制那些糟糕的程序员们的破坏力。
1. Programmers who don’t code in their spare time for fun will never become as good as those that do.
如果你对编程没有感到一种快乐,没有在你空闲的时候去以一种的娱乐方式去生活,无论是编程,还是运动,还是去旅游,那么你只不过是在应付你的工作,无时无刻不扎在程序堆中,这样下来,就算是你是一个非常聪明,非常有才华的人,你也不会成为一个优秀的编程员,要么只会平平凡凡,要么只会整天扎在技术中成为书呆子。当然,这个观点是有争议,热情和能力的差距也是很大的。不过我们可以从中汲取其正面的观点。
2. Most comments in code are in fact a pernicious form of code duplication.
注释应该是注释Why,而不是How和What,参看《惹恼程序员的十件事》,代码告诉你How,而注释应该告诉你Why。但大多数的程序并不知道什么是好的注释,那些注释其实和code是重复的,毫无意义。
3. XML is highly overrated
XML可能被高估了。XML对于Web上的应用是不错的,但是我们把其用到了各种地方,好像没有XML,我们都不会编程了。
4. Not all programmers are created equal
这是那些junior经理或是流程爱犯的错,他们总是认为,DeveloperA == DeveloperB,只要他们的title一样,他们以为他们的能力、工作速度、解决问题的方法,掌握的技能等等都是一样的。呵呵。更扯的是,在某些时候,就算是最差的程序员,他们也会认为其比别人强十倍,这就是现代的SB管理。
5. “Googling it” is okay!
Google只会给你知识,并不会教给你技能。那里只有“鱼”,没有“渔”,过度的使用Google,只会让你越来越离不开他,你越来越去要去立马告诉你答案,而你越来越不会自己去思考,自己去探索,去专研。如果KFC快餐是垃圾食品对我们的身体没有好处,那么使用Google也一种快餐文化对我们的智力发展大大的没有好处。
6. If you only know one language, no matter how well you know it, you’re not a great programmer.
如果你只懂一种语言,准确的说,如果你只懂一类语类,如:Java和C#,PHP和Perl,那么,你将会被局限起来,只有了解了各种各样的语言,了解了不同语言的不同方法 ,你才会有比较,只有了比较,你才会明白各种语言的长处和短处,才会让你有更为成熟的观点,而且不整天和别的程序在网上斗嘴争论是Windows好还是Unix好,是C好还是C++好,有这点工夫能干好多事了。世界因为不同而精彩,只知道事物的一面是有害的。
7. Your job is to put yourself out of work.
你的工作不是保守,那种教会徒弟,饿死师父的想法,不但是相当短浅的,而且还是相当脑残的。因为,在计算机世界里,你掌握的老技术越多,你就越没用,因为技术更新的太快。你对工作越保守,这个工作就越来越离不开你,你就越不越不能抽身去学新的东西,你也就越来越OUT了。记住:If you can’t be replaced then you can’t be promoted!
8. Design patterns are hurting good design more than they’re helping it.
很多程序员把设计模式奉为天神,他们过度的追求设计模式以至都都忘了需求是什么,结果整个系统设计被设计模式搞得乱七八糟,我们叫这种编程为“设计模式驱动编程”,正如第一点所说,如果你不懂得用自己的大脑思考的话,知其然,不知所以然的话,那么你不但得不到其好处,反而受其所累。
9. Unit Testing won’t help you write good code
准确地说,我们可以认为这是Test-Driven开发,其实,这种开发就是先写unit test case,这样的开发方式的主要目的是,为了防止你不会因为一个改动而引入Bug,但这并不会让你能写出更好的代码。这只会让你写出不会出错的代码。同第一点,这样的方法,只不过是防止糟糕的程序员,而并不是让程序员或代码质量更有长进。反而,通过Unit Test会为程序员的为自己代码做辩解的一种托辞。
最后,顺便说一下,以前去那个敏捷的公司面试,发现那个公司的某些技术人员中毒不浅,具体表现在上述的0、8、9 观点上。
来源:陈皓
转载自【http://blog.jobbole.com/19511/】
分享到:
相关推荐
在探讨编程与年龄之间的关系时,我们必须提到关于专业技能与年龄相关性的争议。长久以来,这一问题一直困扰着程序员群体,特别是中国的IT从业者。大家倾向于探讨,究竟是年轻程序员更易于吸收和掌握新技术,还是年长...
《编程高手箴言》是一本深受争议...虽然书中的一些观点可能引发争议,但无疑它提供了一条通向编程高手之路的思考路径,对提升个人技术水平和职业发展大有裨益。无论你是初学者还是资深开发者,都能从中找到启发和收获。
然而,著名计算机科学家 Edsger Dijkstra 在论文《Goto 语句有害》中提出反对 `goto` 的观点,这使得它在结构化编程中被视为禁忌。尽管如此,有时 `goto` 可以简化某些特定场景下的代码,比如在 `case` 语句中,相比...
- **文档性质**: 该文档带有“半地下”性质,因为其中包含了一些可能存在版权争议的内容。 - **文档完整性**: 文档并未完全整合,有些散落的部分需要用户自行收集整合。文档的大部分内容已经在特定论坛上发布过。 - ...
【C语言作为第一门编程语言的争议】 在国内,C语言通常是首选的入门语言,但许多教材过于侧重语法细节,导致学生在应付填空式考试中无法真正理解和掌握编程。上机实践也往往局限于简单的练习,缺乏实际应用价值,这...
一方面,有学者坚持机器人行为的自主性并不意味着它们具有独立的道德地位,因为这些行为还是基于人类的设计和编程。另一方面,也有学者认为,随着技术的进步,自主学习型机器人展现出的意识和理性行为可能为机器人...
在计算机科学领域,关于结构化编程(Structured Programming)与goto语句的争议堪称经典,它不仅是编程语言设计史上的一个重要篇章,也深刻影响了软件工程的发展方向。唐纳德·克努特(Donald Knuth)于1974年末发表...
提供的文件描述的是历史考试试题,涉及的是历史学科的多个知识点,包括古代的地亩制度、自耕农经济、古代思想家的观点、中外历史事件、晚清时期的外交政策、近代科技传播、民族工业的发展、历史人物争议等。...
【标题】"易语言百度博客访问流量源码.rar"指的是一个使用...对于学习易语言和理解网络流量机制的人来说,这是一个有价值的案例研究。然而,应当注意,使用此类工具可能违反平台规定,因此在实际操作中需谨慎对待。
总结来说,WikiKNNControversyDetection是SIGIR16年会上的一个创新尝试,它利用KNN算法和Java编程语言,为网络争议检测提供了一种实用且高效的解决方案。这一工作不仅加深了我们对网络争议的理解,也为未来的信息...
描述中提到的“是否要发送ip地址的点”是一个有争议的技术细节。在TCP/IP协议中,IP地址通常以点分十进制的形式表示,例如192.168.1.1。在编程中,有时会遇到是否需要将这些点分隔符一同传输的问题。点分十进制仅是...
在计算机编程领域,goto语句一直以来都是一个备受争议的话题。本文将深入探讨goto语句的优缺点,以及它在程序设计中的应用,帮助程序员们更好地理解和运用这一语句。 历史背景: goto语句的历史可以追溯到早期的...
- **改善交通流动性的观点**:MonkeyParking则辩称,他们的服务并非买卖停车位本身,而是提供停车位信息,从而减少车辆在街上寻找停车位的时间,进而改善交通状况。 3. **法律与伦理考量**: - **法律角度**:...
该战略强调了三个关键要素:可编程性(Programmable)、灵活性(Flexible)和应用感知(Application-Aware)。这三者构成了思科SDN战略的核心,目的是实现网络的自动化、简化网络服务的创建过程、提供虚拟网络支持,...
《程序员的呐喊》的作者是业界知名的程序员——来自Google的Steve Yegge,他写过很多颇富争议的文章,其中有不少就收录在本书中。《程序员的呐喊》是他的精彩文章的合集。 《程序员的呐喊》涉及编程语言文化、...
然而,这种观点也引发了许多争议。实际上,每种编程语言都有其适用场景和优势,并不存在绝对意义上的“最好”。例如: - **Python**因其简洁的语法和强大的数据处理能力而在科学计算、机器学习等领域受到欢迎。 - **...
Stroustrup可能在这个文件中阐述了他对C++不断演进的思考,包括模板元编程、智能指针、RAII(Resource Acquisition Is Initialization)原则等,这些都是C++保持竞争力的关键因素。 最后,"《Bjarne Stroustrup的...