自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kevin的专栏

软件行业里的一位思考者和实践者

  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 几种代码注释方式

    注释作为代码的补充,它来说明代码未说到的东西,有自己独立的价值。注释相比于其他文档,离代码最近,也就最容易被看代码的人关注,最容易被写代码的人去更新,自然的有更大的价值。我们知道衡量一个文档的价值,一个重要因素就是被人参阅的频率。要提高这个频率,就要它很方便的被人拿到,打开和阅读。注释在这方面无疑是最有优势的。     我们要避免那些“假注释”。没有附加值的注释都是“假注释”,比如

2011-06-27 16:46:00 5174 1

原创 从火车站的乘车经历想到的用户体验

    前两天出差,在苏州火车站乘车,离开车时间很近了我才赶到车站,手里拿着提前买好的车票,看着大厅上方悬挂的大屏幕,寻找我应该在几楼等车,在哪个站台等车。大屏幕上显示每个车次信息:车次号/到站时刻/出发时刻/目的地/站台等。我现在知道我的车次号和出发时间,我就想知道在哪个站台等车。     不巧的是,这个屏幕并不能把全天的信息显示到一个屏幕上,它过大约10秒就刷新屏幕,显示另一个时间段的

2011-06-15 10:46:00 11175 56

原创 体力劳动?脑力劳动?

在开始之前,首先我要说明一下,体力劳动和脑力劳动并不是绝然分开的。体力劳动中也需要脑力劳动,并且很重要,一个例子是中国足球,按说足球运动是典型的体力劳动,但人们还是批评中国足球运动员不会用脑子,常常犯匪夷所思的错误。而脑力劳动中有体力劳动,这应该是不用多说了,以前设计人员常常带个板尺,铺开一张白纸开始画图,那一天下来是腰酸背疼的。现在有电脑了,打键盘,移动鼠标也是体力活啊。所以这里讨论的是哪个量多

2010-01-27 20:34:00 13991 36

原创 我对REST的理解

    互联网本身就是一个优秀的web service系统。web服务器来提供服务,用户利用浏览器这个工具来使用服务。在我们经常谈的web服务,或者SOA领域里面,客户端一般不是用户这个人,而是另外一段代码,这段代码去接受服务,去分析和利用服务,从而完成一段业务逻辑。从人工变为自动,智能的成分要降低(毕竟人还是最智能的),规范的成分要增加,但它的原理和基础不变。     REST的理念也就

2011-06-24 11:00:00 1570

原创 互联网软件开发和企业软件开发

<br /> <br />     听到一位朋友说当今的软件开发可以分为两个方向,一个是企业软件开发,通常表现为一个个订制的项目;另外一个是互联网开发,比如那些用户百万,千万,甚至亿万的门户网站,电子商务网站等。两个方向差异很大,几乎是两个行业。<br /> <br />    他说的很在理。企业软件开发讲究的是快速实现企业的业务需求。需求是非常复杂并且多变的,所以要求快速开发,良好的扩展性和可维护性。典型的例子是SAP的ERP系统。ERP有强大的定制模块,开发之外的业务分析,调研是关键。当然更多的是其他大

2011-02-26 20:59:00 1734

原创 Java的SPI机制

本文介绍了Java标准里的Service Provider Interface机制.

2010-12-09 16:10:00 1219

转载 好文共赏

<br /> <br />人如果处于一个放松和自信的状态,就越能够感知到自己和他人的原始的需求,就能够有贴近人天性的想法和创造力,所做出来的东西就能够受到人的青睐,流行起来。反之,人如果处于焦躁和紧张,所接收和处理的信息就会扭曲,就不能感知到自己的和他人的真实的需求,接下来的一切,都可能是刻舟求剑,南辕北辙。<br /> <br />在从旧金山到波士顿的飞机上,见到一位从北京到硅谷任教的华文教授。她说自己的女儿4岁来美国现在11岁,朋友一看照片就说这是个美国人。眼神和体态呈现出放松和自信,中国人却是紧张、焦

2010-12-08 11:15:00 1760 1

原创 Java的沙箱机制原理入门

