在Stack Overflow上有这样的一个贴子《What’s your most controversial programming opinion?》,翻译成中文就是“你认为最有争议的编程观点是什么?”,不过,在400多个主回贴,以及千把个子回贴中,好像并不是很有争议,而是令人相当的茅塞顿开,下面罗列一些,并通过我自己的经历和理解发挥了一些,希望对你有帮助。
1) The only “best practice” you should be using all the time is “Use Your Brain”.
唯一的“Best Practice”并不是使用各种各样被前人总结过的各种设计方法、模式,框架,那些著名的方法、模式、框架只代码赞同他们的人多,并不代表他们适合你,你应该更多的去使用你的大脑,独立地思考那些方法、模式、框架出现的原因和其背后的想法和思想,那才是“best practice”。事实上来说,那些所谓的“Best Practice”只不过是限制那些糟糕的程序员们的破坏力。
2)Programmers who don’t code in their spare time for fun will never become as good as those that do.
如果你对编程没有感到一种快乐,没有在你空闲的时候去以一种的娱乐方式去生活,无论是编程,还是运动,还是去旅游,那么你只不过是在应付你的工作,无时无刻不扎在程序堆中,这样下来,就算是你是一个非常聪明,非常有才华的人,你也不会成为一个优秀的编程员,要么只会平平凡凡,要么只会整天扎在技术中成为书呆子。当然,这个观点是有争议,热情和能力的差距也是很大的。不过我们可以从中汲取其正面的观点。
3)Most comments in code are in fact a pernicious form of code duplication.
注释应该是注释Why,而不是How和What,参看《惹恼程序员的十件事》,代码告诉你How,而注释应该告诉你Why。但大多数的程序并不知道什么是好的注释,那些注释其实和code是重复的,毫无意义。
4)XML is highly overrated
XML可能被高估了。XML对于Web上的应用是不错的,但是我们把其用到了各种地方,好像没有XML,我们都不会编程了。
5)Not all programmers are created equal
这是那些junior经理或是流程爱犯的错,他们总是认为,DeveloperA == DeveloperB,只要他们的title一样,他们以为他们的能力、工作速度、解决问题的方法,掌握的技能等等都是一样的。呵呵。更扯的是,在某些时候,就算是最差的程序员,他们也会认为其比别人强十倍,这就是现代的SB管理。
6)”Googling it” is okay!
Google只会给你知识,并不会教给你技能。那里只有“鱼”,没有“渔”,过度的使用Google,只会让你越来越离不开他,你越来越去要去立马告诉你答案,而你越来越不会自己去思考,自己去探索,去专研。如果KFC快餐是垃圾食品对我们的身体没有好处,那么使用Google也一种快餐文化对我们的智力发展大大的没有好处。
7)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++好,有这点工夫能干好多事了。世界因为不同而精彩,只知道事物的一面是有害的。
8)Your job is to put yourself out of work.
你的工作不是保守,那种教会徒弟,饿死师父的想法,不但是相当短浅的,而且还是相当脑残的。因为,在计算机世界里,你掌握的老技术越多,你就越没用,因为技术更新的太快。你对工作越保守,这个工作就越来越离不开你,你就越不越不能抽身去学新的东西,你也就越来越OUT了。记住:If you can’t be replaced then you can’t be promoted!
9)Design patterns are hurting good design more than they’re helping it.
很多程序员把设计模式奉为天神,他们过度的追求设计模式以至都都忘了需求是什么,结果整个系统设计被设计模式搞得乱七八糟,我们叫这种编程为“设计模式驱动编程”,正如第一点所说,如果你不懂得用自己的大脑思考的话,知其然,不知所以然的话,那么你不但得不到其好处,反而受其所累。
10)Unit Testing won’t help you write good code
准确地说,我们可以认为这是Test-Driven开发,其实,这种开发就是先写unit test case,这样的开发方式的主要目的是,为了防止你不会因为一个改动而引入Bug,但这并不会让你能写出更好的代码。这只会让你写出不会出错的代码。同第一点,这样的方法,只不过是防止糟糕的程序员,而并不是让程序员或代码质量更有长进。反而,通过Unit Test会为程序员的为自己代码做辩解的一种托辞。
最后,顺便说一下,以前去那个敏捷的公司面试,发现那个公司的某些技术人员中毒不浅,具体表现在上述的1)9)10)观点上。
分享到:
相关推荐
根据给定的信息,本文将重点解析“十条不错的编程观点”中的关键知识点,这些观点来源于CocoaChina苹果开发中文站,该站点是针对苹果产品的开发人员的专业社区。以下是对这十条编程观点的详细解读: ### 1. 使用你...
程序员编程十条戒律是一套针对软件开发过程中的一系列最佳实践指导原则,旨在帮助程序员编写出更加优质、可维护的代码,同时提高开发效率。接下来,我会详细解释这些戒律所包含的知识点。 1. DRY原则(Don't Repeat...
每个人都有自己的理念和主张,在遇到分歧时应该坚持自己的观点,但同时也要学会接受不同的意见。即使最终未能说服对方,也应保持冷静和理性,避免情绪化的言行。 #### 九、融入团队 避免孤立无援地工作,应该积极...
本文主要介绍了在VLSI(Very Large Scale Integration,超大规模集成电路)设计中需注意的基础知识,特别针对FPGA(Field-Programmable Gate Array,现场可编程门阵列)与ASIC(Application-Specific Integrated ...
医疗卫生人员十条禁令.pdf
《安全操作规程十条规定》是企业确保生产安全、预防事故发生的重要管理制度。这十条规定涵盖了从个人防护、设备操作到紧急处理等多个方面的安全要点,旨在规范员工的行为,提高生产过程的安全性。以下是每一条规定的...
《9学校(幼儿园)消防安全管理十条规定》是指导学校和幼儿园进行消防安全管理的重要法规,旨在保障校园环境的安全,预防火灾事故的发生。以下是该规定的详细解读: 1. **消防安全责任**:规定强调了学校(幼儿园)的...
“水十条”,向水污染郑重宣战 辽宁新闻 20150421 高清版_高清.kux
环境保护:“大气十条”“水十条”“土十条”.doc
土十条
"村规民约十条范文(通用5篇)" 村规民约是村民自治初期,根据党的政策和国家法律法规,结合村的实际情况,为维护村的社会秩序、社会公德、村风民俗,制定的一种规章制度,精神文明建设等。以下是对村规民约十条的...
【海航《同仁共勉十条》】是海航集团的企业文化核心,旨在引导员工的做人与做事准则。十条共勉内容涵盖了团队合作、个人发展、持续进步等多个方面,旨在培养员工的团队精神、恒心毅力和个人修养。 1. **团体以和睦...
1968年,美国通用汽车公司提出开发一种取代传统继电器控制系统的新的控制装置,提出GM十条,美国数字设备公司(DEC)根据以上要求,研制出第一台可编程控制器,型号为PDP-14。 可编程控制器的定义为:是一种数字式...
### 闸流管和双向可控硅应用的十条黄金原则 #### 概述 本文档旨在深入探讨《闸流管和双向可控硅应用的十条黄金原则》这一技术文档中提到的关键概念和技术要点。闸流管与双向可控硅是在电力电子领域内广泛使用的...
### 提升Python编程效率的十条实用建议 #### 一、避免使用分号 在Python中,使用分号作为语句结束符是可选的。实际上,由于Python的设计哲学倾向于简洁和可读性,大多数情况下无需在每条语句后添加分号。这种做法...
“气十条”在大气污染防治法中的体现.doc
环保(含新三板)行业周报:生态环境部发布2019年“水十条”实施情况.pdf
爱婴十条知识.docx
《优秀设计的十条戒律》由VLSI Technology的工程专家Peter Chambers撰写,旨在为设计者提供避免同步电路设计常见故障的关键指导。以下是基于该文档的核心知识点的详细解析: ### 数字系统101:同步电路的基础 同步...