- 博客(231)
- 资源 (1)
- 收藏
- 关注
《编程机制探析》第二十八章 ORM
《编程机制探析》第二十八章 ORM本章的主题是ORM(Object Relation Mapping,对象与关系数据的映射)。ORM是一种技术框架,其主要作用是在面向对象语言和关系数据库之间搭建一个转换桥梁。这个转换是双向的。ORM既可以把关系数据转换为对象,也可以把对象转换为关系数据。ORM种类繁多,功能或繁或简,这里不便一一列举。本章只拣ORM的一些重要特性进行阐述。ORM...
2011-10-19 15:02:54
757
1
《编程机制探析》第二十七章 Flyweight
《编程机制探析》第二十七章 Flyweight上一章推介了一种叫做“层次匹配”的页面生成技术。这种技术有诸多优点,但实现起来有一个令人头疼的麻烦之处——模板解析器。凡是涉及到字符串处理的工作,一般都是琐碎乏味的。模板解析器就是如此。本章讲述一种方案,既可以利用上“层次匹配”的妙处,又可以免除模板解析器的实现。这种方案基于一种叫做“Flyweight Pattern”(轻量级模式)的实际...
2011-10-19 15:01:13
684
《编程机制探析》第二十六章 页面生成技术
《编程机制探析》第二十六章 页面生成技术Web应用程序之所以如此流行,有两个主要原因。第一个原因是界面的一致性,即浏览器内显示的HTML;第二个原因是能够支持巨大的用户访问量。Web应用程序之所以能够支持巨大的用户访问量,主要是因为HTTP协议的无状态特性。随着技术的发展和应用的成熟,Web应用程序对用户状态的要求越来越高。HTTP协议的无状态特性就成为了一个难以绕过的阻碍。这真是,成...
2011-10-18 14:54:35
632
《编程机制探析》第二十五章 Web开发架构
《编程机制探析》第二十五章 Web开发架构前面章节讲述了HTTP协议的方方面面,从本章开始,我们进入到Web编程开发的世界。Web应用程序这种说法,主要是针对桌面程序来说的。桌面程序的图形界面元素十分丰富,交互性、操作性也十分良好。Web应用程序的界面,传统来说,只有一种,就是在浏览器中显示的HTML。一开始的时候,HTML并不是为了应用程序而设计的图形界面,而是以内容文本表现为主...
2011-10-18 14:53:04
589
《编程机制探析》第二十四章 HTTP要点
《编程机制探析》第二十四章 HTTP要点上一章讲解了HTTP Session和HTTP Cookie的基本概念,这一章,我们通过具体例子,深化对HTTP的理解,从而掌握其要点。我们先来看一个访问一个技术网站的例子。这个技术网站叫做theserverside.com。我们在浏览器中访问www.theserverside.com这个网址。我们的浏览器是支持Session Cookie的...
2011-10-18 14:50:54
537
《编程机制探析》第二十三章 HTTP
《编程机制探析》第二十三章 HTTPHTTP是Web应用开发中最为重要的协议。但是,在实际的Web应用开发中,相当多的程序员根本就不了解HTTP是怎么回事,也照样编写Web程序。我就曾经是其中的一员。这种现象的产生,与现代软件业的开发模式大有关系。这事儿,说起来话就长了。软件开发管理,一向是管理界的一大难题。因为,没有哪个程序员愿意被管理。每一个程序员都觉得自己是人才,而不是人力资源。...
2011-10-18 14:49:24
552
《编程机制探析》第二十二章 互联网应用
《编程机制探析》第二十二章 互联网应用在前面的章节中,我们一直在编程的基本原理和模型中折腾。从本章起,我们将进入真正的应用程序的世界。《黑客帝国》中,莫菲斯递给尼奥一粒药丸,“欢迎来到真实的世界。”在计算机界中,也有“真实的世界”(Real World)的说法。比如,我们经常看到这样的话:这种方案看起来很美,但不适用于真实的世界。(That sounds great, but no...
2011-10-18 14:47:35
616
《编程机制探析》第十四章 关于方法表的那些事
《编程机制探析》第十四章 关于方法表的那些事上一章,我们讲解了静态类型语言和动态类型语言的特性对比。这一章,我们继续深入讲解静态类型对象和动态类型对象的内部机理——方法表(虚表)的内存结构以及实现机制。我们先从静态类型语言中常见的语法陷阱开始。这些语法陷阱能够帮助我们更深入地理解静态类型对象的方法表的结构和特征。让我们回到上一章开头的那段代码。那个Visitor有两个方法,visi...
2011-08-29 14:55:39
518
《编程机制探析》第二十一章 AOP
《编程机制探析》第二十一章 AOP第二十一章 AOP程序设计的一个重要目标就是提高重用性,避免重复代码。到目前为止,我们已经接触到了诸多重用手段——过程式编程,面向对象编程,函数式编程,泛型编程,设计模式,等等。本章介绍一种新的重用手段——面向方面编程(Aspect Oriented Programming),简称AOP。什么叫做方面(Aspect)?这个词很难从字面上...
2011-08-29 14:43:07
556
《编程机制探析》第二十章 流程控制
《编程机制探析》第二十章 流程控制本章讲解函数式语言中的流程控制。在此之前,先让我们把目光投回到命令式语言的世界。目光所及之处,有一片区域特别混乱。上界派来的观察员大惊,“那是什么鬼地方?怎么和我自家的卧室那么乱?程序,不是应该遵守程序的吗?”仔细一看,那一片区域正是隶属于“流程控制”的“跳转语句”,俗称“跳转界”。你跳,我跳,他也跳。大家一起跳。杰克深情地望着露丝,“你跳...
2011-08-29 14:42:00
547
《编程机制探析》第十九章 函数 = 数据 = 类型 ?
《编程机制探析》第十九章 函数 = 数据 = 类型 ?本章继续讲解ErLang和Haskell的语言特性。本书中选择ErLang和Haskell作为研讨语言,是因为我个人觉得这两门语言最具有代表性。网上有一本脍炙人口的函数式编程教材,叫做《计算机程序的构造和解释》,英文为《Structure and Interpretation of Computer Programs》,简写为S...
2011-08-29 14:36:52
538
《编程机制探析》第十八章 函数式语法
《编程机制探析》第十八章 函数式语法从本章开始,我们将开始接触到函数式编程语言的语法和代码。本书采用的是两种函数式语言——ErLang和Haskell。我们从ErLang语法开始讲起,因为,ErLang语法比较简单易懂。不过,需要说明的是,这里的“简单易懂”,是对我们命令式程序员来说的。ErLang语法与命令式语法比较接近,命令式程序员看起来更舒服。相比之下,Haskell的语法虽然更...
2011-08-29 14:35:24
567
《编程机制探析》第十七章 函数式编程
《编程机制探析》第十七章 函数式编程当我们能够像掌握循环一样熟练地掌握递归之后,我们就可以正式向函数式编程进军了。当然,即使我们还没有熟练掌握递归,我们还是可以向函数式进军。我们可以在学习函数式编程的过程中,逐步习惯递归的写法。函数式编程并非主流编程模型,函数式语言亦非主流编程语言。但我们在描述某些具体问题时,不可避免地要涉及到一些代码。本书会尽量选择有代表性的函数式语言。本书的选择是...
2011-08-29 14:34:16
746
《编程机制探析》第十六章 树形递归
《编程机制探析》第十六章 树形递归上一章我们讲解了线性递归,使用的是各种资料中用得最多、最为经典的例子——阶乘(Factorial)算法。本章讲解递归结构中比较复杂的树形递归,同样使用各种资料中用得最多、最为经典的例子——斐波那契(Fibonacci)数列。典型的斐波那契(Fibonacci)数列问题是这么描述的:有一种母牛,出生后第三年,开始生育,每年都生一头母牛(貌似单性生育,...
2011-08-29 14:32:20
552
《编程机制探析》第十五章 递归
《编程机制探析》第十五章 递归前面章节讲述的基本上都是命令式语言(Imperative Language)的编程模型。关于命令式编程(Imperative Proramming)的重要概念和模型,我们基本都涉及到了。后面的章节将开始讲述另一种编程模型——函数式编程(Functional Programming)的内容。在讲述函数式编程(Functional Programming)之前...
2011-08-29 14:30:45
554
《编程机制探析》第十三章 动态类型
《编程机制探析》第十三章 动态类型在前面的章节中,我们已经几次遇到过Type Dispatch(类型分派)的场景了。在这种场景中,我们需要根据数据类型选择不同的行为。比如,我们来看下面这段典型Double Dispatch的Visitor Pattern的代码。void traversal(Visitor visitor){ // traverse each element ...
2011-08-29 14:29:51
542
《编程机制探析》第十二章 Iterator Pattern
《编程机制探析》第十二章 Iterator Pattern本章讲解一个极为重要、极为常见的设计模式——Iterator Pattern。关于Iterator的用法,实际上我们在前面的章节中有过一面之缘。Java语言开发包(JDK)中定义了一个Iterator接口,很清楚地描述了Iterator的行为。如果对这一点还不清楚的话,请查阅Iterator接口的相关文档和入门例子。Iterat...
2011-08-29 14:25:34
549
《编程机制探析》第十一章 Copy on Write
《编程机制探析》第十一章 Copy on WriteHash Table(哈希表,也叫散列表)是计算机编程中极为重要、极为常用的数据结构,其用法如下:我们可以用一个名字(name,或者叫做键值key)作为索引,把对应的内容存入到哈希表中;以后,我们可以提供对应的名字或者键值,从散列表把对应的内容取出来。用代码来表示就是这样:hashTable.put(“myName”, myThing...
2011-08-29 14:24:24
569
《编程机制探析》第十章 线程同步模型
《编程机制探析》第十章 线程同步模型上一章讲解的同步锁模型只是最简单的同步模型。同一时刻,保证只有一个线程能够运行同步代码。有的时候,我们希望处理更加复杂的同步模型,比如生产者/消费者模型、读写同步模型等。这种情况下,同步锁模型就不够用了。我们需要一个新的模型。这就是我们要讲述的信号量模型。信号量模型的工作方式如下:线程在运行的过程中,可以主动停下来,等待某个信号量的通知;这时候,...
2011-08-29 14:22:43
611
《编程机制探析》第九章 线程
《编程机制探析》第九章 线程本章开始讲述线程(Thread)的相关知识。线程(Thread)是计算机编程中的非常重要的概念,其概念与进程(Process)类似,都代表着内存中一份正在执行的程序。两者的共同点在于,两者都有自己的运行栈。两者之间的区别在于,进程拥有一份独立的进程空间,而线程没有。线程只能依附于进程存在。一个进程下面的多个线程,只能共享同一份进程空间。因此,线程和进程的主要区别...
2011-08-29 14:21:26
143
《编程机制探析》第八章 Compositor Pattern
《编程机制探析》第八章 Compositor Pattern在程序设计过程中,设计模式并不一定是单独使用的,很多情况下,我们可能同时组合应用多个设计模式,从而构建成一个更复杂的设计模式。当然,这样构建出来的设计模式,通常已经失去了通用性。在前面的章节中,我们用sort排序算法作为例子,讲解了最简单的Visitor(Functor)Pattern。那个排序的例子可以进一步扩展,引入更多的...
2011-08-29 14:19:57
152
《编程机制探析》第七章 设计模式
第七章 设计模式什么是真正的面向对象的设计?这是一个困扰我多年的问题。当年,面向对象的各种神话甚嚣尘上,一个程序员要是不能侃上两句面上对象,都不敢出门见人。那时候,我接触的第一门面向对象语言是C++。那是一门极其庞杂的语言。语法繁复不说,更令人头痛的是,C++语言还有各种变种,即使是同一种变种,其编译器的实现也有可能不同,存在着大量的编程陷阱。那些陷阱主要集中在C++语言的多继承语...
2011-08-29 14:18:07
210
《编程机制探析》第六章 面向对象
《编程机制探析》第六章 面向对象面向对象(Object Oriented)是命令式编程的主流编程模型,其概念极其重要。可以说,命令式编程几乎就是面向对象的天下。面向对象(Object Oriented)这个名词,可能是那帮计算机科学家炮制出来的最成功的名词了。尽管我绞尽脑汁,也不能为这个名词想出一个贴切的含义解释,但并不妨碍这个名词成为计算机编程中流行最广、上镜率最高的词汇。关于面...
2011-08-29 14:02:33
254
《编程机制探析》第五章 命令式编程
《编程机制探析》第五章 命令式编程从本章开始,我们会接触到真实的编程语言。但本书并不是一本编程语言语法入门书,本书旨在讲述最关键的编程模型核心概念,因此,本书通常会直接跳到最能够体现该语言编程模型的编程代码范例,而不会从头讲述某一种语言的讲法。有过编程经验的读者,阅读代码会感觉轻松一些。我尽量写得平实易懂,希望没有过编程经验的读者,也能够比较容易地理解。前面讲了,所谓计算机程序,其实就...
2011-08-29 14:01:08
198
《编程机制探析》第四章 运行栈与内存寻址
《编程机制探析》第四章 运行栈与内存寻址计算机启动之后,操作系统程序首先从硬盘进入内存条,成为最先运行起来的一批进程。这一批操作系统进程可了不得,它们规定了CPU工作的总流程。CPU工作的时候,必须严格遵守操作系统进程定义的工作流程。为了满足人类用户的需求,现代的操作系统都是带有图形界面的多任务(多进程)系统。在计算机运行期间,内存里总是会跑着多个进程。这一点,我们可以在任务管理器已经...
2011-08-29 13:54:14
283
原创 《编程机制探析》第三章 计算机运行结构
《编程机制探析》第三章 计算机运行结构前文反复提到计算机的“硬件”和“软件”这两个概念。那么,硬件和软件到底是什么东西呢?通俗来讲(即,用我们老百姓的话来讲),硬盘中存储的数据叫做软件,除此之外,计算机所有其他的部件,全都叫做硬件。注意,硬盘本身也是硬件。因此,软件是存储在硬件中的。软件必须依托于硬件,才有依托之地。打一个不太恰当的比方,硬件相当于看得见、摸得着的物质文明,而软件就相当...
2011-08-29 13:50:31
305
原创 《编程机制探析》第二章 计算机语言
《编程机制探析》第二章 计算机语言关于外语的重要性,怎么强调也不过分。关键时刻,外语甚至能救命。我们先来看一则小故事。老鼠妈妈带着孩子拼命奔逃,一只猫在后面紧追不舍。跑着跑着,老鼠母子俩被逼到了一个死角中,无处可逃,眼看就要命丧猫口。这时,老鼠妈妈临危不惧,直面大猫,狂吠几声:“汪!汪!汪!”那只猫吓了一跳,转身就跑。老鼠妈妈松了一口气,抓紧机会,对惊魂未定的孩...
2011-08-29 13:41:20
334
原创 《编程机制探析》第一章 写作初衷——若是当年早知道......
《编程机制探析》第一章 写作初衷——若是当年早知道......小时候,我读过一部短篇小说《一块牛排》,美国著名小说家杰克.伦敦写的。故事中,一个年老体衰的老拳击手陷入了人生的低谷,参加比赛之前,连补充体力的一块牛排都买不起。他的对手是一个正处于体力上升期、精力充沛的年轻拳击手。他凭借着丰富的经验与对手周旋,并抓住一闪即逝的机会,给了年轻的拳击手以沉重打击。但是,遗憾的是,他的体力不足,...
2011-08-29 13:37:59
566
原创 《编程机制探析》初稿目录(已提供PDF下载)
《编程机制探析》初稿目录第一章 写作初衷——若是当年早知道......第二章 计算机语言第三章 计算机运行结构第四章 运行栈与内存寻址第五章 命令式编程第六章 面向对象第七章 设计模式第八章 Compositor Pattern第九章 线程第十章 线程同步模型第十一章 Copy on Write第十二章 Iterator Pattern第十三...
2011-08-29 13:33:21
264
原创 Behead, Beloved. 头颅与爱情
Behead, Beloved. 头颅与爱情最近看到一本书《Head First》挺火。这本书的内容没看,但是,书名很发人深省。至少发我深省。Head First,是啥意思呢?头先伸出来?伸头也是一刀,缩头也是一刀?枪打出头鸟?出头的椽子先烂?突然,咔嚓一声,断头台的铡刀落下,一道雪亮的电光闪过意识的迷雾之海,令我联想起一个喜闻乐见的形象:一个美丽女子抱着爱人的...
2010-05-12 20:37:27
242
Faramita语言设计草案0.1 -- 真正的可移动代码(mobile code)
Faramita语言设计草案0.1广告语(不可当真):真正的可移动代码(mobile code),真正的分布式计算名词缩写解释:RPC: Remote Procedure Call 远程调用DSL: Domain Specific Language 领域专用语言AOP: Aspect Oriented Programming 面向方面编程1. 为什么叫Faramit...
2010-04-19 12:05:23
1846
弄璋弄瓦
http://baike.baidu.com/view/18220.html[quote]弄璋弄瓦 古人指生下男孩子把璋给男孩子玩,璋是指一种玉器,希望儿子将来有玉一样的品德,后人因此称生男孩为"弄璋"。后来就把生下男孩子称为“弄璋之喜”,而把生下女孩子称为“弄瓦之喜”。 典故 “弄璋、弄瓦”典出《 诗经·小雅·斯干》,“乃生男子,载寝之床,载衣之裳,载弄之璋。……乃...
2009-04-23 12:20:19
756
狗与犬
这是一个年代很久远的笑话。在我的印象中,知名度应该很广,应该很容易搜得到。但是,却搜不到。于是写一份,作为搜索结果共享之。一个穷人养了一条狗,耳朵是耷拉着的。有一天,穷人带着狗去遛弯,路遇一个富人带着一条狗,富人的狗的耳朵是支楞起来的。穷狗凑到富狗的身边,两条狗嬉闹起来。富人对穷人呵斥道:“快把你的狗弄走,别脏了我的犬。”穷人就奇怪了,“怎么我的狗是狗,你的狗就是犬呢?”...
2009-04-22 17:39:26
167
<红与黑> vs <漂亮朋友> 同一个梦想,不同的命运
和 这两本书的大体内容相近,除了结局。男主角都是帅哥,攀高枝的梦想相近,但是结局不同。同一个梦想,不同的结局。的男主角出身贫困,先和某贵夫人有染,后来又想娶贵夫人的女儿,攀上高枝,却最终未遂,走上了犯罪的道路。的男主角也是出身平民,一个退役军人。先和某寡妇有染,后来又和一个银行家的女儿私奔。最终修成正果。...
2009-04-21 18:29:04
680
安全浏览器 防病毒 沙盒 Sandboxie
网上到处是病毒。安装了杀毒软件,虽然可以监控,但是那些提醒也是很烦,最好能够直接屏蔽。Google的搜索结果能够屏蔽一部分,但还是不够全面。有些安全浏览器,采用沙盒技术,据说能够有效防范病毒。比如 Google浏览器,360安全浏览器等。另外,sandboxie 沙盒里面可以运行浏览器和应用程序。http://www.sandboxie.com/...
2009-04-07 20:47:28
509
婚姻不是爱情的坟墓,婚姻是爱情的缔造者。爱情是牺牲,爱情不是荷尔蒙,爱情生来就是限制荷尔蒙的。...
友情链接http://www.iteye.com/topic/305795?page=4爱情和婚姻的话题,大家一起来讨论?现代爱情是婚姻制度的产物。 如果没有婚姻制度,就没有爱情。(至少没有现代所谓的爱情) 现代爱情被人歌颂的一个主要特点就是专一性和排他性。 很多爱情小说,都反映生死不渝,生死相随,从一而终。反映抉择艰难,在人与钱之间进行抉择,在肉体快乐和物质快...
2008-12-29 13:19:27
327
内衣广告的软文
友情链接http://www.iteye.com/topic/306162[ZT]《內與外》 by 蔡學鏞【言程序】部落格不在原帖跑题了。[quote="庄表伟"]http://jerrylovesrebol.blogspot.com/2008/12/blog-post_29.html看過一篇文章,一個女性平時外在都打扮得相當好看,但是卻不注重內衣。有一天她終於和男...
2008-12-29 11:16:30
1302
Google浏览器,一石激起千重浪, 可用性方面仍有严重缺陷
http://tech.sina.com.cn/focus/google_chrome/index.shtml微软的反应[quote]消息称微软有意起诉谷歌垄断http://www.sina.com.cn 2008年09月04日 08:19 新浪科技 新浪科技讯 北京时间9月4日消息,据国外媒体报道,消息人士称,针对谷歌昨日发布的Chrome浏览器,微软正在研究谷...
2008-09-06 16:28:23
304
2008 奥运会开幕式 色彩绚烂 方块太小
2008 奥运会开幕式,有几个不错的看点。色彩绚烂。焰火,显示屏,鲜花。金碧辉煌的龙柱/金台。很有质感。兵马俑可能会更有质感。如果有凤凰形象就好了。水墨意境再足一点就好了。可惜,鲜艳色彩的时间不是很长。有大段的冷色调间断。整个鸟巢会场有的时候在焰火和背景光的映照下,如同红蓝宝石。北京的夜景,尤其长安街一段,还是不错的。太极不错。投影效果不错。如果能进一步...
2008-08-08 21:27:55
360
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人