模块化Java:声明式模块化
本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。

作者 霍泰稳 发布于 2007年10月17日 上午3时7分
编者按:因为Ruby on Rails的出现,借用互联网创业的人越来越多,虽然不能说全是RoR的功劳,但至少说明技术门槛的降低加速了互联网的发展。从前从一个点子的产生到实现可能要耗费少则几个月,多则几年的时间,而现在,只要你的点子够新,有实践的可能,几天几周就可以看到原型。而后面的维护也比较方便,几乎可以说是实时进行。本文通过采访技能云网站的策划人熊节和主设计师Iceskysl就是想证明前文所述,据两人介绍,这两个到现在还没有见过面的年轻人通过网络,在不到两周的时间里,将一个创意点子变成了现实。
InfoQ中文站:这个项目发布后,你被人问到的最多的三个问题是什么?
IceskYsl:你们团队几个人;这个项目的目标用户是谁?用了多少时间?
熊节:
不是。最初的主意是我想的,实现的人是IceskYsl。我自己有很多关于互联网的点子,但是没有时间、没有行动力去实现。是IceskYsl的行动力让iTechTag这个点子变成现实。我相信很多人有和我一样的困扰,所以1sters!这种模式挺有吸引力的。
不知道,不操心。我的近期目标只是让iTechTag能跑起来,让它帮助软件开发者们建立自己的声望,让他们的声望为他们自己创造价值。只要对用户有价值,早晚网站也会找到自己的价值,这一点我毫不怀疑。
可以说很快,大概两周就上线了;也可以说一直没有开发完,不断地在提高和改善。这也是Web 2.0的特点,永远都在beta。
InfoQ中文站:介绍一下你自己和你的团队?
IceskYsl:我是IceskYsl,目前还是靠Java吃饭,ROR是暂时还是业余活动,很享受这种方式;1sters!暂时还是个虚拟的、我自己心中理想中的团队模式,也正一步步的走向成熟。我接触RoR有一段时间了,期间被它的灵活吸引,有事没事的就会写写代码,时间不多,写了好几个像模像样的系统如:
熊节:我是熊节,网名叫"透明"的。先后干过媒体、程序员、咨询师三种职业,所以有一堆Web 2.0的点子。可惜每天忙忙叨叨的,这些点子落地的很少。
InfoQ中文站:技能云的创意是从何而来?
IceskYsl:项目的创意随着时间逐步演化,起初只是为程序员及其相关的人提供一个展现自我的平台,为国内的程序员赢得更多的他曾被无形剥夺的东西;进而发展为项目展示、交流、经验分享及其人脉的一个平台。
熊节:这个东西的想法很简单:我要有一个widget挂在我的blog上,告诉别人我有些什么技能,譬如说我Ruby很不错、Java很不错、JavaScript也有经验,等等。为什么我想给别人show这些呢?因为我觉得骄傲,为自己骄傲。我在过去的8年里一直在编程,我掌握了那么多的技能,我觉得很骄傲。说白了就是,我要向别人炫耀自己的技能。
东西很简单,但背后可以有引申。这个炫耀的widget一展开,就引出了别的东西,那就是从哪里得到这些技能的信息。当然了,只有从项目经验里来。只有真正在项目里做过,用过一种技术,你才能说你掌握了这种技能。而且一般来说,技能掌握的熟练程度还是和使用的时间成正比的。所以iTechTag是以项目为基础的。你不能说自己"精通"、"熟练掌握"什么技能,你必须证明,证据就是真实的项目经验。
那么有了一个炫耀的widget,有了一堆项目经验,就可以很方便的导出简历了。(这是我们下一步的重点功能。)技能-经验-简历,这个三位一体就构成了一个程序员的声望(reputation)。谁对这些声望感兴趣呢?当然是正在招人的潜在雇主。换句话说iTechTag的注册用户在炫耀的同时顺手得到了直接面对潜在雇主的机会。这就是我一开始说的,“释放程序员声望的价值”。如果说开源软件是把源代码的价值还给程序员(和用户),那么iTechTag这个模式就像是人才招聘领域的开源,把程序员的价值还给程序员(和潜在雇主)。
InfoQ中文站:为什么会采用 RoR实现,用RoR开发你们体味到什么特殊之处?
IceskYsl:采用ROR是因为我们享受ROR带给我们的快捷和快乐。我们喜欢新的东西,体验者敏捷开发过程中带来的快乐。采用ROR使得我们更加敏捷。我是不会使用Java去开发的,因为它便捷。你可以想象一下“推绳子”的感觉,就是如果你用Java去开发这样的项目,会让你感觉使不上劲,一身力气使不出来或者说憋的慌。我想这也是为什么现在很多Web 2.0的网站都是用RoR或者Python这样的较动态的、轻量的语言做出来的吧。
熊节:我如果自己做肯定会用RoR,因为我是RubyWorks的成员,我对RoR最熟悉。所以在寻找合作伙伴的时候我也注重找RoR的开发者。
InfoQ中文站:这个项目的开发过程是怎么样子的,比如时间、人力等?
IceskYsl:这个项目最先是我的一个网站:www.1sters.com, 上面规划了我理想的工作团队的模式,透明无意看到了,就按照上面的联系方式找到我;说自己有个很不错的Idea;也就是技能云的雏形,和我说了以后,我觉得很棒,于是决定一起做。鉴于他对程序员这个群体把握比较准确,很多方向和他讨论后确定;然后我个人开发。白天用IM沟通一些不确定的问题和需要的功能,晚上下班后我基本上就可以实现。就这样用了两周的业余时间完成了前期的功能开发。后期的测试和维护当然少不了Jeff同学的辛苦劳动。整个过程都差不多是这样的,在技术上为了更好地提高用户体验,我们采用了Ajax技术,为了在不同的平台展示,使用了Restful架构等。
InfoQ中文站:敏捷开发方法在你们的开发过程中有没有得到什么实践?
IceskYsl:目前规模不是很大,使用的不是很多,现在正在TDD。
熊节:呵呵,只有两个人,一个客户一个开发者,这情况用什么过程都嫌太重。两个人的项目最要紧的是交流。只要双方都明白对方的意思,同时有比较好的编程功底,自己注重代码质量,就不需要什么正式的开发方法。
InfoQ中文站:类似于用RoR开发技能云这样的项目,有什么经验和教训和大家分享?
IceskYsl:Idea一定要足够的好,且你自己对这个Idea有充分的兴趣,自己必须是这个Idea的超级拥护者和使用者。必须脱离传统的类似外包项目的模式,否则其中的乐趣你肯定体会不到。
做事情一定要有很强的行动力
我们也是在行动中探索方向,希望越来越多的人了解技能云,支持技能云,如果您有任何建议或者意见或者其他的问题需要交流,欢迎联系我。
Email/GoogleTalk: iceskysl@gmail.com
不完全同意。在方案确定后,进行实施的时候行动力当然是越强越好。但如果走在一条错误的路上,你行动力越强破坏性越大。拿技能云这个网站来说,如果没有熊节这个创意,没有IceskYsl比较成熟的RoR技术,你行动力再强也不可能在两周内完成网站的上线。
所以,在行动力之前还有一点比较重要:看准路,选好工具!
是呀,光想不做是不行的。我目前也是苦于精力有限哪,呵呵。
www.1sters.com/ 网站上,把iTechTag写错了,写成iTecgTag了,笔误吧。(网页最底下一行)
哦,确实~多谢提醒~
www.1sters.com 还是很早前开发的,UI方面一直不是很满意,该来改去的,造成的,呵呵~
Ruby on Rails并不值得太惊奇
能够很快的做出来,这是点子不会烂在肚子里的前提~
技能云是跑在老外的服务器上的,今天貌似有点不正常,我们正在联系可靠的服务器提供商,如有愿意提供者,请速联系我们。
技术是适用就好
快速敏捷的方法能如此快速的解决一个项目,很受启发
不过开发经验很重要,一般的应用用两周差不多的时间。
点子倒是还可以
断断续续的,一不小心,两周就过去了~
在新出炉的 itechtag 网站上,策划人熊节再次标榜“我是一个软件工匠”。去年还称自己是 journeyman,怎么这么快又升级了。“软件工匠”也是你可以叫的么。这种低级的宣传手法和伎俩,我称其为“王婆卖瓜”似的个人主动式营销,如今恐怕也只能骗骗小孩子了吧。真不害臊!
熟悉 Pete McBreen 所著、熊节译错了的《软件工艺》的朋友们可能知道,McBreen 借用匠艺传统,按照技能水平和对行业的贡献度和影响力,把程序员划分为三个等级:学徒、技师和工匠。
参照 McBreen 的标准,在 InfoQ 的编辑团队 中,有几个人真正够格,可以自诩为“软件工匠”?恐怕只有 Alexandru Popescu 和 Floyd Marinescu 两人吧。明说自己拥有 10 年以上开发经验的,我看到还有朱永光、郭晓刚等人,照理说都比熊节更成熟、更专业、更优秀,可别人是什么样的态度,有出来耍吗?两厢对照,孰优孰劣,不辨自明。
熊节自述的项目经历一共有 6 个:技能云, RubyWorks, CruiseControl, Selenium, Goodhope 以及杭州工商网上年检系统。
自 2003 年至 2007 年,在总共未满 5 年的时间里,熊节究竟有多少实际的项目经验和资历,已够他“老人家”配上一顶“软件工匠”的帽子呢?读者们可能都不会忘记熊节作为媒体人的两进两出,即便到现在,他在 ThoughtWorks 做“学徒”的时间也不过两年多。即便是学徒,熊节这个“学徒”到底当得怎么样,我们觉得也是应该质疑的。
我想,笃信“媒体就是信息”的熊节,其软肋就在于那种自以为是、热衷表演,非常业余的功利主义态度。
没有 10 年以上软件开发经验的,请不要奢谈什么“软件艺术”,更不要玷污了“软件工匠”这个称谓。
我们觉得 InfoQ 作为具有国际水平的专业程序员交流网站,应该吸取 CSDN.net 和《程序员》杂志的教训,不要再让 InfoQ 成为少数态度极不专业的“业余”程序员进行免费个人表演的秀场。
www.zhangxun.com
... big deal.
oh my god....
本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。
项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。
在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。
Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。
Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。
16 条回复
关注此讨论 回复