软件开发
文章平均质量分 84
lifegame
这个作者很懒,什么都没留下…
展开
-
两个程序员的对话
2006-09-23 22:40:30 程序员A新公司感觉怎样? 2006-09-23 22:40:52 程序员B好像没什么感觉 2006-09-23 22:41:11 程序员A晕,你是什么职位? 2006-09-23 22:41:21 程序员B高级软件工程师 2006-09-23 22:42:10 程序员A.NET开发? 2006-09-23 22:42:04 程序员B在以前原创 2006-09-24 23:07:00 · 11626 阅读 · 23 评论 -
集成的故事 - 从装修队到IT服务
最近家里装修,不得不跟装修公司的那些人精打交道。大家都说装修这滩水很深,我虽不敢掉以轻心,但也无暇学习那些枯燥的琐碎的而且我已经付了费让别人去操心的装修知识,于是偷懒找了一家门面开在小区门口的装修公司,到时候真让我遇到什么问题,也好做个弹弓打他们家玻璃,更何况小区后面还有好几期楼盘,估计他们也不敢怠慢。如果真要把家庭装修跟信息系统做类比,实在有点拿着榔头满世界找钉子的嫌疑。但国内很多小公司给客原创 2007-12-07 17:26:00 · 1256 阅读 · 0 评论 -
集成的故事 - 医疗集成的未来2
转眼间又过了一年,这一年里人们看到了太多的大起大落,经历了太多的大喜大悲。而我所看到的医疗信息行业,却还是按照它自己步伐的一点点地发生着变化,并始终远离所有这些大风大浪的中心。在经济寒流袭来的时候,它依旧春和景明,风光独好;当人们为航天英雄和奥运健儿欢呼喝彩的时候,它依旧默默无闻,波澜不惊;甚至在医疗改革的建议轰轰烈烈地出台的时候,在高深晦涩的长篇累牍之中,它也只是偏居一角,默默地承载着厚重的责任原创 2009-01-09 09:49:00 · 1223 阅读 · 0 评论 -
集成的故事 - 处理医疗信息错误
回头看一下,才发现前面的几篇“集成的故事”有点跑题了,从最初的技术随笔沦落成一些肤浅而且不着边际的商业评论。记得在温昱老师(《软件架构设计》一书的作者)的课上,曾经听到一个很特别的观点:SOA不是软件架构,而是企业架构。当时刚听到的时候还有些许疑惑,现在开始觉得比较能接受了。因此,让我们回归到技术的重心上吧,至少把早先在“集成的故事-导言”里面计划好的剩下的几篇给写完。---信息系统中的错误通常有原创 2009-01-13 17:06:00 · 1399 阅读 · 0 评论 -
医疗卫生行业中的领域模型
关于软件工程,领域模型,以及电子健康档案。原创 2011-02-17 14:11:00 · 9220 阅读 · 15 评论 -
关于软件开发、领域知识、职业危机以及UML的计算主义思考
最近无聊时候,常常在琢磨领域建模相关的问题,比如医学图像处理领域,一致性显示流程算不算领域知识?那卷积反投影呢?它们都可以放到模型里面去吗?这样的模型,对你最终的服务对象,产品定义和软件设计人员有用吗?对这些问题思考得越深入,往往就会离题越远。--21世纪,软件已经渗透进人类生活的每一个领域,从指头大小的音乐播放器到遍布全球的互联网络。为了开发出真正有用的软件,程序员要不断地学习不同领域的原创 2011-06-20 23:15:00 · 19738 阅读 · 84 评论 -
HTML5灰度图像处理练习2:窗宽窗位调节
HTML5灰度图像处理练习2:窗宽窗位调节原创 2011-05-03 21:32:00 · 8295 阅读 · 6 评论 -
HTML5版本的生命游戏
初学HTML5,写了一个程序练练手。原创 2011-05-02 21:23:00 · 6900 阅读 · 1 评论 -
HTML5灰度图像处理练习1:直方图和灰度反转
HTML5灰度图像处理练习1:直方图和灰度反转原创 2011-05-03 21:16:00 · 4185 阅读 · 2 评论 -
HTML5灰度图像处理练习3:图像数据传输
前面已经试过,用HTML5来进行一般医学图像的显示(Rendering)已经不是问题。那么,接下来就是如何把图像数据传输到浏览器端。在传统的PACS中,不管是HTTP GET(如WADO)或Streaming(如JPIP),都需要在浏览器端安装一个插件,HTML5是否提供了一些可替代的方法呢?我们首先想到是Web Socket API和File API。但遗憾的是File API主要针对本地文件的原创 2011-07-02 23:08:28 · 3584 阅读 · 7 评论 -
互联网的盛世和企业级开发的涅槃
一直不太认同在博客上转载别人文章的做法,了解分布式系统的人都知道在一个互联互通的网络内制造太多冗余数据的利弊。但今天看到的两篇文章,觉得很对味口,还是忍不住要转载一下。本来也想过摘录几段关键的文字过来,再加几句自己的感叹算了。后来发现精华太多了,摘录多了也有抄袭之嫌;而且原文不仅提供的信息很有价值,从技术和商业观察者风格的精彩文笔上看,也已经把该说的话给说完了。为了保持技术人员的风格,我还是宁转载 2011-12-09 13:58:06 · 1705 阅读 · 0 评论 -
HTML5灰度图像处理练习5:LeadTools案例分析
一直对HTML5 DICOM Viewer的技术发展感兴趣,特别是像素传输部分。最近看了LeadTools的案例,跟之前Healthphere的相比,还是各有千秋。两者都是基于文本(XML/JSON)来传,后者用了一些更复杂的技术,可以让图像看起来显示更快。但单从传输编码方面看,数据量不大的时候base64文本可能比二进制还要小(正因如此有了MTOM),而把像素取值简单地表示成十进制文本,显然原创 2012-10-30 18:23:48 · 1976 阅读 · 0 评论 -
2030年的企业软件开发
随着软件开发工具和技术平台更加易于使用,而不同行业领域中的业务复杂性一直没有改变,独立的ISV将会消亡,只剩下软件开发平台(包括通用软件开发平台和针对特定行业领域的开发平台)供应商,以及行业机构内部的软件开发部门。到时候软件开发人员就跟现在的IT基础设施维护人员一样,渗透进入每个机构,跟现在的开发人员有两点不同:其一,由于开发平台和工具更加先进,他们工作效率和单兵作战能力更强;其二,跟业务人员原创 2012-11-27 00:17:14 · 1242 阅读 · 1 评论 -
强矩阵中的人员管理
大多数管理者都很少公开谈论自己的管理经验,或者心得,最多点到为止,好像天机不可泄露。敢于大言不慚地谈论的,一般有两类人。一类是初学者,他们多半是为了成长过程中某个心智阶段的总结;一类是大师,他们则是为了整理人类的知识。我这里有意把一些包含私利的动机排除在外,否则实在对不起一些牛人,比如徳鲁克,虽然他从不承认自己是个管理者。去年春天,在QCon2012上看到一个报告,叫做“弱矩阵中的项目管理”,原创 2013-02-04 23:42:33 · 6345 阅读 · 2 评论 -
O/X Mapping 的故事续集的续集
多年前就在博客上写过O/X Mapping的故事,及其续集。O/X Mapping并不是一个常用的术语,只是借用了O/R Mapping的思路,自己对XML序列化的一个别称。没想到的是,这么多年来,关于O/X Mapping的故事一直在延续。每次当我为一个新项目搭建代码框架的时候,或多或少,都在这个XObject类库里面增加些新特性,来满足新的需求。尽管在大多数项目里面,没有人愿意把对一些原创 2013-04-08 23:05:29 · 1655 阅读 · 0 评论 -
快速软件开发的五个步骤
我所经历和听闻过最有效率的软件开发,往往不是在商业公司或者某个成熟组织中出现的。假如我们一夜之间忘记了所有软件工程过程的教条,却还对编写代码充满热情的话,也许会更自然而然地得出下面这种企业软件开发步骤。1. 理解业务和定义需求2. 设计和确认界面交互草图3. 搭建程序框架(从DB到UI)4. 开发和测试5. 交付和维护先列在这里,以后有空再慢慢补充。不好意思,又是个标题原创 2013-03-15 20:58:42 · 2246 阅读 · 0 评论 -
集成的故事 - 面向服务的世界
关于面向服务的进一步讨论,势必会越过EAI的边界,而在更抽象的层面上审视医疗信息系统。多年前人们在讨论面向对象的时候,至少在程序员的圈子里已经形成一个简单的共识,面向对象的本质就是面向接口编程,其余的什么封装、多态、继承等都可以由此展开;那么面向服务的本质又是什么呢?面向契约编程?还是服务对齐业务?事实上,当我们回顾面向对象的分析方法,会发现其实一切都是一脉相承的,过去是用对象来抽象现实中的实原创 2007-11-15 17:26:00 · 1207 阅读 · 0 评论 -
集成的故事 - SOA in Healthcare
不知是错觉还是现实,医疗信息化似乎是对IT新技术接受最慢的几个领域之一。记得还在学校的时候,就有机会用beta版的.Net SDK来编写最初的Web Service,走出校门才发现自己只能基于迷宫似的C++类库来编写所有的代码,不管是繁琐的底层交互,还是简单的用户界面,指针把程序逻辑编织成一堆混杂的面团。期间经历的各种经验教训,尽管对自己是很大提高,而且也为推动和参与后来的组件化进程提供了机会,原创 2007-11-07 14:41:00 · 1487 阅读 · 0 评论 -
O/R Mapping 的故事
当年,我跟朋友一起开发了一套小型的收费系统,其实是个很简单的数据库应用。这个系统是给某个服务提供商使用的,这个提供商有几种类型的客户,针对不同类型的客户有不同的计费标准和收费流程,而且不同类型客户的基本信息的数据结构也差别很大。那么很容易想到,把针对不同类型客户的收费业务,分别放在不同的用例里面,然后这些用例也分别对应了不同的数据表、业务逻辑以及用户界面实现。当然,为了做报表和统计分析的方便原创 2006-08-24 14:22:00 · 1226 阅读 · 0 评论 -
O/X Mapping 的故事
记得04年春夏之交,我在华东出差。在从南京开往杭州的火车上,一位同事提出了一个想法。他说我们能不能做一个新的程序配置的界面,就像现在很多软件里面流行的那样,左边是个树型目录,选中树型目录上不同节点的时候,右边就分别显示这个节点对应的配置内容。后来在杭州还看到afga的影像工作站软件,也提供了类似的界面。我们这些小公司在设计软件的时候,国外的一些行业巨头常常是我们的模仿对象。原创 2006-08-24 00:07:00 · 1395 阅读 · 1 评论 -
标签式用户界面的故事
软件的用户界面,正如女性的时装,每过一段时间就有一种新的款式。自从图形用户界面诞生以来,窗口作为一种主流的设计模式,尽管一直是这样的方方正正、层层叠叠,以前有棱角的地方却慢慢露出了优美的曲线,过去严实和保守的色调也变得越来越清凉和透明。在紧贴着这层靓丽外表的里面,内容组织的方式也在悄悄地发生着变化。当年风靡一时的MDI模式一夜之间突然让人觉得是如此的凌乱和繁杂,反而当时只是在后台的参数设置界原创 2006-08-24 17:42:00 · 2007 阅读 · 0 评论 -
关于软件和软件工程师
前不久在淮海路的三联书店,随便翻起一本介绍全球著名建筑设计的书,书中讲述了每个建筑的创意背景和设计灵感,配有一些主要的设计草图以及建成后的照片。让我想起前不久看到的一本讨论软件模式的书,也是一个个系统设计的案例,也有一些UML框图,一些用户界面的截屏。 拿软件架构跟建筑架构进行类比,是如此的陈词滥调,然而每当这些图纸活生生地呈现在眼前的时候,又是如此的亲切,并且令人感叹。原创 2007-01-27 20:03:00 · 1695 阅读 · 0 评论 -
标签式用户界面的故事续集
一年前的标签式用户界面的故事,试图从一个GUI的问题引出一个关于插件体系的讨论。一年后,发现自己有幸再次以插件模型为基础搭建了又一个软件系统的静态结构。这种模型已是如此的普遍,从网络游戏到领域应用框架,代码的动态加载为系统架构带来的灵活性是如此的显而易见,以至稍微上点规模的软件都离不开它。在代码实现上,.Net提供了非常方便的方法。除了用前文提到的用静态函数Assembly.Load()把程序原创 2007-06-28 17:32:00 · 909 阅读 · 0 评论 -
O/X Mapping 的故事续集
按照Joel的说法,Daily Build可以在更大的时空尺度上缩短程序开发中编码-编译-调试的循环,从而提升团队效率和产品质量。对我来说,卸下那些繁琐的编译工作,倒开始有更多的时间来思考和总结问题了。传说中的Google员工,在正式的项目以外还有20%的时间来做自己喜欢的事情,20%的确高得让人羡慕,这样的宣传也是擅长媒体经营的互联网公司的传统长项,事实上类似比例的资源在不少公司都存在,关键在原创 2007-06-27 16:31:00 · 1227 阅读 · 0 评论 -
O/R Mapping 的故事续集
记得在温老先生的《程序设计心理学》里,好像有对程序的功能和性能进行过深入的探讨,比如一些艺术家级的程序员为了实现一个性能完美的Hello World程序,花费了别人本来可以用来编写一个应用服务器的时间。然而,当我们的程序规模大到一定程度,终究有一天要考虑性能问题。事实上在一些对性能要求高的应用程序中,在最初的设计中就必须为性能埋下很好的伏笔。人们对ASP.Net提出的质疑中,有这样一种论调,就原创 2007-06-27 16:51:00 · 974 阅读 · 0 评论 -
集成的故事 - 医疗集成的未来
本文试图展望一下未来一段时间内医疗信息系统集成领域一些可能的发展。事实上这对我是个太大的题目,所以也只能在博客上胡编乱造一番。限于一些粗浅经验、现在所处的位置以及视野所及的范围,确实不敢对不可知的未来做出什么有根据的猜测。虽然涉世不深,但我还是愿意思考,愿意尝试。最早我进入集成这个题目的时候,也没有想到要写这篇,只是后来写完“集成的本质”之后,开始在想,在biztalk server之类的巨人原创 2007-06-29 16:32:00 · 1345 阅读 · 0 评论 -
集成的故事 - 导言
曾经有人说过,医疗信息系统是世界上最复杂的信息系统之一,甚至将它的复杂性与登月计划相比。此话的真伪难以考究,而且很少有人做过定量的估算或者跨行业的比较,因此我一直姑且以为这只是医疗信息系统的制造商们向医院兜售自己的产品时,为了抬高价格而编造的一个说辞。不过,它确实很复杂。跟企业信息化一样,医疗信息化同样需要理解和协调不同部门/科室之间的关系。可能是企业信息化已经发展了很多年,不少公司已经可以包原创 2007-05-09 17:09:00 · 2116 阅读 · 1 评论 -
集成的故事 - 动态数据迁移
Procedure Code是个有趣的东西,医院使用它的方式好像能在一定程度上反映出这个医院信息系统集成的水平。在独立运行的设备上,技师在拍摄前选择一下拍摄部位和体位,可能只是为了在输出图象的DICOM头里面包含这些信息,以便在胶片上打印出来。尽管很多设备还是会把输入的部位和体位信息编码成Procedure Code来存储,但实际上这种转换没有起到什么作用。如果只是为了打印,可能只需要Proc原创 2007-05-28 17:03:00 · 2174 阅读 · 0 评论 -
集成的故事 - 乱码
乱码是个恼人的问题,Joel在他的书里说过,给你一个字符串,你不知道它的编码,那这个字符串对你是毫无意义的。这一点,对于每一个做过多语言的系统集成的人,都会印象深刻。可能更让人印象深刻的是你亲自去研究这些编码的经历,相信对于不少初学者,这都会是个充满痛苦和混乱但是又必须经历的一个过程。在《Joel说软件》里,这位老兵用了不小的篇幅来讲解字符编码以及unicode,不过除了上面那句话,其余的细节原创 2007-05-30 17:44:00 · 2166 阅读 · 0 评论 -
集成的故事 - 桌面集成
近几年有个新名词,叫做软件考古学(Software Archeology),意在研究现有软件系统里面的各种东西,以供今人所用。在其他的工程领域,可能从来没有人研究什么水电工程思想或者机械设计心理学,但软件工程师似乎很喜欢制造这些稀奇古怪的名词,而且制造者往往都是一些业界知名的大牛,于是追捧者也不在少数。前不久听过候捷先生的课程,了解到他对标准模版库的理解之深,想必他也在不知不觉之间成为了软件考古学原创 2007-05-29 19:17:00 · 2153 阅读 · 0 评论 -
集成的故事 - 集成的本质
一次出差的时候,我给热衷艺术设计的爱人买了一本书,名字叫做“设计中的设计”。书名中的递归形式,本来就很容易让熟悉程序设计的人怦然心动,前言中的一句话,更是耐人寻味。“能下定义或以文字记述下来并不能称为了解,反而是将已知的事物未知化后,尝试挑战其真实性,才能对其更深入了解。” ——原研哉几篇故事下来,对于医学信息系统集成领域,无异于冰山一角。倘若哪天真能记录下整座冰山,在这位设计大师的眼里原创 2007-05-29 23:54:00 · 1615 阅读 · 0 评论 -
集成的故事 - 性能
正如在“O/X Mapping的故事续集”中提到的,当你的系统如期上线,一切顺利运行,准备接受客户和领导的赞誉的时候,性能问题便一如既往地如期而至。原因很简单,你的系统做得太好了,人们是如此的喜欢它,热切地期望着亲自去体验那些激动人心的新功能,于是人潮蜂拥而入。附近停车场的纷纷爆满根本无法阻挡他们的热情,聚拢而来的人群把满载的地铁和公交车都挤得水泄不通,交通开始陷入瘫痪。然而,这些可怜的人们并不知原创 2007-10-09 10:54:00 · 1136 阅读 · 0 评论 -
集成的故事 - IHE
今天终于斗胆来谈一下IHE。毕竟谈到医疗信息系统集成,不谈IHE好像会觉得很落伍。前不久,跟一些同事讨论IHE,引发了一些思考,不知道会不会也很落伍,但至少代表了这个时期自己作为一个软件工程师对IHE的粗浅认识。IHE提供了很多实用的模型,这些模型并没有想象中的那么抽象难懂,因为它用了大家都能看明白的UML来描述,对于每一个消息,它甚至指明了应该用DICOM或者HL7里面的哪些字段来填充,正是原创 2007-10-12 14:10:00 · 1761 阅读 · 0 评论 -
大公司病
大公司病常常表现为:1) 多一事不如少一事。2) 敬小慎微,怕担责任。3) 缺乏激情,抗拒变化。4) 按部就班,抓不住重点。5) 像木头一样,踢一脚才动一下。6) 不管是当领导的还是做员工的,在沟通中总习惯处于被动地位,难以形成有效的互动。虽然是病,但某种意义上,这些也是在大公司里的生存法则。--因此,大公司常常要花掉很多培训成本,来弥补文化上的缺失。一些受过有原创 2013-04-19 08:05:50 · 4540 阅读 · 0 评论