草庐IT

一、RunLoop初体验~思考

NSTimer*timer=[NSTimerscheduledTimerWithTimeInterval:1repeats:YESblock:^(NSTimer*_Nonnulltimer){NSLog(@"%ld",(long)count++);}];[self.viewaddSubview:self.tv_list];写了个UITableView然后我添加个NSTimer,接下来回发生什么事情呢?当滑动UITableView时,NSTimer计时器就会停止。相信绝大多数开发者都遇到过这个问题,当然百度一下会有很多答案。[[NSRunLoopcurrentRunLoop]addTimer:t

一、RunLoop初体验~思考

NSTimer*timer=[NSTimerscheduledTimerWithTimeInterval:1repeats:YESblock:^(NSTimer*_Nonnulltimer){NSLog(@"%ld",(long)count++);}];[self.viewaddSubview:self.tv_list];写了个UITableView然后我添加个NSTimer,接下来回发生什么事情呢?当滑动UITableView时,NSTimer计时器就会停止。相信绝大多数开发者都遇到过这个问题,当然百度一下会有很多答案。[[NSRunLoopcurrentRunLoop]addTimer:t

DDD战术落地思考 — 要站在更高的层次与DDD作者达成共鸣

不要局限于DDD话术中,要站在更高的层级去思索,如果让你去更加高效的复用代码,你会做些什么。在考虑DDD为了完成这个目的,它会做些什么?再次:DDD与MVC最大的区别就是他会增加一些限制,来尽量保证设计按照期望的方向发展。DDD思想的最终目的就是实现代码层级的高内聚与低耦合。这也是软件设计的最终目的。但是如何量化常说的“高内聚与低耦合”呢?——代码复用(无论是常见的设计模式,还是更加高深的设计思想,其都是朝着如何使的代码能尽量复用而努力的。正所谓,改的越少,错的越少,迭代越快)如何实现代码的复用:保证行为的一致性(----DDD名词:聚合根)例如:订单和订单明细在操作是一体的,要封装起来对外提

DDD战术落地思考 — 要站在更高的层次与DDD作者达成共鸣

不要局限于DDD话术中,要站在更高的层级去思索,如果让你去更加高效的复用代码,你会做些什么。在考虑DDD为了完成这个目的,它会做些什么?再次:DDD与MVC最大的区别就是他会增加一些限制,来尽量保证设计按照期望的方向发展。DDD思想的最终目的就是实现代码层级的高内聚与低耦合。这也是软件设计的最终目的。但是如何量化常说的“高内聚与低耦合”呢?——代码复用(无论是常见的设计模式,还是更加高深的设计思想,其都是朝着如何使的代码能尽量复用而努力的。正所谓,改的越少,错的越少,迭代越快)如何实现代码的复用:保证行为的一致性(----DDD名词:聚合根)例如:订单和订单明细在操作是一体的,要封装起来对外提

小公司的前端建设的一些思考

在之前的企业项目开发中,做过一些前端基础建设和项目推进的工作。完成项目之后,一直没时间整理和反思在推进过程中,遇到的问题以及解决方案,由于前端团队人员较少,更多的是多人协作以及大家共同攻克一些问题。工具前端的编辑器,包括sublime,还有vscode,以及webstorm、atom这类编辑器,发展到现在,vscode成为了目前前端开发的主流编辑器在团队开发过程中,针对一些固定的插件,需要实现规范和统一。包括:tab缩进的大小,以及格式化的插件,例如在vue开发过程中,推荐使用Vetur进行格式化和代码约束,包括代码检查eslint这些工具。除了统一使用的插件作为规范以外,其他的插件作为个人爱

小公司的前端建设的一些思考

在之前的企业项目开发中,做过一些前端基础建设和项目推进的工作。完成项目之后,一直没时间整理和反思在推进过程中,遇到的问题以及解决方案,由于前端团队人员较少,更多的是多人协作以及大家共同攻克一些问题。工具前端的编辑器,包括sublime,还有vscode,以及webstorm、atom这类编辑器,发展到现在,vscode成为了目前前端开发的主流编辑器在团队开发过程中,针对一些固定的插件,需要实现规范和统一。包括:tab缩进的大小,以及格式化的插件,例如在vue开发过程中,推荐使用Vetur进行格式化和代码约束,包括代码检查eslint这些工具。除了统一使用的插件作为规范以外,其他的插件作为个人爱

iOS 启动优化

启动优化思考在面试时遇到这个问题,很多人信手拈来,上来就说:+load、减少离屏渲染、二进制重排等。不得不说,针对这个问题,这确实很重要的一环,对于工作3年左右的工程师没有任何问题,但对于>5年的高级研发工程师,是不是显得思考、方案不够系统化呢?(记住:面试时面试、盖楼是盖楼,我们可以稍微系统化思考一下这个问题)5W2H简单思考一下Why:为什么需要做这件事,表面上是需要完成任务,但是我们可以去剖析对方让我们完成这件事背后的意义所在;What:启动优化到底是个什么样的事情?是如何定义的?启动怎么算开始?怎么算结束?Who:谁来做最合适方便?(谁被忽略了?谁是决策人?谁会受益?)When:立项什

iOS 启动优化

启动优化思考在面试时遇到这个问题,很多人信手拈来,上来就说:+load、减少离屏渲染、二进制重排等。不得不说,针对这个问题,这确实很重要的一环,对于工作3年左右的工程师没有任何问题,但对于>5年的高级研发工程师,是不是显得思考、方案不够系统化呢?(记住:面试时面试、盖楼是盖楼,我们可以稍微系统化思考一下这个问题)5W2H简单思考一下Why:为什么需要做这件事,表面上是需要完成任务,但是我们可以去剖析对方让我们完成这件事背后的意义所在;What:启动优化到底是个什么样的事情?是如何定义的?启动怎么算开始?怎么算结束?Who:谁来做最合适方便?(谁被忽略了?谁是决策人?谁会受益?)When:立项什