lane_cn
码龄21年
求更新 关注
提问 私信
  • 博客:37,447
    社区:1,239
    38,686
    总访问量
  • 7
    原创
  • 0
    粉丝
  • 0
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:安徽省
加入CSDN时间: 2004-11-02
查看详细资料
个人成就
  • 获得0次点赞
  • 内容获得14次评论
  • 获得2次收藏
  • 博客总排名1,921,495名
  • 原力等级
    原力等级
    0
    原力分
    0
    本月获得
    0
创作历程
  • 6篇
    2006年
  • 5篇
    2005年
  • 12篇
    2004年
成就勋章
TA的专栏
  • Thinking in C#
    5篇
  • Thinking in UML
  • 业余生活
  • 编程技术
    2篇
  • 软件工程
  • 开发技术
    1篇
  • 8小时以外

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

兴趣领域 设置
  • 网络空间安全
    web安全
创作活动更多

王者杯·14天创作挑战营·第2期

这是一个以写作博客为目的的创作活动,旨在鼓励码龄大于4年的博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见https://bbs.csdn.net/topics/619735097 2、文章质量分查询:https://www.csdn.net/qc 我们诚挚邀请你们参加为期14天的创作挑战赛!

83人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

软件的逻辑层次

基本层次软件的逻辑结构可以划分为下面四个基本层次:从下往上依次是:1:基础设施层——这个层次是纯技术层次,解决的是系统的物理问题,比如database gateway、网络通信、对象容器……这个部分与业务需求关系不大,是系统的物理条件。2:business对象——在这个层次上,业务要素出现了,业务领域中的概念在这里实现。比如一个航运公司的系统,这里就应该有航线、航班、座位、乘客、登机牌...
原创
发布博客 2006.12.19 ·
463 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

也讨论一把:不必非oo不可

看了一篇讨论:http://www.cnblogs.com/yimlin/archive/2006/11/30/578333.html有些感想:并不是所有的行为都必须属于某个对象,有的行为似乎放在任何一个对象中都不合适,那就单独放在那里好了,没必要非要造出一个对象来,更不能把它硬安在某个对象上。按照oop的方法,软件的逻辑架构可以分成下面几个层次:1:基础设施层——这个层次解决的是物理问题,...
原创
发布博客 2006.12.01 ·
168 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

无痛苦的软件维护——文档和代码

程序维护的时候经常遇到两个困难:1、不知道这段代码是实现什么功能的(code —— function);2、不知道这个功能是实现什么需求的(function —— business)。解决第一个问题是比较容易的,大家都是搞技术的,一头扎进代码里去,看上几十分钟,通常就能明白:原来这段代码是从数据库里面找到前三个月一直处于停机状态的号码,然后把这些号码放到一个叫做QUIT_USER的数据表里面去。第...
原创
发布博客 2006.11.03 ·
185 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

NGOSS的一点简单概念

NGOSS(Next Generation Operational Support Systems)是由TMF(Tele Management Forum)提出的,他用于电信领域,是构建下一代OSS/BSS系统的框架。TMF提供了技术中立构架(TNA)作为NGOSS解决方案的技术构架,这样就把NGOSS建立成了一种标准,这个标准与实现他的技术相互独立。TMF还提供了一组测试方法,用于验证解决方案是...
原创
发布博客 2006.09.27 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

软件的灵活性来自哪里?

灵活的软件,可以更好的适应用户的需求。什么样的软件才是灵活的?一旦用户提出灵活性方面的需求,设计者经常想到的一个对策是:增加配置。在不同的业务环节上增加功能配置,哪里需要灵活性,就把配置写到哪里。配置为软件系统提供了无数个可能——这就是灵活性。但是配置经常复杂无比,失去控制。很多配置项目已经失去了业务意义,完全成为一种数学意义上的排列组合。按照一些配置的路线,业务无法形成闭环流程,走进死胡同。这样...
原创
发布博客 2006.06.21 ·
881 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

存储过程——天使还是魔鬼

看了Heroman的一篇文章,谈论该不该在项目中使用存储过程代替SQL语句。看后有一些感想,因为最近工作接触到一个系统,业务过程几乎完全是用存储过程实现的。随着系统的不断发展,新的需求逐渐难以支持。这个原因当然很复杂,即使不使用存储过程,可能也有同样的问题。但是既然谈到具体技术上,就来看一下一个主要以存储过程实现的系统到底有哪些问题。存储过程和嵌入程序中的SQL哪个更好,要用一种合理的比较方式来比...
原创
发布博客 2006.01.11 ·
95 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

应用软件的层次划分

谈到应用程序的层次,我们平时所说的层次有两种:逻辑的层次(layer)和部署的层次(tier)。这两种层次划分的目的是不同的,因此划分方式也有一些差异,能够为应用程序带来的好处也是不同的。逻辑层次逻辑层次(layer)划分的最重要的目的在于调整应用程序各部分之间的依赖关系。应用程序可以看作数据和业务规则的集合,这个集合通过用户界面与用户发生交互。如果不划分层次,或者只划分最简单的层次,系统的结构就...
原创
发布博客 2005.09.14 ·
709 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

构想:Google桌面搜索、Delicious、知识管理

先介绍两个软件:Google桌面搜索和DeliciousGoogle桌面搜索Google搜索大家都熟悉,Google桌面搜索是Google搜索的桌面版本(请看http://desktop.google.com)。Google桌面搜索用于在用户硬盘上搜索文档、网页访问历史、电子邮件和IM聊天记录,是一个基于关键字的文档管理系统。普通的文档管理系统是基于目录的。我们经常有这样的烦恼:曾经看过一个文件,...
原创
发布博客 2005.08.15 ·
192 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设计和编写可复用的代码

刚开始干这一行的时候,对代码的复用有很高的热情。那时候总是希望自己写出的function、class、模块都是可以复用的,能够优美的解决所有问题。但是往往事于愿违,设计的变更、需求的变更、种种没有预料的情况最终把自己的代码摧毁的面目全非。有时一个简单的function会出现各种不同的版本,SendMessage、SendMessage2、SendMessageEx……在注释中说明其间微妙的区别。复...
原创
发布博客 2005.07.21 ·
318 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Keep It Simple and Stupid

Keep It Simple and Stupid, 就是KISS原则. 简单是软件设计之美, 简单的设计使得软件产品易于开发, 易于维护. 简单代表着高质量, 少加班, 每个人都希望自己的工作是简单的. 在KISS原则之外, 应该有一个更重要的原则: Useful. 满足需求是一切产品的低限. 也许需求本身也应该KISS, 简单的需求意味着底成本, 高效率. 可惜客户有时候很难克制自己的欲望....
原创
发布博客 2005.07.14 ·
244 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

程序界面设计模式

现在开发应用程序经常使用一些所见即所得的开发环境,使得用户界面的制作非常方便。然而,用户界面是最容易发生需求变更的部分,用户界面发生变化,经常对业务模块产生影响。并且,用户界面是不利于自动测试的。一旦某些代码依赖用户界面,这样的代码就很难在别的模块中调用了,因此业务逻辑不能在界面层次中进行,否则会造成不能复用,不能复用自然会增加复制粘贴的代码,造成错误的扩散,放大需求变更的影响。在程序设计中,应该...
原创
发布博客 2005.05.14 ·
230 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

实例——在编程过程中进行单元测试

这是一个真枪实弹的例子,如何在编程过程中进行单元测试。本文以一个图书馆的书籍管理系统作为例子,讲述一个单元测试——编码的循环过程。这里只讲述一个独立画面的编写。画面的编码分两个部分,业务数据部分和界面表示部分。先介绍业务数据部分的编写。下面具体的描述单元测试是如何融入到设计和编码的过程当中的,单元测试驱动着编码的过程,可以说,编码的目的就在于使单元测试能够通过。整个开发过程就象这样前进:测试——编...
原创
发布博客 2004.12.14 ·
169 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

.NET实用设计模式:观察者模式(Observer)

介绍了观察者模式(Observer)的原理和实现。需要注意的一点:观察和通知不是简单的直接调用,要避免观察者和被观察者之间的耦合。 地址:http://www.cnblogs.com/lane_cn/articles/73240.html...
原创
发布博客 2004.12.05 ·
106 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

.NET实用设计模式:命令模式——Command

介绍命令模式在实际工程中的应用,命令模式与其他模式的结合,实例说明引入命令模式带来的好处。地址:http://www.cnblogs.com/lane_cn/articles/71365.html
原创
发布博客 2004.12.01 ·
78 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

.NET实用设计模式:工厂模式(Factory)

本文介绍了一种创建型设计模式:工厂模式(Factory),以及一个简单的C#实现的例子。地址:http://www.cnblogs.com/lane_cn/articles/70742.html
原创
发布博客 2004.11.30 ·
110 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

.NET实用设计模式:组合模式(Composite)

简单的谈了一点组合模式的概念,在C#中的实现方式,举了一个简单的例子。全文地址:http://www.cnblogs.com/lane_cn/articles/70382.html
原创
发布博客 2004.11.29 ·
256 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

.NET中的设计模式五:观察者模式

观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。观察者模式有很多实现方式
原创
发布博客 2004.11.20 ·
1661 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

.NET中的设计模式四:命令模式

 命令模式(Command)结构并不复杂,简单的说,就是将某些职责封装成对象,对象的激发者(Invoker)和接收者(Reciever)都不过问命令的执行过程。用这样的方式解除了激发者和接受者之间的耦合,为程序提供了更清晰的层次结构。实际运用中经常是将系统中的命令抽象成一个接口,所有的命令都是这个接口的实现,如下所示:Command类是ICommand的实现,Command类实现了exec
原创
发布博客 2004.11.11 ·
1305 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

怎样测试代码中难测试的部分

现在越来越多的开发组织在程序开发中使用单元测试的方式,甚至有些外包工程要求开发者交货的时候提供完整的单元测试代码。单元测试不仅仅是在编码的时候需要考虑,在程序设计的时候就应该充分考虑测试的需要,要设计和编写出“可测试”的代码。为什么一些代码难以测试在进行单元测试的时候,会发现程序中某些部分很难进行自动测试,比如耦合程度比较高的类、用户界面、数据库、Servlets和EJB类、等等。本文主要说明程序
原创
发布博客 2004.11.08 ·
4457 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

.NET中的设计模式三:组合模式

 组合模式(Composite)是一种“结构型”模式(Structural)。结构型模式涉及的对象为两个或两个以上,表示对象之间的活动,与对象的结构有关。先举一个组合模式的小小例子:如图:系统中有两种Box:Game Box和Internet Box,客户需要了解者两个类的接口分别进行调用。为了简化客户的工作,创建了XBox类,程序代码如下:GameBox的代码:
原创
发布博客 2004.11.05 ·
1600 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏
加载更多