获得徽章 5
国内程序员的开源项目,尤其是大厂的开源项目。在开源前一定要想清楚为后续的使用者负责。否则就是开源者一时爽,使用者受害。如果开源后没有社区的建设计划,没有官网的建设计划,没有及时的issue响应团队,没有重构升级的计划。那么就不要将其开源。
28
分享一个平时小重构和代码修改后验证的小技巧:为了保证我们重构后的代码以及修改后的代码能够确认被运行,我们可以在修改处或者重构处设置调试断点,然后运行程序,确保所有断点都要运行到。每运行到一处断点时验证当前的逻辑是否正确,如果正确则把此处的断点取消,一直到所有设置的断点都被取消了则表明你所进行的重构和修改都被覆盖到了。
5
赞了这篇沸点
今天一个群友和我交流起一个问题:“说看了我的一篇博客很受用,问我怎么能够监控程序中那些泄漏的对象被哪些闭包强持有。” 我回答说:“我只是负责生产砖块,具体房子你们去搭”。后来想了想又告诉他我的另外一篇文章,然后提供了一下思路,然后结合起来也许能解答问题。

然后又想起前一阵子抖音发的一篇火爆互联网的二进制重排文章。其中的block的拦截部分则是应用了我的某一篇文章中介绍的技术。抖音这个也算是建了一座房子。

其实现实中也是这样的:做砖的总是没有建房子的收入多! 人们更多的是关注那些造房子的人。但是总要有人去做砖。
其实我是来卖砖的,欢迎大家关注我的block四重奏:
1. 一种查看Block中引用的所有外部对象的实现方法 juejin.im
2. iOS调试Block引用对象无法被释放的一个小技巧 juejin.im
3. 运行时Hook所有Block方法调用的技术实现 juejin.im
4. 深入解构iOS的block闭包实现原理 juejin.im
展开
欧阳大哥2013于2019-09-21 07:17发布的图片
2
好像掘金的文章分享到QQ会失败
1
赞了这篇沸点
Android开发比较流行MVP框架,然后看了几篇相关的文章,感觉有几点很奇怪:
1.在实现上把Activity以及布局统一当做V来看待,而把事件逻辑部分移植到所谓的P层。其实这个P就是一个从Activity层中抽象出来的一部分逻辑。
2.这样设计的原因还是和Activity的生命周期和实现有关。Activity设计的太过重了,两个Activity之间进行通信还需要进行封包和解包处理。他本来设计是可以用来跨进程之间相互调用,但是实际中大部分Activity是在一个进程内被使用所以两个Activity之间通信成本就太高了。当然解决的方法是用Fragment。另外还有一个原因是Activity还有建立、销毁的生命周期问题导致一些状态值的存储成本太高。而抽象出来的P层则跳出了上述的两个约束。
3.其实我不认同的观点是MVP中把Activity+布局当做V来看待。感觉解决的方法还是一个根的Activity并加众多的Fragment加布局来实现应用程序。也就是还是原本的MVC框架。
展开
7
赞了这篇沸点
对于MVP和MVC的区别,我也一直在尝试着去了解他们之间的差异。可能是我理解有限,目前我自己得出的结论就是二者的差别在于M和V是否可以直接通信可以就为MVC,不可以就为MVP,但我觉得这种区别来划分是否过于绝对。这个其实可以讨论一下。
6
赞了这篇沸点
当年facebook的RN出来后国内掀起一阵RN改造和学习的狂潮,然后各大厂家都在争相建设自己的RN平台。现在Google的flutter出来后国内又掀起一阵flutter改造和学习的狂潮,然后各大厂家都在争相的建设自己的flutter平台。这种现象再次暴露了中国程序员只会做应用而不会做技术的短板。只会做1到1.5而不会做0到1的不争事实。也许我孤陋寡闻,但是我觉得美国那几家顶级的软件公司是肯定不会这样做的。呼吁BAT能有一家站起来担负起做出一个0到1的真牛框架。
展开
51
赞了这篇沸点
在release模式下编译swift的代码发现其中很多函数和方法都被编译链接为内连函数,而且对多态的实现用的是硬编码判断。我想这也是swift应用包要比oc应用包尺寸大但是运行速度快的一个原因之一吧。
评论
下一页
个人成就
优秀创作者
文章被点赞 2,072
文章被阅读 239,196
掘力值 7,592
收藏集
1
关注标签
4
加入于