美文网首页我爱编程
安卓开发之如何写干净的代码

安卓开发之如何写干净的代码

作者: Zero零夜 | 来源:发表于2018-04-11 16:47 被阅读29次

    这里想记录一下自己代码的演变,平时的一些设计代码的思考,看书获得的灵感,保存思路,举一反三,不断进步,自己是一个实践派,并且不是很迷信权威,再热门再流行的框架,方法,控件,也会尽量使用加思考,确定其是否值得学习,说的是不是对的,有没有必要使用,而不是一昧的去学习所谓的热门。

    1、对于string.xml的思考
    安卓的规范一直建议将代码里面的中文字符放到string.xml里面,之前也一直是这么做的,但是在不停地写项目过程中,不停地实践过程中,渐渐产生了一些自己的想法,首先是对于不会再重复出现的文字,如果非要放到string.xml里面,起的名字会很长很长,再加上还需要用getResource调用,一个文本显示在代码里面就会非常的长,哪怕是搜索,也完全可以用as的c+s+f全局文本搜索处理。如果是重复的文本,我喜欢写一个全局的commonString来,按照模块命名,而不完全是这句话的意思,这样就可以在代码中到处使用,方便修改,当然要是多国语言,那就肯定要使用string.xml处理。

    2、对于style.xml的思考
    项目需要,有的时候要把一些代码拷贝到另一个项目里去,这时候如果是一个控件,除了代码本身,还要拷贝style,string,color,drawable,有的时候拷贝到崩溃,尤其是github上面的一些项目,不要说打成aar包或者jar包,打成包以后代码修改起来还得去再找源码或者继承代码,更是费劲,所以单控件更喜欢直接写在xml里面,而不是抽取出来style,不过如果是xml里面重复的模块,还是应该抽成style。

    3、如何对自定义控件style命名
    之前是全部名字前缀加上_加上属性,比如 " weight_veredittext_title " 后来发现名字实在太长了,自己看着都难受,想了想这个只是为了区分不同控件的属性,并不需要用全名,风格变成了" vet_title " 简洁干净。

    4、方法传递的参数
    以前传递参数就是傻傻的多一个,就在方法里面多加一个参数,有时候一个方法七八个参数,后来突然有一天开窍,方法的参数多了就生成一个实体类,用类来传递参数,一想,类似的还有retrofit上传参数,

    5、封装更多的自定义控件来实现模块化
    原来写代码,就是按照设计图布局,一层又一层,加载到java里面一看,光是view就一大推,再加上大量数据赋值简直就是噩梦,后来想到可以用组合式自定义控件封装这些控件,开放出方法,一个自定义控件能包含好几个view,大大减少了Activity里面代码的数量,而且可以用在很多地方,不用复制代码,简直不要太开心,还有edittext有时候要处理价格相关,直接封装一下,到处可以用,不需要写重复的代码,后来想到,之前有一个android朋友,刚工作的时候说他们公司有一个大牛,一个项目里面全是自定义控件,当时还在想好厉害全是自定义控件,现在想想,可能就是封装的思维吧。

    6、封装常用的处理类代码
    总是写列表代码,要处理空页面,处理错误页面,上拉加载,下拉刷新,adapter点击事件,分页处理,写多了就变懒了,干脆写一个处理类,每次直接链式调用处理,传入recyclerview,adapter,要解析的数据类型等,在设置一些参数就可以愉快的让程序自己处理所有这些操作内容咯。

    5、总结
    (1)命名尽量简短,千万不要起名字特别长的变量名或者类,可以看情况地考虑使用缩写
    (2)尽量缩短方法代码的长度,参数多了用类传参而不是一个一个传
    (3)减少一个代码块所在的文件夹,尽量集中代码。
    (4)多写自定义控件,封装自己常用的方法
    (5)虽然看过书说好的代码没有注释,起一个合适的名字更重要,但是我还是觉得,每一个方法都要有注释,并且是中文注释。

    6、结语
    写完了这篇文章才发现,自己之所以不停地改进自己的方法和代码风格,一个原因,就是懒,怕麻烦,一项工作重复多了就想着法的去简化,后台给的文档url每次都要一个一个复制,真麻烦,干脆学学python写个爬虫,自动生成可用的url粘贴过来,还能帮助发现文档里面错误url,文档里面参数一个一个复制真麻烦,写个网页工具,复制参数过去,生成java类,感觉作为一个程序员,手里有编程这个工具,不应该是单纯的去实现别人想要的东西,而是要主动思考,自己有哪些能用编程处理的工作,全部用程序处理,减少自己的工作量,把更多的时间投入到睡觉和吃饭中去。

    相关文章

      网友评论

        本文标题:安卓开发之如何写干净的代码

        本文链接:https://www.haomeiwen.com/subject/mjhzhftx.html