博客统计信息

51cto推荐博客
用户名:realzjy
文章数:59
评论数:95
访问量:79930
无忧币:1242
博客积分:1952
博客等级:6
注册日期:2009-06-10

我最近发表的评论

敏捷个人纸质书:.. 回复
支持周总
程序员怎样读书 回复
呵呵   我现在也在看是 压缩自..
未来计算:IT四律.. 回复
云 这个概念 炒了 好久 也可能我..
结对编程其实可以.. 回复
每个人 理解不一样 我也觉得 别人..
如何从程序员到项.. 回复
该怎么说呢,都在一个项目组 同一..
昨天在一个技术群中,一大堆人讨论“两个数交换,不使用第三个空间”这个问题。当时我给了个答案。
a = a + b;
b = a - b;
a = a - b;
不过后来发现有数据溢出的问题,比如函数void ChangeAB(int a, int b);如果a = int.MaxValue - 10, 30;(int.MaxValue = 2147483647)那么就会出现数据溢出的问题。虽然说最后两个数字是互换了,但是总觉得不好,后来我又给了个答案:
a = a ^ b;
b = a ^ b;
a = a ^ b;
结果一些群友没明白啥意思,当时我建议大家补习一下异或的知识。今天抽空,在这里给大家补充一下第二种方法的解释。在解释之前..
序列化与反序列化的简便实用封装 续

    之前写过一篇有关.net中序列化与反序列化的文章,之后又几次用到。但是当时没有将其整个代码放在我的博客中,后来朋友认为这个代码使用随方便但是希望看到源码,而自己又不知道这个是怎么实现的,希望看到源码。下面我就把这个序列化与凡序列化的源码放在博客里,满足大家要求。
    很多朋友认为这么灵活的接口是不是实现起来很复杂,其实不然,很多时候越是抽象的代码实现越是简单。using System;
using System.IO;
using System.Xml.Serialization;

namespace WriteR..
2011-11-08 12:42:57
良好的编程习惯
    前一段时间有时间整理一个适合自己的编程习惯,当然这里仅为个人建议,朋友们可以根据自己的需要来看。欢迎补充哦。
1、避免使用大文件:绝大多数文件的代码不能超过300行(这是我对别人代码的要求,如果是对我自己的话,多数是类150行以内,函数代码不超过10行),必须将耦合的代码分开。
2、避免使用太长的方法:绝大多数方法的代码在1-20行之间。
3、方发名称需要能看出它做什么,名字不怕长,就怕短。
4、尽量添加解释功能:接口需要最为详细的解释,公有类的公有方法也需要详细解释,程序集下、..
2011-06-13 10:51:58
说 苑之敬慎
西汉?刘向
卷十 敬慎
        存亡祸福,其要在身,圣人重诫,敬慎所忽。中庸曰:“莫见乎隐,莫显乎微;故君子能慎其独也。”谚曰:“诚无垢,思无辱。”夫不诚不思而以存身全国者亦难矣。诗曰:“战战兢兢,如临深渊,如履薄冰。”此之谓也。

  昔成王封周公,周公辞不受,乃封周公子伯禽于鲁,将辞去,周公戒之曰:“去矣!子其无以鲁国骄士矣。我,文王之子也,武王之弟也,今王之叔父也;又相天子,吾于天下亦不轻矣。然尝一沐三握发..
分层对我们开发到底有什么作用呢?
        我在日常的工作中主要是使用.net的,最初接触分层式开发还是通过一个struts架构的Java项目,后来也看过很多很多关于分层式开发的文章,很多分层架构的书和文章(包括:MVC,四层架构等)都提到了一些分层式开发的优点,如:代码易于理解,方便团队合作开发。但是我毕业到现在的4年中大小项目也经历的近10个,但是很多时候我觉得分层式架构的优点在进行开发的时候都变成缺点了。


         下面我来说说为什..
2011-06-07 10:58:17
SQL分页语句
        在网上看了个有关分页 SQL 的资料。转载过来为方便朋友们使用。
方法1:

适用于 SQL Server 2000/2005SELECT TOP 页大小 *

FROM table1

WHERE id NOT IN

          (

          SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id

          )

ORDER BY id


方法2:

适用于 SQL Server 2000/2005SELECT ..
使用重载方式实现继承体系的代码重用 
 
代码重用是现在软件开发中一个十分常见的话题,其深远意义和优势是大家共同追寻的高层次开发境界。我也经常通过总结开发工作中的实际代码来学习如何让自己的代码得到最大化的重用,在总结过程中我发现,绝大多是的重用都是方法级的。为此我总结了一下在编程过程中针对重用这个话题的一些归类,也希望朋友们提自己的建议,当然我也会在日后的开发中继续总结和归纳。
 
