自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

切尔斯基的杂记

懒惰导致愚蠢

  • 博客(37)
  • 收藏
  • 关注

原创 工作随记

  1. 录音: 软件不行, 不稳定, bug太多, 性能太差, 原因是程序员不行, 没经验; 客户关系不错2. 录像: 这是一个不自量力的项目, 就不该立项, 仅有热血是不行的, 对业界来说很成熟的技术了, 这边却几个生手从头搞起, 半路夭折实在情理之中3. CCTV CMS: 算是不错了, 现在看来那几乎是个敏捷团队: 在客户现场开发, 客户那边两个哥们对所有的需求都说了算.

2009-09-30 16:42:00 744

原创 卡尔.波普尔论柏拉图: 摘要

柏拉图发现了它的问题:如何医治有病的社会躯体。问题本身包含着一种理论——国家的和社会的有机论。(这种非常可疑的和有持久影响的理论的起源是东方。)社会有机论的柏拉图的新的和十分个人的变体是他在城市国家和人类灵魂之间所做的比拟:社会是以放大了的形式表示的灵魂,灵魂是小型的国家。这样他就创始了国家的心理学理论和灵魂的政治理论。国家是分为阶级的,它的结构可以由统治者及其助手(或者辅助者)构成的统治

2009-09-25 23:57:00 1330

原创 Feature Team vs. Component Team: 摘要

 http://www.infoq.com/articles/scaling-lean-agile-feature-teams Feature Teamlong-lived—the team stays together so they can ‘jell’ for higher performance; they take on

2009-06-28 22:30:00 2387

