摘要: 计算机科学是这样的一门科学:它相信所有的问题都可以通过增加一个间接层来解决 阅读全文
posted @ 2019-02-13 01:38 饭小胖 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 重构: 【名词】对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 【动词】使用一系列重构手法,在不改变软件观察行为的前提下,调整其结构 【意义】重构使软件更容易理解,填补“想要他做什么”,和“准确说出我所要的”之间的间隙 【范围】在不同的领域中有着不同 阅读全文
posted @ 2019-01-19 02:04 饭小胖 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 最近学习前端的技术,在了解react对DOM的组件抽象,但不提供整体的组件通讯时候,了解了redux,然后就是react-redux; 抽象后,视图完全由对象决定,而用户只能接触视图,所以对象的改变必然是用户通过视图触发的称为action,然后redux收到action后通过reducer函数改变对 阅读全文
posted @ 2018-12-29 01:13 饭小胖 阅读(1110) 评论(0) 推荐(0) 编辑
摘要: 前端路由和后端路由是前后端分离的根本 阅读全文
posted @ 2018-12-28 15:51 饭小胖 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 对象是过程的抽象,线程是调度的抽象; 分离并发和业务代码:生产者-消费者、读者写者模型、宴席哲学家问题(筷子问题) 互斥 线程饥饿 死锁 活锁 【调度的体现】 多线程编程优化的时候,yield有小妙用,马上放弃自己!让出调度 阅读全文
posted @ 2018-12-07 01:35 饭小胖 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 项目管理中,常常听说story,用户故事 “一开始就做对系统”纯属神话,反之,我们应该去实现今天的用户故事,然后重构,明天再拓展系统、实现新的用户故事。这就是迭代和增量敏捷的精粹所在。 阅读全文
posted @ 2018-12-05 01:01 饭小胖 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 构建 特指系统初始化的代码,创建和重建必备对象的代码、工厂、IOC等; 运行 在软件系统中,构件与使用是非常不一样的过程,也就是启动和启动之后的运行逻辑不一样;把这两者分开是一个规划良好的系统必备的素养; 通常,main方法就是启动的起点,也包括容器的启动,见《代码整洁之道》page 144图; 把 阅读全文
posted @ 2018-12-04 02:08 饭小胖 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 我们总是用第三方的API提供的能力,第三方要求广度,而我们满足需要和封装又希望能力是单一的,所以要处理好边界哦! 以上代码,比直接用Map要好很多哦,因为它限制了Map的其他能力暴露出去,从而恰当的处理了代码边界;如此的例子还可以类比webMagic的ResultItem;但不确定作者就是为了整洁代 阅读全文
posted @ 2018-11-28 01:00 饭小胖 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 作者:王勐链接:https://www.zhihu.com/question/23995189/answer/35429905来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 动态规划的本质不在于是递推或是递归,也不需要纠结是不是内存换时间。 理解动态规划并不需要数学公 阅读全文
posted @ 2018-09-13 10:52 饭小胖 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 我相信大家都很熟悉DCL,对于缺少实践经验的程序开发人员来说,DCL的学习基本限制在单例模式,但我发现在高并发场景中会经常遇到需要用到DCL的场景,但并非用做单例模式,其实DCL的核心思想和CopyOnWrite很相似,就是在需要的时候才加锁;为了说明这个观点,我先把单例的经典代码防止如下: 先说明 阅读全文
posted @ 2018-08-24 23:09 饭小胖 阅读(468) 评论(0) 推荐(0) 编辑