- 感谢各位非常专业的回复,我收获不少。
其实在事务处理时,确实需要根据场景来权衡。两段式提交虽然在一定程度上保证了结果的一致性,但同时也制约了系统的水平扩展。针对第三方服务,如何来协调和通信,以尽量保证结果的一致,对设计来说,是一个挑战。我能想到的,除了分布式事务外,就是看是否能通过协调器,根据各个原子事务的结果标志来协调,并根据不同结果发出不同的通信,进行对应的处理。 - 看来大家都比我厉害,哈哈。我确实没有仔细去想。不过这样也好,以后还可以改变硬盘大小。
- specified) as the Guest OS claim disk space.
关键还是括号中的内容(up to the size specified)。只有这里才说明了这里所谓的dynamically expanding是有限制的,就是你指定的容量为最大容量。
我在文章中并非是说Virtual Box有什么问题。事实上是自己没有看清楚。但不可否认的是,有很多人都产生了误解。可以在Google上搜到。或许是英文对于我们而言,太不醒目了。不过,我觉得这种关键信息,最好还是highlight的比较好。... - 写这篇博客,就是希望寻找答案。
- @道法自然
说到底,API设计的最大难题还是兼容性问题。 - MMN(Macro-Micro-Nano,即宏观-微观-纳米)实用架构过程初步体现了我的架构观:即以实用主义态度把握架构原则与本质思想,从系统的各个层次剖析架构,提供一个具有指导意义和实施价值的架构过...
- @Lumj
你去了解一下DSL,好吗? - @吾爱孟夫子
一般我会让RowHeaderExcelElement接受ReportRowHeader。
Adapter的使用是没有问题的,它仅仅是为了让WritableSheet能够适配ReportCanvas。与ReportCanvas的抽象无关。
你后面提到的抽象工厂是对的,这样可以避免传递错误的DrawingElemnt到ReportCanvas中。 - @Lumj
请从方法签名来看,方法的名称体现了领域逻辑。连续的调用,就好似发出多个与领域有关的命令,就好似业务流程一般。所以才说是“自我阐述的领域逻辑”。 - @netfocus
两者的含义是不一样的。Message Chains破坏了封装,将过程暴露了出来。Fluent Interface虽然看起来仍然是Message Chains,但它所公开出来的方法都是必须的,而且这些方法之间并没有中间对象,因为Fluent Interface返回的是对象自身。 - @东风31
你说的有一些道理。主要还是例子的问题。其实通过这个例子可以说明对象自治、行为扩展以及适配的重要性。但这三点内容都需要大幅内容来讲。所以重点就讲了对象的自治。
另外,这篇文章算是书稿的草稿。讲解得不是太细,作为书稿的时候,就会充实,争取讲透彻。
还希望你能多提意见。 - @Jack Fan
我使用的Live Writer。在Live Writer中格式挺好的,估计是博客园的样式问题。我自己的个人网站上格式也是好的。你可以访问我的个人网站:http://www.agiledon.com - 上面的是Java中的代码。
- 仔细看了这篇文章,觉得怪怪讲述的就是实用哲学。
- 看到这篇文章。最先没有注意是谁写的,看了两段,吓,这腔调怎么这么熟悉呢?我猜是怪怪,一看,果然是。
- 这个似乎2009年微软就在创新日上推广了。这算是一个Web的生态系统,可以将很多开源的东西纳入到这个生态圈中。有点像是各类型Web 2.0的安装和管理Portal。










