每周总结 - 0518

  本周买了画板,画纸和一大堆铅笔,打算就着 B 站的素描入门视频学习画画,练习了一两天线条,小臂和胳膊的肌肉持续酸痛,一个现在已经不联系的朋友之前回答我如何不费劲的练肌肉,说学画画。之前以为他是开玩笑,现在看果然如此。
  周一花了半天结束交接了上个项目,本周主要工作是封装兄弟公司的语音 SDK 到原来我们集成了腾讯,百度,讯飞,阿里语音的 SDK 中,新的语音 SDK 从逻辑可以看到封装者的思路,基本上是想把我们需要做的都做了,只暴露出实现功能需要调用的接口,虽然使用时清晰直观,但对于我需要二次分装不算友好,比如各个阶段的状态返回,开始录音结束录音,开始识别语音,和语音回馈,我只好作比较粗糙的处理,比如在调用开始录音方法时,主动调开始录音状态的回调,因为监听不到停止,但在他返回的一个枚举方法里有开始识别的状态,我就在这里放了停止录音的回调。
  虽然这个方法可以让我二次封装正常进行,但是在实际体验上,仍可以预估到可能发生的问题,比如本地音乐在播放的时候,启用录音,语音助手在播报时,播放本地音乐等等,一些场景交错下的体验问题。这让我反过来想封装一个框架,我们真正应该思考的是什么?简单便捷,还是复杂详细但面面俱到,参考官方暴露出来的框架和回想过往开发,我想这个问题应该是没有标准答案的,不同的产品有不同的需求,因为哪怕官方的框架,我也遇到过需要用 oc 运行时态的特点来替换系统方法来实现需求的问题。所以没有十全十美的框架,好的框架需要的是与时俱进,不断迭代和维护。另一方面也可以从这点上看出开源的优势。
  另外还有关于这方面的内容就是发现了一个这个仓库:iOS开发:我的初级到中级的晋级之路。里面介绍底层的相关知识很详细,还有完整的工程源码,我打算每天看一篇有关底层的文章。在掘金上看了一篇关于大佬面试的文章,里面针对三年经验的一些技术问题,有些我知其然而不知其所以然,算下看我做 iOS 开发也接近三年,但前期没太注意技术累积——虽然也有一部分是中间分心去弄安卓开发,导致现在每次提升一个方向的知识,总要从底层一步一步看上来,很麻烦,而且也因为这点导致在工作岗位上的处境也有些尴尬。
  以上。