一些不错编程观点
date
Apr 1, 2023
slug
whats-your-most-controversial-programming-opinion
status
Published
tags
Collection
summary
有经验的开发者是如何理解编程的?
type
Post
Created Time
Oct 28, 2023 01:45 PM
Updated Time
Oct 28, 2023 01:45 PM
AI summary
Status
- 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.
你的注释应该告诉别人,你为什么这么做,而不是你做了什么。你做的事情,代码上已经可以充分体现了,重复注释不会节省时间,只会引起误解(当项目迭代,维护者只改了代码,没有更改注释)。
- 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.
编程的过程就是一个权衡的过程。单元测试的初衷是为了防止你不会因为一个改动而引入漏洞,这很好。有时,你心里想着如何写出更方便测试的代码,却发现这样的代码并不优雅,这时候,你就要在心里作出取舍,有时,你选择了单元测试,有时,你选择代码可读性,总之,好的代码从来都不是一味的“钻牛角尖”。
- Performance does matter.
性能确实很重要。程序的性能直接影响用户的使用体验,而且随着数据量的增加或者用户的增多,性能问题可能会愈发严重。因此,开发者需要在考虑代码的可读性和可维护性的同时,也要注意性能问题。不过,也要注意在性能和代码的其他方面之间找到平衡,不要牺牲代码的可读性和可维护性来换取性能的提升。
- If you're a developer, you should be able to write code.
在白板练习编码,在工作中通常不会发生,除非你的老板要求你断电还要手写代码,但实践时你就会发现,它对于你梳理思路、更深入的理解代码,更加细致的了解程序本身大有裨益。我曾经肤浅的认为,这只是面试者用于刁难面试者,或者那些名校毕业生的圈内游戏,但当自己真正去实践,就会发现白板练习的优点。它不仅能够磨练你的编码技巧,还能够有效的提高效率。
话题来自 Stack Overflow,参考 酷壳。