以图明志

IT人家

软件系统的开发是难还是繁杂?

占领属于自己的价值高地
我一直的观点是要对“难”做一点分解。好比说航空母舰的弹射器,我们造不出来,很“难”与一台机器有一千个螺丝要拧,保证3年中所有螺丝都拧对了,很“难”,这两种场景下“难”的含义是不同的。软件开发的难度更多的类似于后者,表现为繁杂,而不是类似于前者表现为“搞不定”或“做不出来”。

智力开发

[专题] 二八原理:软件开发中的二八原理

Do not work hard, work smart!
前面聊了“什么是二八原理”,接下来得说说如何运用了。由于本博客主要谈IT技术,显然要先来说说和程序员有关的那些事。为了不至于太抽象,我们以开发文本编辑器为例(这玩意大伙儿都熟悉,省得费口水解释),来说说不同职责的开发人员在开发过程中该如何具体运用二八原理。

IT人家

短短十几年,程序员已走过了三代

软件开发十年小史
第一代程序员大致上是基于DOS来做开发,常用的开发环境叫Turbo C。这个时候还没那么多API和类库,也没那么多层次,你要想干什么很容易直接操作到硬件。如果你不喜欢开发环境提供的库函数,大可以自己操作显卡显示点什么。现在回想起来,那一代程序员应该是国际水准。

互联网时代

为什么国内软件开发比国外要落后那么多

国内外软件开发上的差距与分析
在开始任何其他文字之前,首先有必要正视一个根本现实:国内外软件开发的水平是有差距的。这一结论的最直接证据是每一轮新技术的发起者基本上都是国外的人或公司,从方法论(CMMI,敏捷等)到各种框架(近来很热的Hadoop等)再到新的编程语言都是如此。

互联网时代

编码工作会逐渐消亡吗?

软件开发会越来越像一种组装工作
很多年来始终有一种声音:编码自身会逐渐消亡,软件开发会越来越像一种组装工作。也就是说,程序员会越来越像IT工程师,他们很少自己从头做什么,而是靠搭配来达成各种目标。我身边就有持这种观点的人。在今天开发任何一款软件的时候,很少会从头开始开发。大多时候会选定特定的框架。

互联网时代

软件开发中不可忽视的代码复用问题

代码复用的考察
复用可以说是任何一个软件企业都不能漠视的课题,因为复用可能对软件的开发效能产生绝大影响,而开发效能直接影响利润,甚至生存。但复用本身将增加当前项目的成本,是一种以当前投入来换取远期收益的行为。与此同时远非所有代码都可以复用,复用本身也有自己内在的一些规律,让我们来试做一些分析。

IT人家

软件开发生涯最重要那些事

10年软件开发感悟
也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。十年之后,我仍然在学习如何合理地建模。我后悔以前我没有花更多的时间来学习面向对象和设计模式。优秀的建模技术对于每一个开发团队都是非常有价值的。

编程思想

软件开发还算不上是一门科学

但不妨碍它是一门技术
很多大学里是把软件开发相关的专业划入工科的,这给人一种错觉,让人认为软件开发也是一个工程学科,就像土木建筑,动力机械那样。但这从根本上错了,土木建筑,动力机械的背后有确实的科学定律作为支撑,而软件开发的背后基本上什么都没有,远不是一种“科学”。也正因此,“软件工程”的现实意义也就远不如“土木工程”,“动力工程”。

软件架构技术

谈谈软件开发中的破窗效应

程序员都应该是完美主义者
"一个房子如果窗户破了,没有人去修补,隔不久,其它的窗户也会莫名其妙地被人打破;一面墙,如果出现一些涂鸦没有被清洗掉,很快 的,墙上就布满了乱七八糟、不堪入目的东西;一个很干净的地方,人们不好意思丢垃圾,但是一旦地上有垃圾出现之后,人就会毫不犹疑地抛,丝毫不觉羞愧。"

互联网时代

软件开发简单还是复杂?

复杂性是软件的根本特质
强调软件复杂的最有代表性的观点来自《人月神话》:Brooks认为复杂性是软件的根本特质,而非偶然特质。强调软件简单性的观点则时见于国内某些MIS开发公司以及外包公司:他们大多时候会把需求分析(业务分析)的权重抬的很高,而把设计编码的位置压的很低。这种迷思其实不难打破,但在此之前要对软件的特质做一点考察。

编程思想

轻量灵巧的极限编程(XP)

软件开发过程--极限编程
ExtremeProgramming(极限编程,简称XP)是由KentBeck在1996年提出的。KentBeck在九十年代初期与WardCunningham共事时,就一直共同探索着新的软件开发方法,希望能使软件开发更加简单而有效。Kent仔细地观察和分析了各种简化软件开发的前提条件、可能行以及面临的困难。
1 / 1 首页 < Prev 1 Next > 尾页 页码: