06 2011 档案
摘要:软件领域一个非常大的特点是流程和技术变化相当的快。作为一个软件企业,面对日新月异的开发流程和开发技术,何时、如何选择及引进新的流程和技术变得十分重要。这篇文章主要讨论的是进行选择和引进时的出发点,我称之为“缺陷驱动”。 什么是缺陷驱动? 这涉及到引进新技术的根本原因。其实很简单,就是为了解决软件开发过程中遇到的问题。但是实际操作时,面对外界的宣传和影响,人们往往会偏离这个初衷——从追求问题的解决到...
阅读全文
摘要:下面内容来自:《分析模式》。分析和设计存在很多的不同之处,设计的目的是为了更高实现一个技术方案,而分析的目的是为了理解问题的本质。这不仅仅是用用例列出需求清单那么简单的事情。假设我们想开发一个斯诺克台球模拟游戏,击打白球后,白球按照一定的轨迹运动,并且撞击红球。用例可以列出成千上万,但是这不足以让我们开发出一个更好的软件——你必须了解运动背后蕴含的规律。这个问题不难解决,因为这些规律已经众所周知。但是在很多的应用领域,相关的规律并不让人易于理解。为此,我们创建了概念模型——一种运行我们了解并简化问题的智力模型。其实可以理解为运动定律,运动定律在进行表述的时候,就是忽略了很多的其他因素——风力影
阅读全文
摘要:在公司工作了四年组织了两次新员工培训,马上还要组织今年的新员工培训。这过程中有些经验和想法和大家分享一下。 第一次:照虎画猫 第一次组织新员工培训时,自己刚工作也没有多长时间,能力实在有限。唯一的优势是我之前在前一家公司参加过一次系统的培训,当时还算印象深刻,就和另外一个同事一起组织了这次培训。这次培训除了培训的内容不同外,培训的步骤基本照搬。所以不敢自称“照猫画虎”。其实这次培训除了照搬步骤外...
阅读全文
摘要:自从接触设计模式以来,一般看到的评论是以推崇为多。不过比较欣慰的是,最近在看《编程人生》中,有两个人对设计模式比较不屑。 之所以欣慰,并不是因为凑个热闹看他们互相攻击,互相批评——而是因为出现了不同的观点,特别是两位非常有分量的人物的观点。在技术领域,众口一词是一件非常恐怖的事情;百花齐放百家争鸣才是我们乐于看到的。因为不同观点的出现,特别是大师级的不同观点,能够促进更多的人去独立的思考与探索。 ...
阅读全文
摘要:表示-抽象-控制(PAC)体系结构模式以合作agent的层次形式定义了交互式软件系统的一种结构。每个agent负责应用程序功能的某一特定方面,并且有表示,抽象,控制三个组件构成。这种细分将agent的人机交互部分和与其功能内核和它与其他agent的通信分割开来。 1. 例子 一个简单的有比例表示的政治选举系统。 2. 语境 在agent的协助下开发一个交互式应用程序。 3. 问题 在这种写作的ag...
阅读全文
摘要:受限于经验与知识,本来不想写这个话题,不过今天突然想到,用时间思考了这个问题,权将自己的观点写出来和大家交流,欢迎讨论。 “代码民工”这个词可能是程序员的无奈的自嘲,也可能是自谦,反正来源已无法可考。 “代码民工”即是指那些编写程序、敲打代码的底层程序开发人员,是IT行业中干得最多、干得最累、却挣得最少的那一群人。 这其中可能有公司的原因,也可能有个人的原因,但我认为最根本的原因可能是技术的限制——技术的水平限制了程序员们的生产力。我们很多人都在重复的做很多的事情。 做个对比,现在很多城市的工地上都可以看到建筑工人——相对于他们,我感觉我们的生产力远没有他们强。如果那建筑工人来做比喻,那我们现
阅读全文
摘要:程序员是否需要学习底层知识? 这两天每天中午午休前都会看一些《编程人生》。现在已经看了七八个人,这些人开始编程的时候,正好是计算机的起步期,所以对整个计算机的底层都比较了解。不知道这是不是这些人能够成为大师的一个必要条件,自己有没有必要在这方面努力一下。我想这也是很多程序员思考过的问题。现在分享一下我的思考,和大家一起探讨。——ps:这些人大部分在中学的时候就开始编程,而那个时候我们一般都正在为考...
阅读全文