总结iOS开发代码实践总结-iOS开发技巧

总结iOS开发代码实践总结-iOS开发技巧

ID:43879035

大小:57.80 KB

页数:17页

时间:2019-10-16

总结iOS开发代码实践总结-iOS开发技巧_第1页
总结iOS开发代码实践总结-iOS开发技巧_第2页
总结iOS开发代码实践总结-iOS开发技巧_第3页
总结iOS开发代码实践总结-iOS开发技巧_第4页
总结iOS开发代码实践总结-iOS开发技巧_第5页
资源描述:

《总结iOS开发代码实践总结-iOS开发技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、总结iOS开发代码实践总结前儿个月完成对MVVM/RAC的学习Z后,最近一直在默默地对项目代码进行重构,写码比较多,过了一段吋间回头发现自己的代码风格还有代码质量都有人人的改善。过去几年在一家小公司负责iOS客户端后來负责客户端的研发工作,被杂乱的事情分神比较多,所以到去年的时候,写码已经不太多了。在新公司待了大半年,目前只是写码的小角色,所以精力基本上在写业务代码和业余学习乱七八糟的技术上面。最近一个月除了专门抽吋间和精力重构之外,还有就是遇到需要添加功能的模块的时候,由于项目中的代码历史因索

2、比较多,第一件干的事情往往是重构整理代码,发现很多之/而的代码写的时候没有注意的事情特别多,比如全局变量乱用;方法没冇层次感,胡乱添加;对业务不了解的情况下,通过打补丁的方式实现功能等等。所以我决定写一篇文章,把口己的觉得实践中需要注意的一些事项,具体总结一下分享给大家。减少对象属性这个是最容易改善代码质量的一个点,很多代码一眼看上去就会让人感觉很凌乱,一上来就是儿十个不同的对象变量定义在里面,这让不同逻辑之间莫名其妙没法分开。一个是定义的方式不对,很多莫名其妙的内部变量暴露在头文件中,讣外部调

3、用者根木不知道哪些才是public可以操作的方法。另外实际上,经过我自C这段时间的重构经验來看,大多数是可以通过局部变量或者_block变量来代替的。1.头文件中尽可能少暴露变量或方法,而要使用extension或者category放在・m文件,或者专门的private头文件中头文件屮暴露的信息越少越好,一切不必要的信息都不要暴露出来#importMZMBaseViewControll皂「・h"ZMHonteViewController:ZMBaseViewControllerm文件的cxtcn

4、sion中,定义conformsprotocol和对象属性,对丁•对象属性的定义,使用getter/setter来定义。^interfaceZMHonieViewController()

5、多说,需要写码的时候思路清晰一些,写完之后在commit之前即使review一定要check一遍,对自己的代码质量负责,codereview往往检查不出來冗余或者废弃的代码。不添加一个多余的对象属性,不留注释掉的代码,不留没有用途的代码,这些都是基本功,但是很多开发者就是做不到,或者说对写码没有爱,所以很多废弃的代码,我重构代码的时候,虽然对业务不熟悉,但是大多数模块都能删除掉十分之一的代码和大量的对彖属性,这个是单纯的不够用心。关于使用_block变量,这个是Android开发中我感觉到最不满

6、意的地方,这个特性简直太他妈爽了。比如这里,使用block的时候回传一些变量()isGalleryApproved:(SInte)galleryldhasFound=;[_approvedIdsArrayenumerateObjectsUsingBlocks^tNSNuinber*objrNSUIntegeridxr*stop)(obj•mtegerValuf=galleryld){未stop=;hasFound=;

7、}】;hasFourvd;再比如这里,我需要记录一个pern手势开始时,hca

8、dcrVicw的顶部坐标,结合RACZ后,本来需要全局变量来记录的值,使用—block变量即可搞定(!_panGesture){_panGesture=[[UlPanGestureRECogniz巳ralloc]init];_panGesture

9、^eakify(self);_bCGFicoriginHeaderViewTop=>headerViewop;[_panGesture.rac_gestureSignalsubscribeNext:(JIPanGestureReco

10、gnizer♦panGestureRecognizer)$strongify();(panGestureRecognizer・」=hn「「n印二3二匚丁){originHeaderViewTop=•headerView.top;>translation=[panGestureRecognizerjnslat:•];

11、(translation.y<0){CGF'target=originHeaderViewTop+translation.;CGFloatmaxHeight=.headerView.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。