最近公司换了个产品经理,该公司以产品线为主,无项目经理,无疑便是产品当道,所谓新官上任三把火,推翻之前的迭代了3次的项目,故辛辛苦苦大半年,一夜又回到了解放前,用粗俗的话来说就是在老板面前会拍马屁,而且还能拍的一套一套的,马屁成精的他成为boss身边的红人,那嘚瑟的呦 !!!谁怼了他,那就不得了!实在是无力再吐槽了。
而作为程序猿的我们,代码质量以及效率才是我们该追求的,不多说了,上demo才是硬道理!!!
<一>项目搭建
首先先看
AppDelegate
放的是AppDelegate.h(.m)文件,是整个应用的入口文件,所以单独拿出来。
Base
工程主体类, 日常大部分开发代码均在这里,又细分了好多次级目录。
Base( 基类 (整个框架的基类))包括:
- ControllerView
- BaseNavViewController(通过
appearance
统一设置nav的相关设置) - BaseTabBarViewController(设置TabBarVC)
- BaseUIViewController(主要分三块需子类重写:setupNav ,loadDataFromNetwork,setupUI)
- BaseWebViewController(加载网页)
- BaseTableViewController(设置tableView和刷新)
- BaseNavViewController(通过
- Model公共BaseModel (将第三方的进行封装,子类继承于BaseModel)
- Views公共View (封装的一些常用的View)
Classes
以TabBar名字命名(一般是大概在3,4,5个左右,主要看产品需求),这里只拿其中一例作为说明。
例如其中首页部分:
补充
作为一个程序猿不管是刚入门也好,是大神也罢,代码规范是一定有的,并让这种规范成为你的习惯,这样有利于其他同事查看,也方便自己看,别自己下次看的时候,自己都看不懂了,那就😓了。
Public
主要放一些通用的东西,包括公用的cell和控制器、数据库等等
Expand
- Category(UIKit和UI)
- Macros(所有的接口(ConstUrl)、枚举以及通知名称(Const)、配置友盟账号、主题颜色、打印、环境(开发、测试、预发布、正式) Macros)
- Network(网络请求包括配置公共参数)
- Tools(MD5加密等等)
SDKFile
第三方的类库/SDK(Wechatpay/Alipay/UMSocial等等)
Vender
第三方的类(Reachability/FLAnimatedImage/SDCycleScrollView等等)
Resourse
主要包括(Image和plist文件)
Supporting Files
放XX.pch文件
补充
之所以把所有的接口写都在ConstUrl中,是因为之前吃过这么一次亏,后台之前很乱,之前都是以.方式进行拼接,后面改成以/的方式进行拼接。
例如
之前
doindex.getIndexlbt
之后
index/getIndexlbt
<二>代码规范
命名规范(驼峰式)
Url统一命名规范
ConstUrl.h
UIKIT_EXTERN NSString * const kGetActivityInfoUrl;
ConstUrl.m
NSString * const kGetActivityInfoUrl = @"activity/getActivityInfo";
- 枚举和通知统一在Const中写
Const.h
/********************通知**************/
//登陆成功
UIKIT_EXTERN NSString * const kLoginSuccessNotification;
/*----------------------------------枚举----------------------------------*/
//国家 0中国 1美国 2泰国 3越南
typedef NS_ENUM(NSUInteger,LYCountryType){
LYCountryTypeChina = 0, //中国
LYCountryTypeUSA = 1, //美国
LYCountryTypeThailand = 2, //泰国
LYCountryTypeVietnam = 3, //越南
};
Const.m
/********************通知**************/
//登陆成功
NSString * const kLoginSuccessNotification = @"kLoginSuccessNotification";