最近闲来无事去面试一下iOS开发,让我感到吃惊的,面试官竟然问怎么分目录结构,还具体问每个子目录的文件名。

目录结构确实非常重要,面试官这么问,无疑是想窥探开发经验。清晰的目录结构,可让人一眼明白相应的业务和职能,这也能体现开发者的经验和架构水平。

目前,我接触过的项目中,比较常规的两种结构:
1.主目录按照业务分类,内目录按照模块分类(主目录按照MVC架构分类,内部根据项目模块分类)

优点:相对比较快定位对应的业务。
缺点:模块相关类太过分散,需要来回切换寻找文件,不方便开发。

2.主目录按照模块分类,内目录按照业务分类

优点:对模块的类集中化,方便管理与开发。
缺点:当几个模块共用一些类时,不太好归类。

假设对简书iOS应用目录分类(非官方):

  • 1.主目录按照业务分类,内目录按照模块分类
  • 2.主目录按照模块分类,内目录按照业务分类

注意: 以上两种分类不是绝对的,具体还得按照业务需求去归类。如果公司多项目的话(指外包公司,哈~),可以尝试按照自己的逻辑去归类,或可以多观察下身边大牛搭建的项目,会吸取到其中的奥秘。代码也一样,多看看大神写的,甚至可以直接模仿大神的代码风格,别人也会把你当做大神!
ps:有评论说,目录备注中文名感觉就lo了。确实开发中,一些非常有经验的程序员,不会这么干,甚至在代码中也很少中文注释。但个人觉得,普通或中高级工程师真滴很有必要多些注释,由于经验少,变量和方法名可能都命名不好,很多用googl翻译直译,甚至自己到审查代码时都不能直译出来。多谢注释好处就是就算你看不懂我写的代码,也一定能让你知道这是干什么滴(万不得己时,哈~),方便自己也方便别人!最后,目录没有真正的好坏之分,只要适用于自己的业务,就是好的目录!

最新文章

  1. android studio 集成微信登录
  2. Python下使用help(dict),显示'more'不是内部或外部命令,也不是可运行的程序或批处理文件,该如何处理?
  3. lightetreeview
  4. Asp.net MVC的actionlink到Areas里action
  5. redis 入门笔记(一)
  6. [ACM] 九度OJ 1553 时钟
  7. Activity详细解释(生命周期、以各种方式启动Activity、状态保存,等完全退出)
  8. 解决Ubuntu Adobe Reader 菜单栏空白
  9. Hi Java!!!---来自十八岁的程序员随笔
  10. python自动化开发-[第十七天]-django的ORM与其他
  11. select2插件 多选框动态初始化值
  12. RMQPOJ3264
  13. 雷林鹏分享:C# 环境
  14. python记录day24 模块的语法
  15. f5故障排除
  16. Java Http接口加签、验签操作方法
  17. Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32)
  18. [置顶] 安卓弹出ProgressDialog进度框之后触摸屏幕就消失了的解决方法
  19. 5G信令(就是用户身份信息)风暴——就是客户端通过公钥加密的消息(携带手机IMSI号)发给服务端,服务器需用私钥解密,这个解密比较消耗资源,如果短时间大量请求到来就会触发信令风暴
  20. 6. Javscript学习笔记——BOM

热门文章

  1. PHP 下基于 php-amqp 扩展的 RabbitMQ 简单用例 (一) -- 安装 AMQP 扩展和 Direct Exchange 模式
  2. Day 14A 网络编程入门
  3. Oracle排名函数(Rank)实例详解
  4. 题解 洛谷P4198/BZOJ2957【楼房重建】
  5. std::function和std::bind详解
  6. Linux环境下验证码不显示F12报500
  7. eclipse 导入svn项目并添加server
  8. sqlserver常用简单语句
  9. NOI模拟(3.3)螺旋序列(出题人一定是月厨)
  10. AspNetPager控件的简单使用