如何高效的命名你的项目。
在做一个项目的时候,我们往往遭遇命名问题的困惑,当看到一些非专业人的代码,看到他们凌乱的码法,有时候真的苦不堪言。深刻知道一个良好的命名规范的重要性,同时在项目中也会遇到一些命名的瓶颈。所以有必要写一篇关于常见命名的方式。以下是通过3年的编程经验,以及参考网上知名的开源项目总结的一点经验。希望共勉
1.文件夹命名
常用项目命名
omi、element、master、project、test、vue、iview
|
|
二级目录 | build、static、config、src、examples、base、common、issues、assert |
三级目录 | libs、models、plugins、skins、images、css、js |
color-pick、button-groups、date-picker、option-grounp、jquery-select、jquery-swiper
node_models、async-demo、array-union、array-differ、babel-each。
2.文件命名
以下变量名可以加css、js、html,例如index.html、index.js、index.css。
常用组件命名
index、message、menu、slider(滑块)、page、progress(进度条)、tooltip(提示)、tree、upload、time、button、checkbox、dialog、cascader(三级联动)
|
|
常用文件命名 | index、shopping(购物)、 share(分享)、integral(积分)、advertisement(广告)、pay(支付)、community(社区)、game、docs、bussiness |
share-to-friends,share-to-community,weex-pay,alipay-pay,user-integral,
game-page,docs-page等等反正就是自我想象。
在目前做的pc端和移动端,简单的对他们分个类:
关于以上的项目都可以用名词+需要的动词命名,达到见词知意
3.html布局命名
但是我觉得写的并不是很好,很全面。因为往往比较纠结的是每一个大布局中小布局的命名。
外套 wrap
#container
|
|
头部 header | #head, #header,#nav,#sub-nav,#menu, #sub-menu,#branding |
主要内容 main | bussiness-title 、bussiness-logo、bussiness-search、bussiness-search-results |
左侧 main-left | #side-bar, #side-bar-a, #side-bar-b |
右侧 main-right | #side-bar, #side-bar-a, #side-bar-b |
内容 content | radio-click、radio-heightlight、radio-active、input-seach-off、input-search-on |
底部 footer | #service, #regsiter,#partner(合作伙伴),#joinus, #site-info |
总结
1.一般头部有nav、nav-event、nav-style、nav-item、nav-link。
2.内容:xx-title、xx-box、xx-warp、xx-item、xx-item-title、xx-item-link、xx-item-image
3.底部:footer-time、footer-box、footer-item、footer-item-link、footer-address。总之xx-wrap,xx-box,xx-item、xx-link、xx-title、xx-total肯定会满足你80%的需求
4.js变量命名
// badvar superman = { class: 'alien'
};// badvar superman = {
klass: 'alien'
};// goodvar superman = { type: 'alien'
};
login(),logout(),expandList(),getTotal(),keySearch(),submitForm(),cancel(),goMore(),searchAll>(),searchCurrent().clearContent().uploadImage().searchResult()这些都是常用事件,可以清晰知道每一项的意义。
// badfunction user(options) { this.name = options.name;
}var bad = new user({ name: 'nope'});// goodfunction User(options) { this.name = options.name;
}var good = new User({ name: 'yup'});
// badthis.__firstName__ = 'Panda';this.firstName_ = 'Panda';this._firstName = 'Panda';// goodthis.firstName = 'Panda';
// badvar sidebar = $('.sidebar');// goodvar $sidebar = $('.sidebar');// bad$('ul', '.sidebar').hide();// badfunction setSidebar() {
$('.sidebar').hide(); // ...stuff...
$('.sidebar').css({ 'background-color': 'pink'
});
}// goodfunction setSidebar() { var $sidebar = $('.sidebar');
$sidebar.hide(); // ...stuff...
$sidebar.css({ 'background-color': 'pink'
});
}// bad$('.sidebar').find('ul').hide();// good$('.sidebar ul').hide();// good$('.sidebar > ul').hide();// good$sidebar.find('ul').hide();
5.css命名
公共的
common.css
|
|
其实和common差不多 | base.css |
动画 | animation.css |
皮肤 | skin.css |
文字 | font.css |
主题 | themes.css |
打印样式 | print.css |
颜色 | color.css |
6.图片命名
1、第一部分是图片的逻辑归属分类
2、第二部分是图片的表现内容
3、第三部分是图片的内容的类型(有些图片还会有第四部分,表示图片表现的状态。)
4、tabbar_home_icon, navigationbar_showtime_icon@2x.png,tabbar_categories_icon
7.分享demo
CIO之家 www.ciozj.com 公众号:imciow