Design
贝吉塔不爱算法
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
展开
-
VBA竟然支持命名参数 -- 合并多个Excel workbooks为一个Excel文件
ks.htmlMerging Many WorkbooksSummary: Got a whole slew of workbooks that you need to merge together? You can do it manually, but it could take you all day. It’s much better to use a macro to do the merging, and you can be done in a few minutes. Thi2008-06-14 17:42:47 · 214 阅读 · 0 评论 -
Faramita语言设计草案0.1 -- 真正的可移动代码(mobile code)
: Domain Specific Language 领域专用语言AOP: Aspect Oriented Programming 面向方面编程1. 为什么叫Faramita这个名字?梵语波罗密特(Faramita)的意思是“到达彼岸”或“做事成功”。传说当时外国商人乘船远涉重洋,饱经大海风浪之险,每当他们达到“黄木之湾”的扶胥港,遥见山上的南海神庙时,不禁发出“Faramita”的欢呼!(引自陈柏坚《广州是中国经久不衰的外贸港市》)Faramita是彼岸的意思。开头的三个字母“Fa2010-04-19 12:05:23 · 479 阅读 · 0 评论 -
域对象 & 面向对象 & 结构化编程
。当然,我们在读大师之后,掩卷沉思之余,最好也保持自己的独立意见。希望本文能够唤起一些对基本概念和基本功的重视(追逐新潮概念之余,同时也固本培源 :D)。1. Domain Object的重新提出的背景Domain Object并不是一个全新的概念,而是继承以前的纯面向对象开发的思路。由于当前O/R Mapping, DAO开发结构的层次划分,导致出现了大量的纯粹数据对象。这些数据对象只带有getter, setter属性,而不具有属于自己的方法,起着Data Transfer Ob2005-01-02 15:59:49 · 116 阅读 · 0 评论 -
以前写的一个Design Pattern的文章
itor Pattern和Proxy Pattern。同时,文中的例子也提供了一类问题(条件组合问题)的解决方案。2.问题的引入Design Pattern(设计模式)的目标是,把共通问题中的不变部分和变化部分分离出来。不变的部分,就构成了Design Pattern(设计模式)。这一点和Framework(框架)有些象。下面举个排序的例子,说明如何抽取问题中的不变部分。假设一个Java类Record有field1,field2,field3等字段。[code="jav2005-06-17 21:20:39 · 70 阅读 · 0 评论 -
OOP/AD basic
相互学习,共同进步。因此,为了便于读者找出漏洞,进行批评和抨击,帮助我进步,我尽量使用朴实无华,简单易懂的语言。用咱老百姓自己的话,讲述老百姓自己的故事。为了突出重点,加强效果,文中不免矫枉过正,提出一些片面极端的看法。为了方便起见,我也把Procedure Oriented称为PO。1.代码重用评价一门语言的重要标准之一,就是代码重用程度。PO的代码重用主要有两种方式:(1) 模块重用 Module Reuse (2) 模板重用Template Reuse模块重用。比如,一个2005-06-18 18:14:02 · 155 阅读 · 0 评论 -
Domain Pollution Resolution 域污染解除
2005-12-04 18:42:23 · 141 阅读 · 0 评论 -
静态 vs 动态,编译 vs 解释,类型 vs 数据,定义 vs 操作
。本文试图提出这样一种判断基准:在程序运行的时候,如果类型定义能够当作(元)数据来操作,那么就是动态的,解释的;反之就是静态的,编译的。(注:这只是一种观察角度和判断标准,而不是定论!这个世界上总有一些打歪靶爱好者,迫使我加上这类的注明。不过这类人几乎从来不看文章的。估计这次也看不到这段注明。)首先,我们来看一个动态扩展数据库表属性的例子。假设user table有id, name, email等3个字段。我们需要动态添加某些属性。于是定义user_property table。有id,2005-12-23 14:33:14 · 83 阅读 · 0 评论 -
Hard Code Logic -> Static Type -> Dynamic Type Data
2005-12-24 16:11:00 · 79 阅读 · 0 评论 -
override, overload, covariance
2006-06-21 12:44:49 · 117 阅读 · 0 评论 -
Copy On Write Hash Map (线程同步相关)
current maphttp://www.iteye.com/topic/174591我以前写过这个Fast Read Map 数据结构的文章.但是那个时候, 理解得并不是那么透彻, 这里重新整理再发一遍.-------------------------Copy On Write Hash Map我们在工作的过程中,经常遇到如下的需求:用一个Map存放常用的Object,这个Map的并发读取的频率很高,而写入的频率很低,一般只在初始化、或重新装装载的时候写入。2008-03-21 18:19:54 · 118 阅读 · 0 评论 -
DemeterJ, DJ, AP
ynamic Adaptive Programming in Java这些和AOP同样有紧密的联系。Demeter是一个原则。law。大意就是只能调用member, parameter的第一级方法, 不能a.getA().getB()这样的连锁调用。当然,它的正式定义没有我写的这么直白。Demeter Java呢,就是帮助程序员避免自己写很多Wrapper,又能够遵守Demeter Law的一种自动工具。Adaptive Programming就是Incrementa2006-07-13 14:02:32 · 114 阅读 · 0 评论 -
Logger MVC体系的Lazy Model设计思路
2006-07-23 13:22:38 · 82 阅读 · 0 评论 -
线程同步
2008-02-25 22:32:04 · 128 阅读 · 0 评论 -
线程同步模型, 生产者/消费者, 读写同步,线程池,concurrent map.
易懂的文章, 还是比较受欢迎的.关于线程, 我以前也写过一些文章.只是写得不那么清楚易懂.一是因为自己的理解也有限, 二是很难找到灵感,很难写出一个非常贴切的例子.应一些坛友的意见. 我这里继续发一些线程相关的内容. 内容的条理性和连贯性可能有些欠缺.-------------------------------------------------------------------------生产者/消费者模型有了信号量这个利器,我们就可以处理比较复杂的线程同步2008-03-21 18:15:07 · 112 阅读 · 0 评论 -
函数的副作用及其他
t)的。显式(Explicit)的意思是,函数与外界交换数据只有一个唯一渠道——参数和返回值;函数从函数外部接受的所有输入信息都通过参数传递到该函数内部;函数输出到函数外部的所有信息都通过返回值传递到该函数外部。如果一个函数通过隐式(Implicit)方式,从外界获取数据,或者向外部输出数据,那么,该函数就不是Pure Function,叫作Impure Function。隐式(Implicit)的意思是,函数通过参数和返回值以外的渠道,和外界进行数据交换。比如,读取全局变量,修改全局变量,都叫2008-03-28 19:48:14 · 146 阅读 · 0 评论 -
servlet thread, SEDA
uest,一个thread。如果换成如下的方式,就可能减少thread个数。request进来,不启动一个thread。而是产生一个listner task,进入task queue。有一个task picker把task queue里面的task进行分拣和分类,合并成批量处理的任务。然后根据这些批量任务产生thread。执行完毕,通知task listner,结果返回用户。朋友的深入考虑的意见:任务可以分为several stages。每个stage完成都可以通知task2006-07-24 21:43:57 · 93 阅读 · 0 评论 -
Functor组合, 参数集合, Curry
2006-07-27 15:24:33 · 66 阅读 · 0 评论 -
Generice Java (and c#)
2006-08-23 11:44:14 · 99 阅读 · 0 评论 -
JavaScript Monads
ined;}MonadClass.prototype.pass = function(value, cb, scope){if(typeof value[”value”] == “undefined”){return new this.constructor();}// side effects go here!if(scope){ return cb.call(scope, value); }return cb(value);}[/code]2006-09-03 17:33:24 · 64 阅读 · 0 评论 -
Tail Recursion = 循环 = CPS
2006-09-06 01:58:24 · 127 阅读 · 0 评论 -
Re: ajoo JRC
2006-09-16 08:56:27 · 169 阅读 · 0 评论 -
祝贺Javaeye2.0, 关联数据结构
2006-08-09 06:39:46 · 116 阅读 · 0 评论 -
ajoo JRC
rc项目的缘起可以看这里。http://forum.iteye.com/viewtopic.php?p=132021#132021项目总共分3部分。1. jrc的组合子部分,可以生成AST。checked out code。看到这部分ajoo已经做了。Relation, 这部分就是SQL的语法元素组合子。ajoo称之为AST。2. 写parser,把ansi sql翻译成ast。准备用jparsec来写。 这部分是我的任务。要写一个Parser,根据SQL的解析结2006-08-17 16:20:57 · 187 阅读 · 0 评论