随笔分类 - 每日一句话
每日的学习感悟,既然写博客那么烦,何必不写一句话搞定呢?深入浅出,这个世界很多事都是缤纷多彩的
摘要:状态 本文只讨论计算机里面的状态,并且只是讨论对象,对象其实是抽象的产物,所以状态也取决于我们是如何对对象进行抽象和建模的,根据建模方法不同,对象也不同。对象分为有状态的对象和无状态的对象,无状态对象特指那种特性形态固定不变的对象,他们有些在面向对象领域都是单例的,有些是作为值对象存在的,而有状态对
阅读全文
摘要:值对象 对象要区分值对象还是实体对象(引用对象),值对象的使用一般在每一次出现的地方都是新的实例,可以对比基本类型一样,每一个基本类型,都是在内存中唯一分配;实体对象,基本上多对一的时候都是只存在一个对象实例,这个没有什么异议; 值对象应该有一个非常重要的特性,就是它是不可变的,所以如果值对象可变,
阅读全文
摘要:如果认真观察程序员把最多的时间耗在哪里,你就会发现,编写代码其实只占非常小的一部分。有些时间用来决定下一步干什么,另一些时间花在设计上,最多的时间则是用来调试;修复错误通常是比较快的,但找出错误却是噩梦一场;当你修复一个bug的时候,还会扯上另一个bug出现。 1、确保所有测试都完全自动化,让他们检
阅读全文
摘要:许多人把设计看作软件开发的关键环节,而把写代码认为是机械的劳动,他们认为工程就是画设计图,而写代码就是施工;但是你要知道,软件和机械有很大区别,软件的可塑性更强;正如Alistair Cockburn所说,“有了设计,我可以思考的更快,但其中充满了小漏洞” 另一方面认为,重构可以取代预先设计,意思是
阅读全文
摘要:计算机科学是这样的一门科学:它相信所有的问题都可以通过增加一个间接层来解决
阅读全文
摘要:重构: 【名词】对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 【动词】使用一系列重构手法,在不改变软件观察行为的前提下,调整其结构 【意义】重构使软件更容易理解,填补“想要他做什么”,和“准确说出我所要的”之间的间隙 【范围】在不同的领域中有着不同
阅读全文
摘要:最近学习前端的技术,在了解react对DOM的组件抽象,但不提供整体的组件通讯时候,了解了redux,然后就是react-redux; 抽象后,视图完全由对象决定,而用户只能接触视图,所以对象的改变必然是用户通过视图触发的称为action,然后redux收到action后通过reducer函数改变对
阅读全文
摘要:对象是过程的抽象,线程是调度的抽象; 分离并发和业务代码:生产者-消费者、读者写者模型、宴席哲学家问题(筷子问题) 互斥 线程饥饿 死锁 活锁 【调度的体现】 多线程编程优化的时候,yield有小妙用,马上放弃自己!让出调度
阅读全文
摘要:项目管理中,常常听说story,用户故事 “一开始就做对系统”纯属神话,反之,我们应该去实现今天的用户故事,然后重构,明天再拓展系统、实现新的用户故事。这就是迭代和增量敏捷的精粹所在。
阅读全文
摘要:构建 特指系统初始化的代码,创建和重建必备对象的代码、工厂、IOC等; 运行 在软件系统中,构件与使用是非常不一样的过程,也就是启动和启动之后的运行逻辑不一样;把这两者分开是一个规划良好的系统必备的素养; 通常,main方法就是启动的起点,也包括容器的启动,见《代码整洁之道》page 144图; 把
阅读全文
摘要:我们总是用第三方的API提供的能力,第三方要求广度,而我们满足需要和封装又希望能力是单一的,所以要处理好边界哦! 以上代码,比直接用Map要好很多哦,因为它限制了Map的其他能力暴露出去,从而恰当的处理了代码边界;如此的例子还可以类比webMagic的ResultItem;但不确定作者就是为了整洁代
阅读全文