-
The only “best practice” you should be using all the time is “Use Your Brain”.
什么是真正的最佳实践?盲目的模仿不会让你更接近真相,刻意练习,并充分思考那些方法、模式、框架出现的原因、背后的想法和思想,才是唯一的答案。开发者最重要的工具是大脑,我们要有效的使用它。
-
Programmers who don’t code in their spare time for fun will never become as good as those that do.
你的业余时间都在做什么?你是否享受编程的乐趣?作为一名开发者,如果你从来没有在业余时间做过与编程相关的事情,如果编程只是为了完成工作,那么你根本不喜欢编程,毫无疑问,你永远都无法成为一名好的程序员。八小时之内的工作,决定着我们的社会角色、职业地位,八小时之外的生活,决定了我们将成为什么样的人,能力在一个人的职业发展初期确实很重要,但能够让我们能力持续增长的,是我们对一件事的热情。
-
Most comments in code are in fact a pernicious form of code duplication.
你的注释应该告诉别人,你为什么这么做,而不是你做了什么。你做的事情,代码上已经可以充分体现了,重复注释不会节省时间,只会引起误解(当项目迭代,维护者只改了代码,没有更改注释)。
-
XML is highly overrated
XML 只有一种适用场景,那就是 Web 应用。
-
Not all programmers are created equal
每个开发者都是“独特”的,这世上没有两片相同的叶子,同样的,即使两位开发者 title 相同,工作经验类似,薪资待遇相同,他们的能力、工作速度、解决问题的偏好、掌握的技能往往也大相径庭。这里需要提醒你的是,别相信那些“初级”开发者的话,因为他们往往意识不到自己和真正的高手之间的差距。
-
”Googling it” is okay!
搜索引擎只是一个工具,如果你善于使用工具,很好,但你不能依赖工具,因为最终解决问题,还要靠你自己。并非每个问题都能在搜索引擎上找到答案(百度不是搜索引擎,我更愿意称之为广告的集散地),尤其是那些复杂且重要的问题,此时,你的大脑可能更好使。
-
If you only know one language, no matter how well you know it, you’re not a great programmer.
如果你曾经深度学习过不同编程语言,你就会发现,不同编程语言之间,有着截然不同的编程思路和方法,每一种思想都能让你受益匪浅。如果你只懂一种语言,准确来说,如果你只懂一类语言,如:Java 和 C#,PHP 和 Perl,那么,你的思想也将是局限的。学习不同语言,了解不同语言的设计理念和思想,权衡利害,能够帮助你更好的做判断。
-
Your job is to put yourself out of work.
工作不是生活的全部,也不是晋升的有效途径,尤其对开发者而言。能够让你脱颖而出的,往往是工作之外的其他内容(持续学习很重要)。之所以这么说,是因为工作中的内容,往往是场景简单且受限的,尤其对于那些有技术积累和文化沉淀的公司而言,你大概率是很难创新的,“十年工作经验”和“十年重复一年的工作”是大有不同的。
-
Design patterns are hurting good design more than they’re helping it.
如果你不了解不同设计模式的思想和理念,过度依赖设计模式,只会让你写出垃圾代码,知其然而不知其所以然只会让你走更多的弯路。设计模式是恶魔,它伪装成天使,将你带入深渊,唯一破局的方法是你自己寻找出路,只是偶尔路过“设计模式”为你铺好的路。
-
Unit Testing won’t help you write good code.
编程的过程就是一个权衡的过程。单元测试的初衷是为了防止你不会因为一个改动而引入漏洞,这很好。有时,你心里想着如何写出更方便测试的代码,却发现这样的代码并不优雅,这时候,你就要在心里作出取舍,有时,你选择了单元测试,有时,你选择代码可读性,总之,好的代码从来都不是一味的“钻牛角尖”。
话题来自 Stack Overflow,参考 酷壳。