iOS 如何写出更加严谨的应用

本文旨在介绍一些能够帮助大家避开一些开发误区的经验。

一: 在开发中,经常能够遇到共用同一个界面的情况,一般情况下,我们会根据传入的model去做数据处理和保存。

当然如果不存在复用的情况下,根本不需要有太多的考虑,这里不考虑小应用的情况。

在追求界面复用的情况下,一个应用出现一个界面复用两次,三次都是很常见的吧!那么我们还是根据传入的model去处理,这样对后来阅读代码的人来说,是一件很难受的事情。如何处理,才能少出错或者不出错,应该是我们的追求。

对于复杂的逻辑,拆分往往能起到清晰明了的作用。这里是用枚举和swith case 去处理,每一个不通过界面传递过来的处理和回调问题。

这样下次不论谁读代码,都有一种清晰明了的感觉,不会出现调用的越多,传入的参数越多,逻辑越混乱的情况。

2:测试环境和正式环境一定要标注,保证自己不会忘。也算是给自己提醒。

最后在获得数据时候,需要将每个参数都看一遍。保证上传参数没有问题。当下意识去提前写某些东西的时候,其实你也就对可能发生的问题,有了提前的预估,在这之前就提前标记。

最近在开发App Extension,手动撸请求的时候,一定要标记根请求地址,防止本地请求和线上请求混淆,避免在开发过程中一直出现找不到服务地址的问题。

3:在开发迭代过程中,UI永远都是廉价的。每个版本都要删除一些不必要的控制器Controller去替换,或者当我们需要修改一些特定逻辑的时候,全局搜索,别忘记用。如果你觉得工程中的命名不符合Apple的开发规范,那么也别忘了一键替换所有类名。

4.冗余的界面需要统一的回调,统一的处理,统一返回给服务器。类似这样的界面总共19列,那么为了减少处理逻辑,统一处理,必不可少。先不说,这有多少人用,先看看如何处理的。

5: 编码记得先写文档

采用比较自由的方式,把你要做的事情,还有做事情的步骤描述清楚的文档。这样的文档不需要限制格式,甚至你可以手写在自己的笔记本上面,只要自己能看得懂,在开发过程中能够随时查阅就可以了。

刚开始工作的时候,总是一接到任务就马上开始写代码,结果可能遇到了很多问题,例如:

1. 需求本身就存在问题,代码写到一半以后才发现

2. 部分需求没有表达清楚,发现的时候才去沟通,结果发现时间不够,或者跟之前的代码产生冲突

3. 代码写到一半时,发现自己思路不对或者不清晰了

最后很有可能导致项目延期。

如果在开发前就把需求分解好,把问题沟通清楚,把要做的点一个个列下来,就能大大地避免这些问题。

再比如,我们做App Extension,之前没做过,那么最开始的时候应该是收到通知任务 ----》 寻找开源项目(这一步需要多做功课,看的越多,熟悉的就多)------》根据开源项目,查看AppDeveloper 开发者文档 (尽量去读一遍,保证有个印象)-------》确定开发时间------完成工作。

6.实现需求,最好先写Demo.

用 Demo 来实现一个需求是最快的,因为它运行快,可以随意修改,而且代码量少,如果实现过程出现问题,很容易就可以定位到原因,保证问题能够快速的被找到。也就是隔离法。

先建立一个 Demo,然后把需要的资源移植过来,把功能实现以后,再移植到项目中,这样可以节省不少开发时间.

我的备忘录中,每天都有备忘的代码,确保自己不会忘。

时间: 2024-07-28 23:08:14

iOS 如何写出更加严谨的应用的相关文章

写出优美代码的方式,两个习惯:一步到位VS迭代优化

最近把手头这个安卓APP的所有事务性方法都写完了,有了以下体会,新手体会,老鸟轻拍 想写成优美代码的人一般都会有这样的想法: 一定要在写每一句代码,写每一个方法,构造每一个类的时候,都要记得优化:解耦以复用,拆分方法以复用,使用循环减少冗余,限制循环次数减少无效操作,等等.. 这个想法一定没有错,但很多时候往往会是这样的情况: 当功能一复杂,比如你已经分解了几个方法,比如你已经使用了几层循环(有点过分...),比如在多线程中 你经常无法一步到位地完成那么多优化 这往往造成你写一句代码会思考很久

ios如果写一个提示带动画的View,可以来引导用户行为

先上图: 这个UIView可以这样写: -(id)initWithFrame:(CGRect)frame backImage:(UIImage*)image msgStr:(NSString*)txt txtColor:(UIColor*)color{ self = [super initWithFrame:frame]; if (self) { self.backgroundColor = [UIColor clearColor]; _paopaoImage = image; _txt = t

如何保持iOS上键盘出现时输入框不被覆盖

在 iOS5 上请求显示键盘时,系统从屏幕底部将键盘滑入上来,位于应用的内容之上. (墙内:http://mikixiyou.iteye.com/blog/1488302) 如果屏幕中的内容项目比较多,它就可能覆盖住文本输入框之类的对象.你必须调整你的内容,使得输入框保持可见. 你会想到哪些处理方法呢? 第一种, 临时调整窗口中各个视图的大小,使得键盘从下向上占领的区域空白.键盘的高度( keyboard.size.height )是一定的,将视图中所有内容所在区域的 y 值减小到 y-keyb

【技能】使用纯CSS+html写出方向箭头,简单大方,好看

使用纯CSS+html写出方向箭头,贴出来就可以用,100%原创 <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style type="text/css"> .pointsRule{ display: inline-blo

我的Java历程_写出这个数

lzJava基础进行中,今天偶然间看到的一个题目: 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字.如下代码: import java.util.*;public class Main2{ public static void main(String[] args){ String[] date = {"Ling", "Yi", "Er", "San", "Si", "Wu&q

代码示例:一些简单技巧优化JavaScript编译器工作详解,让你写出高性能运行的更快JavaScript代码

告诉你一些简单的技巧来优化JavaScript编译器工作,从而让你的JavaScript代码运行的更快.尤其是在你游戏中发现帧率下降或是当垃圾回收器有大量的工作要完成的时候. 单一同态: 当你定义了一个两个参数的函数,编译器会接受你的定义,如果函数参数的类型.个数或者返回值的类型改变编译器的工作会变得艰难.通常情况下,单一同态的数据结构和个数相同的参数会让你的程序会更好的工作. function example(a, b) { // 期望a,b都为数值类型 console.log(++a * +

写出一个缓存系统的伪代码001

/** * 写出一个缓存系统的伪代码 * @author ysloong * */ public class CacheDemo { private Map<String, Object> map = new HashMap<String, Object>(); public static void main(String[] args) { // TODO Auto-generated method stub } public synchronized Object getDat

如何写出优雅的CSS代码 ?(转)

对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于团队合作和后期的维护:而有的混乱,虽然表达出了最终的效果,然而却晦涩难懂,显然团队成员在读这样的代码时就显得无从下手,更不利于后期的维护了.那么如何写出优雅的代码呢?下面我将以一个很小的项目就以下几个方面简单的表达一下自己的看法,如有不妥,望批评指正. 如何整理一个项目. 如何写出清晰易懂的HTML代码. 如何写出优雅的css代

Discuz论坛写出的php加密解密处理类(代码+使用方法)

PHP加密解密也是常有的事,最近在弄相关的东西,发现discuz论坛里的PHP加密解密处理类代码,感觉挺不错,在用的时候,要参考Discuz论坛的passport相关函数,后面我会附上使用方法,先把类代码帖上来: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 <?php /*