作iOS开发, 不免会接手别人碰过的代码, 以前作过一些外包项目, 是别人已经完成了前期的功能, 而后到我这里就须要接着以前的任务继续开发, 相信不少在上班的朋友也同样, 老是会接着写别人的代码, 而后每次, 我相信你确定会和我同样, 看着看着, 心中一万条草泥马
~~~飘过, 而后不得不默默的填坑. 固然你写的代码一样的之后可能会被其余人看到, 因此我每次看到如下几种相似的代码, 一定会痛骂一番, 若是你但愿你写的代码之后少被人骂, 至少不要写出下面的代码吧... 前方高能~~~swift
发送,GET,POST请求
, 下载文件, 上传文件
这么四个常见的需求, 你使用AFN难道就不能本身封装几个接口出来, 而后项目中的网络请求都使用本身封装的这几个接口, 之后在更换网络请求库的时候直接更改这几个接口不就行了, 而不须要再全部项目中用到网络请求的地方都挨着挨着改一遍(基本是没办法改的, 不是到如今为止不少项目还使用着ASIHTTPRequest么),我见过整个项目使用swift来开发的, 而后网络请求库使用的是AFN, 项目中全部的网络请求都是直接使用AFN的接口来完成的, 结果后来项目决定须要更换为Alamofire, 而后... 你懂的@interface ZJHttpTool : NSObject
/**
* 发送一个GET请求
*
* @param url 请求路径
* @param params 请求参数
* @param success 请求成功后的回调(请将请求成功后想作的事情写到这个block中)
* @param failure 请求失败后的回调(请将请求失败后想作的事情写到这个block中)
*/
+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id responseObj))success failure:(void (^)(NSError *error))failure;
+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id responseObj))success failure:(void (^)(NSError *error))failure;
...
@end复制代码
constant.h
吧... 能不能加个类前缀, 虽然这种对项目中总体的影响不大(冲突了会报错, 你总会修改了吧), 可是这种不符合规则的类命名真的让人很不爽 据说过变量名使用英文变量命名吗? 你说这个计算机的世界是英语的世界都是事实, 你们都提倡变量命名使用英文来命名. 因此那些使用拼音来命名的爱国者是怎么想的, 见过一大堆的youxiangzhanghao, banjibianhao, xingmin, xingbie ...
, 你说这些常见的名词的英文你写个拼音真是让人没法直视啊, 只能让我开骂---必定是个英语弱爆了的傻X写的代码... 好吧还有一种人是这样的, 真是严格遵照命名规范, 因而项目中的变量名都使用英文的, 不过啊不过啊, 对于我这种六级飘过的学渣而言, 看大家这些大神高级的命名全靠词典啊, (电脑常备有道没有错) anticoagulant (抗凝剂), tranquilizer(镇定剂)... 总之一堆一堆的药名和专业名词
这些东西简直不能忍啊, 看代码就是查字典去了, 这里我但愿用拼音, 哪怕别人骂我是用拼音的傻逼...// 高度为44看上去更合适
self.searchBar.frame = CGRectMake(0, 22, 320, 44);复制代码
像这种, 在controller中遵照了许多个协议, 不少方法都不知道是那些协议里面的, 至少你也要加个注释什么的吧 ...
- (void)saveBtnDidTouched {
// 代理一...
}
- (void)sexDidChanged {
//代理二...
}
- (void)downloadDidFinished {
//代理三...
}复制代码
原本是用来吐槽最近见到的奇葩代码的, 不过写着写着就不想继续吐槽了, 反正最终仍是要继续填坑, 不过, 但愿你不会再写出这么诡异的代码出来了, 由于-----真的是会被骂的网络