解惑

解己之惑,解人之惑

2005年6月 (第1页共4页)

使用plugin的方式提高系统的可扩展性

plugin的方式从硬件中学习而来,但是也可以很好的应用于软件的设计,jive中的过滤器的设计就有点plugin的路子,我所做的另外一个项目也是使用的类似的思路,重量级的task完成共通的任务,例如数据库的增、删、改、查,还有文件上传等等系统中普遍使用的功能,而轻量级的event就plugin到task的前后,针对共通的task进行一些修正,可以是修改参数值、预处理或者完成一些task不会完成的任务,而eclipse的设计中也是采用的这种非常灵活的方式,今天看到一个plugin的框架:JPF,正在研究中。

需要掌握的软件开发技术

虽然现在有很多的软件开发技术需要我们掌握,但是就我而言,有如下几个需要掌握的技术,因为只有掌握这些,你才能得到一个比较好的系统设计,系统的灵活性、协调性、可扩展性、稳定性才能得到比较好的保证。
 

  • 设计模式:这个是这几年一直在被热炒的技术,虽然今年似乎热度有所下降,但是这个实在是非常重要的技术,你不一定精通所有的经典模式,但是对于常见的几种一定需要掌握。 
  • 重构:这个在XP中可能强调得比较多,在其它的场合提出得比较少,但是它实在是防止过度设计和优化系统设计的一个利器,需要强调的是重构必须建立在单元测试的基础上,否则系统的稳定性将得不到保证。 
  • 单元测试:这个是保证系统质量的最关键的一个因素,也是保证有效的重构的基础。 
  • IoC:就我的理解,就是要加大对配置的依赖而非代码间的直接依赖,虽然这样做以后系统的总体结构和代码间的关系变得不像以前那么清晰,但是这个确实是使得系统更加灵活和可扩展的不二法宝。 
  • AOP:虽然我还没有真正使用过,但是实在是喜欢它,因为这个可以很好的实现动态的Plugin结构,也是提高系统的灵活性和可扩展性的法宝,而且可以将一些共通的杂项延迟到以后考虑。 
  • 重用:虽然这个不应该算一种技术,但是我想强调项目组内的代码重用,这个是保证系统的行为一致和协调的关键因素,就像我在另外一篇文章提升项目组的开发效率中所强调的那样。

J2EE世界的现状:生机勃勃的生态系统

今天在CSDN上看到一个以这个为标题的新闻,猛然间觉得一语道破了长久以来对Java界的感觉。一直以来总在看到关于Java和.Net的讨论和比较,但是总觉得Java更好一些,一则是担心.Net是MS一家控制的,二则对MS的垄断也比较反感,三则自己很欣赏开源精神,四则Java的核心类库的源代码都是公开的,遇到问题可以研究源代码。虽然平心而论,微软的产品在易用性上确实比较高,而且开发工具的功能也很全,MSDN的开发文档更是非常的丰富完善,但除了上面说到的原因外总感到有其它的因素,那就是Java界其实在思路上比.Net要活跃得多,跟随MS的技术人员在遇到不能解决或者不方便的时候更多的是等待MS拿出新的API或者规范,而Java界不然,SUN的东东功能远远不能满足大家的需要,这个其实给了别人以机会,他可以有很多对Java的功能进行补充的余地,而且不用担心SUN以后拿出相同的功能时一下子将自己掐死,因为SUN没有那个能力,而MS有(这种情况已经发生了不知道多少次)。正是SUN给追随者留下的这个空间使得大家有很多的发挥余地,也促进了这个生态的循环。证明这个观点的一个现象就是.Net下的开发者会抄袭Java界的成果,例如JUnit,Hibernate,Ant等等,都被冠以N后拿到.Net下,但是好像还没有听说什么.Net下很好的东西被Java所抄袭。所以说,Java世界更像一个生机勃勃的生态系统,有很多相互依存的关系,而MS的架构则更像一个供给系统,MS供,而MS的开发者消费。

广博和精深

一个人要想做到既广博又精深几乎是不可能,虽然人类历史上曾经出现过像阿基米德、达芬奇、拉斐尔之类的奇人,但是那是在知识相对匮乏的时代,对于现代人而言,能通一门科学或者学科已经是非常的不易。虽然鱼与熊掌不能兼得,但是也不是水火不容,无论从事什么工作,都可以追求广博,对世界的方方面面都有所接触不会是坏事,而且可能会对你的性格造成一定的影响,就我而言,感觉可以让人更加大度一些,不会让自己有不可一世的感觉,也不会让自己萎靡不振;而追求精深可以很好的树立自己的自信,可以表明自己的能力,也可以解除生活之虞。万事在于把握一个度,过犹不及。

从硬件转向软件

我大学的专业是电子工程,但是大三发生的一件事情可能永远的改变了我的人生轨迹:让我从硬件设计转向了软件设计。

