Skip to content

qinbx/project-stand

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

project-stand (项目规范)

描述:为个人前端项目规范。

  • 需求背景
  • 指导思路
  • 目录结构设置、目录命名、文件命名
  • CSS编码规范
  • Javascript编码规范

##需求背景## 目前个人接触的以jquery为基础的小型、小中型web项目的前端,多包含以下资源:

  • js工具库。
jQuery,jqueryUI
jQuery组件。form validate,datatable。
其它工具库。如cookie。
  • css模板和组件。
reset.css, normerniz.css
icon-font.css
jqueryui, bootstrap等
  • 业务相关js
app config, app init
具体业务逻辑js。有的多页面共用,有的仅某个页面使用。
  • 业务相关css
基础css。如font,table,按钮等。
覆盖其它组件默认风格的css。
具体页面布局和细节实现的css。
  • 图片
修饰型图片。如背景图片、图标。
内容型图片。如logo、新闻图片、产品图片。
  • 其它
web font字体文件
less,sass源文件
js测试文件
...

##规范目标和指导思路## 规范目标

- 让代码组织结构明了、一目了然。增强可读性和可维护性。
- 为进一步优化打好基础。比如js和css文件的压缩、合并、更新。

指导思路

- 按文件的作用域划分为:多站共用,单站共用,多页面共用,单页面使用几个级别。
- 工具代码文件和业务代码文件分开。

##目录结构设置、目录命名、文件命名## 纠结点:单词连接用不用下划线或中划线。

目录和文件命名

以字母打头,可以包含字母、数字、下划线。
避免拼音,尽量用简单易懂的英文单词或英文单词简写。
避免用大写字母。???

变量属性命名

javascript类以大驼峰式命名。如MyTestClass
javascript其它变量以小驼峰式命名,必要时可用下划线连接单词或单词组。如myTestClass。
css类尽量用小写字母。
html属性必须用小写字母。如data-v。
css,html元素ID尽量用小写字母。

示例:

|- static/
|    |- js_lib/   jquery, jquery.formvalidate.js
|    |- css_lib/  normerniz.css, icon-font.css, anamination.css
|    |- js/     app_config.js, page_index.js,pgaes_prodct.js
|    |- css/    basic_style.css
|    |- img/     修饰型图片
|    |- images/  内容型图片
|    |- pugin_datatable/   datatable.js, datatable.css, img
|    |- plugin_highchart/   highchart.js, flash..
|    |- font/      
|    |- less
|- index.html
|- product_list.htm
|- product_detail.htm
|- product_search.htm
|- admin/
    |- login.html
    |- main.html
    |- product_manage.htm

##编码规范##

缩进:2个或4个空格
空格:在操作符和操作数之间应添加空格。
注释:简单明了的注释。
空行:在代码块间用空行间隔。

css示例

.page_menu {
     position: relative;
     display: block;
     margin: 10px;
     padding: 5px;     
}
.page_menu li {
    float: left;
    padding: 10px;
    border: 1px #ddd solidl;
}

css属性的书写顺序 :布局和定位 块状属性 背景、字体属性

javascript示例

var page = {};

page.init = function(){

    // init ui
    $('#select1').chosen();
    $('#input_date1').datepicker();
    
    //bind event
    $('#trigger_add_keyword_dialog').click(function(){
        $(this).text('Loading...');
    });
    
    // other logic
    $('#div_keyword_chart').highchart();
    
}

page.init();

About

My project and coding stand.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published