最有争议的十大编程观点

开发
文章的主题是“你认为最有争议的编程观点是什么?”,每名程序员对“编程”都有不同的理解,当然,有些观点有可能被大多数人认可,而有些观点却并不被人认同。

每名程序员对“编程”都有不同的理解,当然,有些观点有可能被大多数人认可,而有些观点却并不被人认同,文章列举了“十个最争议的编程观点”,也许其中的某个思想也会让你茅塞顿开。

51CTO推荐阅读:技术总监谈好的程序员如何写代码

一、最佳实践?不如多用用你的大脑

唯一的“最佳实践”并不是使用各种各样被前人总结过的各种设计方法、模式,框架,那些著名的方法、模式、框架只代码赞同他们的人多,并不代表他们适合你,你应该更多的去使用你的大脑,独立地思考那些方法、模式、框架出现的原因和其背后的想法和思想,那才是“最佳实践”。事实上来说,那些所谓的“最佳实践”只不过是限制那些糟糕的程序员们的破坏力。

二、学会享受编程带来的快乐

如果你对编程没有感到一种快乐,没有在你空闲的时候去以一种的轻松的方式去生活,无论是编程,还是运动,还是去旅游,只要你在没有从中感到轻松和愉快,那么你只不过是在应付它们。而你无时无刻不扎在程序堆中,这样下来,就算是你是一个非常聪明,非常有才华的人,你也不会成为一个优秀的编程员,要么只会平平凡凡,要么只会整天扎在技术中成为书呆子。当然,这个观点是有争议,热情和能力的差距也是很大的。不过我们可以从中汲取其正面的观点。

三、糟糕的注释毫无意义

注释应该是注释Why,而不是How和What,就像《程序员的十大技术烦恼》中所说,代码告诉你How,而注释应该告诉你Why。但大多数的程序并不知道什么是好的注释,那些注释其实和Code是重复的,毫无意义。

四、XML被高估了

XML可能被高估了。XML对于Web上的应用是不错的,但是我们把其用到了各种地方,好像没有XML,我们都不会编程了。

五、不是所有的程序员都一样

这是那些“初级”经理或是流程爱犯的错,他们总是认为,DeveloperA == DeveloperB,只要他们的Title一样,他们以为他们的能力、工作速度、解决问题的方法,掌握的技能等等都是一样的。而且在某些时候,就算是最差的程序员,因为Title,他们也会认为其比别人强十倍,这就是很表面的愚蠢的管理。

六、“Google”会害死你

不可否认,查找知识是一种能力。但Google只会给你知识,并不会教给你技能。那里只有“鱼”,没有“渔”,过度的使用Google,只会让你越来越离不开他,你越来越需要要它立马告诉你答案,而你越来越不会自己去思考,自己去探索,去专研。如果KFC快餐是垃圾食品,对我们的身体没有好处,那么使用Google也一种快餐文化,对我们的智力发展大大的没有好处。因为我们过度地关注了答案,而不是寻找答案的技术和过程。

七、只懂一种语言的程序员不是好程序员

如果你只懂一种语言,准确的说,如果你只懂一类语类,如:Java和C#,PHP和Perl,那么,你将会被局限起来,只有了解了各种各样的语言,了解了不同语言的不同方法 ,你才会有比较,只有了比较,你才会明白各种语言的长处和短处,才会让你有更为成熟的观点,而且不整天和别的程序员在网上斗嘴争论:是Windows好还是Unix好,是C好还是C++好,有这点工夫能干好多事了。世界因为不同而精彩,只知道事物的一面是有害的。

八、不要保守,学着尝试新东西

你的工作不是保守,那种教会徒弟,饿死师父的想法,是相当短浅的。因为,在计算机世界里,你掌握的老技术越多,你就越没用,因为技术更新的太快。你对工作越保守,这个工作就越来越离不开你,你就越不越不能抽身去学新的东西,你也就越来越OUT了。记住:如果你是不可替代的,那么你就很难再去成长。

九、“设计模式”弊大于利

很多程序员把设计模式奉为天神,他们过度的追求设计模式,以至都都忘了需求是什么,结果整个系统设计被设计模式搞得乱七八糟,我们叫这种编程为“设计模式驱动编程”,正如第一点所说,如果你不懂得用自己的大脑思考的话,知其然,不知所以然的话,那么你不但得不到其好处,反而受其所累。

十、单元测试不会帮助你写出更好的代码

其实,单元测试的主要目的是,为了防止你不会因为一个改动而引入Bug,但这并不会让你能写出更好的代码。这只会让你写出不会出错的代码。同第一点,这样的方法,只不过是防止糟糕的程序员,而并不是让程序员或代码质量更有长进。反而,程序员通常会借用“单元测试”来为自己代码做辩解,而此时,单元测试报告成了一种托辞。

【编辑推荐】

  1. 程序员的十大技术烦恼
  2. JDK 7中的函数式编程思想
  3. 编程思想碰撞 Scala不是改良的Java 

原文作者:陈皓

原文链接:http://blog.csdn.net/haoel/archive/2010/07/21/5752106.aspx

责任编辑:王晓东 来源: CSDN博客
相关推荐

2013-03-07 10:26:21

编程程序员编程观点

2010-01-28 10:17:16

IT争议人物

2020-12-17 19:43:36

编程代码程序员

2016-12-22 16:48:25

大数据数据科学家就业岗位

2012-01-10 13:24:22

云端数据云计算存储

2018-04-23 13:38:35

大数据数据分析企业

2015-01-04 11:21:52

编程语言

2021-09-26 07:57:15

Web项目GitHub

2012-05-15 01:38:18

编程编程技巧编程观点

2012-06-08 15:52:09

Chrome浏览器插件

2016-09-01 16:09:51

产品

2009-04-16 13:32:07

Nehalemintel服务器

2022-06-27 15:10:01

大数据高考就业

2013-02-07 09:33:10

2019-05-30 14:19:58

区块链加密货币编程语言

2020-07-02 07:12:28

编程语言开发技术

2020-06-09 07:00:00

面向对象编程编程原则

2021-01-29 00:06:46

编程语言JavaPython

2014-04-23 15:17:55

2009-04-02 15:01:57

极限编程敏捷开发
点赞
收藏

51CTO技术栈公众号