下面是我的个人的一些总结的经验!
我替别喜欢代码规范,因为代码的规范,不仅仅是为了自己。作为开发者,都会有代码洁癖,不乱他多么的爱脏,但是,都喜欢写出干净的代码,这个是很难的!
如果,每个人都有自己的风格,每个人的写的代码都不一样的话,看别人的写的代码就跟吃屎一样。这年头,钱难挣,屎难吃。所以,为了自己,也为了别人,主要是为了自己以后维护开发方便。所以,我们都要遵循一种规范。
下面是我自己总结的代码的规范:
第一: 编码格式 UTF-8
这是 编程 的常识。
多说一句,Windows 默认编码是GBK, 你要小心喽。嘿嘿,我吃过亏。当初,把系统的编码改了,貌似也不好使, windows 开发确实很蛋疼! 嘿嘿嘿。
第二: 命名
好的命名的方式,不仅仅是为了自己开发快速,也是为了后面新加入的员工不骂娘。这件事情,说起来简单, 但是真的要是做起来,并没有那么容易。 因为,每个人的水平和意识不同。所以,导致了命名方式也是千差万别,有的人喜欢用汉语拼音,我他妈的也是醉了,这尼玛的是小学毕业的吗?我不是歧视非科班出身,但是,大部分,非科班出来的都是 不太愿意在命名上花时间的。 在命名上花点时间,是非常值得。这是一本万利的交易。
切忌,不要用中文,尽管Android studio 支持中文,但是编译起来肯定是要比英文慢的。 建议不要使用拼音,拼音感觉作为程序员,这种方式命名太Low 了!
就用英文,Google 翻译, 当然,同一个短语,翻译过来,可能有很多的word, 所以,这里你需要选一个,根据自己的喜好了。
命名的原则,
在Android 里面需要注意的很多,
类名采用 大驼峰标记法
方法名,变量名 小驼峰标记法
常量名 全部大写,多个单词的时候可以添加下划线
1 Activity,Fragment,Adapter命名
大驼峰标记发
建议:
功能名称 + 描述 + Activity
例如:
房屋列表 HouseListActivity
房屋详情 HouseDetailActivity
Fragment 也是同理。
2 xml 布局的命名
全部小写,多个单词之间使用下划线连接
建议:
activity_功能_描述_layout.xml
fragment_功能_描述_layout.xml
adapter_功能_描述_layout.xml
自定义的view
view_功能_描述_layout.xml
3 配置文件
Android 有很强的配置文件
如果,你不懂得配置文件的好处的话,你可以先跳过这部分。个人感觉配置文件,是很重要的,一种非常好的编码规范。
代码里面,能用配置文件的就用配置文件中的引用!
第三: 编写原则
设计模式是很重要的,如果,你写的代码遵循设计模式原则和方法,你的代码可维护性很好,代码也很简洁。
代码简洁
如何写出简洁的代码,每个人写代码都有自己的风格。
遵循设计模式的原则
写方法的时候,单一职责原则
我很讨厌,一个方法里面写个几百行,看到这样的代码,你就要重构一下这块的代码。其实,重构分为两种,我们一直以为重构是架构的重构,其实,这只是一种重构的含义。另外一种,重构就是让你的代码变的更加的简洁,提高代码的可读性,可维护性,可扩展性,可重用性。就是,只是修改了一个类名和方法名,也是代码的重构,重构很简单,就是让你的代码变的更好。让我们一起来做这件事情,编写简洁的代码是一门艺术。
写方法的时候,要执行单一职责的原则。
例如:我们在Activity里面的onCreate() 方法里面,我们有的时候,可能会看到一个方法里面,写了好几百行。我觉的非常不好,可读性太差了,后期维护也是很麻烦的!记住,代码不仅仅是写给别人看的,更是写给自己看的,出现了问题,你就要回来查看自己的代码。我们在看自己几年前写的代码的时候,总觉的就像一坨屎一样的!
我来说说onCreate()
1 将布局文件提出来。
因为,后面修改的时候,老是会去看我们的布局是不是出现了问题!所以,这个方法是非常的好的。
在BaseActivity里面定义一个方法,
protected int getLayoutId(){
return 0;
}
这样子我们再用的时候:
setContentView(getLayoutId());
这个方法可以定义为abstract, 看你的需要,如果,你刚开始写的话,可以定义为抽象,但是,你要是修改已经写的差不多的产品,建议不要用抽象的。很费时间的!
2 获取传递的参数
protected void getIntentData(){}
3 初始化view
protected void initView(){}
4 获取服务器的数据
protected void getServerData(){}
因为,Activity 本身是有生命周期的,这些方法,你根据需要来安排!
个人比较骄傲的一部分,就是,建议这些方法都写到父类里面例如:BaseActivity, 后面继承的时候,写起来很方便。这么写你就知道了。至于,抽象的话,你需要根据需要,有的可能不需要getIntentData, 所以,这个方法没有必要定义为Abastract.但是,有的你根据需要来吧! 具体问题具体分析。 当你,要修已经完成的项目的时候,这么做很需要时间的,所以,不见使用抽象。
这些方法同样适用于Fragment. 至于Adapter getLayoutId() initView() 是适用的!
建议将这些方法放到模板中。这也是设计模式的一种方法!
编写Java 的小建议
1 慎用 static
因为,static 在JVM单独的开辟一块空间,静态代码区,这部分的内容。你如果是想当做静态的参数,就是不做改变的东西,是可以定义为静态的。如果,你的参数需要改变的时候,静态一旦开辟了,不会实时的改变。你写代码,就不会按照你预想的走!
第四: 配置文件的妙用
如何使用Colors.xml file
you can see this link:
http://geekhades.blogspot.com/2016/04/android-colorsxml.html
No comments:
Post a Comment