非淋尿道炎立清好用吗

开发较复杂的 iOS 应用时,在建立清晰易懂的项目目录结构这方面,你有什么好的经验或心得?
目录结构就是指这个:&br&&img src=&/dacda17523bb_b.jpg& data-rawwidth=&263& data-rawheight=&295& class=&content_image& width=&263&&&br&在简单的应用中,我们用苹果默认的目录结构就可以让人看懂分辨各个类的作用。然而在一个较大型的项目中,会有几十个甚至上百个类,并且还会不断增加。如何建立一个清晰易懂的文件夹结构(目录结构),让一个新加入项目的成员也可以快速掌握各个类的功能和相互关系?&br&目录结构是按照相似功能(比如较重要的ViewController放到一起)分类好呢,还是对应应用的画面结构分类(比如搜索结果画面下面放置相关类)好呢?我想后者在实际应用中很多,但似乎也有缺陷。比如画面过多过于复杂的时候,难以对他们进行清晰的树状分类。&br&我在网上找到的较好的资料比如这个帖子:&a href=&/industry/9.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS项目的目录结构和开发流程&i class=&icon-external&&&/i&&/a&&br&欢迎大家积极分享自己的心得经验,或者分享网络上的优质资料。&br&&br&注&br&本问题无需涉及Xcode默认生成的初始文件目录结构的讲解。&br&拒绝毫无干货的答案比如“不需要考虑这种结构”“用苹果的默认结构就行了啊”。
目录结构就是指这个:在简单的应用中,我们用苹果默认的目录结构就可以让人看懂分辨各个类的作用。然而在一个较大型的项目中,会有几十个甚至上百个类,并且还会不断增加。如何建立一个清晰易懂的文件夹结构(目录结构),让一个新加入项目的成员也可以快速掌握各个类的功能和相互关系?目录结构是按照相似功能(比如较重要的ViewController放到一起)分类好呢,还是对应应用的画面结构分类(比如搜索结果画面下面放置相关类)好呢?我想后者在实际应用中很多,但似乎也有缺陷。比如画面过多过于复杂的时候,难以对他们进行清晰的树状分类。…
按票数排序
哇塞大神提问啊~~~我也来回答一下。我的思路是先按 MVC、工具和第三方库 划分成为顶层目录,再根据各自的特性划分二级甚至三级目录,但一般不超过三级。题主这个问题:目录结构是按照相似功能(比如较重要的ViewController放到一起)分类好呢,还是对应应用的画面结构分类(比如搜索结果画面下面放置相关类)好呢?在我的项目经验中,全部是第二种分类,目录结构中,页面之间是平行关系,在程序界面过多的时候(我还没有碰到过这么多界面的项目o(╯□╰)o)我认为可以按大功能模块再次划分。以下以我个人写的一个小 App 为例(后有截图供参考):------ThirdParty(第三方类 / 库)  |- UMessage    |- UMessage.h    |- ...  |- UMAnalytics  |- ...Utils(工具类)  |-Network(网络工具,比如 HTTP、Socket 封装等)  |- UI(UI 工具,封装一些动画等)    |- FLUIUtils.h    |- FLUIUtils.m    |- ...  |- ...Models(模型 M)  |- ModelUtils(仅用于模型的工具)  |- LocalStorage(本地存取封装)  |- ZFSystem(特定功能相关,内容分析等)    |- xxx.h    |- xxx.m  |- MessageBoard(留言板)  |- ...ViewControllers(VC)  |- Login(登录页)    |- ZQVCLogin.h    |- ZQVCLogin.m    |- ZQVCLogin.xib(这个 App 写得比较早,所以还在用 xib)  |- User(用户信息页)  |- Library(图书馆功能页)  |- Score(查分页)  |- About(关于页)  |- ...res(资源)  |- common(通用资源)    |- xxx.png  |- animations  |- login  |- ...------这个工程
开发的时间较早(12年底)现在 Xcode 已经可以用 Asset Catalog 来管理资源。另外在源文件较多的时候搜索一下也是很快的~~求各路大神路过拍砖~-----附工程截图:
实习期间学到的东西 + 自己的一些小小改动,我想大概是这个样子:划分为 MainProject 和 SubProject ,其中 SubProject 用来解耦让数据模型和网络、数据处理的逻辑和UI的逻辑分开,并将SubProject模块化成静态库,用Git Submodule管理SubProject与3rd库版本,功能一目了然。MainProject 主要是功能、根类、美术资源、文档、第三方库、系统库的划分见图:---------------------------------Main Project--------------------------------------------Base (用于继承公共根类)RootNavigationControllerRootViewControllerRootToolBarViewRootView···Main (AppDelegate、容器视图控制器、宏)AppDelegateContainerViewControllerMarco···Features (功能)Feature 1 Group - Feature 1 View ControllerFeature 2 Group - Feature 2 View ControllerFeature 3 Group - Feature 3 View Controller···3rd (第三方库)SDWebImageMasonry···Images (图库资产)DarkMode Group - ···.pngDayMode Group - ···.png···Doc (文档)UI Group - UI.mdKernel Group - API.md···SystemFrameworks (系统框架)Fundation···---------------------------------Sub Project (模块化成静态库)--------------------------------------------Model (数据模型)PersonDogCat···Handler (对应功能的网络、数据处理逻辑)Feature 1 Group - feature1handlerFeature 2 Group - feature2handlerFeature 3 Group - feature3handler···ScriptConvertJsonToModelUpdateModel
用Cocoapods做private库多好,谁开发谁的组件,别人调接口就行了。group再好再结构化,文件一多也没办法了。这么堆一起怎么跟别人的项目合并呢?
Cocoapods 这个是一个小的分水岭 善用Cocoapods会非常快速提高整个编码效率/复用效率/框架效率还没用起来的同学速度,有使用问题私信
有些公司的做法是,尽可能的把各个模块变异成库,iOS就直接用静态库,少使用源代码。
拆分子项目。======== 具体回答 ========做过最复杂的iOS项目是《极品飞车》,资源文件数十GB,源代码纯文本数GB(不能写具体数字)。项目大到这个规模,有一部分代码是编辑器生成的,但是生成的过程耗时太久不能每次都运行,所以还是保存起来。其他代码是通过独立的工程编译,到主工程去组装的,主工程打包95%是自动运行的,很少人工介入。
我们的目录结构年初大概是这个样子..当然现在已经进化了..NOTE:最好不要让不参与开发的架构师/其他平台开发人员们过分干预..很难受 不说了..UI(Views/ViewControllers)NavigationNavigationTitleViewNavigationBarBaseController...LoginLoadingViewLoginViewControllerErrorView...HomeHomeViewHomeViewControllerContentScrollView......ModelUserModelFoodModelCarClassModel...MacroAppMacroNotificationMacroFunctionMacro...ToolsNetWorkManagerDBManagerFileManagerCategoryNSString+UtilsUIView+Utils...ResourcesImagesLoginOK.pngcancle.png...NavigationBackground.pngbackBtn.png......LocalFiles...FrameWorksThirdLibASIHTTPRequestFMDBReachAbility...SystemFrameWorksCoreGraphics.frameworkFoundation.frameworkUIKit.framework...Others
另外你如果看過 WWDC 2013 Session 228 你應該知道用 Shift + Command + O 來快速打開你想要的文件,而不是一個個在目錄裏面找。
同推荐cocoapods,统一管理第三方库,干净利索
先划分主工程和子工程,再划分目录层次结构。当前位置:专题 > 收集整理热卖排行榜
相关搜索:
热门搜索:
热门关注:

我要回帖

更多关于 得了非淋怎么办 的文章

 

随机推荐