zoukankan      html  css  js  c++  java
  • 如何管理你的 Javascript 代码

    今天不聊技术的问题,咱们来聊聊在前端开发中如何管理好自己的 Javascript 代码。首先,咱们先来说说一般都有哪些管理方式?我相信  seajs 、 requirejs  对于前端开发者而言都不陌生,不错它们都是前端代码模块化开发的利器,显然以模块化的方式去管理我们的 Javascript 代码,是很不错的选择。

    不过今天咱不谈模块化开发,因为上面的两个工具已经做得很好了,只要到他们的官方网站找到相应的文档资料,认真学习,不需太多时日你也能掌握模块化开发了。今天咱们要谈的是在不依赖模块管理工具的前提下,如何做好自己项目的代码管理。

    首先,笔者认为一个独立的 Web 项目,应该有一个顶级的命名空间,而针对这个项目开发的所有附属代码应该尽量都放到该命名空间下。如果项目特别大,咱可以根据业务模块再分二级命名空间,三级命名空间,等等。但是何谓大项目,这个就只能开发者自己去定义了。

    然后,仅仅有命名空间还不够,如果你所有的代码都码在一个 js 文件中,那将会是一个悲剧。为什么这么说呢?第一,如果我们有一个 Tip 组件,功能是给指定元素添加标签提示功能,当我们需要在多个页面中使用这个组件时,你就会发现,每个页面都会引用 N 多没用的代码。第二,所有的代码都写在一个文件中,那么你的这个 js 文件,必将是一个庞然大物,几千上万行,调试起来也是相当有难度的。所以,要管好你的 js 代码,请把独立的插件、组件、公共方法,保存到独立的 js 文件中,再用我们上面准备的顶级命名空间把它们聚集到一起来。

    再然后,一套合理的编码规范会让你的代码管理事半功倍。普通变量小驼峰,类名大驼峰,常量大写,私有变量加前置下划线,能很好的提高你代码的可读性和可维护性。运算符之间添加空格,代码使用 4(或 2)个空格合理缩进,可以让你的代码整齐有序,清晰易读。代码块严格使用大括号包裹(即便只有一行语句),三元运算符合理使用小括号,会让你的代码整齐,逻辑清晰。统一的组件开发模式,可以让你的代码专业而不失优雅。还有很多很多,就不再往下罗列了,这些规范在很多规范文档中已经写得非常清楚,这里给大家推荐一个个人感觉很不错的 js 规范,感兴趣的朋友还可以找谷姐、度娘勾兑勾兑,学习更多的 js 规范,让自己更专业。当然,所谓“尽信书,则不如无书”,所以,规范仅作参考,并不是严格限定,开发者可以在规范的基础上保留一点点自己的个性,但必须保证风格统一。

    最后,咱一起来看一个简单的代码示例,命名空间就以 SEEJS 为例了。

    第一步,咱们先把我们的命名空间给弄出来,顺便加一些基础信息:

    1 window.SEEJS = {
    2     copyright: "CopyRight © MrZheng",
    3     version: "1.0.0"
    4 };

    第二步,我们来定义一个组件结构:

     1 (function(window, undefined){
     2     SEEJS.plugins = SEEJS.plugins || {};
     3 
     4     function Tips(cfg) {...}
     5 
     6     Tips.prototype = {
     7         constructor: Tips,
     8         init: function() {...}
     9     };
    10 
    11     SEEJS.plugins.Tips = SEEJS.plugins.Tips || Tips;
    12 
    13 })(window);

    只为举例,咱就不再多写了。最后,咱给我们的项目提供一些工具方法:

    1 (function(window, undefined){
    2     var TOOLS = SEEJS.tools || {};
    3 
    4     TOOLS.trim = function(str) {...};
    5     TOOLS.hexToRgba = function(hex, alpha) {...};
    6 
    7     SEEJS.tools = TOOLS;
    8 
    9 })(window);

    现在我们在控制台输入 SEEJS,然后敲一下回车,就可以清晰的看到我们的代码结构了:

     1 SEEJS = {
     2     copyright: "CopyRight © MrZheng",
     3     plugins: {
     4         Tips: function(cfg) {}
     5     },
     6     tools: {
     7         trim: function(str) {},
     8         hexToRgba: function(hex, alpha) {}
     9     },
    10     version: "1.0.0"
    11 }

    好了,就到这里了,纯属个人拙见,欢迎交流!!!

    作者博客:百码山庄

  • 相关阅读:
    System path '/Users/hxy/Library/Caches/PyCharm2018.2' is invalid.
    HBase安装指南
    centos6.8下hadoop3.1.1完全分布式安装指南
    PHP服务化搭建之nginx动静分离实战
    Laravel6实现第三方 微信登录
    laravel开发大型电商网站之异常设计思路分析
    Laravel实现大型商城网站之用户注册短信发送项目实战功能开发
    Redis 实现美团的外卖派单系统“附近的人”筛选实战原理分析
    Navicat远程连接MySQL8,必知防坑策略
    laravel大量填充项目测试数据的正确方法
  • 原文地址:https://www.cnblogs.com/mawuhen/p/4336000.html
Copyright © 2011-2022 走看看