43

JavaScript 个性特点:编程语言界的平头哥

 4 years ago
source link: https://www.tuicool.com/articles/Ize2ym3
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

JavaScript 这家伙已经疯球了,什么都不在乎的。无论你把什么玩意儿丢给他,他都能给你摆平。根本不要在这位老哥面前提什么编译错误。就是一坨??? 老哥都能给你运行。什么,你在担心他会给出一个错误的结果?都给你结果了还要啥自行车?如果你担心结果会是错的,那自己用 jest 或 mocha 弄一个测试就结了。

JavaScript 测试框架也是啥都不在乎。你用他测试啥都行。不要给我说什么依赖注入、接口过度泛化、反射机制!老哥跑测试就是一把梭!存根(stub),监视(spy),模拟(mock),抄起 sinon 就是干!端到端测试用 webdriverio,API 测试用 lodash-match-pattern,稳如狗!

你说 JavaScript 邋邋遢遢、不够帅气?人家根本就不在乎好吧。你要是嫌弃,就用 eslint、standardize it、prettier 这些工具来给老哥打扮打扮吧。

平头哥 JavaScript 浑身是胆,根本不在乎你怎么看。在老哥这里不要提什么私有(private)变量、保护(protected)变量。你尽管检查对象、更改函数,管你啥时候。平头哥一身正气,从不藏着掖着。你问他为啥会这样?艺高人胆大啊!

JavaScript 老哥从不磨叽。等什么等啊,一看就不是平头哥的作风。JavaScript 从来不等那些数据库存取、API 调用什么的。错过了 await 关键字、没完成 Promise 对象,没关系!还是该吃吃该睡睡!

想来点静态类?老哥请 TypeScript 或 Flow 兄弟们来帮忙就成。不过你可能会觉得这有点像给平头哥戴个游泳圈。是有点违和,最后任何类型的声明都能把他轻松击败。(不过,现在还有人在乎“类型安全”什么的吗?)

Un6jaaf.jpg!web

平头哥喜欢用工具,JavaScript 也是。

last count( http://www.modulecounts.com/ )统计出,NPM 包的项目里有超过 800,000 个模块——大约是 Maven(Java)的三倍了。所以就算这里面的大部分模块和泥蛋一样又脏又丑又怎样,每个月有 180 亿的下载量呢,不服都不行。

平头哥啥都能吃:毒蛇、猛禽蛋、蝎子,来者不拒,最爱的是蜜蜂幼虫。是什么东西不重要,在平头哥眼里都是“吃的”。JavaScript 也能消化一切东西,管你喂给他什么,对他来说全是“对象”。更绝的是,解构和展开语法让 JavaScript 能把对象嚼得碎碎的,吃得更美味、更有营养。

JavaScript 才不在乎怎么和别的语言接口:protobuf 啦,swagger 定义啦,RESTish 啦,graphQL 啦,都招呼上来。老哥就是干这活的,大杂烩 API 把所有接口方式照单全收,交给他处理就行。

平头哥 JavaScript 家的小弟们

Lodash 也是个狠角儿。你要是觉得 JavaScript 中还需要用 for 循环 while 循环什么的,Lodash 就笑笑不说话。如果你在 JavaScript 里还用原始的 foreach、map、filter 等语句,Lodash 表示不想理你。如果你在做字符串处理、类型检查或给对象集变形时还在自己手动写代码,Lodash 只能对你说:对不起我们不认识。

在操控日期方面,momentjs 有自己的想法。他不会在意什么时区、时间存档,甚至连你在哪儿他都不在乎。无论你输入的日期格式有多蠢,他都能抽丝剥茧找到其本质所在,然后输出你所在时区的正确时间格式。

让我们来看看还有哪个老实人需要 ORM(对象关系映射),我们来嘲笑他。反正 JavaScript 不需要。关系型数据表本质不是 OOP 对象,它还想骗你多动脑筋。有了 knexjs,JavaScript 可以避免数据库 / 对象不匹配问题、有漏洞的 ORM 抽象问题,而且一般都能跳过冗余的 OOP 模型定义,因为有 SQL 数据模型就够了。

你是谁,你来自哪里,你现在要做什么?passport 模型能帮你回答这一深奥的哲学问题。

忘了你那神圣的前端 MVC 模式吧!React 以及他的朋友 redux,vue 等等已经彻底毁灭了这一误用的、过度泛化的教条。

还有一些工具如 bluebird、axios、babel 等等,这些兄弟们一起协助 JavaScript,让平头哥更加无所畏惧。

Z3YnInF.jpg!web

被用了那么多年,也被骂了那么多年,JavaScript 脸皮已经相当厚了。各种编程实践都离不开他,世界各地的开发者们也都在吐槽他。但无论如何,老哥在 GitHub 上每年有 230 万下载量,我管你怎么想叻~

iYV7VfA.gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK