
软件技术
秋风
这个作者很懒,什么都没留下…
展开
-
结构中觅得本质
软件的不直观是难学、难用、难开发、难理解的根本;唯一直观的线索是结构,尤其是数据的结构;代码结构也是线索之一;知识往往蕴含在结构之中,理出结构也就触到本质。原创 2012-08-16 08:45:44 · 7358 阅读 · 0 评论 -
《程序开发心理学》读书笔记
标题: 《程序开发心理学》读书笔记(一)上次就说要好好看温伯格的书,今天开始看《程序开发心理学》,在这里做一点点摘录和写一点点感想(蓝色部分),权当是读书笔记吧。读完序,给我留下最深印象的是译者的序中这么一句:“本人曾经因为侥幸发现其中(指此书)一处小纰漏,得到了温伯格先生寄来的一美元奖励,他对科学的这种严谨而坦率的态度,令人钦佩。”----张亚勤院士曾经这样评价温伯格先生:他是从个体心理、组织行为和企业文化角度研究软件管理和软件工程的权威和代表人物,他有着程序员、系统事、咨询师、专业作家的多重转载 2010-06-11 11:54:00 · 11172 阅读 · 0 评论 -
交互设计师怎样做网页产品的“原型设计”?
在风起云涌的互联网浪潮中,产品迭代的速度越来越快。随着用户需求的激增,也不断带来了对设计师能力要求的提高。初入交互设计领域几年来,明显发现可视化的内容远比文档的更易于被用户(以至我们的客户)所接受,就像用户研究项目中常说的一句话:“用户怎么说的,并不代表他们怎么想。”今天以“原型设计”为基点,与大家展开几点做简要的分析。一、什么是原型设计?首先,让我们看看在体验设计的过程中的“原型设计”。以下结合个人对UCD理解和项目经验,梳理和简化的传统体验设计的流程。(流程是每个群体的工作方式,好像我们转载 2010-06-02 17:19:00 · 12902 阅读 · 0 评论 -
关于原型工具选择的讨论
hennry注:原型与产品真的是分得清吗?为什么要分清呢?最好是不分清,不浪费,迭代发展这里说的原型仅针对基于B/S架构开发的项目。目前有很多专业制作原型的工具例如axure、mockflow、InfoMaker和一些“非专业”软件:photoshop、Dreamweaver等等,如果你有足够的耐心使用word也可以做原型,当然还有笔、纸、橡皮擦。我接触过很多原型制作工具,也做了很多所谓的原型,项目不同,公司不同,使用的工具也不一样。个人认为用哪种工具制作原型,第1取决于用哪种工具最适合项目人员转载 2010-06-02 16:03:00 · 12055 阅读 · 0 评论 -
选择html还是脚手架作为demo?
一般的客户在刚开始往往不了解自己到底想要什么样的软件,随着项目的一步步进行,他们会根据实际完成的部分逐渐理清头绪,提出进一步的要求。有一种说法就是,“真正的需求是在第一个版本完成的时候产生的。”用户在看到完整的成品后,才首次理顺了自己的思路,然后在成品的基础上对功能进行删减。为了让客户更早明确自己的需求,还是应该根据最初的模糊需求制作出一个demo来,为客户提供一个实体做参考,来进一步细化需求,避免前期的返工。这个最初的demo是交付静态html页面还是由grail那种脚手架生成的crud程转载 2010-05-31 20:40:00 · 10330 阅读 · 1 评论 -
在软件设计前先画界面图
hennry注:需求界面(html/css) 开发不过最好用“快速后台数据”填充界面画出全部(几乎)界面图好似不敏捷?疑问?在做软件设计之前,画好系统的界面图是一种非常有效的建模和交流方式。总是有人抱怨在需求和软件设计之间仍然有很大的鸿沟需要填补,这是至今仍然未能有效解决的软件工程难题。多年以来,有很多人一直在寻找从需求到设计的直接的形式化映射方法,但是收获很少。实际上软件工程对于软件生命周期前面的那些阶段并没有多大的帮助。为了响应 o6z说的努力在在现有技术基础上杀死人狼的号召转载 2010-05-31 17:56:00 · 16751 阅读 · 1 评论 -
Getting Real 软件产品 从零到成功
关于精简: 开发三人组:一个开发人员、一个设计人员和一个多面手,优秀的人才是不花费过多资源的…… 沟通的成本是团队成员的人数平方倍!——Metcalfe’s Law 关于把握优先级: 以“搞掂”为目标:停滞、意见不一、会议和延时会磨灭团队的积极性,并降低成功的机率。尽早的让产品工作起来,再去完善那些细节; 相关转载 2010-05-30 21:08:00 · 2904 阅读 · 0 评论 -
Airline数据模型
订座离港航班为什么要分开?奇异。直销占20%(发达国家63.7%),分销占80%直销成本为分销的1/6(但前期投入较大)直销中B2B占16%,B2C占4~5%原创 2010-04-05 21:24:00 · 835 阅读 · 0 评论 -
与高手共事
大多数人都愿意与高手共事,因为他们指望着从高手身上可以学到很多东西。在ThoughtWorks,因为要pair,所以,我们可以有更多的机会与高手近距离一起工作。如果真的有机会和高手一起工作,有时,你会发现,从具体做的事来说,这些高手做的事并不像想象的那么高深,甚至可以说很简单,简单到换了谁都能做。于是,心中的高手形象逐渐开始动摇,难道令N多人景仰的高手就是这个样子。不知道你有没有想过这样一个问题,转载 2009-12-30 20:04:00 · 757 阅读 · 0 评论 -
编程珠玑番外篇
1.Plan 9 的八卦在 Windows 下喜欢用 FTP 的同学抱怨 Linux 下面没有如 LeapFTP 那样的方便的工具. 在苹果下面用惯了 Cyberduck 的同学可能也会抱怨 Linux 下面使用 FTP 和 SFTP 是一件麻烦的事情. 其实一点都不麻烦, 因为在 LINUX 系统上压根就不需要用 FTP. 为什么呢? 因为一行简单的配置之后, 你就可以像使用本机文件一样使用转载 2009-12-22 20:21:00 · 6025 阅读 · 4 评论 -
十年学会编程(Decade of Programming Institute)
为何人人都这么着急?信步走进任何一家书店,你会看到名为《如何在7天内学会Java》的书,还有各种各样类似的书:在几天内或几小时内学会Visual Basic, Windows, Internet等等,一眼望不到尽头。我在Amazon 上做了如下的 强力检索 :pubdate: after 1992 and title: days and(title: learn or title: teach转载 2009-12-14 18:15:00 · 650 阅读 · 0 评论 -
如何学习设计模式
robbin 等级: 更多相关推荐 随便谈谈我对设计模式的看法吧。我极度反感言必称设计模式,什么要学好OO,必先学好Gof这类的屁话。坦率说我也从来不刻意的去学习设计模式,我看到身边的朋友花那么多钱去买一大本厚厚的阎博士的设计模式的书,心里总是叹息一下,设计模式不是学出来的,是用出来的。设计模式应该怎么学习?应该我花两个小时给你讲一下,告诉你每个模式是怎么回事,应该在什么场合适用就OK了转载 2009-12-14 23:28:00 · 1834 阅读 · 2 评论 -
鉴于反复讨论hibernate适用性问题,希望有定论
Robbin:其实围绕Hibernate的话题,我都已经说过不下30遍,以致于最近两年以来,我对所有Hibernate的问题都不愿意再回应。另外最近一年多来,使用Rails的ActiveRecord,让我对ORM的认识又加深了很多,其实对于那么多争议的问题,最好的解决办法就是自己去实践。对于自己没有去实践过的东西,争是争不出来什么的。 -----------------------------转载 2009-12-14 18:46:00 · 1494 阅读 · 0 评论 -
华为研发
前言 如果有人问我“你在华为研发的日子里快乐吗?”,我会很负责任地告诉他“在华为研发工作的那段时间,是我一生中最快乐的时光。”而且这也是很多早期华为研发人员的共识。当年有人曾说“华为研发部是工程师的天堂”,这句话并不为过。所以,我在写这本书的过程中,内心充满了对华为研发工作时甜蜜的回忆,和对华为为何能成功做到这一点的追索。 促使我提起笔来写《华为研发》的原因,既有这几年随转载 2009-12-16 08:37:00 · 19526 阅读 · 1 评论 -
依赖倒置原则(DIP)批判 -- 称之为本末倒置原则更贴切
在批判之前,先了解一下依赖倒置 依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。 简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述: 抽象不应当依赖于细节;细节应当依赖于抽象; 要针对接口编程,不针对实现编程。 反面例子: 缺点:耦合太紧密,Light发生变化将影响ToggleSwitch。 解决办法一: 将Light作成转载 2009-12-13 11:41:00 · 1638 阅读 · 0 评论 -
丧钟为谁鸣?
开篇之前先说明一下,我和老庄有着不错的私交,他最初写丧钟系列的时候,我是忠实的拥趸之一,庄兄见我尚有寸尺所长,还在丧钟系列里引用了我的几个观点。然而最近一段时间里,我作了这样几件事情:1.重新学习了lambda演算。我的数学基础不及taowen等,费了一些时日仍不完全了然,目前大抵能对着R5RS后面的语义定义对一些简单的scheme程序进行lambda演算。2.反复研究了几遍SICP。同时看了转载 2009-12-10 21:58:00 · 1205 阅读 · 0 评论 -
系统化思维导论读后感
系统化思维导论读后感 1. 有个朋友推荐这本书给我,并且介绍的时候说,这本书也喜欢用数学或者类似数学的方式来描述问题,然后用解数学问题的方式来解决问题。我顿时很有兴趣,于是在当当网上购买了一本,由于当时我在重庆出差,我让当当把书送到了公司。 2. 今天出差回来,拿到了书,吃完晚饭就开始看。对我来说,序言 等 仅仅是 有点风趣。 3. 开始进入正题,他通过力学,分子动力学,引入了事物复杂性的那张图,可以说对于我这个读者,非常成功。力学是高中学的,我认为我高中的物理还是学得非常好的,分子动转载 2010-06-10 13:55:00 · 17734 阅读 · 0 评论 -
软件思想家Gerald Weinberg专访
软件思想家Gerald Weinberg专访 Gerald Weinberg给自己的评价是”thinker”。的确,与形形色色汗牛充栋的实用技术手册类书籍相比,Weinberg先生的著作(《程序开发心理学》、《系统化思维导论》、《你的灯亮着吗?》……)无不闪耀出睿智的光芒,并因此显得卓尔不群。 在Weinberg先生的著作中译本即将问世之时,笔者有幸采访了Weinberg先生,与这位软件业内最著名的”thinker”有了一次近距离的交流…… 《程序员》(下文简称”《程》转载 2010-06-11 22:06:00 · 9006 阅读 · 0 评论 -
用 Ruby 踩踩四人帮
上上周在书店看到一本《Ruby设计模式》,捡起来 10 分钟看完,扔了(别问我为什么……)下面用 Ruby 写写设计模式,顺便批一批 Java 和 Gof。1.Factory 和 Abstract Factoryclass Factory attr_accessor :product def produce @product.new endend转载 2009-11-26 22:15:00 · 996 阅读 · 0 评论 -
The Elements of Programming Style
《The Elements of Programming Style 》是一本很古老的书。30 年的岁月依旧无法掩盖其中的真知灼见。把代码写清楚,别耍小聪明。想干什么,讲的简单点、直接点。只要有可能,使用库函数。避免使用太多的临时变量。”效率“不是牺牲清晰性的理由。让机器去干那些脏活。重复的表达式应该换成函数调用。加上括号、避免歧义。不要使用含糊不清的变量名。把不必要的分支去掉。使用语言的转载 2012-02-21 17:06:43 · 9323 阅读 · 0 评论 -
Unix哲学基础
来源于:http://book.youkuaiyun.com/bookfiles/34/100341059.shtmlUnix哲学起源于Ken Thompson早期关于如何设计一个服务接口简洁、小巧精干的操作系统的思考,随着Unix文化在学习如何尽可能发掘Thompson设计思想的过程中不断成长,同时一路上还从其它许多地方博采众长。Unix哲学说来不算是一种正规设计方法。它并不打算从计算机科学的理转载 2011-10-31 12:40:55 · 8448 阅读 · 0 评论 -
计算机程序的构造和解释
第1章 构造过程抽象1.1 程序设计的基本元素1.1.1 表达式1.1.2 命名和环境1.1.3 组合式的求值1.1.4 复合过程1.1.5 过程应用的代换模型1.1.6 条件表达式和谓词1.1.7 实例:采用牛顿法求平方根1.1转载 2011-08-16 08:59:27 · 8480 阅读 · 0 评论 -
空灵的思绪
数据==函数-是核心 结构、结构、结构业务率=业务代码/(业务代码+技术代码) 1最好>UI测试的投入产出->自动测试UI-C-M一起动起来,面和体快速UI->M小而快UI-领域迭代M逻辑-UI形象Just do it,fire on act原创 2011-08-15 09:10:20 · 7251 阅读 · 0 评论 -
Java数据结构和算法(总结)
第1章综述 数据结构和算法能起到什么作用? 数据结构的概述 算法的概述 一些定义 面向对象编程 软件工程 对于C++程序员的Java Java数据结构的类库 第2章数组 Array专题Applet Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O原创 2009-10-20 12:12:00 · 1440 阅读 · 0 评论 -
Essential SICP Primer
综述本书以Lisp语言本身为例,完整而辨证的讲述了“计算机程序”的各种形而上形而下的问题:程序语言本身的要素(原语、组合手段、抽象手段)程序的计算模型(代换模型、环境模型,迭代、递归)程序的世界观(对象式、函数式)程序如何繁殖进化(元语言抽象)程序如何执行(编译、解释)同时阐述了程序设计中常用的几大关键技术:寄存器与堆栈的使用(目前多数计算机的基本抽象)数据导向与通用型转载 2009-12-13 19:18:00 · 604 阅读 · 0 评论 -
关注软件发展的新方向
<br />多年开始关注软件发展的转变,虽然很多在国外已然成熟,但在国内还有许多在探索之中。<br />软件发展的新方向:<br />1. 软件向DSL方向发展,目标是向问题域接近<br />2. 软件开发向动态、多核、函数方向发展<br />3. 软件开发向敏捷方面发展<br />4. 快速、灵活的市场需求是发展和转变的动力<br />5. 互联网是软件发展的主战场,尤其是移动互联网<br />所以要加强以下方面能力:<br />1. 动态语言能力<br />2. DSL能力<br />3. 多语言能力<原创 2011-05-15 11:24:00 · 7787 阅读 · 0 评论 -
黑客与画家
本文是 Paul Graham 写的一篇关于黑客与画家共同之处的文章,深入探讨了黑客工作的艺术性与创造性。虽然大部分的程序员都觉得艺术是一件很遥远的事情,但对于那些愿意仔细打磨代码追求精益求精的优秀黑客来说,在创造的过程中总是能感受到艺术的真实存在(尽管可能只是隐约感受到,而且羞于把自己和艺术联系起来)。艺术之所以会让人觉得高高在上远离生活,是因为大部分人都是在衣着光鲜地谈论着艺术,而不知道什么是创造。要成为一个创造者,你所要做的不是夸夸其谈,而是投入全部热情去不断实践。Dirty Yo转载 2011-02-11 17:22:00 · 8708 阅读 · 0 评论 -
最佳编程语录
<br /> 好的程序员这样一类人,这类人在横穿一条单行道前都要先看一下路两边。– Doug Linder, 系统管理员<br /><br /> 关于工具,一个最重要的,也是最不易察觉的方面是,工具对使用此工具的人的习惯的潜移默化的影响。如果这个工具是一门程序语言,不管我们是否喜欢它,它都会影响我们的思维惯式。 –Edsger Dijkstra, 计算机科学家,著名的“程序=数据结构+算法”的提出者。<br /><br /> 抽象和模糊完全地不同,抽象的目的并不是把事情变模糊,而去转载 2011-02-03 10:15:00 · 8537 阅读 · 0 评论 -
编程的6个原则
<br />原作:Joseph Ottinger<br /> <br />这篇文章实际表述了编程时应引起注意的很重要的6个思想:<br /><br />快速失败;<br />写更少的代码(不要让自己重复);<br />程序是写给人看的;<br />做正确的事情;<br />消减状态;<br />了解你的“创造”<br /><br />(fail fast, write less code (and don't repeat yourself), computer programs are for p转载 2011-01-29 17:17:00 · 7427 阅读 · 0 评论 -
十条不错的编程观点
在Stack Overflow上有这样的一个贴子《What’s your most controversial programming opinion?》,翻译成中文就是“你认为最有争议的编程观点是什么?”,不过,在400多个主回贴,以及千把个子回贴中,好像并不是很有争议,而是令人相当的茅塞顿开,下面罗列一些,并通过我自己的经历和理解发挥了一些,希望对你有帮助。1) The only “best practice” you should be using all the time is “Us转载 2010-08-21 12:32:00 · 8415 阅读 · 0 评论 -
敲响OO时代的丧钟!
一、基本概念 1、软件与硬件的区分 “拜托!”肯定有朋友会说:“我们都是X年的老程序员了,就算水平不是出类拔萃,至少软件硬件总是分得清的!”那么什么是“软件”?什么是“硬件”呢?从维基百科抄来看看吧: 软件是一系列按照特定顺序组织的计算机数据和指令的集合。 硬件包括电脑中所有物理的零件,以此来区分它所包括或执行的数据和为硬件提供指令以完成任务的软件。 就是这么简单?如果真的就这转载 2009-12-09 22:56:00 · 2345 阅读 · 0 评论 -
刘江:开发类图书圣经级著作汇总
代码大全(第二版)(两届Software Jolt Award震撼大奖得主!) (美)迈克康奈尔(McConnell,S.) 著,金戈 等译 / 2006-3-1 / 电子工业出版社 / 98元 / 综合性转载 2009-11-29 22:04:00 · 1966 阅读 · 0 评论 -
无责任推技术
看了下 我自己的豆瓣 中标记已读过的书,数量上还对得起这两年。今天整理一下,分类推荐我接触过的技术和书。基础类C我的软肋。C语言同时具有机器底层的操作能力和高级语言的语法,很适合作为计算机编程的入门语言,事实上国内很多学校也是这样做了。C是编写Unix和Linux的语言。如上所说,C是我的软肋,无法总结什么,在此标记一下,以后要补上C。C++C++现在在操作系统(w转载 2009-11-27 22:11:00 · 529 阅读 · 0 评论 -
深入浅出REST
作者 Stefan Tilkov 译者 苑永凯 发布于 2007年12月25日 下午10时10分 社区 Architecture, SOA 主题 REST, 企业架构 标签 Web服务 不知你是否意识到,围绕着什么才是实现异构的应用到应用通信的“正确”方式,一场争论正进行的如火如荼:虽然当前主流的方式明显地集中在基于SOAP、WSDL和WS-原创 2009-07-23 12:49:00 · 390 阅读 · 0 评论 -
Style of WebService: REST vs. SOAP
在SOA的基础技术实现方式中WebService占据了很重要的地位,通常我们提到WebService第一想法就是SOAP消息在各种传输协议上交互。近几年REST的思想伴随着SOA逐渐被大家接受,同时各大网站不断开放API提供给开发者,也激起了REST风格WebService的热潮。 在收到新需求Email之前,我对REST的理解仅仅是通过半懂不懂的看了Fieldin转载 2009-07-23 20:30:00 · 922 阅读 · 0 评论 -
Web 服务最佳实践: 第 9 -10部分
Web 服务最佳实践: 第 9 部分Web 服务性能方面需要考虑的问题,第 1 部分 级别: 初级Holt Adams (rhadams@us.ibm.com), 资深解决方案顾问, IBM jStart2004 年 2 月 01 日开发解决方案体系结构以及在开发和部署阶段成功地实现它的过程,需要从转载 2009-07-22 22:38:00 · 890 阅读 · 0 评论 -
把握电信数据仓库设计的关键环节
最成功的数据仓库都是以循序渐进的方式逐步发展起来的,它的每一次发展都提高了信息的商业价值。近年来,数据仓库已经发展到能支持企业决策,甚至支持企业合作伙伴和客户的新高度。在电信领域也是如此。数据仓库提供的信息极大地提高了电信相关业务部门的决策质量,特别是在当今竞争异常激烈的商业环境中,数据仓库的作用日益凸现。 由于电信领域的转载 2009-05-09 16:28:00 · 1274 阅读 · 0 评论 -
数据仓库建设的成功之道
随着数据的不断积累和增长,各个行业都在思考一个相同的问题,怎样把数据从成本转化为价值?怎样从庞大的数据集中分析出有用的信息来用于企业的市场经营和企业决策? 商业智能(Business Intelligence简称BI)早在1996年便由Gartner提出,其本质便是通过数据仓库、联机分析处理(OLAP)、数据挖掘等技术来完成从数据到信息的提炼,最终获得对企业经营和决策有用的知识。毫无转载 2009-05-09 15:54:00 · 643 阅读 · 0 评论 -
数据仓库实施需要考虑的七个步骤
对于大多数IT顾问来说,实现一个数据仓库的难度比以前做过的任何项目难度都要大。考虑到不同的数据结构、用途以及应用程序开发方法,以前所积累的经验和技巧大部分都无用武之地了。但是只要在你的前进道路上稍加修正,你就会发现实现一个数据仓库并不是难事,就算你是第一次实现数据仓库也没问题。 下面列出了数据仓库实施过程需要考虑的步骤,有一些你可能从来没有意识到,而另一些可能已经在实施过程中使用到了,但是重新转载 2009-05-09 15:22:00 · 680 阅读 · 0 评论 -
探求:数据仓库关键环节之ETL的本质
做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。回忆一下工作这么些年来,处理数据迁移、转换的工作倒还真的不少。但是那些工作基本上是一次性工作或者很小数据量,使用access、DTS或是自己编个小程序搞定。可是在数据仓库系统中,ETL上升到了一定的理论高度,和原来小打小闹的工具使用不同了。究竟什么不同,从名字上就可以看到,人家已经将倒数据的过转载 2009-05-09 13:10:00 · 617 阅读 · 0 评论