Code Monkey home page Code Monkey logo

styleguide's Issues

120个字符是不是太长了?

每一行代码严格以120字符为最大长度,即一行包括前后的空格, 不得「MUST NOT」超过120个字符。

我的MAC sublime120个都超出屏幕了.....

生成的文件放源码中很容易冲突

对规范中的 dist 目录有疑问,对于生成的代码,尤其是压缩成一行的 JS,将导致每次合并都冲突,所以最好别放源码中,对外发布可以考虑这样做:

  • 稳定版本,通过 github 的 releases 页面来发布
  • 开发版本,通过持续集成工具发布(不过找了一下似乎没有?)

源码目录规范,需要细化

对于 web 应用类项目,建议结合 fis 制定一套标准的目录规范,然后通过 fis 脚手架功能快速生成一个项目或者组件。
对于非 web 应用类项目,规定一级目录即可。

缩进使用 2 个空格还是 4 个空格

4 个空格大家比较习惯,但似乎这几年很流行 2 个空格,比如 Google、Facebook、Twitter 等都用了,还有一些新语言,如 coffeescript、less/sass、dart 等等,似乎是个趋势

『CSS属性应该「SHOULD」尽可能使用简化方式书写』存疑

如果需要用到属性中所有值的时候,简写肯定是最好的,但是大多情况下不需要用到属性中的所有值,简写又会给没有设置的值设置一个初始值(initial value),容易不经意的造成属性覆盖。如果把不必要的值也在简写中写上,又造成不必要的重写。所以,建议谨慎对待简写

如下面这段代码中,如果图片失效,颜色将不是期望的红色

background-color: red;
background: url(images/bg.gif) no-repeat top right;

参看:MDN: shorthand properties

Code Guide by@mdo: Shorthand notation

对短路写法怎么看

类似

callback && callback();

options = options || {};

甚至混杂一些赋值

someCondition && (a = 1);

这些写法呢?个人觉得上面的写法还是比较方便的,但是下面是不是属于滥用了?

强制function声明在作用域头部

鉴于昨天发现Firefox在函数声明提升上有不同于其它浏览器的表现,为避免可能问题,建议强制function声明在头部。

详见
MDN有关说明

<script>

var obj = {

    go : function(){
            try{

                come();

                function come(){
                    alert(1);
                }   


            }catch(e){
                console.log(e);
            }


        }

}

obj.go();

</script>

函数调用时,参数与左右括号之间是否应该有空格?

我比较喜欢调用的时候参数与左右括号之间带空格,但是在以下几种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) ) {

}

不建议要求同作用域的变量在function头部申明

虽然同作用域的变量在头部申明可以避免编写者因对变量作用域的错误判断导致的一些隐蔽BUG,但是对变量随用随申明的形式我认为有以下几点好处

1.代码逻辑更清晰。如果一个变量只在块级代码中使用,在块级代码中声明更容易让代码阅读者了解这个变量在编写者意图中的使用范围。
2.对重构友好。随用随申明变量的形式可以将关键逻辑代码与变量的声明写在一块,在重构时,不需要去头部寻找申明的变量(这些变量可能还由于隔行等因素不易于复制),方便了解程序结构。

而在头部申明避免的问题完全可以通过jslint这类工具来进行检查和提醒,避免变量重复定义等问题。

是否采用onevar?

本来我是推荐使用onevar, 但是看了这个之后,我改变主意了。

但是,还是希望同一作用域下, 所有的变量在一个地方申明。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.