2011年6月26日
摘要: TCP/IP协议以字节的方式传输用户数据,并没有对其进行检查和修改。这个特点使得应用程序可以非常灵活地对其中传输的信息进行编码。TCP/IP的唯一约束是,信息必须在块(chunk)中发送和接收,而块的长度必须是8位的倍数。而字节正好是8位的,因此我们可以认为在TCP/IP协议中传输的信息是字节序列。鉴于此,我们可以进一步把传输的信息看做数字序列或数组,每个数字的取值范围是0~255(8位)应用程序协议:明确定义了信息的发送者应该怎样排列和解释这些位序列(bit sequence),同时还要定义接受者应该怎样解析,这样才使得信息的接受者和发送者能够抽取每个字段的意义。在Java和C#程序中,In 阅读全文
posted @ 2011-06-26 18:31 一路转圈的雪人 阅读(4399) 评论(3) 推荐(5) 编辑
  2011年6月23日
摘要: 这些概念都是我在学习中曾经迷糊和困扰的,现在写出来供一些像我当初一样的新手参考。有时候概念明确了可以少走一点弯路。1.和数据库互交其实就是进程间的通信,比较常用的是TCP/IP和命名管道。进程间的互交有运行在同一台机器上的互交,和运行在不同机器上的互交。2.数据库实例是操作数据库的一种手段,简单来说数据库并不是用记事本打开就能修改的,要通过数据库实例来进行相应的查询和修改等操作。数据库和文件系统的重要区别之一就是事务。3.数据库的索引和B+树。很少见超过3层的B+树。分区有时性能未必就好。分区(比如横向分割)有时候会导致因搜索的字段并非分区条件,而引起的在多个分区搜索数据,造成多次IO读取。不 阅读全文
posted @ 2011-06-23 22:35 一路转圈的雪人 阅读(1656) 评论(2) 推荐(0) 编辑
  2011年6月11日
摘要: 上篇文章简单的谈了谈C#编译器和JIT编译器,本来想接着写类型,对象,线程栈和托管堆在运行时的相互关系的,可惜讲解这部分采用画图的方式比较好,所以就先跳过了。在JAVA中,泛型只被JAVA编译器支持,并不被JVM所支持,也就是说没有定义新的字节码来表示泛型类型,自然在JVM里面也不会有新的指令来支持新的字节码。类比到.NET来说,也就是被C#编译器支持而不被CLR所支持。这样就产生了很多有趣的问题。我们都知道我们的代码都要经过编译器的翻译改动,JAVA中的泛型就是JAVA编译器采用类型擦除的方式来实现泛型的。定义的泛型类型,都自动提供了一个相应的原始类型(raw type)原始类型的名字就是删 阅读全文
posted @ 2011-06-11 21:48 一路转圈的雪人 阅读(2707) 评论(0) 推荐(1) 编辑
  2011年6月8日
摘要: (这系列文章主要以我的读书笔记为基础写成的,因此可能跳跃性比较大。我想写的东西不只是包含一些结论,还包括了自己在学习时的所思所想。其中肯定有不妥之处,希望能得到指正。)编译器是什么?这个问题在我自学的开始阶段的确困扰了我很久。简单的说,就是把高级语言翻译成低级语言的东西。高级语言我喜欢叫“源代码”。就如同一般的翻译一样,翻译的东西可能会夹带写译者的想法,所以你写的东西和实际被翻译出来的东西未必就是一样的。比如说一个delegate关键字,经过C#编译器编译之后,在IL中就表现成了一个有着4个方法的类,而且该类符合异步编程模型的规定。其实还有很多地方带有译者的思想,比如对字符串常量"a 阅读全文
posted @ 2011-06-08 22:07 一路转圈的雪人 阅读(3045) 评论(5) 推荐(6) 编辑
  2011年4月9日
摘要: 二进制字节流,优点:方便,不用转换。缺点,不能跨平台。字符流,优点:可以跨平台,但是需要转换成二进制。 阅读全文
posted @ 2011-04-09 16:53 一路转圈的雪人 阅读(341) 评论(0) 推荐(0) 编辑
  2011年3月14日
摘要: 我觉得大部分问题都涉及“缓存”问题吧,要知道操作系统是怎么缓存的,也要知道CLR是怎么实现缓存的。把数据存放成什么样子(比如长度如何等),存放在什么位置才便于计算机处理。搞清楚了这几点其实很多问题就迎刃而解了。话说最近在了解JVM的实现,打算乱写点什么东西。说实在很佩服那些能写长博客的,那应该是花费了不少时间的吧。 阅读全文
posted @ 2011-03-14 15:57 一路转圈的雪人 阅读(311) 评论(0) 推荐(0) 编辑
  2011年2月22日
