摘要: 读后感:关于领域驱动设计,过去多多少少用到一些。所以,这本精简版看起来很快,很多概念很熟悉,它帮助我把散乱的知识串起来。最后,Eric Evans谈到一点,本来软件的发展是向着处理复杂的业务逻辑走的,但突然Web技术的出现,造成了这个方向的停滞。顿时感觉商业的力量真的很大,市场需要什么,技术就往哪个... 阅读全文
posted @ 2014-06-16 12:56 姚一^o^ 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 读后感:Martin Fowler 20年前的书,OO和领域的思想对于今天的我们来说很基础,但在那时应该算是萌芽。Smalltalk语言简单,语法中省略空格可能因为那时的硬件设备昂贵,而不得不做出的选择,但是可读性真的很差,而书中基本是用Smalltalk进行示例。翻开这本书是为了查找财务模型,它没... 阅读全文
posted @ 2014-06-05 10:58 姚一^o^ 阅读(2979) 评论(3) 推荐(2) 编辑
摘要: 最近一个项目是将web版的程序,改为单机版。话说这个web版号称当年十几个人用了至少3个月的时间开发,后来三年还不断有修改,而现在要在1个月内由一个人完成,这简直是不可能完成的任务!直觉告诉我,重写肯定不是办法,还好有朋友用过Cassini http://cassinidev.codeplex.com (可替代IIS的单机Web Form解决方案)立即投入测试,可用;有源码,不担心出太大问题。现在项目结束了,看了一遍CassiniDev,它的基本思路是:1.新建socket,绑定并监听本机上一个可用的端口。2.对新建连接(新的请求)创建新的socket。 public void Sta... 阅读全文
posted @ 2014-01-22 16:05 姚一^o^ 阅读(2762) 评论(2) 推荐(0) 编辑
摘要: 问题一:XML序列化与RESTful WCF Data Contract不能匹配,无法传递类的值。现象:给类加上[Serializable]Attribute,可以成功序列化,但是WCF Service不能识别。发现XML序列化与WCF Data Contract中成员的顺序必须相同。解决方案:1.类的头部清空WCF Data Contract的默认命名空间(见代码)。2.所有元素加上XML序列化和WCF DataMember的Order(见代码),包括被调用的类。using System;using System.Collections.Generic;using System.Runtim 阅读全文
posted @ 2013-12-26 12:10 姚一^o^ 阅读(624) 评论(0) 推荐(0) 编辑
摘要: 第1章状态码表示响应类型:保留表示请求成功地接收完成请求客户需进一步细化请求客户错误服务器错误Web服务器:Apache服务器,特长是处理静态页面,效率非常高。Tomcat提供对JSP和Servlet的支持,它是一个轻量级的Java Web容器,像EJB这样的服务在Tomcat中是不能运行的。JBoss是一个开源的重量级的Java Web服务器,是Sun公司认可的J2EE容器。针对J2EE的服务器还有BEA的Weblogic和IBM的WebSphere等,适合大型的商业应用。这些产品的性能都是非常优秀的。 阅读全文
posted @ 2013-08-11 18:13 姚一^o^ 阅读(916) 评论(0) 推荐(0) 编辑
摘要: 第1章 成功应用程序的模式 简约原则(KISS)的目标就是让代码保持简洁,避免引入任何不必要的复杂度。 讲述而不要询问(Tell, Don't Ask)原则 第2章 剖析模式的模式 GoF设计模式属于以下分组之一:创建型、结构型及行为型。创建型设计模式处理构造对象的责任,结构型设计模式关注让对象工作 阅读全文
posted @ 2013-01-29 09:20 姚一^o^ 阅读(800) 评论(0) 推荐(0) 编辑
摘要: 第2章 服务契约与数据契约在SOA架构中,契约提供了服务通信所必需的元数据。契约用来定义数据类型、操作、消息交换模式和消息交换使用的传输协议。契约通常是XML格式发布的。在WCF中,服务元数据通常是用WSDL(Web Service Description Language, Web服务描述语言)文档格式来描述的。有关这方面的详细内容,可以访问 http://www.w3.org/TR/wsdl 。如果不同模式之间必须严格保持一致,则每个修改实现后,必须赋给契约一个新的版本。如果不同模式之间没有必要严格保持一致,则只需注意以下几点:服务契约版本控制可以在任何时候添加新方法。可以不删除任何已存在 阅读全文
posted @ 2012-10-16 13:03 姚一^o^ 阅读(1775) 评论(2) 推荐(0) 编辑
摘要: 第1章 入门约定优于配置:每一个Controller类的名字以Controller结束——如HomeController,这些类在Controllers目录中。控制器使用的视图是在Views主目录的一个子目录中,这个子目录是根据控制器名称(后面减去Controller的后缀)来命名的。在每一个控制器的View文件夹中,每一个操作方法都有一个名称相同的视图文件与之对应。第2章 控制器URL不是与存储在Web服务器的硬盘上的文件有直接对应关系,而是与控制器类的一个方法有关。理解MVC模式在Web场景中工作原理的一个好方法就是记住:MVC提供的是方法调用的结果,而不是动态生成的(又名脚本)页面。利用 阅读全文
posted @ 2012-08-27 12:26 姚一^o^ 阅读(2699) 评论(0) 推荐(0) 编辑
摘要: 最近公司的项目中发现一个编译优化导致的bug。同事叙述为“在CPU开启out-of-order execution优化时,是有bug的”。针对这个问题,比较好的优化方法如下: private static JobManager self; private static object asyncObj = new object(); public static JobManager Instance { get { if (self == null) ... 阅读全文
posted @ 2012-07-10 13:28 姚一^o^ 阅读(6135) 评论(37) 推荐(7) 编辑
摘要: 第1章 CLR的执行模型托管模块的各个组成部分:PE32或PE32+头,CLR头,元数据,IL(中间语言)代码。高级语言通常只公开了CLR的所有功能的一个子集。然而,IL汇编语言允许开发人员访问CLR的所有功能。JITCompiler函数负责将一个方法的IL代码编译成本地CPU指令。由于IL是“即时”(just in time)编译的,所以通常将CLR的这个组件称为JITter或者JIT编译器。Microsoft定义了一个“公共语言规范”(Common Language Specification, CLS),它定义了所有语言都必须支持的一个最小功能集。第2章 生成、打包、部署和管理应用程序及 阅读全文
posted @ 2012-03-11 19:56 姚一^o^ 阅读(969) 评论(0) 推荐(2) 编辑