1) The only “best practice” you should be using all the time is “Use Your Brain”.html
惟一的“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.shell
若是你对编程没有感到一种快乐,没有在你空闲的时候去以一种的娱乐方式去生活,不管是编程,仍是运动,仍是去旅游,那么你只不过是在应付你的工做,无时无刻不扎在程序堆中,这样下来,就算是你是一个很是聪明,很是有才华的人,你也不会成为一个优秀的编程员,要么只会平平凡凡,要么只会成天扎在技术中成为书呆子。固然,这个观点是有争议,热情和能力的差距也是很大的。不过咱们能够从中汲取其正面的观点。编程
3)Most comments in code are in fact a pernicious form of code duplication.设计模式
注释应该是注释Why,而不是How和What,参看《惹恼程序员的十件事》,代码告诉你How,而注释应该告诉你Why。但大多数的程序并不知道什么是好的注释,那些注释其实和code是重复的,毫无心义。框架
4)XML is highly overratedspa
XML可能被高估了。XML对于Web上的应用是不错的,可是咱们把其用到了各类地方,好像没有XML,咱们都不会编程了。设计
5)Not all programmers are created equalcode
这是那些junior经理或是流程爱犯的错,他们老是认为,DeveloperA == DeveloperB,只要他们的title同样,他们觉得他们的能力、工做速度、解决问题的方法,掌握的技能等等都是同样的。呵呵。更扯的是,在某些时候,就算是最差的程序员,他们也会认为其比别人强十倍,这就是现代的SB管理。orm
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会为程序员的为本身代码作辩解的一种托辞。