优秀开发人员的哲学
我们已经很久没聊过哲学话题了。所以想为大家写一篇新文章,这次回归本质。最近我一直在思考一些事情。
谁才是真正的优秀开发人员?
当然,我们今天要探讨的答案并非完全是技术层面的,而是远不止于此。即使你的技术非常强,你也可能是一个糟糕的开发者。我以一位资深产品经理、程序员和技术人员的身份分享我的想法。对你们中的一些人来说,其中一些观点可能感觉很熟悉,甚至显而易见,但它们出现在这里是有原因的。我相信你们中的大多数人都会从中找到一些值得学习和改进的地方,所以请坚持到最后,因为规则6是所有规则中最重要的。
让我们探索一下成为一名优秀开发人员需要什么。😇😇
规则 1:不要成为孤狼🐺
当你开发商业应用程序或项目时,首先需要明白的是,你的代码不仅仅是你的代码;它会被很多人阅读和审阅。即使现在你是唯一一个在做这个项目的人,将来也需要其他人阅读和理解它。你的代码应该易于阅读,不仅对你来说如此,对任何可能加入这个项目的人来说也同样如此。
因此请确保您:
1. 不要使用愚蠢的变量名
哦,是的,我知道我们大多数人都经历过这种情况。对某些人来说,这甚至可能看起来像是无伤大雅的玩笑,但事实并非如此。不要使用随机变量名;新手就是这样做的。你的变量名应该始终清楚地表明它的用途。你需要明白,代码不仅会被计算机解释,也会被人类解释。
let vx34 = "Something" // ❌
let x = "Something" // ❌
let boxycat = "Something" // ❌
let catCount = 34 // ✅
let user_message = "Something" // ✅
2. 始终使用注释
定义函数时,除了赋予其合适的名称外,请务必使用注释。当然,您不必在所有地方都这样做,但通常情况下,使用代码注释有助于进一步阐明您的意图。经验法则是,如果注释可以节省其他开发人员理解代码的时间,则应添加注释。如果其他开发人员不得不在代码中来回查找才能理解单个函数及其实际功能,那么这样的代码就是糟糕的。请有远见,在需要的地方添加适当的注释。
使用像 JSdoc 这样的文档生成器也能提高效率。它不仅能让你的注释看起来更美观,还能支持一些很酷的 IDE 功能,比如函数定义预览。
/**
* Represents a book.
* @constructor
* @param {string} title - The title of the book.
* @param {string} author - The author of the book.
*/
function Book(title, author) {
}
要了解有关 JSdoc 的更多信息,请查看这篇文章。
3. 制作项目 wiki
这条规则通常被人们忽略,但却是一条至关重要的规则。编程并非一个线性过程。在尝试完成某项工作时,你可能会遇到各种各样的问题。无论它是什么,都写下来。比如说,即使只是你在 Linux 机器上安装 MongoDB 时遇到的问题,也要写下每一条信息,以便你的队友在将来遇到类似问题时能够轻松解决。一份文档齐全的代码总是会有一个完善的 wiki。如何运行开发环境、如何使用设计系统、如何在本地导出环境变量,无论它是什么,都请写一个 wiki!相信我,这将为你(以及你的团队)节省大量时间。以下是我找到的一些有用链接:
哦,当我们讨论文档主题时,这里有一个简洁的小工具,您可以用它轻松阅读节点模块的文档。
文章已不再可用
4. 正确格式化代码
最后,同样重要的是,要正确缩进代码。我建议使用 Prettier 之类的工具来简化这项工作。你也可以启用“保存时格式化”功能;我很喜欢这个功能。这里有完整的操作指南。
// Bad 🙅🏻♂️ ❌
function Book(title, author) {
if(data){
let data = false
}
}
// Good 🤩 ✅
function Book(title, author) {
if(data){
let data = false
}
}
所以,请记住,项目开展需要团队合作。运用以上技巧,可以节省每个人的时间。正如奈德·史塔克所说:
“孤狼死亡,但狼群生存。”🐺☠
规则 2:你不可能记住所有的事情🤔
想象一下,在一个普通的日子里,你正在处理某件事,突然发现另一个东西坏了。你知道如何修复它,但一时实在没空。于是你决定先记下来,以后再处理。但你总是没能做到。
听起来很熟悉?嗯,这就是人脑的运作方式。🧠 就拿你的大脑来说吧,它就像内存一样。它会在处理过程中记住某些事情,然后在之后将其删除,这正是我们需要记录下来的原因。电脑会将数据保存到硬盘中,同样,如果我们想以后回忆起重要的事情,也应该把它们写下来。这听起来像是一件很基本的事情,但我们很多人都很难做到。
把这些事情写下来对于构建优秀的软件也非常有帮助,因为它能让你专注于手头的任务,同时在需要的时候还能让你有一个全局的视角。稍后在要点 #6 中会详细介绍这一点!
使用TODO:
评论非常有效。这不仅能帮你记住稍后要完成的某些任务,还能鼓励你的队友在你因为某些原因无法完成这些任务时代替你完成。
但如果你想提高你的游戏水平,我建议使用像 Todo Plus 这样的工具
有了它,你可以创建一个待办事项文件,或者TODO:
在一个文件中追踪所有评论。强烈推荐。
所以,不要只把事情记在心里。把它们写下来!
规则 3:站在用户的角度
作为开发者,严格来说,你们是应用的首批用户。你们的工作不仅限于编写逻辑或完成功能,还需要确保所构建的功能切实可用。要时刻扪心自问:如果我是这款应用的目标用户,我能用它吗?答案永远是肯定的。首先,测试所有功能以符合你的标准。作为一名计算机工程师,这些标准——以及你对每个功能的期望——都应该很高。不要等到 QA 团队给你一份 bug 清单,千万不要!如果你无法理解用户的观点,那就和你的项目经理坐下来好好沟通,了解情况。如果你无法完全理解也没关系,但你必须努力尝试。
这对于全栈开发者来说尤其重要。如果你不只是名义上的全栈开发者,而是想成为真正的全栈开发者🏆,你必须学习很多东西,包括UIX设计。我在关于如何提升CSS的文章中详细讨论了这一点,CSS对于任何全栈开发者来说都是一个强大的工具。
文章已不再可用
规则 4:没有捷径……
……除了应用程序快捷方式。😜
很多开发者的最佳实践都基于这条规则。我相信你一定遇到过这种情况:你需要多次重复做相同或类似的事,结果却发现自己一遍又一遍地复制粘贴相同的代码。在你内心深处,你知道冗余代码不好,按照关注点分离规则,你应该把它写成一个函数。但你懒惰的大脑告诉你,这可能需要很长时间,所以你决定跳过它。毕竟,你省下的时间可以用来开发新功能,对吧?错!这样做会降低应用程序的性能,最终当你再次删除冗余代码时,只会浪费更多时间。相信我,这真的太让人抓狂了!
你每天都会遇到很多类似的情况,你有两个选择:简单的和正确的。所以,勇敢地迈出这一步,去做吧。没有捷径。🙅🏼♂️🚫
规则 5:不要互相指责
作为一名项目经理,我无数次遇到过这样的问题:每当出现问题,开发人员总是会迅速互相指责。这只会破坏团队合作。我们需要明白,这是一个团队合作的游戏。如果你已经知道某个问题的存在,却没有采取任何措施去修复它,甚至没有公开它,你也要承担同样的责任。务必对项目负全部责任,不要互相指责。
优秀的团队会在潜意识层面做到这一点,而且我见过它效果显著。优秀的管理者会帮助培养这种做法,而糟糕的管理者则会适得其反(不过这个话题留到下次再讨论)。
规则 6:放眼大局
归根结底,这是让你与众不同的最重要的心态。当然,你和其他人一样,都在做着自己的工作,月底,你会得到你辛勤劳动的报酬。这很好,你可以就此打住,但我敢说你还有更广阔的视野。无论你是否考虑过,你的名字都与你正在工作的公司或产品息息相关。我的朋友,你不仅仅是在编写代码,你还在留下一份宝贵的遗产。
你需要为自己创造机会,退一步审视全局。拥有全局视野至关重要,这样才能与使命保持一致,并重新评估任务/优先级,看看它们如何帮助你实现最终目标——也就是构建优秀的软件,帮助用户获得卓越体验。
说到底,如果你的作品很垃圾,那是你的错。反过来说,如果你的作品完美无瑕,那也是你的错。尽你所能,你的作品会为你说话。
结论
成为一名优秀的开发人员不仅仅需要技术技能。如果你只着眼于提升技术技能,那么门槛就太低了。你需要记住:
- 在从事商业项目时,您不应该像孤狼一样行动;编写易于理解的代码并记录一切!
- 您不可能记住所有的事情,所以请把事情写下来;使用待办事项注释来回顾您之前跳过的事情。
- 您必须站在用户的角度,构建他们可以使用的功能;在任何内容进入 QA 之前,请根据自己的标准判断您所构建的内容。
- 捷径只会给你带来麻烦;当你做某事时,一定要把它做好。
- 当事情出错时责怪他人不会给你带来任何结果;要对自己正在做的事情负起全部责任,并培养团队合作精神。
- 软件不仅仅是功能的集合,所以一定要时不时地退一步,放眼全局。你所构建的,就是你的遗产。
所以,拓展你的思维,成为最好的开发者吧!我已经写了很多关于如何提升专注力、增强脑力,从而创作出最佳作品的文章。🧠 请参阅下面的文章,了解更多信息。
文章已不再可用
你会给别人什么建议来帮助他们成为一名优秀的开发者?我很想听听,所以请在评论区写下来吧! 👇🏼💬
PS 您是开源爱好者吗?
热爱开源软件的理由有很多。它本质上是协作的,每个参与者都出于对它的热爱而构建一些东西。自从我创立 XenoX 团队以来,我通过开源认识了很多优秀的开发者。🔥 如果你也是一位开源爱好者,并且希望在协作环境中构建酷炫的产品并结识优秀的人才,欢迎你加入XenoX Multiverse。看看我们今年的一些成果吧。
哦,如果你正在找工作,Skynox Tech 正在招聘!快来这里申请吧。😀💯祝
你拥有美好的一天,我们很快再见!