:本文翻译自国外著名杂志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. 质疑的精神
从各种社区论坛不断学习,但是也要思考并质疑你接触到的东西,每条评论,每篇技术文章,甚至是本文。保持开放的心态,学着去接受新的方法。但绝不要为了跟风而去跟风。

用旧一点的、但更加成熟的框架通常更加稳定。遇到问题也更容易得到解决。新的趋势可能会提升一点你的程序性能,但决不能以牺牲稳定性为代价。

关于JavaScript,这10条血与泪的建议大家一定要看相关推荐

  1. 写在大三末尾:10条不怎么重要的大学建议

    看到学校里很多学长学姐拉着箱子离开学校,看着自习室桌子上摞起来的书,意识到考完期末考试,我们就将迎来大学的第四个年头. 说实话,我觉得现在很多大学生(包括我)的眼界和格局都是有待提高的,我们总是为了一 ...

  2. 10 条提升 Android 性能的建议

    About the Speaker: Boris Farber 每个人都知道一个 App 的成功,更这个 App 的性能体验有着很密切的关系.但是如何让你的 App 拥有极致性能体验呢?在 Droid ...

  3. 查询前10条_阿里开发强制要求的10条ORM映射查询规范,开发人员值得看

    1. [强制]在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明. 说明: 1)增加查询分析器解析成本. 2)增减字段容易与resultMap配置不一致. 3)无用字段增加网络 ...

  4. 10条建议让你创建更好的jQuery插件(转载)

    为了避免重复造轮子,自己手动开发jquery 插件,让小组其他成员可以直接使用.学习开发中,看到Phillip Senn 写的 关于jquery 插件开发注意10点,转载之! ------------ ...

  5. 成为最差开发者的10条建议

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 这里有个[1024]红包等你来领取 昨天在devto上面 ...

  6. 跳槽和求职 ,10条掏心建议

    文/北妈 阅读本文需要 2.3分钟 一 19年工作日来了,一个不能明说,但逃不过去的话题却在悄悄萌芽,这个和个人无关,是职场的自然规律,谁都无法逃避. 北妈只针对2个问题,列出共10条最中肯和掏心的建 ...

  7. 腾讯云服务器备案全流程详细内容记录40天备案的血与泪

    本文原创首发CSDN,链接 腾讯云服务器备案全流程 40天备案的血与泪_郑为中-CSDN博客_腾讯云服务器备案 ,作者博客郑为中_CSDN博客 ,转载请带上本段内容,尤其是脚本之家.码神岛等平台,谢谢 ...

  8. 腾讯云服务器备案完整流程 40天备案的血与泪

    本文原创首发CSDN,链接 腾讯云服务器备案全流程 40天备案的血与泪_郑为中-CSDN博客_腾讯云服务器备案 ,作者博客郑为中_CSDN博客 ,转载请带上本段内容,尤其是脚本之家.码神岛等平台,谢谢 ...

  9. 入职一家初创公司第一周的血与泪

    入职一家初创公司第一周的血与泪 也可用于面试题: 你在工作中遇到过哪些难题?你都是怎么解决的? 问题:Springboot在Window与Linux中图片回显不出来 小程序后台管理系统,学员页面,学员 ...

最新文章

  1. 华硕笔记本电池0%充不进电_笔记本电脑电池充不进电如何解决【解决方法】
  2. iOS 地图定位 定位
  3. SpingMVC 执行的流程
  4. ad 4层板设计实例文件_独家数据 | 1619Fall美研传媒类专业1590+申请实例(含大众传播、新闻学、公共关系、新媒体、整合营销等)...
  5. u盘魔术师装linux,小白也能学会的U盘魔术师重装系统教程
  6. 个人网站如何使用微信扫一扫登录---SpringBoot项目
  7. 如何使用谷歌云盘下载Kaggle数据集+解压
  8. color 常用色值
  9. Qt网络文件加密处理断点续传多文件下载器bt开源种子下载器分析附下载
  10. 斯阔谷冬奥会首次使用计算机,中国与冬奥会首次接触在美国加州,举办地以印第安女人命名...
  11. Qt 开源项目收集大全
  12. 计算机网络实验--Cisco Packet Tracer 实验
  13. 基于JavaWeb的果蔬生鲜交易系统
  14. ip6plus电池测试软件,超雪维修教程(七):iphone6/6 plus更换电池详细图文步骤
  15. 1024程序员节:最能讨好程序员的12件礼物
  16. 8.3 时间戳(Time Stamp)选项
  17. react-redux——使用redux——使用react-redux这个扩展简化操作
  18. 金蝶K3物料后台启用/取消保质期/批次管理
  19. Flask-Login 让实现登录功能变简单
  20. 漫话科学哲学:什么是科学解释?

热门文章

  1. 动态加载和静态加载及其编译步骤
  2. HALCON示例程序particle.hdev测量小圆部分
  3. Lab01:Xv6 and Unix utilities
  4. 用户模式 内核模式 linux,linux – “内核模式”和“用户模式”硬件...
  5. 连续时间系统与离散时间系统的时域分析对比
  6. shell 判断字符串相等_编程小短文:Bash子字符串还在用==?试试=~性能瞬间飙升100倍...
  7. c ajax定时获取,ajax的定时调用每5秒调用一次
  8. python double free_python错误:double free或corruption(out):0x0000000001e4b030
  9. azkaban config: nodes:_关于Nordic SDK的sdk.config.h
  10. java还是c 2017_2017年9月编程语言排行榜:Java、C与C++三巨头还能统治排行榜多久?...