命名纠结

网站目录命名纠结

javascript的文件夹是要用javascript还是js,还是scripts?
图片文件夹是要用images,image还是img?
css文件夹是要用css,styles,还是style?
单数还是复数这是个很纠结的问题。
MVC模型中是要用model,view,controller,还是它们的复数形式?
纠结久了,也没有一个规范。一个网站和另一个网站命名方式可能都不一样。

想仔细,发现前端文件夹的命名其实就三类:
1.最简洁的方式: js,css,img
2.单数形式:javascript,style,image
3.复数形式:scripts,styles,images

可是实际情况可能是三种方式都用了。所以最终决定全部使用最简洁的形式,即第一种,url中也减少了字符数。
其他采用单数形式,例如上传文件夹用upload而不是uploads。

api返回数据命名纠结

一开始的命名完全随意的,后来纠结于是要用error还是用code还是用error_code表示错误代码。用要用message还是用msg表示错误信息。
最后基本是采用 {“error”:error-code,”message:”message”,”data”:some-data}这样的形式。
规范如下:
error表示错误代码,必需,整数,值为0时表示正常,此时message可选。当error为其他值时,即表示出错状态,此时message为必填。
data为可选。

QQ登录的返回数据
{“ret”:2021,”msg”:”请先登录”}
{“error”:100007,”error_description”:”param access token is wrong or lost “}

刚好看到了这篇博文,http://www.jsbug.com/blog/?p=477 发现命名规范基本相同,但是觉得命名更合理一些。
{"code": code-value, "msg": msg-value, "data": data-value}

例如error语义不明,是错误字符还是错误数值。message和msg明显msg字符少,而且msg大家都懂,QQ的ret一开始没看懂。

说到底api返回数据的命名只是给开发者看以及确保以后维护方便,要是早点定个规范也就不会那么混乱了。

url命名纠结

习惯网站的操作统一用一个api命名的controller来处理,url使用api/module/action的形式。
关于CRUD,开始的时候,纠结在于删除是用delete还是del,更新是用update还是edit,新增(插入)是用add,new,create还是insert。嗯,就是get完全没不纠结了。
最后统一使用 add,get,update,del

x-webkit-speech:为搜索框增加语音输入功能

现在一个大网站没有一个这样的语音搜索都不好意思出来跟别人打招呼了,用不用是一回事,有那么一个麦克风在那总觉得有一点酷(你也可以说装逼)。google chrome满足了我们这些没事折腾的人的装逼愿望。

试试:

实际上w3c对语音输入有官方的说明:http://www.w3.org/2005/Incubator/htmlspeech/2010/10/google-api-draft.html
使用语音输入作用有:
1.提供除了键盘和鼠标的另一个输入方法,针对pc用户,当键盘不可用时也可以使用语音输入。
2.为手机用户提供更加方便的输入方法。

1.支持的浏览器

x-webkit-speech是webkit内核浏览器的私有属性(废话)。但现在只能在google的chrome 11以上才能使用。
实现过程大概是捕捉到语音后,数据发送到google的服务器进行语音识别,然后返回结果。所以没有足够强大大的研发能力和服务器资源,真没法支持这个服务。
作为普通话不标准经常被别人吐槽的人,使用语音搜索还是能十分准确地返回关键词,我顿时感动得一塌糊涂。

2.支持的标签

输入标签有input和textarea,实际上目前只有input支持。

3.检测浏览器是否支持

if (document.createElement("input").webkitSpeech === undefined) {  
    alert("Speech input is not supported in your browser.");  
}  

4.直接使用

为input标签加上x-webkit-speech属性

<input type="search" x-webkit-speech />

捕捉到语音输入后会直接将关键词填入到输入框里。

5.监听输入

若要监听输入变化以便做其他处理,使用onwebkitspeechchange属性添加处理函数。

<input type="search" x-webkit-speech onwebkitspeechchange="onChange()"/>
<script type="text/javascript">
    function onChange() {
        alert('changed');
    }
</script>

6.注意:

如果原input中value不为空,输入会直接添加在原有文字后面。既然用webkit就要用placeholder了,不要再使用value为作输入提示了。

7.其他

不小心发现了编码为中文的网页中读fuck会直接显示fuck,在编码为英文(en)的网页中读fuck会显示f***。这难道是说英文中fuck是粗话,中文中fuck就成正常问候语了?有兴趣的同学自己试试。