<br />程序员写一个Java程序,默认的情况下你可以访问任意的机器资源,比如读取,删除一些文件或者网络操作等。当你把程序部署到正式的服务器上,系统管理员要为服务器的安全承担责任,那么他可能不敢确定你的程序会不会访问不该访问的资源,为了消除潜在的安全隐患,他可能有两种办法:1,让你的程序在一个限定权限的帐号下运行;<br />2.利用Java的沙箱机制来限定你的程序不能为非作歹。我们这里主要谈谈后一种方法。<br /><br />怎样给一个程序设置一个“沙箱”呢?这个设置应该是避免改动程序代码的,

2010-12-04 17:04:00 7632 3

原创 一个关于内存使用变化规律的猜想与验证

JConsole里面的内存使用图形为什么经常是锯齿状的? 本文做了一些实验来说明它的原因。

2010-11-28 11:04:00 1632

原创 Jsf与Spring的整合原理

本文介绍了怎样用Resolver机制去让Jsf和Spring一起工作。

2010-09-11 21:09:00 1926

原创 那些隐藏的"钩子"

Java 平台里有大量这样的"钩子"或者"技巧",这为我们的学习增加了难度,我们需要熟悉很多的"背景知识",这些"背景知识"就存在于各种"Specification"里面。

2010-09-05 15:54:00 5717 10

原创 软件系统质量的评判标准

影响软件系统质量的因素有多种,对它的评判标准也不能太单一。我们既可以用外部的表面的的数据,比如Bug;也可以用内部的潜在的数据,比如每个Bug的修改成本。 这有一个例子:A产品,提交测试之后发现了比较多的Bug,但开发人员可以迅速修正,并没有带来其他的Bug。 B产品。虽然第一次测试发现的Bug比较少,但修复的时间却很长,并且回归测试带来了其他的bug。 显然A产品的质

2010-04-05 19:21:00 4155 1

转载 真理与实践

下面片段的摘自柴静天涯博客《如果真理不大写呢》http://blog.tianya.cn/blogger/post_show.asp?BlogID=2569265&PostID=21833210&idWriter=0&Key=0       绝大多数学科都包含思辨理性、实践理性和技艺这三种知识,但由于对知识传统所形成的思维定势,我们更多地把视线投向普适化的知识、大写的真理,其他两种的知

2010-04-02 09:20:00 893 1

原创 需求分析的三种境界

      大师Ivar Jacobson给出做需求的的方子是,只专注于重点,重点之外的事情,我们自己可以分析出来。很多人不太理解这点,有一些争议。其实在软件开发行业侵淫越久,越能理解这个观点的智慧。我们可以这样比喻,一个未来的软件系统就如一棵大树,那么Ivar说的重点就是它的根和树干。需求分析就要像考古一样,拨开黄土,去寻找脉络和源头。也就是去寻找他它的根和树干。根和树干分析准确了,枝枝叶叶

2010-03-28 19:23:00 4717 27

原创 对“淘宝网”的用户体验小测试

最近听说马云在支付宝年会上为了用户体验问题骂人,我有点惊讶。这事很有意思,可见马云的志向不凡,世界观不俗。在此我大大的赞一下。同时我也想看看那个用户体验差在哪里了。本人不是淘宝和支付宝的用户,为此特意的申请了一个,乘机体验了一下淘宝的用户界面设计。打开淘宝的网站。点击“免费注册”的链接,在接下来的页面上选择“邮箱注册”,到用户注册页面。填好邮箱名,会员名,密码和验证码,提交。在验证码旁边出

2010-02-02 10:20:00 3759 19

原创 集群中Web页面分批输出的问题