摘要: 最近没有写东西,是因为自己的确没什么可以写的。现在挡在我前面的难题有两个,一个是如何写出干净代码的问题,一个是如何评价性能的问题。自从做过几个项目,熟悉了大部分的api以后,我发现我缺少如何正确测试和评估自己所做出的东西的能力。这一个多月来我没有写过什么代码,一直在看《重构》和《企业构架模式》这两本书,还一边在学习算法导论的视频。 阅读全文
posted @ 2011-02-22 14:43 一路转圈的雪人 阅读(274) 评论(0) 推荐(0) 编辑
  2011年1月30日
摘要: 和Jquery一样,Ext.Element对象是对dom对象的封装,目的是为了跨平台以及增加一些有用的方法。但是Ext.Element是不包含外观的,封装的dom原来是怎么样就是怎么样。开发中最好有现成的组件可以使用,否则Extjs和Jquery差别真的不大了。因此Ext在Element的基础上进一步封装,产生了Component类,这些类含有外观,也就是多加入了一些html之类的进去,更方便开发者使用。依赖关系如下:Component=Element=dom因此在Component中可以通过el属性来访问该Component所依赖的Element,同样的,Element也可以通过dom属 阅读全文
posted @ 2011-01-30 23:41 一路转圈的雪人 阅读(2747) 评论(1) 推荐(2) 编辑
摘要: Contract类依赖Product类,Product类封装了策略对象,最后的逻辑还是Contract类的calReconigtion方法实现的。看样子是绕了一大圈。很多细粒度的对象,命名,职责划分都是头疼的问题。而对于crud来说,贫血模型+脚本似乎就够了,大家容易理解,而且还可以分头开发。而细粒度的对象,可能需要使用和开发的不止一个人,领域模型所包含逻辑有可能被重复开发。总觉得要拿什么东西来练手,可惜目前自己做的工作不允许自己这么做。 阅读全文
posted @ 2011-01-30 23:27 一路转圈的雪人 阅读(361) 评论(0) 推荐(0) 编辑
  2011年1月29日
摘要: 直接翻的API,虽然API中有写,但我刚开始却没注意到以至后来出现问题头疼半天,最后去查API才看到有,现在翻一下加深印象 1 使用Border布局的容器必须有一个子件在'中心'区域(region:'center')。中心区域的子件将会自动改变尺寸来填充Border布局中没有被使用的其他区域的空间。(如果不指定会报uncaught exception: No center region defined in BorderLayout XXX异常) 2 任何west或east区域的子件都必须定义宽度(一个整数代表该区域占用的像素)(如果不指定布局不起作用,并且还会报col is null的错) 阅读全文
posted @ 2011-01-29 18:47 一路转圈的雪人 阅读(2404) 评论(0) 推荐(0) 编辑
摘要: unpivot包含3步:1.生成拷贝 2.提取数据 3.过滤不相关的数据 阅读全文
posted @ 2011-01-29 18:38 一路转圈的雪人 阅读(844) 评论(0) 推荐(0) 编辑
摘要: 假设你需要Orders表,并且想返回每一条order的信息,并且包括前一条order的ID(在本例中就是orderid, orderdate, empid, custid,prevorderid),。但是你知道在表中的行记录是没有顺序的,这时我们需要把概念转换成SQL的等价思想:最大的值小于当前的值。用SQL语句表示如下SELECT orderid, orderdate, empid, custid, (SELECT MAX(O2.orderid) FROM Sales.Orders AS O2 WHERE O2.orderid < O1.orderid) AS prevorderi.. 阅读全文
posted @ 2011-01-29 18:34 一路转圈的雪人 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 起因:WCF序列化的对象Delphi可以正确的接收,但是Delphi序列化的对象WCF端接收就会因反序列化错误,导致接收到的对象为NULL。还未找到解决办法,现在用的是传递XML字符串的方法而不是直接序列化对象的方式来暂时解决这个问题。但是这样就会很繁琐,毕竟要拼凑XML是一件挺繁琐的事情。下面两段式用tcp trace抓到的soapC#:<MessageLogTraceRecord><HttpRequest xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrac 阅读全文
posted @ 2011-01-29 10:11 一路转圈的雪人 阅读(1539) 评论(2) 推荐(1) 编辑
摘要: 原来因为技术限制等原因,一直采用的是把所有逻辑都单独放在Service层的方式,这种方式最容易让人理解。不过随着开发的进展,service越来越大,也成为了一个问题,逻辑变得难以管理。我一直想解决这种问题,在学习设计模式的过程中,好像看到了点能解决问题的端倪,可在实战中,我的能力又不足以充分的使用各种设计模式。后来看到了POEAA这本书提到的领域模型,才明白了自己这种方式被叫做“贫血”模型,相对应的还有早就听说,但是不知道如何实现的“领域模型”。接下来我就打算把自己以前用贫血模型做的项目用领域模型重新做一遍,估计问题会不少,比如说是用数据库驱动还是用领域驱动呢?现实中大多数都是先设计好数据库在 阅读全文
posted @ 2011-01-29 09:55 一路转圈的雪人 阅读(628) 评论(0) 推荐(0) 编辑