# DiDi（十七）

> 原文：https://pjhubs.com/2018/04/09/DiDi%EF%BC%88%E5%8D%81%E4%B8%83%EF%BC%89/
>
> 作者：PJHubs · 发布于 2018-04-09 · 标签：iOS、DiDi

## 2018-04-09

今天把小助手替换成了ONEAlertView，这是下次的分析😝。然后重点又再次分析了一遍ONEProgressHUD，有兴趣的同学可以看这篇文章。

[浅析ONEUIKit/ONEProgressHUD](http://pjhubs.com/2018/04/09/ONEUIKit-ONEProgressHUD/)


## 2018-04-10
又开始练车了，太痛苦了，困得不行。科三第一次模拟器一点用处没有啊，就听教练讲啊讲啊讲，然后盯着所谓的模拟器，这模拟器简直了，只能摸，甚至都不能用，只能跟着视频YY。

中午到工位上喝了一大杯茉莉茶，瞬间回血，重新整理1.3.5需求，发现Native剩下的内容就只有：
1. push改造。要做成动态配置，不过还是得到友盟后台去手工填单子，这两天再琢磨琢磨。
2. 哈勃接入完善。哈勃今天下午终于给了最终版，数据都拉回来了，感觉非常的高大上啊！虽然跟滴滴出行主App中的体验还是有些差异化，不过至少这是我目前接手到的第一个build在主App上的数据平台。
3. 消息。消息模块之前忘了加上下拉刷新了，导致产品再发App站内消息时根本收不到，kill完再进来就能收到了。emmm。
4. 我-国际化、首页header动态URL改造。这部分工作主要是后台跟进。

其中还有个热修复需求，不过这个需求是后加的，优先级非常低。但是本着强迫症的心态，想把每个版本的JIRA都点绿了，再去调研了又一个滴滴内部强大的而且正在线上使用着的热修复库——DynamicCocoa！这个库前年说要开源来着，但是一再延期，下午再去翻的时候，已经凉了，整个库都删掉了。看来，他们是彻底想私有化了，根本就不想开源。

来来去去几回终于拿到了相关的wiki权限，进去一看，跟去年看的又不一样了，从文档上看使用起来非常轻量，不过就是打包再发包这个流程还是比较懵逼，可能得到后边再仔细琢磨琢磨。总结来看，DynamicCocoa这个热修复库是完全基于OC的，而且还是使用了Annotation进行标记，只需要在Patch的方法后或者新类加上固定的Annotation即可，但是现在存在一个问题，虽然是以动态库的方式切入主Bundle，但还是不懂这一套到底是怎么实现的，先留个疑念。

然后又稍微看了看ONEAlertView，只看了一个secondary初始化方法的调用栈，然后接着扫了其它文件，woc，吓了一跳，这一个小的UI库近3000行代码。莫名害怕，这波分析起来感觉压力开始有了。🙄

最后开始电面了一个东北大学的大三iOS，问的问题全在之前发的《如何招到一个靠谱的iOS实习生》里，还拓展了几个小问题，前面几个概念基础答得一塌糊涂，int和NSInterger的区别只能说到，使用NSInterger更安全，问到底是安全啥，稀里糊涂的最后也踩到点上了，因为前天晚上拿到他的简历后，把这位同学的GitHub和掘金都刷了一遍（他自己放上来的），看到GitHub的时候，内心是拒绝的，但是看到掘金的时候一下子来了兴趣，先不管里边的文章内容有多少来自网络，但是至少能够发出来，而且排版还不错，说明了应该是有点料的。在后续的一来一回问答中，故意抛了他比较擅长的tableView调优和Block理解以及runtime的一些基础内容上，答的都还可以，基本上点都踩到了，所以咧，最后我给他的定义是，对平常经常使用的基础内容没有深究，但是却对iOS开发中的中等知识把握的还行，项目做的少，对项目的整体把握比较懵逼。

一般来说应届包括我自己都会走两个极端，一种是对基础掌握的非常好，但是对项目的整体把握有欠缺，另外一种是项目或者东西做的非常多，但是针对一些基础知识稍微欠缺（我是第二种🙂），但是我个人比较喜欢第二种，因为一般第二种同学一点就通，因为很多东西他平时都用过，稍微提醒他一下，引导引导，就能把这些基础知识都串起来了，不是说第一种同学不好，而是说基础夯实确实有必要，但是很多基础不一定能解近渴。


## 2018-04-11

今天科三第一次实际道路，以前总以为家里人开车上路是个非常简单的事情，但是今天第一次上路后彻底慌了，好几次差点在大马路上熄火，再加上车有点弱鸡，二挡老是换不过来，开完两圈后背全吓湿了。😓

拖着疲惫的身躯到了公司后，开始对接昨天整理出来的遗漏需求，弄完了消息页的下拉刷新后整个人都不好了，眯了一会接着撸push改造。我不太懂我之前的实习生同事是怎么跟产品定的push规则，产品已经好几次一脸懵逼的跟我对接了好几次这个规则，估计还得再对接个两三次这push功能的改造才算完事，但是之前的同事呢居然已经把所有push规则都写好了，然后Android那边啥都没有。。。😓规则写的也是乱七八糟，不知道在干啥，居然把整个友盟的push官方模板代码全都贴进了`AppDelegate`中，瞬间拉长了两倍的代码。

重新严格的按照wiki上与产品约定好的规则全部重写。。。嗯，今天的砖比较迷，都看不懂。


## 2018-04-12

结束了结束了，以后终于再也没有练车和这么多的早起了（从未对早起这么恐惧过

再次拖着疲惫的身躯，长舒一口气。接着昨天没写完的push规则改改改，本来想的是使用反射去做VC判断的，但是猛的发现，反射是动态创建啊，我要的是VC判断啊，所以尴尬的再次使用了if-else大法，最终做到了能够根据在友盟后台填写的key-value字段来进行动态的跳转固定的tabVC和webView内容。

随后还接着调整了下横竖屏，真的是一招下错，步步错，写代码真的是最后一步。😓
