![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件开发
iteye_3445
这个作者很懒,什么都没留下…
展开
-
[导入]OpenSource: 超越软件工程
现在讲软件工程的, 所谈论的多半是项目工程, 即如何在有限的时间内配置使用有限的资源在单个项目中达到既定的目标. 传统上, 在这一领域基于预测和计划的瀑布方法曾经占据主流, 但是随着项目的日益复杂化, 各种基于演化(evolution)思想的工程方法在实证中逐渐发展起来. 在时空跨度更大的软件工程领域, 例如延展到软件的不同版本以及多个相似项目的工程中, 演化更是逐渐取得了无可置疑的主导地...2007-12-08 03:16:18 · 80 阅读 · 0 评论 -
[导入]关于LOP(Language Oriented Programming)
IntelliJ老板的一篇文章Language Oriented Programming: The Next Programming Paradigm英文 http://www.onboard.jetbrains.com/articles/04/10/lop/ 中文 http://blog.csdn.net/chelsea/archive/2005/02/17/290486.aspxMart...2006-01-23 23:13:00 · 148 阅读 · 0 评论 -
关于AOSD
AOSD(Aspect-Oriented Software Development)可以看作是AOP技术思想在设计领域的一种投射. 采用Aspect的观念之后, 我们在系统分析时应用如下的分解策略 base + extensionA + extensionB +... 而不仅仅是 partA + partB + ... 这种分解的基本理由在于base/extension的依赖...2006-02-22 20:28:00 · 217 阅读 · 0 评论 -
[导入]Ajax结构分析
Ajax: A New Approach to Web Applications http://www.adaptivepath.com/publications/essays/archives/000385.phpAjax(AsynchronousJavaScript +XML)并不是一个革命性的崭新概念(也许根本就不存在突发的革命),它的技术基础在多年之前就已经牢固的建立起来了,在概念层次...2006-02-22 20:33:00 · 98 阅读 · 0 评论 -
[导入]既先进又落后的web开发领域
web开发这个领域是很有意思的。首先,web的兴起是在软件业发展到一定阶段才发生的,它必然吸收了软件业最优良的思想,必然有其本质上先进的地方。另一方面,web的应用毕竟是时日较短的事情,造成很多基础架构方面也是薄弱的,原始的。 具体来说,前台html的展现模型本身是非常先进的。xhtml+css+js实现了结构(structure),表现(presentation)和行为(be...2006-02-22 20:39:00 · 87 阅读 · 0 评论 -
关于JSF
JSF(Java Server Faces)技术从发布时间上看已经是一种比较古旧的技术了,但是目前仍未能成为主流的开发实践。从我知道这种技术开始, 我对它的判断就与我最早对于EJB的判断一样, 它们都在某种程度上捕获了真正的需求,但是因为它们自身诡异的技术路线.我很怀疑是否这些标准制定者故布疑阵, 便如Microsoft的OLE技术一样, 故意抛出一个错误的方向, 将大批组件开发商带入死局....2007-07-29 23:50:22 · 88 阅读 · 0 评论 -
[导入]xslt有什么用
adun今天问我xslt到底有什么用。相对于其他技术,它有什么存在的必要性。 xslt的主要作用是对xml结构的转换,即它是一种描述结构变换规则的语言。不过也可以将它与我们更熟悉的用于生成html(结构)的模板语言作一个对比。1. 两者都能直接生成xml格式的文本(结构)2. 两者都有循环和判断等逻辑处理语句。3. 模板语言可以通过EL表达式等语言取得源数据, xslt通过...2006-03-05 00:02:00 · 187 阅读 · 0 评论 -
AJAX方案选择
在采用AJAX技术的应用中, 常见的是两种架构设计, 一种是采用RPC(Remote Procedure Call)方案,后台应用直接将java对象包装为service接口, 在js对外暴露(java对象完全不知道web层),在js中通过类似函数调用的方式访问后台服务.而另外一种方案是在后台维持一个前台DOM节点的映象,触发前台事件之后, 前台引擎自动截获该事件,并翻译为对后台事件监听器...2006-04-02 14:43:00 · 85 阅读 · 0 评论 -
[导入]普元EOS
http://www.primeton.com/ 普元软件公司是国内专业的中间件提供商,从国家得到了不少投资,做出来的东西也是相当的庞大。最近普元EOS的宣传和发展的势头都很盛。其宣传材料中屡次提到“软件的涅磐“这一用语,这明显是一种危言耸听之举,当然这在业内也不算什么新鲜的事情。按照EOS的宣传,"以图形化的构件组装方式“画”出来的软件无论从结构上、形式上还是开发过...2006-04-02 14:45:00 · 368 阅读 · 0 评论 -
[导入]再谈普元EOS中的数据总线
前两天一位普元的朋友衣风http://blog.sina.com.cn/u/1495516693在我的blog上留言,谈到对数据总线的不同看法. 我本人并未使用过普元EOS,所做的判断只是基于我个人肤浅的第一印象, 很有可能是不准确的. 不过, 目前我仍然坚持自己对于普元EOS的看法,呵呵. 1. EOS产生的xml描述文件中的大量条目都是EOS自身的结构要求,而与实际业务...2006-04-02 14:47:00 · 180 阅读 · 0 评论 -
[导入]科诺KA-2
http://www.kenoah.com 前两天和科诺的研发经理聊了一会,也简单看了一下他们的演示。因为比较匆忙,没有谈到什么实质性的内容,只是有一个粗浅的印象。科诺目前的发展重点还是国外的外包业务,其网站上相关介绍材料很少,不过据说今年将投入较大的资源在国内公司建设和市场开拓上。 科诺产品的特点是代码生成。经过可视化配置之后,可以根据模板生成jsp源代码,程序员可以基于这...2006-04-02 14:50:00 · 120 阅读 · 0 评论 -
[导入]同方ezOne
http://www.ezone.com.cn 同方这个公司在我的印象中更像是个系统集成商,在软件方面没有什么独特之处。不知道是否是待遇问题,我也未听说同方旗下招揽过什么软件高手。同方最近两年在软件平台方面花了一些气力,据说有70多个人,干了一两年,将同方以前的项目进行提炼,开发了ezOne平台。现在同方各个事业部开发新项目的时候好像要求使用该平台,不过可能是涉及到总部和各...2006-04-02 14:53:00 · 162 阅读 · 0 评论 -
[导入]锐道dorado
http://www.bstek.com/ 上海锐道的Dorado框架号称是一个基于构件技术的、面向B/S和多层架构体系的web应用开发平台,其前身称为Extra。从具体功能来看,如果将其看作是一个全功能的web应用开发平台, 那它现在的功能集显得就太单薄了一些,其主要部分还是提供了一些前台的界面控件, 其他如web框架部分,很像是struts的一个简化版,没有...2006-04-02 14:57:00 · 283 阅读 · 0 评论 -
AJAX and AJAH and MVC
传统的Mode2模式的服务器端框架在处理AJAX应用的时候存在一定的不适应性,这主要的原因在于Model2基于推模式,它隐含的假设是基于action的处理结果生成整个页面,而AJAX应用中所强调的是页面局部的变化,只更新发生变化的部分,而不是重新生成整个页面(change instead of create), 这两者之间存在着内在的不协调。有些人推崇后台服务程序只返回xml数据的方法,将显示...2006-05-09 22:56:00 · 56 阅读 · 0 评论 -
about GWT
http://code.google.com/webtoolkit/ 最近google发布了Google Web Toolkit(GWT)开发包,这是一种使用java语言开发AJAX应用的开发框架。从技术上看,GWT并没有什么新鲜之处,类似的概念在多年之前就已经有各种尝试了,这些尝试从未真正吸引到足够的注意。GWT的优势也许在于提供了一套模拟工具,另外可能在屏蔽browser的兼容性和bug...2006-05-19 21:27:00 · 66 阅读 · 0 评论 -
关于Ruby DSL
最近ruby语言的流行似乎再次引发了DSL(Domain Specific Language)讨论的热潮。从语法表现形式上看,通过对于ruby语言的深度hack, 充分挖掘ruby语言的某些语法特征,可以使得正常的ruby语句看起来比其他计算机语言更接近于人类的自然语言,某些人因此认定ruby语言是DSL的天然载体。但是在我看来,具体语言的语法表达形式对于DSL的核心价值而言并不是最关键的。 ...2006-07-16 22:41:00 · 171 阅读 · 0 评论 -
Hibernate动态化
hibernate的应用中一般总是将entity映射为强类型的java类,这为程序操纵带来很多便利,同时可以将大量动态过程隐蔽在对象包络之下。映射为java类的一个主要问题在于无法在程序运行时刻对于程序进行修改,而数据结构的局部修改几乎是无法避免的。hibernate3本身支持动态数据模型,它允许我们把entity映射为Map数据类型, 当数据结构发生变化的时候, 只需要修改hbm文件即可改变...2006-07-23 21:13:00 · 100 阅读 · 0 评论 -
关于DAO和Service
我们开发程序的目的是为了完成业务功能, 理想的情况下程序中的每一条语句都应该是与业务直接相关的,例如程序中不应该出现连接数据库, 读取某个字段等纯技术性的操作, 而应该是得到用户A的基本信息等具有业务含义的操作. dao(dataaccess object)层存在的意义在于将与数据持久化相关的函数调用剥离出去, 提供一个具有业务含义的封装层. 原则上说,dao层与utils等帮助类的...2006-01-23 22:57:00 · 99 阅读 · 0 评论 -
web程序中的scope
jsp模型为web程序提供了page/request/session/application这四个基础性的变量域.这种变量域的划分很大程度上是纯技术性的, 与我们的业务应用中需要的scope支持相去甚远. 当我们把业务对象的生命周期映射到这些变量域的时候,经常出现不适应的情况. 例如我们可能被迫选择把与某项业务相关的所有数据放置在session中并在各处硬编码一些资源清理代码.为了实...2006-01-15 22:35:00 · 293 阅读 · 0 评论 -
xpath selector vs. css selector
在无侵入性的前台页面控件设计方案中, 我们需要一种简便的方法迅速定位页面中的某一节点(domnode). 使用xpath是非常诱人的一个技术选择, 但是在实际使用中, 我们却发现xpath并不是那么方便. xpath的能力非常强大,它支持绝对定位, 例如//input[@id='3'], 也支持相对定位, 例如 ./input[0], 甚至支持根据节点内容定位,例如//a[conta...2006-01-08 23:21:00 · 166 阅读 · 0 评论 -
C++配置管理
自从离开学校就基本上不再使用C++了,最近却又因为项目上的原因重新走入这一迷失的世界, 感觉很是缺乏一些顺手的工具。首先就是做配置管理有点麻烦, 因为缺乏反射机制, 无法直接映射, 所以一般需要手工书写配置设置功能. 我们希望配置类在配置阶段能够支持动态属性名, GConfig cfg; cfg.set("bgColor.b",3.0); cfg.set("l...2008-01-12 20:59:20 · 403 阅读 · 0 评论 -
[导入]JMX技术
JMX在技术上的需求可以说是将管理功能从功能性接口中分离出来。例如一个缓存接口interface ICache{ Object get(Object key); void put(Object key, Object value);}但一个具体实现类可能有很多参数可以调整,如缓存的最大尺寸等。这些可配置参数一般与具体实现紧密相关,即与实例相关,而不直接涉及到所要实现的功...2005-11-14 17:01:00 · 94 阅读 · 0 评论 -
[导入]jsp tag的七宗罪
一个技术的成功,在于最终占据了某个概念。当我们应用到此概念的时候,首先想到的就是这个技术实现,久而久之,形成一个自我证明的过程。而有些技术却是在其位无能谋其政,实在是让人不得不为它扼腕叹息呀。jsp tag正是这样一种技术。有些人认为jsptag只是jsp的一种扩展,只是一种syntax suger, 这正反映了此技术所面临的一种困境。这里指出一些jsptag的设计缺陷,并无贬低这种技术的意...2005-11-15 12:21:00 · 107 阅读 · 0 评论 -
[导入]xml db vs RDB
关系数据库的理论基础是集合论,而集合的基本定义就是不重复的一组元素。而xml数据库方面尚缺乏相应的理论来消除数据冗余性。 关系数据库能够成功的另外一个重要原因是它采用平面表形式,而应用中大量使用的正是平面表,所以数据库表在很多时候是数据的最适表现形式,使用xml表达只会增加不必要的复杂性。平面表的基本假设是所有条目的结构都是一样的(具有一个header),而xml表示形式本身不存在这...2005-11-15 12:23:00 · 109 阅读 · 0 评论 -
[导入]数据仓库建模
关系数据库的关键之处在于关系的分解,在数据库中只定义了数据之间的两两关系,与应用相关的更复杂的数据关系需要在运行时通过动态join来构造出来,即这些关系储存在程序中而不是数据库中。实际上,关系数据库的一个隐含的假定是数据之间很少关联,而在实际应用中单表和主从表也正是最常出现的情况。当一个应用频繁需要大量表的连接操作的时候,往往意味着关系数据模型的失效,此时我们将不得不放弃数据的无冗余性,需要...2005-11-15 12:29:00 · 95 阅读 · 0 评论 -
[导入]EasyCalendar:一维随机游走
在时间轴上定位一般比较麻烦,我们可以编写大量的get函数来得到特殊时间点,如getFirstDayOfMonth(int year,int month), getFirstDayOfNextMonth(intyear, int month),这不如采用如下正交化的流式设计。EasyCalendar cal = new EasyCalendar().toYear(2001).toMon...2005-11-16 19:28:00 · 337 阅读 · 0 评论 -
代码习惯
新手总是有很多不好的代码习惯. 最常见的一个是不使用临时变量.例如 for(int i=0;i<myList.size();i++){ otherList.get(i).getSomeVar().getName(); otherList.get(i).getSomeVar().getValue(); } 这种做法有如下后果:...2005-11-17 11:55:00 · 112 阅读 · 0 评论 -
[导入]Query:结构化查询
CRUD(Create, Read,Update, Delete)操作中最难处理的是查询。因为查询总是多样化的,如果每个特定查询调用都编制一个对象方法,则维护量太大且扩展性很差。如果编制一个通用的查询接口,一般的做法是直接以SQL文本作为参数,但这样就几乎丧失了封装的意义。这里的核心问题是Query本身是复杂的,我们应该将它对象化为一个类,在程序中控制Query的结构,而一个文本对象与一...2005-11-19 10:58:00 · 125 阅读 · 0 评论 -
[导入]Quartz 任务调度
quartz是一个高质量的任务调度软件包。其主要组成部分为:Scheduler接口: quartz的执行线程,它根据Trigger决定调度时刻,根据JobDetail的说明实例化并运行JobJobDetail类: 可持久化的任务描述信息。任务虽然分组,但是仅用作管理标示,任务之间并无实质性关联, 例如无法定义job chain。Trigger类:任务的调度策略。这里的特点是调度策略与任...2005-11-22 17:55:00 · 165 阅读 · 0 评论 -
AjaxAnywhere
http://ajaxanywhere.sourceforge.net/index.html AjaxAnywhere利用JSP标签把Web页面标注出可以动态装载的区域, 可以直接把任何JSP页面转化为AJAX感知组件而不需要进行复杂的Javascript编码. <script> ajaxAnywhere.getZonesToLoad = function(ur...2005-11-23 21:53:00 · 81 阅读 · 0 评论 -
[导入]tag技术
tag在国内java社区并不算流行,这在很大程度上是因为jsptag的设计失误造成的。但在整个开发业界内,tag已经成为一种广泛应用的技术。微软的dotNet服务器端极端依赖tag技术,而在浏览器端IE的behaviour, htc也独立的发展起来。Longhorn的XAML,Firefox的XUL无一例外的依赖于可自定义的tag。java社区的JSF, SiteMesh, Tile...2005-12-02 22:59:00 · 271 阅读 · 0 评论 -
[导入]Exceptions: 统一异常处理
在witrix平台中,异常处理没有采用java语法支持的checked exception,也不提倡使用自定义的异常类,而是定义了少数几个RuntimeException基类,一般是CommonException(RuntimeException的派生类)。 在我自己的经验中,checked exception从未发挥过实质性的作用。checkedexception在某种程度...2005-12-02 23:00:00 · 153 阅读 · 0 评论 -
通过继承构造业务对象环境
现在很多设计中推崇接口和依赖注入(dependencyinjection),而不倾向于采用继承机制来构造程序结构。但很多时候作为一种简便而廉价的封装方法,继承仍然是不可或缺的.例如与一些Engine打交道的时候,需要实现某些特定的接口. 在osworkflow中, 我们需要实现FunctionProvider接口, interface FunctionProvider{ ...2005-12-06 22:33:00 · 81 阅读 · 0 评论 -
关于Continuation
http://www.ps.uni-sb.de/~duchier/python/continuations.html A continuation is a procedure that takes the valueof the current expression and computes the rest of the computation. Continuat...2005-12-12 00:58:00 · 142 阅读 · 0 评论 -
[导入]IVarValueSet: Map语义的扩展
关系数据库提供的是集合存储模型, query(fields, condition) ==> list of records, 可以从条件集合映射到记录集合。当condition退化为单一的key, 而fields采用默认值的时候,我们就退化到Map语义, 从key对象映射到value对象,而不是从集合映射到集合。很多时候我们只需要这种简单Map语义的存储模型,例如用户偏好设置的存...2005-12-28 22:22:00 · 64 阅读 · 0 评论 -
[导入]UnitTest:语义校验
单元测试随着agile的流行已经家喻户晓了,这正反映了软件的一个本质特征:软件是Man-Made的,而人是不可靠的。软件出错的高频率必然导致控制间隔的缩短。我最早是在编写matlab程序的时候独立的发现了单元测试的作用。因为matlab是弱类型的,横纵矢量也不区分,很容易犯错误,我就为每一个matlab函数编写了测试脚本,约定了命名规范为xxx_test.m, 在测试的时候通过can_...2005-12-28 22:34:00 · 95 阅读 · 0 评论 -
jQuery中的编程范式
浏览器前端编程的面貌自2005年以来已经发生了深刻的变化,这并不简单的意味着出现了大量功能丰富的基础库,使得我们可以更加方便的编写业务代码,更重要的是我们看待前端技术的观念发生了重大转变,明确意识到了如何以前端特有的方式释放程序员的生产力。本文将结合jQuery源码的实现原理,对javascript中涌现出的编程范式和常用技巧作一简单介绍。 1. AJAX: 状态驻留,异步更新...2011-12-25 21:17:48 · 157 阅读 · 0 评论