zoukankan      html  css  js  c++  java
  • 关于JavaScript,这10条血与泪的建议大家一定要看

    640?wx_fmt=jpeg

    :本文翻译自国外著名杂志Noteworthy,文章在Medium编程类目冲上了一周热榜的榜首,本文版权归原作者The Cat with a Dragon Tattoo所有)


    使用JavaScript是一种冒险。前端项目,给我们程序员们很多自由选择,让我们更加灵活并且具有创造力。但与此同时,也需要更多的知识,良好的计划和责任感。在使用 jQuery, require.js, Angulars, React, ExtJs等等经历过各种项目之后,我遇到过许多难以想象的事情,经历了血与泪的教训。或许,在某些点上,大家都遇到过或将来都会遇上。

    但总有一些方法,能够让最难以处理的项目也变得可控。以下10点都来自我的个人教训,希望能够给大家带来帮助。

    1. 各个击破

    大家可能都听过这个方法,但是似乎被很多人低估了。CommonJS, Webpack, and Node都使我们能够将代码分到多个文件中,当我们似乎从来不Care这一点?

    640?wx_fmt=png

    连贯性:随着代码库的不断增大,把你的项目分开到多个single-export文件中,能够让搜索和从属管理变得异常简单。


    2.简单化
    给每个变量,每个函数,每个文件起一个易懂的名字,要像给你儿子起名字一样对待。因为你可能花0.3秒随便叫一个变量“X”,过段时间你需要花2天去搞清楚这到底是啥意思。三思而后干,别怕名字太长。


    640?wx_fmt=jpeg

    或许你的方法非常聪明而且复杂,你的同事们也都夸你牛;但未来你们可能要用很长时间来搞清楚这段代码的逻辑。专注于把事情简单化,能让你甚至不需要注释。


    3. 不要用奇葩的数字或字符串
    就像命名一样,无论这个值看起来多么无关紧要,都要起一个有意义的名字。因为在大多数情况下,任何写进代码里的确切值都会被用到。

    640?wx_fmt=jpeg



    4.不要嵌套的太复杂
    如果你一行代码超过120个字符,或者所有代码超过500行,再或者你的If函数重叠了好几层,一定要想办法把他们分开。

    640?wx_fmt=png

    你可以把过分嵌套的If函数拆分成独立的Functions, Promises, 或者Observables。如果你经常使用异步调用,async/await可以大大简化你的代码。



    5. 配置问题
    如果你的应用使用国际值,API端点或者第三方证书等,尽量把他们放进单独的配置文件。网上有大量的包可以帮助你同时在线上和本地管理配置文件。有时候你的应用可能会在本地和服务器同时部署。


    6.合理使用框架
    很多时候你看到别人用框架的原因,要么是因为那个框架很火,或者因为会用所以用。

    640?wx_fmt=jpeg

    多花点时间想象,你的项目是否需要框架,如果需要,需要什么样的框架?因为用户不会关心你的应用是不是用Github上有10000+星星的火爆框架做的。



    7. 写测试代码
    Unit测试,Smoke测试,Sanity检查等等,除非你的项目只是一个原型,很快就要重写,那么你真的需要写测试。随着你的代码量不断增加,维护起来会非常困难,这时候测试会帮你大忙。

    或许有一天,你会遇上Bug,那时候你会看着蓝天白天,感谢自己之前写了测试。


    8. 版本控制
    无论是一个原型,大型企业应用,还是人畜无害的业余小项目,都记得用版本控制。

    640?wx_fmt=jpeg

    版本控制就像时光机一样,能让你穿越回过去,挽救崩溃的东西,看清是什么改变导致的问题。如果你从本文只学到一点点东西,希望这点东西是学会基础的版本控制,并且在每天代码中实践。


    9.状态管理
    找一个好点的状态管理的库,然后爱它就像爱生命一样。因为有时候真的能救你一命。

    640?wx_fmt=png


    作为前端开发,通常面临两个最大的挑战:展示数据和存储数据。存储数据会随着时间推移越来越困难,这一点很容易被人忽视,直到你的项目变得几乎无法去维护了。

    10. 质疑的精神
    从各种社区论坛不断学习,但是也要思考并质疑你接触到的东西,每条评论,每篇技术文章,甚至是本文。保持开放的心态,学着去接受新的方法。但绝不要为了跟风而去跟风。

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

    640?wx_fmt=jpeg


  • 相关阅读:
    Largest Rectangle in Histogram
    Valid Sudoku
    Set Matrix Zeroes
    Unique Paths
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Path Sum II
    Path Sum
    Validate Binary Search Tree
    新手程序员 e
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12351756.html
Copyright © 2011-2022 走看看