原创 领域驱动的设计: 摘要

 第1部分让领域模型发挥作用第1章 汲取知识第2章 沟通和语言的使用: 通用语言, 大声读出模型, 一个团队, 一种语言第3章 将模型和实现相绑定 第2部分模型驱动设计的构造块第4章 分离出领域: 分层架构, 领域层中存放着模型第5章 模型在软件中的表现形式: 关联, 实体(

2009-06-25 22:18:00 1178

原创 敏捷的可能起源

HTML clipboard做了半年的东西又被否定了, 这里有两个可以改进的地方, 一个是半年, 一个是否定; 那以后干脆两星期让他们看一次, 顶多浪费两星期的工作; 想不被否定, 干脆拉他们一起来干活, 现场让他们说要啥, 立马就做啥给他看. 可两个星期就演示一次能演示啥? 架构还没设计好. 那干脆先简单直接一点, 把功能实现, 别的以后再说, 有问题再改, 别两周啥功能也没实现,

2009-06-09 23:01:00 1343 1

原创 xUnit 测试模式: 摘要

 xUnit测试模式--测试码重构 “脆弱测试”问题15a15c15ac151515c151515a15a154017使用商业“记录与回放”或“机器人用户”工具的测试自动化在这些工具的早期用户中名声狼籍.a使用这种方法的自动化测试通常因为看起来不太重要的原因而失败.a

2009-06-06 11:37:00 3264

原创 设计原则与模式: 案例介绍--CppUnit

设计原则与模式: 案例介绍--CppUnitCppUnit 是一个单元测试框架, 我们看一看它的设计是如何遵循基础的设计原则和模式的单一职责原则TestRunner 和 TestResult 的分离 class CPPUNIT_API TestRunner {virtual void addTest( Test *test )

2008-06-01 20:15:00 1762

原创 交互设计: 火车上的厕所

有人在动车组的厕所前等了很久, 直到乘务员路过说厕所是被锁住了,其实里面没人.可是设计上没有任何区别! 都是门闩处显示"有人"字样!其实厕所有两种状态, 使用中和停用中, 使用中才分有人和无人, 可似乎设计上只考虑了使用中的情况. 我注意了车厢内的电子显示屏, 也没看出如何指示锁住停用的状态没注意是不是所有的火车都这样, 或者认为这个问题可以由乘务员解决? 

2008-05-26 17:17:00 1447

原创 交互设计: 股市帮凶

同事 Y 在线操作股票时, 把"买入"点成了"卖出", 结果以远远低于市场价的价格差点清仓. 没有看过那个界面, 从他的描述中是这样的:"一排五个按钮, 买入和卖出靠在一起, 字体很小."谁还没有个眼花手抖鼠标乱跳的时候啊!作为业余交互设计爱好者, 我觉得好一点的设计可以这样:0. 使用业务术语, 甚至业务口语来标识按钮的功能, 比如不要说什么买入卖出, 按钮文字应该是大大的"抄底", "出货"等

2008-05-04 21:30:00 745

原创 迭代本质论

新年伊始, 可能你又要制定一些计划了, 实际上, 你的生活在开始一个新的迭代迭代, 不是软件业的发明, 而是万物根本社会的迭代 : 王朝的替换, 制度的变革去年你是天王, 今年我是至尊开元盛世, 贞观之治自然界的迭代 : 基因的变迁, DNA的双螺旋地球公转, 四季轮换, 日复一日, 年复一年生理的迭代 : 日升日落, 月圆月缺. 女人, 月当月快乐感情的迭代 :前尘后世轮回中, 谁在宿命里安排.

2008-02-14 13:58:00 1648

原创 synchronized : 规则, 推论与实践

14.3. Synchronization.  Rule 1. synchronized:只影响多线程,不影响本线程 (Locks are owned per thread, so invoking a synchronized method from within another method synchronized on the same object will proceed w

2007-07-23 22:32:00 1559

原创 Thinking Everyday IV

1, 实际上 C# 2.0 已经部分的支持 mixin 了, 只要一直把类声明为 partial.2, 共享网络共享存储, 网格共享 CPU 计算周期和内存, P2P网络还共享带宽, 还有什么应该共享的?3, 必然如果你花 99% 的时间工作, 1% 的时间忙自己的事情, 你的Boss就会 凑巧的 必然的 在那 1% 的时间内 visit you.4, meta programmer产生其

2007-05-15 04:36:00 1469

原创 Configuration Pattern : 配置模式

IoC? Dependency Injection? No, Configuration Pattern! IoC 这个过于tricky的名字理所当然的引起困惑, Martin同学取了个自以为高明的"Dependency Injection", 实在是半斤八两, 五十步笑百步, 其实更大范围上, 它们都是"Configuration Pattern"的一种实现. (Configuration

2007-05-12 05:38:00 1920

原创 TDD: Tricky Driven Development

 命名测试用例的名字应该描述需求, 不要描述实现. 取决于你要沟通交流传递的信息, Test Case 有至少两个作用 检查你的产品代码是否按预期工作, 这由函数体来完成 表达你的预期,让阅读代码的人知道你的产品能够干什么,如何使用, 甚至如何设计的;这除了函数体的assert语句外,Test case的名字更是重要的手段

2007-05-10 07:07:00 2840

原创 向 Spring.Net 提交的建议被采纳并实现了

向 Spring.Net 提交的建议被采纳并实现了: http://forum.springframework.net/showthread.php?t=752 http://opensource.atlassian.com/projects/spring/browse/SPRNET-375在 Spring.Net 1.1中, Spring.Objects.TypeConverters

2006-12-09 19:34:00 1926

原创 Ruby and Rails 当时

 1, String, 用起来很像字符数组2, 关于[m..n]和[m...n] class TestRuby Atog = [a,b,c,d,e,f,g] def test_sub_array     assert Atog[2,4].length == 4 end def

2006-11-23 11:44:00 1411 2

原创 简单至及的AOP和IOC

I. AOP的例子1, Google Toolbar: 拦截弹出式窗口,为ISBN加上到Amazon的链接原始的html文档对google toolbar对它做的手脚一无所知,toolbar得到原始文档后开始根据特定的匹配条件往里面织入代码: 如果里面有调用弹出式窗口的代码,就围绕着这段代码插入注释 如果里面有ISBN号码,就

2006-03-26 14:21:00 2565 3

原创 Python:缺失的访问控制?

不知为何Python没有提供像C++和Java那样的访问控制,无法控制在module中定义的function和class的可见性;class中定义的function和variable倒是可以通过不少于两个下划线的前缀和不多于一个下划线的后缀标明这是class“私有”的.在Python中文邮件列表问了一下,感觉至少有三种workaround: 1, 对于class中打算私有的函数定义以两

2006-02-14 22:59:00 3010 3

原创 Python:无可比拟的参数机制

0. pass object reference by value, hehe 1. 任意参数,避免了对参数个数的依赖,全面超越Unary,Binary的表达能力允许用一个参数占位符来表达运行时的多个参数,使Python可以写出不依赖参数个数的通用算法,将函数、过程、谓词区分为零元、一元、二元已经不像在其它语言中那样迫不得已比如说通用算法map,C++提供了map的一元形式:map

2006-02-12 11:11:00 3380 6

原创 广义对象论

前几天本想接着以前的思维中对“3.2 Programming Paradigm”的讨论,用对象的观点重新审视一下各种编程范式,为各种范式建模,从而将面向对象真正的看作是“元范式(Meta Paradigm)”,形成一种“广义对象论”但这种广义对象论有什么具体意义呢?我暂时看不出,唯一肯定的是肯定不如“广义相对论”有用其实从另一个角度,完全可以发明出“广义过程论”,“广义函数论”等,同样的,

2006-01-25 15:31:00 2461 2

原创 软件生物学

 长久以来,软件的建筑学隐喻已经深入人心,可始终无法达到建筑学那样的成熟程度,我不知道是什么原因,可是有一点是应该注意的,就是一座建筑在完成后基本不可以也不需要进行修改,来增加新的楼层,新的门厅等;即使没有任何修改,建筑也可以很长时间的生存下去,除了用发酵的大豆盖的楼可软件要生存,就需要不断的增加新的功能、层次,甚至修改原来的结构,因此,确切的说,软件要生存,必须学会生长,成长,软件要更像

2006-01-14 16:59:00 1730 1

原创 用手机从ATM取钱

 手机的以下两个特性,使它潜在的可能成为统一的支付和信用平台:手机具有预付费余额,因此它可以成为一个“帐户”短信具有“基本实时性”,可用于确认 1,用手机从自动售货机买饮料场景:    a,自动售货机标有各种商品的编号,价格,如康师傅绿茶编号:R3C4,价格3.00元    b,自动售货机每台都有一个移动运营商分配的号码,如13810001801    c,买饮料时,用手机发送编号和数量到售货机号

2005-11-21 22:49:00 4760

原创 Java:画蛇添足的编码规范

 前几天公司培训编码规范:第n条:i++; j++; // prohibitshould be:i++;j++; // ok第m条:if( aBool = bBool ) // prohibitshould be:if( (aBool = bBool) == true ) // ok且不说 if( (aBool = bBool) == true ) 这样的代码是如何混进规范的,单是这两条规范之后蕴

2005-09-02 13:13:00 2455 1

原创 Java,误解为何如此之深

前几天被电话面试,问Java的参数传递方式,我说只有一种方式,就是by value啊,对方纠正我说,基本类型传值,对象类型传引用;呜呼,当时被噎了一下,几秒钟后回过神来,我明白他的意思,也明白我碰上新世纪的新新人类了,但我怕他不明白啊,就说我们还是先把“引用”这个概念定义清楚吧,不要同一个词两人有两个意思,或者举个例子吧,在函数里对String类型的参数赋值是不影响实际参数的啊,于是他也明白我其实

2005-08-24 13:50:00 3472 10

原创 函数式编程 vs. 对象式编程

>有一集和平摔成了脑震荡失忆,贾治国心慌手乱,英壮扮演的医生却好整以暇,说一切正常,都是正常现象;这就是对象式和函数式两种编程世界观的观点对象式(贾治国):和平是对象,她有自己的状态,刚才还活蹦乱跳,现在昏迷不醒,醒后失忆,状态发生了变化函数式(医生):脑震荡是函数,输入清醒的人,输出失忆的人,和平完全符合函数的运行结果,在这一过程中,没有任何变化,一切正常

2005-08-10 14:44:00 1730

原创 泛型编程 vs. 面向对象

面向对象:封装(数据抽象)是基础,继承是手段,多态是目的;泛型编程:参数化类型(概念抽象)是基础,模板是手段,通用是目的面向对象是运行时问题空间的多态,泛型编程是编译时算法空间的多态OO以Type为中心,GP以Concept为中心,而Concept完全独立于Type;OO的type是显式定义的,type之间的关系也是显式定义的,是语言支持的 ;GP的Concept是由算法隐式定义的,Concept

2005-08-10 14:30:00 3175 1

原创 个性与定制为王:下一代互联网和下一代门户

看一下现在我与互联网有关的生活:我有两三个常用的Web邮箱,我把它们配置在OutLook里;我有几个常去的网站,我把它们放置在IE收藏夹里;我的好友分别在QQ和MSN里;我订阅的博客则在新闻阅读器里;每天早上,我要启动所有的工具;或曰:快出现统一的桌面工具了吧?但机器不在身边的时候怎么办?再看看目前的门户网站,要从海量信息中挑出自己感兴趣的,对眼睛和耐心都是挑战;MyYahoo算是较早提供的个性化

2005-07-28 11:28:00 1850

原创 内容与标准为王:下一代互联网与下一代搜索

第一代互联网混淆了真正的数据和它的表现形式,第一代搜索无法区分关键词是出现在文章标题里还是正文里,无法区分“十面埋伏”是一个典故还是一部电影,因为第一代互联网上只有HTML字节流,再也没有其它的了Blog的出现是第二代互联网的萌芽,它明确定义了数据的组成,并且是标准,Blog搜索完全可以区分标题和正文、作者、发表时间等,而不管它们在浏览器里的表现形式如何;其实目前各种搜索引擎提供的个性化搜索,如联

2005-07-25 14:53:00 1663

原创 Thinking Everyday II

1, 是业务,不是技术,傻瓜是集成,不是编程是使用,不是创造是创造,不是祈求是合作,不是独立是开放,不是保密是实践,不是谣言是选择,不是忠诚,更不是媒妁,傻瓜2, 所谓文化即是规则,模式,惯用法的积累:在一个狭小的空间内,积聚了大量高度内聚的原则,模式,惯用法,便形成了文化3,IterativeMatrix是迭代开发的,事实上所有的事务本质上都是迭代的,共产主义不会一蹴而就,需要经过原始社会,奴隶

2005-03-17 15:11:00 2163 3

原创 访问控制 : 语言和平台

程序逻辑上的组织方式(如名称空间,包等)可以和部署时的分发方式(如程序集,jar包等)不同,那么不同class间的相互访问权限应该在逻辑组织上限制还是物理分发上限制呢?Java语言本身采用了对逻辑组织方式进行限制,即你可以访问java.lang中的私有类而能够通过编译,只要你自己的代码也以java.lang为包名[我猜的,没试过]运行时采用了对物理分发方式进行限制,可能跟缺省的ClassLoade

2005-03-15 19:27:00 2338

原创 古代的软件开发 (一)

1,额外的中间层鞋子:人类发明鞋子的意义无论如何评价都不过分,鞋子屏蔽了各种地况的差异,脚掌不必再受不同环境带来的痛苦,如针棘,石子等鞋垫:进一步抽象出来的中间层2,模式《三十六计》或许是较早的模式书籍了,记载了可复用的三十六个军事方面的模式

2005-02-19 16:45:00 1800 2

原创 糟糕命名集锦

1,公交支线,如375和375支    现实一:无论命名上多么相近,对乘客来说,还是互不相干的两条独立的路线    现实二:有时命名上毫不相干的两条路线,反而比支线更为接近,如726和826支几乎一模一样,826和826支反而相差较大    现实三:有时两条路线的差异而不是相似对乘客来说才是重要的,而相近的命名会导致误导,尤其对初来乍到的外地人    现实四:又不是1000以下的整

2004-12-11 16:50:00 1393

原创 错误处理规范

错误处理规范〇、概念澄清概念解释错误是指:导致系统不能按照用户意图工作的一切原因、事件 不是指:java.lang.Error及其子类 异常是指:特定编程语言、开发平台提供的一种错误表现机制 不是指但包括:java.lang.Error及其子类,java.lang.Exception及其子类,System.Exception及

2004-12-11 16:47:00 2561

原创 Thinking Everyday

1,编程语言的发展趋势语法更倾向说明性,声明性,而不是“实现性” 元数据无处不在,xml,template,java bytecode,.net il, 不久出现基于XML或类似XML的编程语言(那个 X# 莫非就是?) 抽象层次越来越高,虚拟机中间层越叠越多,每一次语言、工具之争基本都围绕着新出现的中间层之争2,测试驱动开发目标驱动生活,每天早上运行一遍测试用例:asse

2004-12-11 12:01:00 2379 2

原创 Architecture is layered

那天被问道软件架构师需要了解编程语言的细节吗?呵呵,架构是分层的小区设计师需要了解盖楼的细节吗?城市规划师需要了解小区内楼房和停车场之间的关系吗?每层都有各自的架构,或许首先应该明确的是“软件架构师”这个太概括的概念吧

2004-12-11 11:57:00 1321 2

原创 Platform Independency Without WebService, For .Net and J2EE

1,尽量使用C#和Java语法的交集2,新建一个包封装类库相关的常用的调用,如Platform.Collection,Platform.String等3,使用自定义接口隔离平台相关的调用,如消息系统(MSMQ,JMS),远程调用系统(.Net Remoting, RMI),序列化机制等理想情况下,你几乎会同时得到支持.Net和J2EE的各一套系统不考虑WebService的情况下实际上

2004-12-11 11:52:00 1381

原创 The Object Primer

1,书名被翻译成“面向对象软件开发教程”,若不是Scott Ambler名声在外,就要错过旧书摊上这本10几块的书了,虽然错过也没太大影响2,UML vs. Programming Language如果图形和文本基于同一种对象模型,则它们之间可以做到无缝转换;如各种可以存为XML文档的图元,XML文档和图元都基于XML Schema,任何一种表示都可以不损失任何信息的转化为另外一种

2004-12-11 11:21:00 1802 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除