2024年2月20日发(作者:)
统一项目编码的作用和意义
不同的人由于编码经验和编码偏好相同,项目中同一个功能的实现代码可能千差万别。往往在一个项目开发过程中,不同的人会负责不同的模块,如果每个人都很随意地按照自己的偏好编写自己部分的代码,不考虑其可阅读性和可维护性,那么如果某天该模块的同学休假或者离职,对于其他接手维护的人来说,将是巨大的灾难。并且让整个项目面临风险。如果项目中代码风格统一,接手人员只需学习了解这一种风格即可触类旁通,剩下的只是产品逻辑;如果项目的n个人n种风格,那么接手人员将学习n种代码风格后,再学习产品逻辑,增加了接手难度。统一的代码风格有以下几个好处:
•
让新接手的人易于阅读,快速入手;
•
让项目更加易于维护;
•
可以减少一些简单代码的注释;
•
提高合作效率;
二、统一代码风格之实现
•
代码分段将具有相同或相似功能的代码放在一起,并添加分段标注。在ios开发中,可以通过如下形式添加分段:
#pragma mark - private methods
其中“#pragma mark -”为固定格式,“private methods”该分段表示的含义,此处说明该分段中的皆为私有方法。
•
代码分段,并且指定一定的顺序如果代码分段的顺序混乱,也不利于其他同事快速找到相应的方法。指定一定的顺序,形成共识,有利于提高协作效率;一般情况,
在ios开发中的一个vc文件中,可以通过以下顺序进行分段:
#pragma mark - initialize methods
#pragma mark - life cycle
#pragma mark - super methods
#pragma mark - private methods
#pragma mark - public methods
#pragma mark - event
#pragma mark - <<#delegate#>>
#pragma mark - property
#pragma mark - dealloc
•
对视图的统一处理在ios开发中,每个页面都不可避免的会有很多的视图操作,页面越复杂,视图操作越多。几乎页面上添加每一个视图操作都有:addview、addconstraints,addaction等操作。如果这些视图操作随意放置在不同的位置,对于来维护的人来说,是很难理清响应的逻辑的。此时我们可以把所有视图的相操作都放置在同一个方法中,下面把多个视图的操作都归集放在setupsubviews,setupconstraints,setupevent三个方法中。不管有多复杂的页面,在这三个方法中可以迅速找到对应的方法和逻辑,如下代码所示:
- (void)setupsubviews {
[self addsubview:nerview];
[self addsubview:ageview];
[self addsubview:view];
[self addsubview:view];
}
- (void)setupconstraints {
[view
mas_makeconstraints:^(masconstraintmaker *make) {
}];
[nerview
mas_makeconstraints:^(masconstraintmaker *make) {
}];
[ageview
mas_makeconstraints:^(masconstraintmaker *make) {}];
[view
mas_makeconstraints:^(masconstraintmaker *make) {}];
}
- (void)setupevent {
/** 恢复按钮 */
[ebtn addtarget:self
action:@selector(restoreimage)
forcontrolevents:uicontroleventtouchupinside];
/** 旋转90度按钮 */
[onbtn addtarget:self
action:@selector(rotationimage)
forcontrolevents:uicontroleventtouchupinside];
/** 删除按钮 */
[btn addtarget:self
action:@selector(deleteimage)
forcontrolevents:uicontroleventtouchupinside];
/** 添加图片按钮 */
[gebtn addtarget:self
action:@selector(addimage)
forcontrolevents:uicontroleventtouchupinside];
}
xcode是一个很强大的工具,为我们提供了自定义代码块的功能,对于一些常见的方法、协议、或者固定格式写法,我们都可以自定义成代码块,在项目中需要该段代码时,我们键入少量的代码,xcode即可以自动补全该代码块的内容。统一的自定义代码块,可以让每一个项目成员在要实现同样的功能时,写出的是完全相同的代码风格,有利于不断的形成共识。关于如何自定义代码块,我们将在下一期专门进行说明。
在一个复杂的文件中,会有很多导入的头文件,对头文件进行分段也会使代码结构清晰。可以按照以下分段进行:
//system
//vc
//model
//view
//helper
对于view,vc,model等不同的模块,最好根据项目的需要能提炼出相应的base基类,把一些不断重用的方法写到基类中,那么其他人要使用该功能的时候,可以直接调用基类中的方法,这也有利于大家写出的代码相对统一。比如uitableviewcell有对应的uitableviewbasecell,uiviewcontroller有对应的uibasevc,model 有对应的basemodel。
oc 作为面向对象的语言。objective-c 中的 category 就是对装饰模式的一种具体实现。它的主要作用是在不改变原有类的前提下,动态地给这个类添加一些方法。将需要的方法写到category中供所有项目成员使用,也能使大家的代码风格更加的统一。
对于代码规范,开发团队一定要审核,每个人都要提出充分的建议。经过讨论,可以形成一个操作性强、共识性强的有效规范,使其得到有效实施。
一家开发规范的公司一定会进行code review,那么在code
review的过程中,不仅可以团队成员之间进行相互切磋学习,发现业务代码实现中的问题,更重要的是这是一个团队代码风格进行融合的机会。团队leader组织大家定期地进行code review,是对团队负责,对公司负责,对自己负责的表现。
发布评论