摘要: 下面内容来自:《分析模式》。分析和设计存在很多的不同之处,设计的目的是为了更高实现一个技术方案,而分析的目的是为了理解问题的本质。这不仅仅是用用例列出需求清单那么简单的事情。假设我们想开发一个斯诺克台球模拟游戏,击打白球后,白球按照一定的轨迹运动,并且撞击红球。用例可以列出成千上万,但是这不足以让我们开发出一个更好的软件——你必须了解运动背后蕴含的规律。这个问题不难解决,因为这些规律已经众所周知。但是在很多的应用领域,相关的规律并不让人易于理解。为此,我们创建了概念模型——一种运行我们了解并简化问题的智力模型。其实可以理解为运动定律,运动定律在进行表述的时候,就是忽略了很多的其他因素——风力影 阅读全文
posted @ 2011-06-25 08:43 常高伟 阅读(2111) 评论(2) 推荐(2) 编辑
摘要: 在公司工作了四年组织了两次新员工培训,马上还要组织今年的新员工培训。这过程中有些经验和想法和大家分享一下。 第一次:照虎画猫 第一次组织新员工培训时,自己刚工作也没有多长时间,能力实在有限。唯一的优势是我之前在前一家公司参加过一次系统的培训,当时还算印象深刻,就和另外一个同事一起组织了这次培训。这次培训除了培训的内容不同外,培训的步骤基本照搬。所以不敢自称“照猫画虎”。其实这次培训除了照搬步骤外... 阅读全文
posted @ 2011-06-22 22:53 常高伟 阅读(5447) 评论(8) 推荐(2) 编辑
摘要: 自从接触设计模式以来,一般看到的评论是以推崇为多。不过比较欣慰的是,最近在看《编程人生》中,有两个人对设计模式比较不屑。 之所以欣慰,并不是因为凑个热闹看他们互相攻击,互相批评——而是因为出现了不同的观点,特别是两位非常有分量的人物的观点。在技术领域,众口一词是一件非常恐怖的事情;百花齐放百家争鸣才是我们乐于看到的。因为不同观点的出现,特别是大师级的不同观点,能够促进更多的人去独立的思考与探索。 ... 阅读全文
posted @ 2011-06-15 22:50 常高伟 阅读(2698) 评论(18) 推荐(3) 编辑
摘要: 表示-抽象-控制(PAC)体系结构模式以合作agent的层次形式定义了交互式软件系统的一种结构。每个agent负责应用程序功能的某一特定方面,并且有表示,抽象,控制三个组件构成。这种细分将agent的人机交互部分和与其功能内核和它与其他agent的通信分割开来。 1. 例子 一个简单的有比例表示的政治选举系统。 2. 语境 在agent的协助下开发一个交互式应用程序。 3. 问题 在这种写作的ag... 阅读全文
posted @ 2011-06-13 21:16 常高伟 阅读(2255) 评论(2) 推荐(3) 编辑
摘要: 受限于经验与知识,本来不想写这个话题,不过今天突然想到,用时间思考了这个问题,权将自己的观点写出来和大家交流,欢迎讨论。 “代码民工”这个词可能是程序员的无奈的自嘲,也可能是自谦,反正来源已无法可考。 “代码民工”即是指那些编写程序、敲打代码的底层程序开发人员,是IT行业中干得最多、干得最累、却挣得最少的那一群人。 这其中可能有公司的原因,也可能有个人的原因,但我认为最根本的原因可能是技术的限制——技术的水平限制了程序员们的生产力。我们很多人都在重复的做很多的事情。 做个对比,现在很多城市的工地上都可以看到建筑工人——相对于他们,我感觉我们的生产力远没有他们强。如果那建筑工人来做比喻,那我们现 阅读全文
posted @ 2011-06-09 22:29 常高伟 阅读(3467) 评论(11) 推荐(1) 编辑
摘要: 程序员是否需要学习底层知识? 这两天每天中午午休前都会看一些《编程人生》。现在已经看了七八个人,这些人开始编程的时候,正好是计算机的起步期,所以对整个计算机的底层都比较了解。不知道这是不是这些人能够成为大师的一个必要条件,自己有没有必要在这方面努力一下。我想这也是很多程序员思考过的问题。现在分享一下我的思考,和大家一起探讨。——ps:这些人大部分在中学的时候就开始编程,而那个时候我们一般都正在为考... 阅读全文
posted @ 2011-06-01 22:32 常高伟 阅读(8755) 评论(32) 推荐(5) 编辑
摘要: 在学习python的面向对象时,我始终参照的是c++的面向对象机制。相对而言,python的面向对象确实更简单一些。基础:整数也被作为对象。前面就看到过,说所有的东西都是对象,包括函数。 属于一个对象或类的变量被称为域——这个名称有点奇怪,c++叫成员。 域分为两种,分别属于对象和属于类——其实就是成员和静态成员。 Self指针:相当于c++中的this。文档是否有问题,c++有self吗? 类的方法的第一个参数必须是self?为什么?目前来说不带self是会运行失败的。 __init__方法类的构造函数是__init__方法,它在创建类的时候调用。 它并不是必须的,可以没有。 它可以有多个, 阅读全文
posted @ 2011-05-29 23:00 常高伟 阅读(4635) 评论(6) 推荐(1) 编辑
摘要: 我为什么学习python 首先我的工作第一语言是c/c++(面向对象子集)。选择学习python一方面是因为看很多人都说python开发效率高,所以想验证一下;另一方面,Eric S. Raymond在文章:如何成为一名黑客 中对python的推荐。还有一方面,python的设计哲学:用一种方法,最好是只有一种方法来做一件事,这一点我比较认同。 好了,我选择的入门资料是python简明教程。下面... 阅读全文
posted @ 2011-05-29 17:14 常高伟 阅读(2510) 评论(6) 推荐(4) 编辑
摘要: 这两天在看《编程人生》,这本书确实非常不错。而且看得也特别的轻松。其中有几个人都谈到了如何学习新的语言,但是给我最深刻的是google的首席java架构师joshua bloch。正好最近我也在学习python,所以顺便总结一下如何学习一门新的语言。希望你能补充一些。 心态 这不但是学习一门新的语言最重要的,而是对任何的学习都是最重要的。下面是书中的描述,非常的精彩,特别是那个比喻: “学习一门新... 阅读全文
posted @ 2011-05-29 11:03 常高伟 阅读(11853) 评论(2) 推荐(4) 编辑
摘要: 代理者系统结构模式可以用来构建带有隔离组件的分布式系统,该软件通过远程服务调用进行交互。代理者组件负责协调通信,诸如消息转发,以及传回结果和异常。 我所知的一个应用代理者模式的架构是SOA。 1. 例子 分布式的城市信息系统。 2. 语境 系统由独立的、相互协作的、分布式的、异构的组件构成。 3. 问题 构建一个复杂的软件系统,它是由独立的和互操作的组件构成,而不是一个整体的应用程序,从而使系统具... 阅读全文
posted @ 2011-05-28 10:29 常高伟 阅读(1541) 评论(0) 推荐(0) 编辑