这个重用的思路其实也不是我凭空而来的,是我在认识面向对象后结合继承体系而总结出的,在这里写出来希望..
模型驱动与测试驱动相结合的软件开发过程
        当今的软件开发业中,模型驱动和测试驱动开发是非常流行的两种软件开发流程。模型驱动贵在进行用例分析,之后设计出软件的整体结构,再根据用例进行详细设计,自顶而下对整个系统使用5视图法进行不同角度的分析和设计,并且在此基础上对系统进行详细设计,对其中的关键用例可以进行伪代码级的设计(此处对关键需求的识别不是本文重点,不会的请参考相关资料),根据资源条件(包含人、时间、资金、硬件等)可以对非关键功能进行接口级设计。
&nb..
设计模式的实际应用
——在C#中解决单客户端窗口数据并发问题
一、        问题引出
在VS2008环境下使用C#语言进行WinForm窗口开发时,大多数情况下我们都会使用弹出式窗口进行开发。
例如:
TestForm form = new TestForm();
Form.ShowDialog();
另一种窗口打开的方式为非弹出式,例如:
TestForm form = new TestForm();
Form.Show();
这里我使用“弹出式窗口”进行名称的统一,这种窗口的优点是:单线程窗口,十分便于程序员开发,并且在同一系统中的窗口不需要考虑其数据并发问题,..
nhibernate架构分析(uml图)
   今天闲的没事在ORG网站上溜达看到了个不错的文章,转过来和大家分享想,一起学习一下。
[以nhibernate-PreAlpha-Build-2为准]
从图中可以看到,Session和SessionFactory是NHibernate的核心部分。
SessionFactory维护到持久机制(数据库)的连接并对它们进行管理,同时还保存着所有持久对象的映射信息。
SessionFactory由Configuration.BuildSessionFactory创建,这个对象一般使用Singleton模式。
Session用于将对象持久化,支持数据库事务,另外Session还提供了强大的数据加载功能。
Session由SessionFactory创建。
其它对象说明:
IConnectionProvider: 连接提供者接口,负责与数据进行连接;
Dialect: 数据库方言;
CollectionPersister: 集合持久化类;
IClassPersister: 类持久化接口,定义了基本的CRUD操作;
TransactionFactory: 数据库事务工厂;
IInterceptor: 拦截器接口,用于在操作执行时进行一些处理,典型的就是记录操作日志。
    我看完倒是有瘾想自己实现以下nhibernate的过程,就当学习下,希望大家也能够喜欢。[/img]..
软件设计不同时期的关注点分离
       这段时间在给一个软件的第N期开发和其之前版本的性能优化,所以有点忙,一直也没得闲写点东西。在本次文章中我围绕现有系统开发的一些感想,希望结合自身的想法给大家说说,希望对大伙有所帮助,同时也希望得到各位朋友的多多指教。
       本次重点说下在软件设计和开发过程中应该注意的一些我认为十分重要的问题,希望大家予以借鉴。
       在我看来,软件设计应该分成不同阶段,不同时期,在..
如何使用技术与为什么使用技术,哪个更重要?
这些天,在为一个前辈开发的项目(08年的开发项目)做性能优化和版本升级。由于是前辈的项目,所以说这个项目并非我本人设计,这对我来说到是个不错的锻炼。因为我在此之前的将近三年工作中,几乎都是以自己设计软件为起始的,这种版本升级式的开发我并没有接触过。
在这里我先承认一些自己的不足(这算是自曝不足吧,呵呵),虽然我以前是做开发的,但是我对开发技术本身的研究并不十分充分,我更多的精力是花在学习OOAD、模式设计和分布式等软件设计方面上了。所以说这个项目中大量的..
设计模式系列三——显示层之组合
       现在的软件系统中,主要的开发形式是C/S和B/S两种。C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互..
设计模式系列二——业务逻辑层常用模式
汽车装配流水线
       呵呵,上面的题目是不是太长了,不过这句话正好反映了我这次文章的一些观点,文章是我自己总结的,我在软件设计是刚刚入道,水平很低,希望大家多多提建议。当然,希望借此向朋友们多多学习。我们都知道MVC三层结构,其中的M(model)代表模型。模型封装了用户数据和处理数据的业务逻辑,体现了应用程序的当前状态,而且可以将用户数据状态的变化提供给多个显示该数据的视图共用。我看到了模型是多么的重要,那么模型是整个应用程序的核..
设计模式系列一——数据库常用模式
       最近在研究架构的时候,一直有一个问题围绕着我,就是这些架构虽然好,但并不是有了好的架构软件开发质量就会提高,软件就会美观更贴近艺术。我感觉,要想开发出好的软件,架构、在架构之中层(我喜欢叫容器,我感觉先简单理解成package也可以)内部设计以及相关通用模块的积累都是软件开发重中之重,对于一个软件设计来讲,三个方面缺一不可,因为三个方面是相辅相成。我开的这个系列就是想简单说说我在相关设计上的一些思路,当然还希望高人路过时多多指点..
 <<   1   2   3   4   >>   页数 ( 1/4 )