搜索
首页web前端js教程不同优秀程度JavaScript开发者的差别



  “优秀绝非偶然. 它总是由强烈的意图、真诚的付出以及聪明的行动带来的。优秀代表着明智的选择——选择,而不是机会,它会决定着你的命运。“ – 亚里士多德

  我们所有人都想成为自己所在领域的佼佼者,但是很少有人付出时间和努力去实现自己所想。成为优秀的人很难,任何职业都是这样。

  评估一个JavaScript开发者的优秀程度是非常难的事情。

是什么成就一个优秀的JavaScript开发者呢?

  我们可以通过很多标准来做出判断。

  代码质量、按时交付、及时解决ticket(注:ticket类似于github中issue的意思,参考这里)是几个可以参考的标准。当然也包括帮助团队其他成员解决ticket。

  我认为以上几点都没有提供准确的的量度。为了写出优美的代码而使整个项目延期了两个月,仅仅是由于你想要重构那些没有任何帮助的东西。我们都知道,关闭一个ticket并不意味着什么。

  有许多变化的因素需要考虑。假如我问10个不同的程序员——他们觉得是什么成就一个优秀的开发者,我相信我会得到10种不同的回答。

  我相信现在你也在思考着关于它的定义。

  我曾一度挣扎于思考这个定义,所以我决定尝试并弄清楚。

  专注于工作

  我想找出所有开发者都会做的一些事情,然后我就可以基于开发者是如何做的,来对开发者的表现做出分类。

  对于一个行业的优秀评估只基于一件事过于简单化,但,无论如何我都打算去试一下。

:)

  现在你可以持保留态度。

  我会试着证明我做了一个不错的选择。它会是所有开发者都会做的,同时又能够将优秀的人从平庸者中筛选出来的一件事。

所有的开发者都会偶尔写出垃圾代码。

  让我们正面这件事吧,你和我都会时不时写一些非常垃圾的,可耻的,以致我们永远都不希望被人看见的代码。

  我们都有偶尔写出垃圾代码的理由。我不打算去讨论哪些是正当的理由,因为我们每个人都有自己正当的理由。

  在展示一些编码的暴行之前,我们先回顾一下我们写垃圾代码的原因。然后我们就可以避免陷入代码气味,苦苦挣扎。

  写垃圾代码的常见原因

  1. 赶时间

  “时间不够”是目前写垃圾代码最多的一个原因。对客户的承诺、紧张的日程安排,以及正在等待的新的发布都可能是造成这个恶果的原因。

  2. 深陷痛苦之中

  现有代码库实在是太垃圾了,让你根本不想努力写出好的代码。你知道自己无论做什么都不可能挽救这份将在某一时刻崩溃的垃圾代码库。

  3. “我只需完成任务然后离开”

  作为开发者,我们有时候是在不同的项目组工作。假如写完最后几行代码你就要转到一个新的项目,这并不是什么影响别人的大事情。

  知道自己在这个项目上的时间即将结束,没有人会再review你的代码了。于是你就草草提交、推送,然后指望单元测试来确保没有任何问题。

 看看真相

  我们都会偶尔写出垃圾代码。这能说明我们都是糟糕的开发者吗?

  当然不能。正因为每个人都会偶尔写出糟糕的代码,所以这件事本身不能说明任何问题。

  然而,多年来,我渐渐发现一个关于开发者的令人惊讶的真相。