为了提高性能和减少用户等待时间,我们常用response.flushBuffer方法来分批输出已经转换好的页面。这样内容可以分块逐步显示在网页上,用户不用长时间面对一个空白的页面等待。但在集群系统中,当某个服务器瘫痪从而引起服务迁移情况下,问题就来了,用户可能会看到重复的内容。 这里我们做个实验,写如下一段代码:      response.setContentType("text/h

2009-10-09 17:29:00 914

原创 一个创业思路

昨天我去超市买东西,出来的时候遇到了一个销售人员在散发广告,是关于一家附近新开的理发店的,厚厚的一大摞,每个出来的人都拿到一张,很多人走一段距离后就随手扔掉了,我们常遇到这类事情,在为纸张的浪费和环保忧心后,我就在想,服装店可以在网络上开店做买卖,那些其他服务行业的小店,是否可以利用网络来宣传呢? 比如我们可以做个网站,为每家店设置一些空间,这些店包括饭店,理发店,商店,宾馆,等等各种服务

2009-03-23 12:10:00 1210 3

原创 业务开发与基础设施的分离

专业的软件开发以分工为基础的,每个人的精力有限,不可能既紧跟技术潮流,又精通业务流程,一些人天天挂在嘴上的是先进技术,框架,模式,类库,津津乐道,然而一旦谈起业务,怎样创新自己的业务模型,满足市场需求,就兴趣全无,嗤之曰枯燥乏味,对自己技术并无帮助,何苦化精力去学习它?以至开发出的系统质量不高,成本加大! 所以我认为一个专业的软件公司里可以进行分工,一部分人对技术感兴趣,那么他们应该专注于

2009-01-19 08:35:00 1865 8

原创 用应用程序域实现软件系统的热插拔

某些软件系统作为服务来运行,需要长时间的高可靠的运行,也许一年时间内只允许停顿一次维护,那么如果在运行过程中我们需要更新某一功能模块,该怎么办呢?本文描述了怎样用Net的AppDomain机制来解决这一问题。 不许重新编译整个系统就可以更新某个模块的方法我们都知道,那就是用反射功能,比如Assembly.Load,可以在代码层动态加载某个模块。但要实现真正的运行过程中动态更换,我们必须有一

2008-12-17 14:15:00 2450 1

原创 谈谈对软件项目成员的业绩考核

项目经理:是否实现了公司的战略目标,或者项目目标. 具体的目标,一般是用利润来衡量,项目的合同价格主要由销售部门来谈,项目经理必须准确的计算成本来配合报价,并且在项目过程中控制成本。有的时候利润并不是优先目标,其他可能的目标是:赢得客户;打响品牌;锻炼队伍等,如果你以打响品牌为第一目标,那你就要严格控制质量,不太考虑成本和利润。公司可以把若干目标按优先顺序列出,项目经理能实现前几个即为成功,如果全

2008-10-08 20:50:00 5933 20

原创 单核CPU,多线程与性能

单核CPU,多线程与性能 问题概述单核CPU的计算机上, 多线程能够提高程序运行的性能吗? 这个问题看起来简单,实际很复杂,设计到多方面的因素. 首先我们要把概念搞清楚, 那就是什么是性能? 一般来说, 我们把运行一个任务所花的时间来评价性能, 所花的时间可以是在CPU上, 也可能是在I/O操作上, 运行任务的程序, 也可能同时在运行另外若干的任务(吞吐量). 这里我们把概念给缩小一下

2008-08-26 08:13:00 10390 29

原创 戚继光与李成梁--谈IT的价值

  戚继光是众所周知的一位民族英雄,几百年后仍然为人敬仰,然而在戚继光同时代里,还有一位大将军,当时他的光芒远远盖过戚继光,他就是李成梁大将军。李成梁镇守辽东近三十年,屡破强豪,力压各方北方游牧部落,立头功一万五千次,拓疆近千里。《明史》称“然边帅武功之盛,(明)两百年来所未有”。奇怪的是,时至今日,李成梁几乎被人遗忘,除了研究或者熟悉明史的人,没人知道他,这是为什么呢? 戚继光靠

2008-05-08 22:18:00 5291 18

原创 亲近代码

摘要:代码是我们的老朋友了,记得我们最先看到的就是这些逻辑严密的文字,代码让我们进入一个玄妙的逻辑世界,让我们收获每一份的喜悦和成就感。曾几何时,我们远离了代码,疏忽了代码,进入所谓的更高层次,比如架构啊,设计啊,模式啊,框架等,然而,我们得到了更好的结果了吗?我们的软件质量提高了吗?我们的客户更满意了吗?本文想重新说一说代码的事儿。 思想篇代码,或者叫编程语言,本质上是一种表达,一种

2007-08-21 08:50:00 2017

原创 从西游记谈起

这一段时间是暑假,在家里休息的时候, 经常看看电视,几天过后发现了一个奇怪的现象, 切换了几个频道, 竟然都在播放>, 很明显是针对暑期的小孩子的, 从中央台, 到各个省的卫视, 再到市级, 县级电视台, 不约而同的在放这个古老的电视剧, 西游记, 从我的小时候, 到现在的小朋友,如此的长盛不衰, 着实让我很感叹. 西游记这个电视剧, 固然拍的很成功,我还记得小时候看西游记, 像过年似的,

2007-08-05 20:11:00 2464

原创 遥想左宗棠

 左宗棠, 晚清三杰之一, 他的人格,功勋,命运和声誉, 和其他两位(曾国藩/李鸿章)是那样的不同, 他没有曾国藩的名声响亮, 却胜之于才能;论对晚清政治的影响深远, 他不及李鸿章, 但在品行上胜之. 他比曾国藩多活了13年, 却早于李鸿章16年逝去, 他在同治中兴的荣光中和对大清兴旺发达的期待中死去. 他有更多时间在消灭太平军后投身洋务, 而没有亲历帝国的更大的灾难. 左宗棠考场失意

2007-07-18 22:50:00 2249 1

原创 软件行业为什么有那么多项目经理--正本溯源之三

 记得听谁说过, 软件行业的项目经理太滥了, 二十几岁的毛头小伙子,动不动就是项目经理,手下没几个人,管的也没几个事, 在其他行业,项目经理一般都是四五十岁的老头子做,要联系这,要协调那的,软件行业的项目经理也太嫩了点. 某些朋友也感觉有点心虚,这么一个小项目,手下就一个人,甚至是光杆司令,自己也不好意思称”经理”, 总感觉手下起码应该十几号人吧,那才可以心安理得地享受”经理”的称呼呢

2007-07-18 18:34:00 8586 15

原创 张非会再次从清华退学吗

曾被广泛关注的四川南充高考考生张非录取一事尘埃落定,据悉,张非今年最终被清华大学环境科学与工程系录取,而且,经过“中国网络戒毒第一人”的陶宏开教授的悉心帮助,张非性格开朗了很多,变化很大. 我很期待他能顺利的从清华毕业,处理好各种关系,成为一个高级人才. 他还小, 还很年轻, 每个人年轻的时候都走过弯路,犯过愚蠢的错误, 包括我, 至今对那一段青涩的岁月无法忘怀, 那种忧郁,彷徨,真实,勇

2007-07-16 20:45:00 2157 2

原创 别让工具束缚你的思想-- 正本溯源系列之二

 有一个朋友对我说, 他以后的目标就是做一位顶极的软件设计师, 为此他去买了一本UML的书, 厚厚的一本, 打算集中精力,发奋钻研, 在年内达到设计的最高水平. 我听了笑笑, 就算你把这些研究透了, 所有的符号知识都掌握了, 有什么用呢? 难道画图画的好就是设计能力强吗? 一些新手, 尤其津津乐道于工具的使用, 用很大的热情去谈论用哪种语言好, 用哪个开发工具好, 学习各种架构, 学习

2007-07-15 22:29:00 4357 3

原创 算法为王--正本溯源系列之一

 以前曾旁观过一些软件工程师们争论, 当然也包括很多大学里的学生和朋友, 常见的一种是为谁的技术高, 谁懂的技术深刻较劲, 用C++的朋友很看不起用VB的, 精通操作系统的人看不起精通Excel的人, 精通编译原理的人看不起培训Dot Net的, 用UNIX的看不起Windows编程的人, 程序员相轻, 比文人更甚, 这样歧视的话语和语调流行很广. 可能有老师或者所谓资深专家对一个初学者这样说,你

2007-07-11 20:11:00 7097 31

原创 C++里的通用算法

  标准C++库里面提供了很多的通用算法,比如查找,排序等等, 这些算法完全建立在STL的基础上,是最先进算法的优良实现,有极好的性能, 和C库里的算法相比,一点也不逊色.通常这些算法是对标准容器的操作,比如vector, list, map等等, 在用的时候非常灵活, 所有的算法包含在里, 下面我会做一些典型的介绍.首先是一段不用任何算法的代码:int f(vector& c){ v

2007-06-24 23:07:00 6524 7

转载 社会生活中的著名法则

 一、马太效应    《新约•马太福音》中有这样一个故事,一个国王远行前,交给三个仆人每人一锭银子,吩咐他们:“你们去做生意,等我回来时,再来见我。”国王回来时,第一个仆人说:“主人,你交给我们的一锭银子,我已赚了10锭。”于是国王奖励他10座城邑。第二个仆人报告说:“主人,你给我的一锭银子,我已赚了5锭。”于是国王例奖励了他5座城邑。第三个仆人报告说:“主人,你给我的一锭银子,我

2007-06-18 22:43:00 1653 2

原创 创建自己的资源管理器

 资源管理器首先我们说一下什么是资源,对我们程序员来说,这并不陌生,我们编程的时候就知道了释放资源、减少资源耗用的道理,数据、文件、邮件、消息等都可以是资源,广义上来说,我们计算机中的东西都是资源,管理这些东西的软件都可以称为资源管理器,但这个范围太大了,我们现在讨论的资源管理器是狭义的,符合一定要求的软件,最初它是由微软提出的概念。微软有一个习惯,就是当它开始重视某项技术,或者把某项

2007-06-18 22:26:00 3706 4

原创 从个人软件到企业软件

 什么是企业软件还记得我们一开始写程序的时候吗?那还是在学生时代,因为兴趣,或者你做毕业设计的时候,写出几行代码,实现了一个简单的功能,如计算出一个数学结果,或者弹出来一个窗口,你的心情是那么激动,你充满了成就感!好像看到世界掌握在你的手里了,后来你慢慢实现了很多的功能,一个比一个酷,觉得写一个软件不过如此,但当你毕业了,找工作的时候却遇到了困难:没有工作经验!我可以做软件啊?我可以实现很

2007-06-18 22:07:00 7904 12

原创 用Microsoft.net实现数据库事务(二)

 数据库事务数据库事务是其他事务模型的基础,本文讨论的事务都是基于数据库事务实现的,他们仅是隐藏了处理事务的复杂的或者容器专有的代码。当一个事务创建时不同数据库系统都有自己的规则。缺省地,SQL Server工作在自动提交的模式下,每个语句执行完后会立即提交,与此对照的是Oracle需要你包含一个提交语句。但是当一个语句通过OLEDB执行时,它执行完后一个提交动作会被附加上去。为了使下面的

2004-03-03 11:44:00 1777 1

原创 用Microsoft.net实现数据库事务(三)

 企业级服务 企业级服务是唯一一种天生支持分布式两阶段提交的事务机制。当你开始编码之前,重要的是要了解企业级服务的工作机制,如果你用过VB编程,并且熟悉COM+编程,你就会了解企业级服务所提供的功能。用VB去创建COM+程序和用CLR创建企业级服务的一个不同之处是你不必再局限于单线程套间(STA),深入介绍企业级服务之前,你最好去搞清楚单线程套间(STA)和多线程套间(MTA)的区别。

2004-03-03 11:44:00 1496 1

原创 用Microsoft.net实现数据库事务(四)

 附A:事务简介一个事务是一系列动作作为单个逻辑单位来执行,这意味着这些动作要么全部成功,要么全部失败。如果最后一个动作失败了,那么以前的动作应该依次回滚,整个状态回到原先事务开始的状态。例如,有1000美圆从一个银行帐户扣除,转入另外一个帐户,那么事务保证两个事件只能一起成功,只要有一个失败,那么实际就不会发生任何动作,两个帐户没有发生任何改变,钱没有被存入和扣除。 ACID属性

2004-03-03 11:44:00 1682

原创 用Microsoft.net实现数据库事务(一)

用Microsoft.net实现数据库事务 摘要:了解.net的Pet Shop 2企业版本是怎样帮助企业解决实际中的业务问题,Net Pet Shop验证了怎样利用.net框架和Visual Studio.net来开发最佳的企业级系统。就如Sun公司的Java™ Pet Store J2EE™ Blueprint application,它也是一个最佳的系统实现。 介绍.

2004-03-03 11:42:00 1942

创建自己的资源管理器

本文介绍了资源管理器的概念,以及在Net平台上怎样用补偿资源管理器(Compensating Resource Managers,简称CRM)创建自己的资源管理器。文中用了一个例子来说明创建自己的资源管理器是一件多么简单而有趣的事情。阅读本文时,你需要知道事务的概念,还要知道net的企业级开发的一些基础知识。

2007-06-18

空空如也

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

TA关注的人

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