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


  • 相关阅读:
    JavaWeb 之 XML 约束
    JavaWeb 之 XML 基础
    Java 之 方法引用
    Java 之 Stream 流
    Java 之 常用函数式接口
    Java 之 函数式编程
    Java 之 函数式接口
    Java 之 JDBCTemplate
    Java 之 数据库连接池
    Java 之 JDBC
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12351755.html
Copyright © 2011-2022 走看看