Category: 工作学习


不知哪儿吹来的一股风,近年来敏捷开发大行其道,都快带上了迷信色彩。似乎个个公司都想变得“敏捷”,这也养活了一大堆专搞敏捷咨询的皮包公司。我工作的公司也没有免俗,请外部咨询公司的砖家亲临指导工作也不是一次两次了。然而每经过一次培训,我就对敏捷多一份疑虑。前两天看到这篇《敏捷开发(名字起得很帅,很忽悠人)原则 括号里面加了自己的理解笔记》,更加坚信自己的怀疑是合理的。下面我也根据自己的实践,小批一下敏捷的三个方面的问题:

  1. 结对编程
    假设先把开发人员简单分为两等(其实多少等都一样):高手和菜鸟。我们来看结对的结果:两个高手往往争得面红耳赤,因为大多数高手都有自己的特有习惯,更不喜欢自己做东西的时候被人盯着,往往不欢而散,顶多事倍功半;高手加菜鸟,让高手敲键盘吧,得不时给菜鸟讲解影响思路,让菜鸟敲键盘吧,还不把高手给猴急得?两个菜鸟还用说,面面相觑,傻笑吧……
  2. 测试驱动开发
    把传统的方式倒转过来,先写单元测试,再实现,接着重构,最后设计结构。为了单元测试,要抽取本来不需要的接口,要增加本来不需要的属性设置方法,提高了复杂度,降低了效率。对有多分支的复杂逻辑,大多数的时间都耗在了单元测试上,而且因为逻辑复杂,谁又来保证单元测试本身的正确性?对于真正需要特别谨慎对待的业务逻辑,例如用 SQL 查询数据库,却因为不够单元而只能进行传统的验收测试。因为没有早期的接口设计,重构往往成了重写。等最后想把一堆石子凑成一块石头,却发现它们早就变成了一盘散沙……
  3. 开会
    每个冲刺都是前有梳理,后有回顾,两三天就这么在一片欢呼声中流逝过去了。尤其值得声讨的是估计工作量。砖家们往往拿距离的相对大小来说明工作量的估计方法。事实上工作量是一个无法量化的东西,估计它和估计距离简直是风马牛不相及。于是乎估计的过程就成了众人拍脑袋再去掉一个最高分和一个最低分……

Remember More Words With Wordz!!!

It had been more or less one week I was unable to access my live space. However, a much worse thing has just occurred, that Google quited China, which furtherly blurred the line between our most harmonious and most democraticed.

Harmony requires being silent for the dark side, so I shut up and present a new application that should help me and may also help you on learning words of a foreign language:

Miles to Go…

The Sun has set, proving again Oracle’s voracious prophecy can always be fulfilled…

Luckily enough, Oracle said the development of NetBeans and GlassFish would continue to be supported, which I think has given me no chance to switch another IDE like Eclipse, or to another Java EE container like JBoss.

However, this acquisition did affect at least one thing, that kenai will be closed. As an open source project hoster, or declared as a cloud-computing development platform, it is indeed disappearing like the vanishment of cloud. As the result, I migrated my project (named as my name: zhyi) from kenai to Google Code. New home brings new hopes, and here’s the hopeful plan for the near future:

  • Finish Wordz
    There is currently only one feature missing.
  • Reimplement the Table Model of SRT Subtitle Editor
    I have to admit usage of javax.swing.table.DefaultTableModel is ugly stupid, and even causes a big bug. Obviously a really suitable table model for SRT subtitle is required.
  • Add Jar Finder to the Project
    It had been finished moths before but I forgot to check it in.
  • Kick Off Bookz
    Once those Swing applications are stablized, I will turn to Java EE and Web development, or even Web Services and SOA. The first idea is Bookz, which is used to manage or share ebooks. It will be implemented with Java EE 6, but I will user pure JSP 2.1 + Servlet 3.0 for page presentation, not JSF 2.0, because there’s no good tutorial for JSF 2.0 for the time being.

These two may be my last Swing applications in my kenai project, unless I come up with brand new ideas. Reasons are simple: Swing isn’t widely used; Java EE 6 has been released and it’s time to dive into some wider aspects of Java.

SRT Subtitle Editor is a simple tool for editing SRT subtitle file. It did take me a little long time in development.

Jar Dependency Walker checks Jar libraries’ dependencies according from manifests.

Checksumz

Checksumz is my first finished open-source applications on kenai. It utilizes JDK’s buid-in algorithms for computing checksums of a file or some text. My tests shows it computes very fast, at least faster than VisualHash, another checksum application written in C#, which on the other hand tells Java is NOT slow.

In fact, this was done months back for my pesonal use. I refactored the code structure, and ajusted some UI elements:

What If NetBeans Is Gone?

From what Oracle has stated, I see NetBeans is going to be suffered, simply because an open source project can hardly keep growing fast without a commercial sponsor. If this worry unfortunately becomes true, which other Java IDE(s) should I choose? Let me go through some of the famous ones:

  • Eclipse
    It’s quite popular but I personally dislike it. I think it’s ugly, heavy, hard to use, and has a worst plugin manager.
  • IntelliJ
    Being declared as the best IDE of the world by itself, it’s worth to have a try. The only bad news is it’s commercial software.
  • JDeveloper
    Also worth to try. If Oracle’s acquire of Sun succeeds, it may become a best choice for Java development.
  • JBuilder
    I shouldn’t have listed it here because it has become a set of plugins for Eclipse.

If NetBeans dies, perhaps I’ll use IntelliJ at home and JDeveloper at office. I don’t want to witness NetBeans’ vanishment, though I can do nothing to change its future…

这次别亏了

公司组织 SCJP 考试,考过的报销,不过的自掏腰包,1500 大洋……

第一轮安排在下下周,所以老大今天上午,严格地说是昨天上午,举行了一次模拟考试。题目是我提供的,但本着三公原则,没有提前偷做……

头夜睡得晚,脑袋恍恍惚惚地有点痛,就这个状态,竟然还能考到足以五十步笑百步的全组第一:差 3 分及格……

考场上没有 IDE,没有文档,没有网络,背题吧……