`
canonical
  • 浏览: 367180 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
    软件世界与真实的,物理的世界有着本质的不同,其中一点在于软件中的规则是根据需求制订的而不是先验的。我们在研究物理世界的时候,多少会有些唯物主义, 即纷繁芜杂的表象下蕴含着自恰的,不变的规律。物理学 ...
有人认为jsplet中使用session是个缺点,关于这一点,我想起一件以前听来的事情。我们都知道Linux的内核是常驻内存,不换页的(不知道最 新的内核是否已经有所改变),Torvalds认为内核换页对系统性能有巨大影响,是愚蠢的想法,所以Linux内核不能换页。据陈榕说,NT内核是可换 页的,而微软内部有一个小组,专门编写工具,对已经编译好的操作系统二机制代码进行优化,调整,最终结果是NT内核可以换页,但几乎不换页,这才是微软可 怕的技术实力。 对于简单的应用,session可以随意使用,而对那些性能要求极高的应用,每一个系统架构师都会如履薄冰,简单的依靠全局Cache不是真正的解决方 案, ...
在时间轴上定位一般比较麻烦,我们可以编写大量的get函数来得到特殊时间点,如 getFirstDayOfMonth(int year,int month), getFirstDayOfNextMonth(int year, int month),这不如采用如下正交化的流式设计。EasyCalendar cal =     new EasyCalendar().toYear(2001).toMonth(1).toFirstDayOfMonth().toFirstDayOfWeek();
tpl是witrix开发平台中的动态xml标签技术,其基本特点表现为如下三个方面:1. 执行能力 xml本身只是对数据的描述,而没有循环和判断的能力。 在tpl中<c:forEach>和<c:if>标签可以完成程序语言的执行功能,并定义了<c:tile>, <c:iif>等更方便的标签。 2. 抽象能力   获得抽象能力,首要的一点是使得创建新概念的成本极低。很少有人大量开发jsp tag,原因就是开发tag过于麻烦,而且调整不方便。另外开发出的tag如果粒度太小,大量使用的时候是对性能的致命伤害。   tpl首先需要经过编译,而不是象jsp ta ...
经常有人说XX技术是面向复杂应用的,对于常规应用如果采用那是得不偿失。我想很多情况下这只是体现了该技术的不适 应性。我主张系统设计应该尽量体现一种共振原则,即系统架构只有一个,但是面向复杂的应用,它表现出 ...
关于jsplet中的object生命周期的管理以及使用拉模式,如果套用现在流行的设计术语,那就是涉及到所谓的IoC设计(控制反转) IoC 的Container现在很受追捧, 但真正的IoC设计思想并没有引起大家的重视。也许大多数人使用的都是成品吧,以至于把成品的功能等价于其所依赖的设计原理。Spring等所建立的 IoC更准确的说法是Dependency Injection,只是IoC的一种体现。其基本思想是一个对象并不控制所有与它相关的部分,而是把控制权交给使用对象的人。这里重要的就是控制流(信 息流)的反转。 对象生命周期的管理也是这样,并不是由一个Manager猜测用户是否使用该对象,而 ...
jsplet中的对象化并不是一种巧妙的trick,而是一种设计上的必然。现在大家言 必称OO,可OO到底意味着什么,除了书本上的话语,你能不能用自己的话描述一下,能否体会到那种必然。OO如果是一个有效的概念,它在软件以外的领域是 否有着对应。按照早期教科书的说法,OO是为了模拟现实世界,这种说法只是反映了设计上的一种困境,一种思想上的贫乏。面向对象最直接的意义在于标示了状 态与行为之间的耦合,此后在程序中可以用一种显示的,一致的方式来操纵这个集合体。在界面上,我们看到一个组件,在模型层,我们看到的还是那个对象,在配 置文件里我们还能清晰的辨别出它来。可在webwork这种面向action的框架中 ...
引用:如果在Action Centric的框架,要避免两个访问点,可以这么定义。 view.do?&templateName=a &objectName=/@Demo&objectEvent=test 这 种做法就是程序自己处理而不是框架支持了。我说过,工作就是那么多,只是框架做什么和程序作 ...
jsp本身提供的是一个有限状态机模型(FSM),Web访问模型直接体现了这一点: action?XXXX。 action对应于方法名,XXX是方法的参数。在这个访问模型中没有指出状态存储在什么地方,因为它假设后台是一个整体,构成一个巨大的状态集。 但 这种模型注定是过分简化的,所以会有很多的发展。发展的方向就是逐渐精细化,识别出相关的部分,把它们组织到一起。其实可以从各个框架的开发过程来看出这 种演化的过程。 Struts最早只有一个全局配置文件,现在多了一个模块的概念。WebWork是在Struts之后设计的,提供了一个所谓的package的概念,将 一堆action和interceptor组 ...
   在Jsp Model 2模型中, 用户的所有请求提交给Controller Servlet, 由Controller进行统一分配, 并且采用推的方式将不同的UI显示给用户。 这种推方式在很多人看来是一种优点,因为在Struts等MVC实现中具体推送的UI可以在配置文件中配置,配置完成后还可以通过一些可视化分析工具得到 整个站点地图。在Model2模式中基本的访问格式为:       action.do?其他参数   我 本人从未应用过Model2模式,但与我们的jsplet框架对比,我认为这种推送方式在大多数情况下并不是什么优点。如果将一次web访问看作是一次函 数调用,则按照Model ...
在witrix平台中访问数据库最直接的方法是使用edu.thu.db.SQL类。基本用法如下://  设定数据库连接参数, 连接可以通过java.sql.DriverManager 和 //javax.sql.DataSource等多种方式建立,并支持数据库连接缓冲池。TransactionMode db = new TransactionMode("default"); // 设定数据库连接参数SQL sql = SQL.begin().select().field("id")                     .from().table(&quo ...
关系数据库的关键之处在于关系的分解,在数据库中只定义了数据之间的两两关系,与应用相 关的更复杂的数据关系需要在运行时通过动态join来构造出来,即这些关系储存在程序中而不是数据库中。实际上,关系数据库的一个 ...
 Unix中的Pipe模型被认为是Unix最美妙的思想之一: 大量独立的小工具通过管道组合在一起,可以构成非常复杂和多样化的功能。例如:dir|sort。 这是一种功能正交分解的做法,其隐含的一个基本假定是这些小工具之间具有完全的对称性,即Pipe模型本身没有限制哪些工具可以组合在一起,也没有限制这 些工具组合时的顺序。当系统逐渐复杂起来,对称性发生破缺(Symmetry Broken),则出现了Layer模型,即在不同层次上的对象不能互换, 而同一层次上的对象仍可以互换, 例如协议栈。更加复杂的系统中,完整的重用一个对象变得越来越困难,组件技术通过接口将对象分解为正交的子部分,最终构成一个网状 ...
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 composed of multiple states, but the application can be only in one state at a time. Any request received ...
   控制论的基本哲学是:对于一个未知的黑箱系统,仍然可以根据观察建立控制模型,简言之,即控制有理。无论是物理系统,生物系统,社会系统,其控制的机理是 一致的。这里所强调的是一种广义的建模,即我们并不寻求该系统本质上的物理模型,而是寻求一种"有用"的模型。实际上,在数学上早已准备好了多种广义模型 系列,最典型的Taylor展开可以建立不同级次的多项式模型,我们所要做的只是根据不同的需要去做拟合。
Global site tag (gtag.js) - Google Analytics