JavaWeb项目前端规范(采用命名空间使js深度解耦合)
没有规矩不成方圆,一个优秀的代码架构不仅易于开发和维护,而且是一门管理与执行的艺术。
这几年来经历了很多项目,对代码之间的强耦合及书写不规范,维护性差等问题深恶痛绝。在这里,通过仔细分析后,结合自己的编码习惯总结了一套适用于javaweb项目的前端书写规范,与大家分享一下。
ps:感谢阿海的创意,后期整理如下(附文件下载):
一、项目结构
这里和其他项目区别不大,我将模板抽离出来,更容易分析和理解:
解释一下:js主要包括extends(引入第三方的js)、module(项目模块自己的js)、lib(引用包,这里也可以继续拆分),module中包含具体的模块中的js。common.js是核心命名空间的js.
二、common.js
解释一下,Globals作为全局命名空间,各个模块均可以在此命名空间里定义域(如果有不明白的可以自学下命名空间,这个文件写死就行,也不用具体理解)。
三、task.js
这个文件是模块中我的项目中任务模块的js(例子),模块级别的js一般是将页面中相对独立重要的方法抽离出来的方法,不建议所有页面js都拿进来。
解释一下:模块级别的js 主要包括自己的私有属性和方法,及对外暴露的js属性和方法。这里我们默认凡是内部私有的前面都加“_”,最后决定哪些方法和属性暴露出来,是通过构造方法constructor来对外暴露。
四、页面index.jsp
现在看一下jsp中如何对页面js和模块js是怎么引用的吧,见证解耦和的时候到了。
解释一下:页面需要将common.js与task.js引入,然后初始化,这样就可以访问task模块中对外暴露的方法和属性了。
页面js建议所有的变量发在一个变量组中,这样便于维护。
页面中控件的onclick等方法建议在js中统一绑定。
总结:通过上面的配置,最大的好处是对于项目中频繁引入js文件,消除了之间的耦合性,而且对于不同模块间的同名方法和属性也不会互相影响,当然最主要的便于持续的开发和维护,同时也是艺术上的享受。
本文采用了我习惯的注释风格,当然可以因人而异,我的原则是:
1.模块介绍代码主要关注:模块描述,负责人,相关备注,采用双星注释
/**
*
*/
2.对于模块下,大区域的划分,习惯采用双横线注释:
//==================================================
//描述:
3.对于区域中,方法注释,通过以往的经验,不是每个人都愿意详细去写的,所以我认为简单明了最好,采用普通注释:
//代码描述
//作者备注等信息(不限)
4.对于区域中一些重要的方法,或者想区分一下,划定小区间的,采用星横线
/****************************描述*****************************/
原链接:http://blog.csdn.net/hongshan50/article/details/21538639
转载于:https://www.cnblogs.com/panie2015/p/5590562.html
JavaWeb项目前端规范(采用命名空间使js深度解耦合)相关推荐
- spring jaxb_自定义Spring命名空间使JAXB变得更容易
spring jaxb 首先,让我大声说一下: Spring不再是XML繁重的了 . 实际上,如今,您可以使用大量注释, Java配置和Spring Boot来编写几乎没有XML或根本没有XML的Sp ...
- 自定义Spring命名空间使JAXB更容易
首先,让我大声说出来: Spring不再是XML繁重的了 . 事实上,如今,您可以使用大量注释, Java配置和Spring Boot来编写几乎没有XML或根本没有XML的Spring应用程序. 认真 ...
- 项目开发规范--前端
通用规范 基本原则: 编译器统一设置编码为UTF-8:换行符为LF. 源文件编码格式(包括注释)必须是 UTF-8 命名必须使用英文单词,不可出现拼音 命名缩写,行业约定俗称的缩写可以直接使用 命名缩 ...
- 基于 React 项目前端团队推行代码规范及代码质量,真香(姐妹篇)
前言 大家好,我是虚竹. 2022年是我们的一次重大技术栈转型(尝试.试错.挑战.精进),发动组员学习React新技术,前端小组采用主流的前端框架基于React.React Native系列生态支撑公 ...
- Java软件项目开发命名规范_命名规则
文章目录 一.项目命名/包命名/虚拟目录/资源路径 二.Java 代码命名 三.属性文件 properties 命名 四.xml文件命名 五.jsp文件命名 六.html文件命名 七.js文件命名 八 ...
- 前端规范 - 前端项目开发规范
0 前言 好好做业务,提高自己的工程能力 [强制] 1 开启eslint 根据团队的习惯,制定适合自己的rules 比如 no-console no-debugger可以关闭 [强制] 2 新项目使用 ...
- web前端开发文件命名基本规范
根据:https://www.cnblogs.com/ypppt/p/13066751.html 1.页面的文件.函数命名规范 统一用翻译的英文命名(推荐),统一用拼音命名(拼音的简化也可) 统一使用 ...
- 前端git操作命名规范和协作开发流程
前言 一个项目的分支,一般包括主干 master 和 开发分支 dev,以及若干临时分支 分支命名规范 分支: 命名: 说明:主分支 master 主分支,所有提供给用户使用的正式版本,都在这个主分支 ...
- Web前端开发规范 : 文件命名规则
转自 : https://blog.csdn.net/qq_26129689/article/details/52652000?ref=myread 1.文件命名规则 1.1文件名称的命名规则 统一用 ...
最新文章
- 跟阿里云技术专家阙寒一起深度了解视频直播CDN技术
- python是脚本语言不需要编译器编译执行_都有Python了,还要什么编译器!
- 百度:请叫我卡车新势力
- Linux要学git吗,git学习一 基于linux ubuntu git安装与配置
- 我的《机器学习》课程的课件合集下载
- Android反翻译详解
- lstm网络_LSTM(长短期记忆网络)
- cogs 167. [USACO Mar07] 月度花费
- JAVA→JDBCJava DataBase Connectivity、存储过程Stored Procedure、事务Transaction、连接池DBCP C3P0、JDBC升级替代框架
- Mysql索引失效的几种情况总结
- java实现蒲丰投针求,用程序模拟蒲丰投针试验
- C语言基础练习-输入球体半径,计算球体表面积和体积
- 信道检测手机软件 ios_【安卓+iOS】卧龙影视,老牌观影神器上架苹果TF版,支持双端,限时下载!...
- 网络安全学习路线-超详细
- (攻防世界)(pwn)forgot
- layui表单离焦验证
- php word 邮件合并发送邮件,在word2010中的邮件合并,除需要主文档,还需要什么...
- qt自定义类访问ui控件
- 双电阻差分电流采样_合金采样电阻的特点及作用
- 【问题解决】ESP32开发板上的CP210xUSB转串口坏了怎么办
热门文章
- php中的thumb函数,phpcms v9 thumb(缩略图) 函数说明
- vue 固定div 滚动_vue.js-div滚动条隐藏但有滚动效果的实现方法
- android项目编码规范,Android 项目规范
- java mysql 语句解析器_几种基于Java的SQL解析工具的比较与调用
- 设置和清除LD_LIBRARY_PATH
- 操作系统上机作业--实现mysys(多进程)
- .php y=mp4,PHP输出MP4视频流函数
- Opencv实现利用滑动条来调整阈值
- AMUL的完整形式是什么?
- c++ cdi+示例_C ++'not'关键字和示例