- 博客(22)
- 收藏
- 关注
原创 jsplet与OO
jsplet中的对象化并不是一种巧妙的trick,而是一种设计上的必然。现在大家言必称OO,可OO到底意味着什么,除了书本上的话语,你能不能用自己的话描述一下,能否体会到那种必然。OO如果是一个有效的概念,它在软件以外的领域是否有着对应。按照早期教科书的说法,OO是为了模拟现实世界,这种说法只是反映了设计上的一种困境,一种思想上的贫乏。面向对象最直接的意义在于标示了状态与行为之间的耦合,此后在程序
2005-03-29 23:40:00
859
原创 jsplet与IoC
关于jsplet中的object生命周期的管理以及使用拉模式,如果套用现在流行的设计术语,那就是涉及到所谓的IoC设计(控制反转) IoC的Container现在很受追捧, 但真正的IoC设计思想并没有引起大家的重视。也许大多数人使用的都是成品吧,以至于把成品的功能等价于其所依赖的设计原理。Spring等所建立的IoC更准确的说法是Dependency Injection,只是IoC的一种体现。其
2005-03-29 23:20:00
849
原创 关于jsplet的一些问答
引用:如果在Action Centric的框架,要避免两个访问点,可以这么定义。 view.do?&templateName=a &objectName=/@Demo&objectEvent=test 这种做法就是程序自己处理而不是框架支持了。我说过,工作就是那么多,只是框架做什么和程序作什么的分工而已。说jsplet是page为中心也不太准确,jsplet是以对象为中心,只是指定了希望使用的视图
2005-03-27 16:08:00
1156
原创 广义的模型
控制论的基本哲学是:对于一个未知的黑箱系统,仍然可以根据观察建立控制模型,简言之,即控制有理。无论是物理系统,生物系统,社会系统,其控制的机理是一致的。这里所强调的是一种广义的建模,即我们并不寻求该系统本质上的物理模型,而是寻求一种"有用"的模型。实际上,在数学上早已准备好了多种广义模型系列,最典型的Taylor展开可以建立不同级次的多项式模型,我们所要做的只是根据不同的需要去做拟合。
2005-03-26 10:44:00
1097
原创 关于分布式
分布式有几个核心问题。首先不存在全局的状态空间,各个节点上的状态可能不统一,节点之间的通信需要通过序列化等方式跨越状态空间边界。一般只有只读数据才能做到真正的分布式,因为只有只读数据才能维持各个节点之间的一致性。第二,节点之间的信息传递都是单向的,不存在test_and_set这样的锁原语(test_and_set需要同时信息双向流)。如果需要建立分布式锁,必须存在中心协调者,即存在着瓶颈
2005-03-26 10:42:00
828
原创 摇摆于强类型与弱类型之间的对象
对象本质上是一种命名技术,即将一组相关的数据和函数放在一起,起一个名字。从业务层面上看,我们需要识别出大量的概念,对应到建立的领域模型,我们就拥有不同的业务对象。这些业务对象的类型各不相同,可以区分出来。从中间件层面上看,需要从大量业务对象中抽象出共性,并以统一的方式进行处理。即在中间件层,所有业务对象的类型被弱化下来,实际上丧失了其各自的独特性,即在中间件层看来,这些不同业务对象的类型是相同的。
2005-03-26 10:40:00
1191
原创 数据仓库建模
关系数据库的关键之处在于关系的分解,在数据库中只定义了数据之间的两两关系,与应用相关的更复杂的数据关系需要在运行时通过动态join来构造出来,即这些关系储存在程序中而不是数据库中。实际上,关系数据库的一个隐含的假定是数据之间很少关联,而在实际应用中单表和主从表也正是最常出现的情况。当一个应用频繁需要大量表的连接操作的时候,往往意味着关系数据模型的失效,此时我们将不得不放弃数据的无冗余性,需要通过预
2005-03-26 10:37:00
1035
原创 对称性的破缺: Pipe => Layer => Component
Unix中的Pipe模型被认为是Unix最美妙的思想之一: 大量独立的小工具通过管道组合在一起,可以构成非常复杂和多样化的功能。例如:dir|sort。 这是一种功能正交分解的做法,其隐含的一个基本假定是这些小工具之间具有完全的对称性,即Pipe模型本身没有限制哪些工具可以组合在一起,也没有限制这些工具组合时的顺序。当系统逐渐复杂起来,对称性发生破缺(Symmetry Broken),则出现了L
2005-03-26 10:31:00
856
原创 从级列理论看MVC架构
cocoon的文档中有这样一段话:Traditional Web applications try to model the control flow of a Web application by modeling the application as a finite state machine (FSM). In this model, the Web application is comp
2005-03-26 10:11:00
935
原创 级列设计理论(2)
建立级列(Hierarchical)理论,首先需要建立最广泛的模型。在量子力学中,确立了如下基本概念: 1. 确定性的态。 2. 所有态构成完备的态空间。 3. 系综(即态的集合)的动力学。 首先,状态的确定性非常重要。即使在量子力学中,量子态存在几率诠释,态函数本身在数学上仍然是确定性的,即在任一时刻,任一地点存在唯一的值。如果我们的讨论没有一个确定性的基础,那所有的推演都将变得极为困难(模
2005-03-26 10:09:00
950
原创 级列设计理论(1)
理论物理的优美在于从少量基本原理(如最小作用量原理)出发推导出整个理论大厦。而在软件设计领域却充斥着林林总总的"最佳实践". 太多的规则只会意味着没有规则。软件设计领域的现状说明这个领域还处于非常稚嫩的阶段,应该从其他领域借鉴更多的知识。在我前面的blog中已经说明了在软件中的一些具体的分析技术。但如何有效的应用这些分析技术,我们还需要一些指导性的理论框架。如果把软件设计放在更加广泛的系统
2005-03-26 10:06:00
962
原创 软件中的分析学
分析学的离散形式是分而治之(Divide And Conquer)。 这一思想在软件设计领域的重要性不言而喻。 大系统分解为小系统,小系统分解为模块,模块分解为对象,对象分解为函数,函数分解为增删改查等动词和集合/个体等名词,如此递归下来。 在很多关于软件的"最佳实践"中,都列举了这种分解过程中的注意事项,如高内聚,低耦合等。 但是为什么要强调这些概念,谁能保证这个checklist是完整的,
2005-03-26 10:04:00
995
原创 关于建模
最近几年关于模型的提法突然多了起来,但这个概念到底意味着什么呢。从哲学上说,我们的思想是外部世界结构在主观意识中的反映,当我们把主观意识再投射回外部世界时,就得到关于外部世界的模型。所以,在最广泛的意义上,模型不过是我们思维中的一组关联。问题不在于我们是否需要模型或者什么东西是模型而什么东西不是模型,我们所意识到的一切都是模型,无论它与真实情况的差距有多大。我们所能区分的只是什么是一个"好"的模型
2005-03-26 10:01:00
979
1
原创 jsplet 与webwork2的概念对比
jsp本身提供的是一个有限状态机模型(FSM),Web访问模型直接体现了这一点: action?XXXX。action对应于方法名,XXX是方法的参数。在这个访问模型中没有指出状态存储在什么地方,因为它假设后台是一个整体,构成一个巨大的状态集。但这种模型注定是过分简化的,所以会有很多的发展。发展的方向就是逐渐精细化,识别出相关的部分,把它们组织到一起。其实可以从各个框架的开发过程来看出这种演化的
2005-03-26 09:57:00
1081
原创 jsplet: 对Model2模式的批判
在Jsp Model 2模型中, 用户的所有请求提交给Controller Servlet, 由Controller进行统一分配, 并且采用推的方式将不同的UI显示给用户。 这种推方式在很多人看来是一种优点,因为在Struts等MVC实现中具体推送的UI可以在配置文件中配置,配置完成后还可以通过一些可视化分析工具得到整个站点地图。在Model2模式中基本的访问格式为: action.
2005-03-26 09:53:00
1007
原创 SQL类:一件事一句话
在witrix平台中访问数据库最直接的方法是使用edu.thu.db.SQL类。基本用法如下:// 设定数据库连接参数, 连接可以通过java.sql.DriverManager 和//javax.sql.DataSource等多种方式建立,并支持数据库连接缓冲池。TransactionMode db = new TransactionMode("default"); // 设定数据库连接参数S
2005-03-26 09:50:00
941
原创 witrix开发平台介绍
witrix开发平台是一个完整的J2EE企业级应用开发平台,包括Jsplet网络应用开发框架,基于xml的tpl模板引擎,分级的基于角色的权限管理,与权限系统集成的统一数据访问机制,基于tpl技术的工作流引擎等,并集成spring和drools技术。 witrix平台的设计中采用了与Struts, Hibernate等当前流行框架不同的设计理念,整体设计更加先进,简洁。支持快速开发和单元测
2005-03-26 09:48:00
1628
原创 xml db vs. RDB
关系数据库的理论基础是集合论,而集合的基本定义就是不重复的一组元素。而xml数据库方面尚缺乏相应的理论来消除数据冗余性。关系数据库能够成功的另外一个重要原因是它采用平面表形式,而应用中大量使用的正是平面表,所以数据库表在很多时候是数据的最适表现形式,使用xml表达只会增加不必要的复杂性。平面表的基本假设是所有条目的结构都是一样的(具有一个header),而xml表示形式本身不存在这样的假定,
2005-03-26 09:46:00
808
原创 jsp tag的七宗罪
一个技术的成功,在于最终占据了某个概念。当我们应用到此概念的时候,首先想到的就是这个技术实现,久而久之,形成一个自我证明的过程。而有些技术却是在其位无能谋其政,实在是让人不得不为它扼腕叹息呀。jsp tag正是这样一种技术。有些人认为jsp tag只是jsp的一种扩展,只是一种syntax suger, 这正反映了此技术所面临的一种困境。这里指出一些jsp tag的设计缺陷,并无贬低这种技术的意图
2005-03-26 09:43:00
1215
原创 JMX技术
JMX在技术上的需求可以说是将管理功能从功能性接口中分离出来。例如一个缓存接口interface ICache{ Object get(Object key); void put(Object key, Object value);}但一个具体实现类可能有很多参数可以调整,如缓存的最大尺寸等。这些可配置参数一般与具体实现紧密相关,即与实例相关,而不直接涉及到所要实现的功能。例如实现
2005-03-26 09:32:00
662
原创 RedHat9上安装Oracle9i手记(原作:hotman_x)
以 root 身份执行以下命令: # 设置临时交换分区(当交换空间不足时用, 建议重新分区更佳) # 设置为 1G, 请根据实际需要设置 #dd if=/dev/zero of=/tempswap bs=1k count=1048576 #chmod 600 /tempswap #mkswap /tempswap #swapon /tempswap # 得到一个 1G 的临时缓冲区
2005-03-26 09:23:00
803
原创 JS的IE和Firefox兼容性汇编(原作:hotman_x)
以下以 IE 代替 Internet Explorer,以 MF 代替 Mozzila Firefox1. document.form.item 问题 (1)现有问题: 现有代码中存在许多 document.formName.item("itemName") 这样的语句,不能在 MF 下运行 (2)解决方法: 改用 document.formName.ele
2005-03-26 09:22:00
1277
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人