一个技巧让你在编程中减少Bug

很多刚入门的程序员,在实现程序的时候都希望一步到位,将程序代码一次完成。这一方面是因为刚入门程序员接触的项目比较简单,代码量不多。另一方面,也可能是缺乏开发经验导致。一步到位实现程序有两个结果。一是程序正常运行,另一个是一运行就出现错误。排查起来相当麻烦。笔者在这里提供一个搭建UI界面的小项目,分析其实现过程中怎么减少bug的出现,提高编码效率。

项目是支付宝的口碑界面。如下图


整个界面实现起来并不困难,可以使用collectionView或者tableView。然后添加一个头部视图,和底部视图。头部视图xib文件中添加collectionView,通过自动布局将数据加载到视图中。但这里我们不重点讨论该界面的实现。我们关注的是如何在实现一个项目时减少bug的出现。这里介绍的方法是在实现项目的时候边实现变检查。同样,在通过AFN从网络请求数据的时候也应该写一段代码后运行检查代码的执行效果。在通过自动布局设置好一个控件后,就可以运行看下运行效果,如果实际效果和我们的预期效果有差别,我们再着手进行修改。或者出现报错情况,我们也可以及时进行修改。但如果把所有空间都设置完成,再去检查,出现报错后问题就很难进行排查。整个项目可以从简单的方面入手,方便编程过程中直观地检查已经写好的代码有没有运行成功。

例如上面这个项目。假设我们要通过自动布局,tableView来实现。我们就要在storyBoard中拖入tableViewController.按照程序的实现顺序,我们先从上往下实现。第一步先实现headerView.在这里headerView有多种实现方法可供选择,第一种是使用xib,然后通过九宫格算法布局控件。第二种是使用原型cell。但在这里最简单的方法是使用collectionView,然后通过xib布置子控件。我们去实现这些步骤的时候不是先去计算collectionView中item之间的间距,还有内边距等。实现时我们先使用假数据写死collectionView的item,让collectionView先显示出来。再通过视图显示效果去调整页面布局。根据我们的想法计算边距,内边距等,然后再运行查看我们的计算结果和和运行效果。如果界面不理想,就再调整算法,直到视图显示正常为止。这样做的好处是能够动态地调整我们的算法。能及时检查出代码中的错误,进行调整。

头部视图实现了,接下来就实现中间的活动图片,我们可以使用原型cell,或者xib来实现。同样,我们关注的是怎么在现实过程中及时排查错误。视图排查错误的方法和上面一样,也是这篇文章所介绍的方法的重点,就是第一步先让视图先显示出来,然后根据运行后显示情况来进行调整。在这里我们先给xib一张图片。然后返回6个单元格,查看图片的显示效果。再调整大小。

最后是相对复杂一点的具体商店展示。在这里我么通过xib使用自动布局,布置控件。然后将其中一些需要修改值得约束作为类的属性。在controller中进行判断,如果没有活动就将控件隐藏,将约束的值设为0;这里实现步骤是一样的,先赋值假数据。让视图先显示。显示完了之后再根据显示效果动态调整。最好是实现一个小功能后就运行检查一遍。

除了实现界面时可以使用上面的方法,我们在写其他代码的时候也应该遵循这个方法。例如写了懒加载代码后,可以先运行后检查数据是否加载成功。因为懒加载和添加数据的时候我们有时会忘了给数组实例化,这时候给数组中添加数据后数组仍然为空,如果我们添加数据后就运行检查看数据加载成功没有,就很容易找出问题的锁所在。

你可能已经发现,上面的重点不在于整个界面如何实现。而是在于实现过程中怎么减少错误的出现。这个方法也是大部分有经验程序员在使用的一个方法。但一些刚入门的程序员还没注意到这个问题,或者没很好地使用这个方法。导致编程过程中出现bug无法及时排除,影响写代码的速度。所以在这里提供的方法希望对你提高编程效率有帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 3,817评论 1 22
  • 无数次想为相见恨晚的人倒流时光。
    riga里加阅读 125评论 0 0
  • 最近刚刚读完《万物的签名》,思绪一直在游离飘忽之中,她是如此的气势磅礴不遗余力的详尽描述了一个女人悲喜交织,甚至是...
    敏敏的日记阅读 539评论 0 2
  • 心飞向故乡 人还在途中 高速上绵延起伏的车龙 慢慢地煎熬着我的灵魂 打开车窗 把心情放飞风中 和云朵同行 踩着云朵...
    港城牛仔阅读 296评论 0 0