大三的时候我报名参加了大学生电子设计大赛,在暑假的封闭提高中,我们所做的一个练习项目出了问题,问题出在我们的电源工作不稳定,使用示波器测试发现有太大的纹波,老师说可能是因为电源和其它组件在同一个电板上导致干扰,将电源独立出来试试,我们照着老师的建议将电源独立了出来,但是问题依旧,老师让再附加电容电路进行稳压,问题依旧。。。这次的经历让我很疲惫,而最后,我放弃了,因为我担心以后还会遇到这样莫明其妙的问题,现实中已经有太多我无法把握的事情了,我不想以后的职业道路也是一样充满不确定因素,好在我还有其它的路可以选择。因为我们是电子系,要修很多计算机系的课程,而且我的第二专业就是计算机(学校要求每个人都要修第二专业,但是没有学位),最重要的是我对计算机情有独钟,高考以后就买了书自学DOS,到了大学后自学所有的计算机课程,因此我的选择很明显就是走软件设计这条路了。
现在经常听到做软件的不如什么什么,但是我热爱编程,因为只要我的设计是正确的,那么结果就是正确的,否则肯定是我的设计有漏洞。这个让我这个非常理想化的人找到了理想的职业。到现在为止,我从来都没有后悔我的选择,只有很少数的情况下我会担心一下被同行所热炒的35岁问题。

Blog的问题

目前Blog的功能还没有达到我的预期,最严重的一个问题就是速度了,感觉比较慢,这个很浪费我的时间。另外就是排版的功能,JR已有的一些功能要加到这里来,也许我改抽点时间把内容过滤的功能做成一个通用的类库。还有就是定制的范围,可以修改的地方很少,只能使用他提高的一些宏和变量,但是他提供的那些太有限了。

本来是想下手改的,但是还没有掌握Roller的结构,根据他的网站的内容看要对他进行修改可能比较困难,可能比jive要难改很多,他用的第三方的组件比较多,还使用了我不太喜欢的velocity,难道我要自己写一个Blog吗?

所见即所得和手工排版

这个Blog虽然有各种编辑器供使用,但是感觉没有一种编辑器足够好用,总是有缺少某些我想要的功能,因此我还是更愿意自己在写文章的时候自己使用html排版,还好写好的html格式的东西把源代码贴过来就可以,而看到的文章也可以自己把页面的源代码摘出来就行了,虽然有时候显得不太方便,但是对于我这样喜欢DIY的人未尝不是好事。

没有限制是最好的事情了

语言能力的退化

今天做了一个汉字错别字的测试,只得了69分(满分100),但是根据邮件发送者的话“低于70分的请从一年级语文学起”,我是否也该去补习一下了。说实话,自从上大学以后就很少注意汉字了,因为我写的字非常难看,所以从上大学以后我尽量避免手写(这个可能也是我为什么这么喜欢电脑的原因之一:我可以不用手写)。现在我已经习惯了输入法在你输入拼音以后给出选择的输入方式了,特别是像紫光这样可以根据你的使用调整词语的顺序以及记录你的词组的功能。现在我唯一感到欣慰的是我的拼音能力还没有严重退化,因为我在使用各种拼音输入法的时候一直不会打开输入法的模糊音功能,现在看来我的这个决定是非常明智的,否则我现在可能已经沦为一个“文盲”了。计算机的发展在对人的能力进行增强的时候是否也导致了人的能力的慢慢退化呢?如果以后没有了电脑,没有了互联网,那么我还会什么呢?我还能如此流畅的写文章吗?我还能找到如何实现某某功能的方法吗?可能是因为这些潜意识的担忧使得一直以来我都在收集各种资料而舍不得删除,我的硬盘也因此从40G一路攀升到300G。也许我已经蜕化为一个黑客帝国中的“虚拟人”了。

从硬件转向软件

我大学的专业是电子工程,但是大三发生的一件事情可能永远的改变了我的人生轨迹:让我从硬件设计转向了软件设计。
\ \ 大三的时候我报名参加了大学生电子设计大赛,在暑假的封闭提高中,我们所做的一个练习项目出了问题,问题出在我们的电源工作不稳定,使用示波器测试发现有太大的纹波,老师说可能是因为电源和其它组件在同一个电板上导致干扰,将电源独立出来试试,我们照着老师的建议将电源独立了出来,但是问题依旧,老师让再附加电容电路进行稳压,问题依旧。。。这次的经历让我很疲惫,而最后,我放弃了,因为我担心以后还会遇到这样莫明其妙的问题,现实中已经有太多我无法把握的事情了,我不想以后的职业道路也是一样充满不确定因素,好在我还有其它的路可以选择。因为我们是电子系,要修很多计算机系的课程,而且我的第二专业就是计算机(学校要求每个人都要修第二专业,但是没有学位),最重要的是我对计算机情有独钟,高考以后就买了书自学DOS,到了大学后自学所有的计算机课程,因此我的选择很明显就是走软件设计这条路了。
\ 现在经常听到做软件的不如什么什么,但是我热爱编程,因为只要我的设计是正确的,那么结果就是正确的,否则肯定是我的设计有漏洞。这个让我这个非常理想化的人找到了理想的职业。到现在为止,我从来都没有后悔我的选择,只有很少数的情况下我会担心一下被同行所热炒的35岁问题。

应该严厉打击盗版

也许很多人会骂我的这个观点,没有盗版,中国的个人电脑市场不可能像现在这样发达,充其量也只能达到95年的水平,但是盗版培育了一个市场,但是打击了另外一个市场,盗版导致了硬件市场和网络市场的兴盛,但是对软件行业的打击是非常的大了,这也是为什么中国的个人软件开发者不能养活自己,而是为欧美用户去开发软件,因为欧美用户更愿意掏钱买你的小软件用,因为那个对你足够了。说实话,我经常用盗版,而且更进一步的,我用的都是经过破解的软件,我不喜欢那些使用限制以及广告之类的,但是我宁愿没有盗版可用,因为那样我就会去找我够用而且免费的软件。

更早的文章

© 2024 解惑

本主题由Anders Noren提供向上 ↑