在写出垃圾代码后如何表现,就是对我们开发者资质的根本检验。

  有点不可思议,但确实是这样。意识到你正在写出垃圾代码,以及为了避免将来再次发生而采取的行动,都反映出你是如何写代码的,以及你一般都是如何对待写代码这件事的。

  垃圾代码与评估开发者的优秀程度有多大关系呢?

  有很大的关系。

  我们举Ron为例。Ron今天写了糟糕的代码,并为此不高兴。因为一个令人讨厌的五级深度的Backbone模型继承链,让Ron根本不能修改一行代码,除了打破一切。

  Ron写了一段超级垃圾的代码,绕过了这个问题。每个人都很高兴,因为Ron准时交付了代码。然而除了Ron自己。

  他告诉团队老大发生了什么。他们一起反复思考如何解决这个问题。他们明确了一点,打破继承链并划分为水平的组合模块是最佳的解决办法。

  Ron于是请求老大给他时间实施自己和老大刚刚讨论的重构方案。

  Roger今天也写了很糟糕的代码。他告诉自己的开发伙伴,自己用难以置信的hack手法绕过了一个奇怪的五级深度的Backbone模型继承链。他准备绕过整个整个架构,就这样准时交付。

  Roger自己感到非常满意,觉得没有进一步改善的必要。

 四类JavaScript开发者

  你可以通过程序员对待写出垃圾代码的态度,将他们分为四类,从差劲到优秀。

  告诉我你没有同时遇到所有的这四类开发者。

  Barney - 差劲的JavaScript开发者

  Barney并不关心自己正在写垃圾代码。他关心的仅仅是能否按时完成工作,其他任何事都无关紧要。代码能正常运行,就没有问题。

  Barney写出的垃圾代码,有时也会阻碍整个项目的进展。代码工作时,也会一直带来很多问题,让整个项目进度倒退。Barney却认为自己并不需要学习什么新的东西。

  他已经知道了完成工作所需要的关于JavaScript的所有东西。

  Bill - 普通的JavaScript开发者

  Bill并没有意识到自己正在写垃圾代码。他遵循着团队的约定和lint规则,认为自己所做的没什么问题。但他并没有花费时间去理解整个项目结构,以及不同组件之间是如何交互的。

  最后的结果就是,很不幸,一片混乱。

  Bill在做出重大的设计选择之前,没有咨询任何人。他自己怎么想的就怎么做。他读过三篇发表于一年前的博文,它们一直在指导着他的决定。

  我经常说走进Bill的代码中,感觉就像地雷战,移动错了一步,所有的东西都会炸到你脸上。

  Roger - 好的JavaScript开发者

  我们前面就提过Roger这种类型。完全意识到自己在写垃圾代码。他知道如果他想好好写的话,代码会是什么样子。他拍拍自己的背,然后继续写出这段垃圾代码。

  Roger的主要问题在于没有尝试做一些改变。他做了自己被要求去做的,而且完成的很好。但是他宁愿让事情该怎样就怎样,而不是花点时间,做一些努力让其有所改变。

  Ron - 优秀的JavaScript开发者

  Ron是一个优秀的程序员,但偶尔他依旧不得不写一些垃圾代码。

  让Ron与别人不同的,就是在写那些垃圾代码的时候,他会认真地思考如何让这种情况不会再次发生,既不为自己,也不为任何其他人。Ron会弄清楚需要那种类型的重构,哪一块的技术方案可以改变或提升。

  然后,基于这些发现,Ron会行动起来,去推动这些改变。

 冷酷的现实

  我必须得忏悔一下。 我就是这里的Roger。 但我也是Ron。 我也相信我曾不止一次的偶然当过Bill而自己不知道。我认为自己没有像Barney那样过,但是,到底有没有,谁知道呢!我们都在走向持久优秀之路上来来回回。有时候我们是普通的,有时候我们是好的又或是优秀的。总是在尝试着不要变成差劲的。

  我们最终持续时间最长的那个角色会决定我们是什么样的开发者。

  说实话,从普通开发者到好的开发者,相较于其他事情,需要的是积累更多的知识和经验。但是想要从好的跃升到优秀,你只需要改变一样——态度。

“记住,在成为伟大之前,你必须是良好。在你成为良好之前,你必须是差劲。但是,在成为差劲之前,你必须去尝试。——阿特 威廉姆斯

 以上就是不同优秀程度JavaScript开发者的差别的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript是用C编写的吗?检查证据JavaScript是用C编写的吗?检查证据Apr 25, 2025 am 12:15 AM

是的,JavaScript的引擎核心是用C语言编写的。1)C语言提供了高效性能和底层控制,适合JavaScript引擎的开发。2)以V8引擎为例,其核心用C 编写,结合了C的效率和面向对象特性。3)JavaScript引擎的工作原理包括解析、编译和执行,C语言在这些过程中发挥关键作用。

JavaScript的角色:使网络交互和动态JavaScript的角色:使网络交互和动态Apr 24, 2025 am 12:12 AM

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C和JavaScript:连接解释C和JavaScript:连接解释Apr 23, 2025 am 12:07 AM

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

从网站到应用程序:JavaScript的不同应用从网站到应用程序:JavaScript的不同应用Apr 22, 2025 am 12:02 AM

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python vs. JavaScript:比较用例和应用程序Python vs. JavaScript:比较用例和应用程序Apr 21, 2025 am 12:01 AM

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C/C在JavaScript口译员和编译器中的作用C/C在JavaScript口译员和编译器中的作用Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在行动中:现实世界中的示例和项目JavaScript在行动中:现实世界中的示例和项目Apr 19, 2025 am 12:13 AM

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript和Web:核心功能和用例JavaScript和Web:核心功能和用例Apr 18, 2025 am 12:19 AM

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中