我曾经作为一名程序员的错误

作为iOS程序员即使有几年的经验,我对我实际上并不知道的事情感到惊讶,并且过了一段时间,我意识到我所做的很多小事都是完全错误的。

我要写的并不是神圣的真理,我可能不会涵盖所有内容,但我希望通过分享我有趣的自己的经验,避免我的错误。

编写一个大规模的视图控制器

你有没有打开一个xxxViewController.m文件,并意识到它的长度约为1-2k行,准时地调用一个叫做xxxService的单例,它处理所有的网络或数据库功能?相信我与否,但把#pragma标记,甚至按逻辑顺序(查看周期,tableview委托/数据源,用户界面定制,...)组织你的代码,它仍然是你自己的噩梦,更多的穷人开发人员谁事后维护你的代码。

我最近已经交出了其他有多年经验的开发人员制作的项目,并且不会阻止他们拥有处理应用程序的所有调用的MainViewController。我有一个包含20k行代码的文件(是的,这是真的)。

补丁的东西,而不是修复

当我在某个问题上停留太久时,我会通过尝试排列结果以匹配预期结果并修复内部原因来修复错误。在一个没有同行代码审查的世界里,或者如果你是一个孤独机构的独立开发者,这是可以原谅的。我年轻的自己总是会说“它有效”,但我无法表达或发现真正的问题。

当你在一个真正有压力的工作环境下工作时,情况更是如此,并且错误正在以优先级高于质量的速度积累。无论你做什么,如果承诺质量不好,你会在不久的将来支付后果。

忘记清理你的代码

让我们诚实地说,当有些东西不能正常工作时,我们会用很多日志来污染代码库,这些日志会在运行代码后出现在控制台中。是的,我在谈论那些NSLog()或debugLog(),或者诸如// TODO之类的评论:它不在这里工作(#warning也是)。我打开了几年前我写的一个旧项目,一个英文测验应用程序,并相信我从来没有见过这么多无用的东西需要清理。

更干净的代码也将正常字符串(警报消息文本,标题,标签内容)或数字(年龄,特定数量,大小)移动到适当的常量值。我曾经过度使用宏#define,但现在我发现使用变量更优雅,我个人比较喜欢看到类似于:

let messageToDisplay = Constants.Alert.AddedPlayer.Message.Success

let messageToDisplay = ALERT_ADDEDPLAYER_MESSAGE_SUCCESS

缺乏沟通

如果所有不同的团体,开发者,设计师,项目经理和客户都相互理解,一个好的项目将会达到他的目的。是的,当客户决定改变主意时,他的代码不得不被重写,这总是令人讨厌。更年轻的我会因为设计师这么说而更换那些两个高10个像素的按钮,或者因为我没有正确完成重写整个模块而感到愤怒。我会喜怒无常,不要跟人说话,如果压力太大,就会吠叫。

现在,我会花更多时间参加会议,确保每个人都知道我的变化意味着什么,向我的项目经理作出估计,并警告是否会出现最可能发生的问题,并长期与我的设计师交谈。沟通是关键,而开发者自己编写代码的时代已经结束了。

成为一个更好的开发者......每天

我认为网上缺乏关于开发者日常生活的文章。这真的很个人化,很显然我可能错过了很多东西,但是我几篇文章试图记住我曾经做错的事情,相信我在以后还会写更多关于我现在做错了什么的东西!

我希望这篇文章能够帮助一些开发者,如果你看到自己在做我上面写的错误,那么就要小心了

我曾经作为一名程序员的错误

iOS交流群:638302184。我们不只是交流技术,我们也交流生活,吃喝玩乐。


分享到:


相關文章: