随到随学/常年招生
全日制班
蓝鸥西安
陕西省西安市高新区唐兴路10号后楼一层详细地图
15626540795
课程介绍
蓝鸥西安java培训机构认为做到比较优雅地编码,需遵从如下约束,排名分先后:
1、良好的命名
2、清晰的结构
3、不十分差劲的算法
下面逐一说明:
良好的命名
命名很重要,随便一本逻辑学教材(如果读者有兴趣,此处推荐《逻辑学导论》)里都会有长篇大论来讨论命名的问题,命名应该本着不拍长就怕不清楚的原则,尽量把一个类、方法、变量的含义交代清楚,实际上笔者比较喜欢OC的方法(消息)命名规则
长,但是很清楚。下面详述命名:
接口的命名
接口的命名一般都是前缀 I 加上名词或形容词,实际上.Net Framewrok类库就是这样做的
接口往往用来分装一个或一组行为,实现接口的类意味着它具有了一个或一组行为的能力,所有常用形容词。当实在找不到一个恰当的形容词时,名词也可以。
抽象类
抽象类通常不需要加前缀或后缀,也有部分大牛喜欢给抽象类视情况加Base后缀。如下的命名笔者觉得就不错:
1、Shape(抽象类)
2、Ellipse(具体类)
3、Rectangle(具体类)
具体类
尽量使用名词,不排除个别情况下把一个行为封装为类时使用动词。
方法
使用动词或动词性短语。
以上。蓝鸥西安java培训机构觉得其它的字段啊、属性啊、事件啊出现命名问题的比较少,不再讨论。比如有的人喜欢字段用下划线开头,有的人喜欢用m_开头,都无关紧要,求同存异,只要使用的词语恰当,并不会带来太多麻烦。反倒是如果规定一个巨细无比的规范才有问题,一是耗费编撰者的时间,二是阅读者也记不住,三是阅读者记住了也可能因为和自己的习惯不同而心存抵触。
此外需强调一点就是少用拼音多用英文,少用缩写多用全称,尽量不用拼音缩写,甚至是方言拼音缩写,还有英语加拼音,甚至是英语加拼音缩写......。但也不能排除个别如“计划生育”这样的不好翻译的词语可以用拼音,需注释明确或维护词汇表。另外,缩写也不是不可以用,一些大家约定成俗的缩写比如“Id”,使用之并不会带来误解,还有利于代码的清晰度。
有时候由于英语水平的问题,毕竟我们的母语不是英语,难免会出现不知道用什么单词的情况。此时,可以试试codelf,感谢据说是网易工程师unbug开发的此工具。这个应该读作[ko?d?f]吧,但是倒数第二个字母不是I,是L。
清晰的结构
基本要求
1、if、while等关键字包裹的表达式,即使只有一句,也尽量使用大括号括起来
2、尽量避免使用直立人时代的goto语句
3、尽量避免过长的方法,把大方法拆分为数个小方法,方法的职能尽量单一
4、尽量避免重复代码,将其转移到公共工具中
5、尽量避免过大的类,拆分为数个类,各司其职
6、适当的注释,注释太多,说明代码本身的表达力可能还有待加强。有些实在难缠的逻辑,可以写详细注释,如果不写注释,离职时请注意不要泄露给擦屁股人自己的地址
较高要求
熟悉以下常用面向对象的设计原则:
1、开放-封闭
2、单一职责
3、里氏替换
4、依赖倒置
5、接口隔离
再高要求
熟悉常用设计模式:
1、工厂方法
2、抽象工厂
3、建造者模式
4、单例模式
5、设配器模式
6、外观模式
7、观察者模式
8、命令模式
9、代理模式
10、策略模式
面向对象语言的三大特征人人都知道,但是真的用好却是不容易,三大特征仅仅是面向对象设计的基础,在此基础上建立起了面向对象的高楼大厦。笔者工作多年,常感叹虚度年华,至今尚未精通面向对象设计之十之五六。
使用成熟的设计模式有两个好处:
1、这些解决方案已经经受过了考验,用了即使无功,但也不会犯错
2、设计模式的名称本来就一种在程序员间流传的概念,基于共同的对概念的认识能够降低沟通成本
当然也有坏处,代码的扩展性虽然是好了,但是代码的复杂性也高了,这就要求我们较好熟悉常用的设计模式,这样就得到了它的好处,规避了它的坏处。
必须要注意的是:不要乱用设计模式,只有需求产生了变化,或预见了需求将要发生变化才使用这些模式来封装发生的或可能发生的变化。有时候再重构代码时也会用到,比如外观模式和设配器模式等。
更高要求
1、大项目肯定不是一个人能完成的,人多了容易发生混乱,此时需要团队的领袖勇敢地承担起义不容辞的责任,包括但不限于:
2、定期维护代码框架、分层结构。写的时间长了难免乱,领袖人物要定期排除,及时消除臭味
3、引导小弟们做代码审查。审查的意义不在于监督,而在于学习和维持良好的态度。学习指通过代码审查学习别人的长处,同时帮助别人进步。保持良好的态度是指如果预知了有人会看自己的代码,那么就会自觉地尽量把代码写工整,即使审查代码的人偷懒没有真真看过,正所谓,如果人人都相信三尺之上有神灵,那么也就没人做坏事了,宗教的积极意义就在于此,扯远了。
4、过目数据库设计
5、及时更新或委派组员更新文档
关于文档,还需多说一句:只有再非常有必要写文档的情况下才写文档。如果写了一大堆可有可无的文档,代码更新后文档也要及时更新,很难做到的。一个新手面临着一堆和代码脱节的文档只会起误导作用,以代码本身的表达力和口头交流为主,以文档交流为辅,两手都要抓,一只手硬,一只手软。
不十分差劲的算法
相信大部人做的项目都是性能不敏感的,只要稍稍注意就能做好。比如该使用分页的地方就使用分页,该根据条件查询数据库的就别一次都查出来,该优化数据库就优化数据库。
此外,压力测试也很有必要,有的性能问题只有在数据量大了的情况下才出现。很多性能问题都是到了生产环境中才暴漏出来的。
代码之外
和团队建设比起来,以上只能算是雕虫小技,只起到了一个锦上添花的作用。如何使团队保持活力,保持积极性才是较重要的,通常也是较容易被领导忽视的,较难做好的,
蓝鸥科技西安中心,移动互联网科技育人专家,教育部产学合作协同育人项目承办企业,专注西安Java培训、西安大数据培训、西安VR/AR培训、西安HTML5培训、西安PHP培训,选择蓝鸥,不止高薪更是高起点!
显示全部
学校介绍
学校人气度:2047
2016-04-19
共439个
软件开发与培训
杨老师
蓝鸥科技是一家集产、学、研为一体的综合性移动互联网研发培训机构,致力于iOS开发、Unity3D游戏开发、Android开发和HTML5前端开发等软件人才的培养。蓝鸥强大的师资阵容,纯净的教育理念,严格的管理制度,使其成为了美国苹果公司AATC认证官方授权培训中心、Unity官方授权培训中心,也是目前国内仅有的一家”两大官方授权于一身“的移动互联网培训企业。
相关课程
加载更多
热门推荐
QQ咨询
微信咨询