这里将存放部门统一的文档及代码编写规范,目前还没定稿,欢迎参与讨论。
分三个阶段:
- 规范阶段(5.10 完成)
- 拟订规范初稿
- 经讨论完成规范定稿
- 工具阶段(待定)
- 完善语言规范的配套检查、格式化工具
- 完成目录结构的脚手架工具
- 实施阶段(待定)
- 工具初步完善后逐步推广使用
文档与源码编写风格
License: Creative Commons Attribution 4.0 International
这里将存放部门统一的文档及代码编写规范,目前还没定稿,欢迎参与讨论。
分三个阶段:
可以调研一下看能满足多少需求
不用考虑 IE6、IE7 后原来 CSS 还可以这样写,我打算加入到规范中,先用在内部平台和移动 Web 上。
http://semantic-ui.com/guide/cssguide.html
对规范中的 dist 目录有疑问,对于生成的代码,尤其是压缩成一行的 JS,将导致每次合并都冲突,所以最好别放源码中,对外发布可以考虑这样做:
文档地址:颜色值强制不允许使用命名色值
想请问下你们强制不使用命名色值的考虑是什么?
有一些声音说这两个属性影响一些优化,但是有时候使用又会方便一些。抛出来讨论,是否要有规范?
感谢 fex 团队对代码标准化所做的努力。由于没有协议文件,故此我引用时来这里报备一下。
目前是开发分支是rc-proposal将来可能会并为master,所以提供的是sha的历史链接。请多多指教。
你们css规范里2.4行长度background-image属性值两个url()函数之间没加逗号
目前比较常见的方式有
// 方式1
(function() {
})();
// 方式2
+function() {}();
// 方式3
!function() {}();
经测试方式1最快,所以推荐方式1
http://jsperf.com/bang-function
https://github.com/gmuteam/jsbint/blob/master/standard.md
目前GMU项目和Webuploader项目都是用的这个代码规范。
对象数组中对象的属性如何注释,格式应该是什么样子的?
每一行代码严格以120字符为最大长度,即一行包括前后的空格, 不得「MUST NOT」超过120个字符。
我的MAC sublime120个都超出屏幕了.....
请问这是为什么呢?
对于 web 应用类项目,建议结合 fis 制定一套标准的目录规范,然后通过 fis 脚手架功能快速生成一个项目或者组件。
对于非 web 应用类项目,规定一级目录即可。
4 个空格大家比较习惯,但似乎这几年很流行 2 个空格,比如 Google、Facebook、Twitter 等都用了,还有一些新语言,如 coffeescript、less/sass、dart 等等,似乎是个趋势
在 jshint 中有一个选项 freeze,阻止下面的代码:
Array.prototype.max = function() { ... }
是否要加入这条规范?
鉴于昨天发现Firefox在函数声明提升上有不同于其它浏览器的表现,为避免可能问题,建议强制function声明在头部。
详见
MDN有关说明
<script>
var obj = {
go : function(){
try{
come();
function come(){
alert(1);
}
}catch(e){
console.log(e);
}
}
}
obj.go();
</script>
虽然同作用域的变量在头部申明可以避免编写者因对变量作用域的错误判断导致的一些隐蔽BUG,但是对变量随用随申明的形式我认为有以下几点好处
1.代码逻辑更清晰。如果一个变量只在块级代码中使用,在块级代码中声明更容易让代码阅读者了解这个变量在编写者意图中的使用范围。
2.对重构友好。随用随申明变量的形式可以将关键逻辑代码与变量的声明写在一块,在重构时,不需要去头部寻找申明的变量(这些变量可能还由于隔行等因素不易于复制),方便了解程序结构。
而在头部申明避免的问题完全可以通过jslint这类工具来进行检查和提醒,避免变量重复定义等问题。
我比较喜欢调用的时候参数与左右括号之间带空格,但是在以下几种case的时候没有空格。之前很多人都觉得这些规则太复杂,不知道大家怎么看。
// 2.C.1.1
// Functions with callbacks
foo(function() {
// Note there is no extra space between the first paren
// of the executing function call and the word "function"
});
// Function accepting an array, no space
foo([ "alpha", "beta" ]);
// 2.C.1.2
// Function accepting an object, no space
foo({
a: "alpha",
b: "beta"
});
// Single argument string literal, no space
foo("bar");
// Inner grouping parens, no space
if ( !("foo" in obj) ) {
}
docpment.body.insertBefore(p, div);
docpment => document
我试了几遍,都不行。
本来我是推荐使用onevar, 但是看了这个之后,我改变主意了。
但是,还是希望同一作用域下, 所有的变量在一个地方申明。
JS Hint 默认是要求的。
类似
callback && callback();
options = options || {};
甚至混杂一些赋值
someCondition && (a = 1);
这些写法呢?个人觉得上面的写法还是比较方便的,但是下面是不是属于滥用了?
如果需要用到属性中所有值的时候,简写肯定是最好的,但是大多情况下不需要用到属性中的所有值,简写又会给没有设置的值设置一个初始值(initial value),容易不经意的造成属性覆盖。如果把不必要的值也在简写中写上,又造成不必要的重写。所以,建议谨慎对待简写
如下面这段代码中,如果图片失效,颜色将不是期望的红色
background-color: red;
background: url(images/bg.gif) no-repeat top right;
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.