有句话常说,细节决定成败,但是细节在哪里呢?我们又要怎样来寻找这些细节呢?
其实这些都是习惯养成的,
你说一个有洁癖的人,也不是天生的,他只是平时很注意卫生,所以慢慢地就养成了所谓的洁癖
那么我们做开发的人,其实就应该养成一些开发的习惯,,,,甚至是洁癖
因为我拿手的是javascript,所以以下的案例我就以js为例,一步一步地说
1.注意开发的模块化区分
说到模块发开发,有很多新手可能会比较懵逼,觉得这不重要,错!!!!!
其实这对于新手来说才是最重要的,为什么呢?
虽然这没有什么硬性的要求,但是这会很方便你的后期debug
下面我们举个简单的例子
在一个web项目中,我有三张页面,分别是home,nav,detail
如果这个目录按照我这样的格式来写,是不是后期调试找页面的时候,不会找的很累呢?
当然这也不是硬性要求的,还是看你自己怎么来安排,毕竟你要为你以后的debug负责
2.命名
这个其实要仔细拿来说,其实需要很长的篇幅来解释,
但是在这里,我就提一点,那就是语义化
什么叫语义化?
function func1(){
//add list
}
function func2(){
//delete list
}
在没有看到方法里面的注释之前,我是完全不知道这个func1和func2是干什么用的
在看下面这个
function addList(){
//add list
}
function deleteList(){
//delete list
}
这两个方法,我甚至不需要看方法里面的内容,我就知道它是用来做什么事的,
这样就减少了很多多人开发会导致的问题,
在命名的这一点上,英语好的当然是会占点优势,但是这不是关键,
英语不好你可以翻字典啊,
3.初始化变量时,在后面加上一个默认值
不管是前端还是服务端,总会遇到要接别人数据的时候,
然后这个时候最大的问题就是传数据的那一方,如果改变了哪一个字段,或者是忘记传了哪个值,
使得变量出现了空值的现象,而这种空值可能会导致整个项目直接崩掉,就完全跑不下去了
那这个时候怎么办呢?
$.get('/getData',function(results){
var myData = results.data || {};
})
这是一个简单地获取ajax数据的方法,此时我就可以保证myData这个变量绝对不会出现undefined这种现象,
当然jquery里面本来就有很好的异步处理,因此不会出现空值的情况,但是我们在自己开发的时候,也不能不考虑这种现象
尤其是在会出现同步阻塞的情况,一定不能忘记这种情况
4.代码提交
很多公司都是把代码利用svn或者是git存放在远程仓库中的,
那么我们在平时开发的时候就要注意,点滴式提交
什么意思呢?
就是每当我们完成一个功能,修复一个bug,新增一个需求等等操作的时候,
就向远程仓库进行一次提交,为什么要这么做呢?
还是为了我们更好地debug,这样可以很清晰地找到问题所在,也可以减少很多未来debug的时间
5.解决了问题不要就这么过去了,要做好笔记
有很多的朋友曾经向我提起过,
我做这行三四年了,感觉没什么收获啊,
前端就是每天切切页面,写写脚本,做做渲染
服务端就是增删改查,操作一下数据库
完全不知道自己几年来干了什么?
其实我就想问,做这行这么几年,你就真的一次都没有遇到过问题?每次页面都是一次切完?每次增删改查都是一次成功?
积累都是从一点一滴开始的,哪怕是再简单的字母拼写错误,那也是一个坑,
这样以后你在遇到这个问题的时候,翻翻笔记就可以跨过这个坑了,提高的开发效率是你无法想象的
6.写一些尽量能让人看懂的代码
最后一点,也是最难的一点,
知道福尔摩斯身边为什么有个华生嘛? 就是因为华生是个普通人,他思考的方式都是以常人的角度来的,往往有时候一些很平常的点,是最难让人发现的
什么叫做化腐朽为神奇.....
互联网产品的最完美形态,就应该是一个傻瓜都能操作的产品,不需要教程,不需要模板,一上手就可以使用,那样才是最完美的
所以我们写代码也是,不要觉得别人写的代码很骚,你完全看不懂,就很厉害了,那这种代码也只能适用于少数人而已,
为什么java学起来快,c++学起来那么难?
其实身边的很多例子告诉我们,简单一点才是最重要的
简单了,以后换个人来调试你的程序,也会快上很多