开发规范
后端开发规范
代码规范
安全规范
常见 XSS 漏洞及解决方案
常用 XSS 测试 payload
常见越权漏洞及解决方案
常用越权测试方法
常见 CSRF 漏洞及解决方案
常见高危操作及对策
数据库设计和使用规范
MySQL 设计和使用规范
Redis 设计和使用规范
Django最佳实践
Python最佳实践
前端开发规范
HTML规范
CSS规范
JS规范
Vuejs 规范
PerformanceOpti
MobileSpec
安全检查
webpack
其他
测试规范
测试覆盖范围
测试隔离
-
+
首页
其他
## 代码提交规范 为保证代码质量,在提交代码前,必须对代码完成以下检查 ### 1. HTML 1. 不允许存在用于页面调试的文本 2. 不允许存在无用的注释代码段 ### 2. JavaScript 1. 不允许存在调试语句,如 debugger,console.log 等 2. 不允许存在无用的注释代码段 ### 3. 提交备注 每次代码提交必须有备注说明,注明本次提交做了哪些修改 #### 3.1 commit 分类 `bugfix` - 线上功能 bug `sprintfix` - 未上线代码修改 (功能模块未上线部分 bug) `minor` - 不重要的修改(换行,拼写错误等) `feature` - 新功能说明 ## 代码美化 如果快速地对项目的代码进行美化呢,推荐使用 gulp + jsbeautifier - 安装 Node 运行环境,查看是否成功 ```bash node -v ``` - 进入项目根目录,运行终端,初始化 package.json ```bash npm init ``` - 安装 gulp(如果有网络问题可以使用 tnpm) ```bash npm install --save-dev gulp ``` - 安装 jsbeautifier ```bash npm install --save-dev gulp-jsbeautifier ``` - 在根目录配置`gulpfile.js`,以下是参考配置 ```bash var gulp = require('gulp'); var prettify = require('gulp-jsbeautifier'); gulp.task('prettify', function() { /** * source 需要美化的代码目录 * dist 美化后保存的目录 */ var htmlPathConf = { source: ['./templates/home_app/*.html', './templates/home_app/*.part'], dist: './templates/home_app' }; var cssPathConf = { source: ['./static/css/*.css'], dist: './static/css' }; var jsPathConf = { source: ['./static/js/*.js'], dist: './static/js' }; // html 配置 gulp.src(htmlPathConf.source) .pipe(prettify({ 'indent_size': 4, 'indent_char': ' ', 'html': { 'file_types': ['.html', '.part'] } })) .pipe(gulp.dest(htmlPathConf.dist)); // css 配置 gulp.src(cssPathConf.source) .pipe(prettify({ 'indent_size': 4, 'indent_char': ' ' })) .pipe(gulp.dest(cssPathConf.dist)); // js 配置 gulp.src(jsPathConf.source) .pipe(prettify({ 'indent_size': 4, 'indent_char': ' ' })) .pipe(gulp.dest(jsPathConf.dist)); }); ``` - 在根目录运行命令 ```bash gulp prettify ``` ## 开源协议简介 > 常见的开源许可协议有:BSD、Apache Licence 2.0、MIT、GPL、LGPL。这些协议有什么区别呢? ### 1. BSD 开源协议 BSD 开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 “为所欲为”的前提当你发布使用了 BSD 协议的代码,需要满足三个条件: - 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的 BSD 协议; - 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的 BSD 协议; - 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广 BSD 协议鼓励代码共享,但需要尊重代码作者的著作权。BSD 由于允许使用者修改和重新发布代码,也允许使用或在 BSD 代码上开发商业软件发布和销售,因此是对商业集成很友好的协议,而很多的公司企业在选用开源产品的时候都首选 BSD 协议。 > **总结:使用时必须尊重作者的著作权,保持原代码的 BSD 协议,不以作者名字来市场推广,就可以自由使用,修改源代码,甚至作为专有软件商业使用。** ------ ### 2. Apache Licence 2.0 Apache Licence 是著名的非盈利开源组织 Apache 采用的协议。该协议和 BSD 类似,同样鼓励代码共享和尊重原作者的著作权,还有**专利许可**。 需要满足的条件也和 BSD 类似: - 需要给代码的用户一份 Apache Licence; - 如果你修改了代码,需要在被修改的文件中说明; - 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明; 除了这些条件它还有这些好处: - **永久权利** 一旦被授权,永久拥有; - **全球范围的权利** 在一个国家获得授权,适用于所有国家; - **授权不可撤消** 一旦获得授权,没有任何人可以取消; Apache Licence 也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。 > **总结:使用时必须尊重作者的著作权,保持原代码协议,就可以永久授权,自由使用,修改源代码,甚至作为专有软件商业使用。** ------ ### 3. MIT MIT 是和 BSD 一样,但是比 BSD 协议更加宽松,是目前最少限制的协议。作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。 > **总结:只要尊重作者的著作权,保持原代码协议,就可以自由使用,修改源代码,无任何其他限制。目前很多前端框架和插件以 MIT 协议开源,例如 jQuery、Node.js** ------ ### 4. GPL GPL 协议和 BSD, Apache Licence 等鼓励代码重用的许可很不一样。GPL 的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售 GPL 协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用 GPL 协议,既必须也是开源和免费。这就是所谓的”传染性”。 > **总结:使用前要慎重考虑,一旦使用,相应你的项目也需要以 GPL 协议开源。** ------ ### 5. LGPL 由于 GPL 太严格,限制了很多商用软件使用 GPL 组件才推出了这个 LGPL。LGPL 允许商业软件通过引用类库的方式使用 LGPL 组件(不直接使用源代码),这样可以不需要开源商业软件的代码。但是如果要修改原始组件的代码,则涉及修改部分的代码和基于原来代码衍生的代码都必须采用 LGPL 协议。LGPL 不适合以 LGPL 协议为基础的代码进行二次开发的商业软件,但是商用软件可以采用编译后的类库引用就不需要公开源代码了。 > **总结:使用前要慎重考虑,商业软件通过引用类库的方式使用 LGPL 组件,不允修改源代码,若修改采用的代码要以 LGPL 协议开源。** ------ #### 相关文章 [软件许可证](javascript:void(0))
吴晓俊
2024年7月15日 16:08
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码