关于JavaScript,这10条血与泪的建议大家一定要看
(注:本文翻译自国外著名杂志Noteworthy,文章在Medium编程类目冲上了一周热榜的榜首,本文版权归原作者The Cat with a Dragon Tattoo所有)
使用JavaScript是一种冒险。前端项目,给我们程序员们很多自由选择,让我们更加灵活并且具有创造力。但与此同时,也需要更多的知识,良好的计划和责任感。在使用 jQuery, require.js, Angulars, React, ExtJs等等经历过各种项目之后,我遇到过许多难以想象的事情,经历了血与泪的教训。或许,在某些点上,大家都遇到过或将来都会遇上。
但总有一些方法,能够让最难以处理的项目也变得可控。以下10点都来自我的个人教训,希望能够给大家带来帮助。
1. 各个击破
大家可能都听过这个方法,但是似乎被很多人低估了。CommonJS, Webpack, and Node都使我们能够将代码分到多个文件中,当我们似乎从来不Care这一点?
连贯性:随着代码库的不断增大,把你的项目分开到多个single-export文件中,能够让搜索和从属管理变得异常简单。
2.简单化
给每个变量,每个函数,每个文件起一个易懂的名字,要像给你儿子起名字一样对待。因为你可能花0.3秒随便叫一个变量“X”,过段时间你需要花2天去搞清楚这到底是啥意思。三思而后干,别怕名字太长。
或许你的方法非常聪明而且复杂,你的同事们也都夸你牛;但未来你们可能要用很长时间来搞清楚这段代码的逻辑。专注于把事情简单化,能让你甚至不需要注释。
3. 不要用奇葩的数字或字符串
就像命名一样,无论这个值看起来多么无关紧要,都要起一个有意义的名字。因为在大多数情况下,任何写进代码里的确切值都会被用到。
4.不要嵌套的太复杂
如果你一行代码超过120个字符,或者所有代码超过500行,再或者你的If函数重叠了好几层,一定要想办法把他们分开。
你可以把过分嵌套的If函数拆分成独立的Functions, Promises, 或者Observables。如果你经常使用异步调用,async/await可以大大简化你的代码。
5. 配置问题
如果你的应用使用国际值,API端点或者第三方证书等,尽量把他们放进单独的配置文件。网上有大量的包可以帮助你同时在线上和本地管理配置文件。有时候你的应用可能会在本地和服务器同时部署。
6.合理使用框架
很多时候你看到别人用框架的原因,要么是因为那个框架很火,或者因为会用所以用。
多花点时间想象,你的项目是否需要框架,如果需要,需要什么样的框架?因为用户不会关心你的应用是不是用Github上有10000+星星的火爆框架做的。
7. 写测试代码
Unit测试,Smoke测试,Sanity检查等等,除非你的项目只是一个原型,很快就要重写,那么你真的需要写测试。随着你的代码量不断增加,维护起来会非常困难,这时候测试会帮你大忙。
或许有一天,你会遇上Bug,那时候你会看着蓝天白天,感谢自己之前写了测试。
8. 版本控制
无论是一个原型,大型企业应用,还是人畜无害的业余小项目,都记得用版本控制。
版本控制就像时光机一样,能让你穿越回过去,挽救崩溃的东西,看清是什么改变导致的问题。如果你从本文只学到一点点东西,希望这点东西是学会基础的版本控制,并且在每天代码中实践。
9.状态管理
找一个好点的状态管理的库,然后爱它就像爱生命一样。因为有时候真的能救你一命。
作为前端开发,通常面临两个最大的挑战:展示数据和存储数据。存储数据会随着时间推移越来越困难,这一点很容易被人忽视,直到你的项目变得几乎无法去维护了。
10. 质疑的精神
从各种社区论坛不断学习,但是也要思考并质疑你接触到的东西,每条评论,每篇技术文章,甚至是本文。保持开放的心态,学着去接受新的方法。但绝不要为了跟风而去跟风。
用旧一点的、但更加成熟的框架通常更加稳定。遇到问题也更容易得到解决。新的趋势可能会提升一点你的程序性能,但决不能以牺牲稳定性为代价。
最后,感谢大家抽时间来阅读本文。我也很愿意收到大家的意见和建议。还有一点想跟大家提醒一下,就是实验楼的楼+课程《大数据实战》还有10天左右就要开课啦!还没报名的同学抓紧哦。
这门课程由国内著名大数据工程师齐川老师亲自制作,将在6周内把你训练成大数据初级工程师!
至于为什么你需要学大数据,相信我都不必多说了吧?无论从薪资,发展前景等等方面,大数据都是当前和最火的方向;相信大家都被铺天盖地的媒体报道洗礼过了。如果真正想要自我充电,提高自己,可不要错过报名机会哦!报名方式:
为什么要选实验楼?
相信大家都会有各种疑问。先说说为什么要选择实验楼:
名师课程。齐川老师是国内名企大数据工程师,有多年的开发经验和深厚的理论基础。人很Nice,做的课程也对新手非常友好。
全新学习方法。不像传统学习方法,实验楼楼+课程强调“Learning by doing,在实战中精进”,通过在线环境,让大家以实际项目动手为主,大大提高了学习效率。
课程涵盖全面。课程涵盖了最常用、最优秀的Hadoop以及Spark组件。
上课方式灵活。通过在线实验,挑战,配套视频讲解,助教答疑和直播授课等多种方式结合。您可以自由选择学习时间。
性价比高。价格不到线下培训班的四分之一!就可以学到更扎实的内容。
其他各种福利。现在报名还有价值200元助学礼包。更有奖学金、准会员,毕业礼等多重礼物。通过这些礼物给大家动力,让大家更积极地投入到学习中去。
学习使我快乐,感觉美滋滋