成为Java开发禅师的7个技巧

日期:2015-11-30作者:Jan Stafford翻译:boxi来源:TechTarget中国 英文

【TechTarget中国原创】

在旧金山举行的JavaOne 2015上,Martijn Verburg抛开了他Diabolical Developer(魔鬼开发者)的身份,以禅师的面目出现,用比喻的方式向Java开发者介绍了相关的注意事项。他甚至衣着都跟身份很相衬,一条传统的黑色禅裤、衬衫和凉鞋。

Verburg ,总部位于伦敦的应用性能分析服务销售商jClarity的CEO,在取得同意的情况下调整了话题,从谈Qi在The Codeless Code网站写的东西(带插图的寓言),谈到了禅宗心印,以及软件开发的艺术和哲学。

Verburg告诉每一则寓言中,一位软件禅师就教给了他的学生,或者说和尚,一些软件开发的核心要素。很多时候,和尚靠苦修才能学到东西。一下就是禅道Java开发者可以吸取的一些经验教训:

1、名字命名要清晰。在这则寓言里,年轻的和尚发明了一门只有自己才会讲的部落寓语言。有新人加入他们时,这门语言就变得没用了。写面向对象的Java代码时,Java开发者正确地命名东西也很重要。要有描述性。

2、你是程序员。要自动化。在这则寓言里,两位年轻的和尚负责清理两个养锦鲤的池子,因为皇帝几天后要来参观。如果池子清理不干净,他们是要掉脑袋的。一位和尚弄了很多的工具,开始人工清理池子里面的杂草。另一位却坐在树底下,读一本HTML的书。第一位和尚废寝忘食连续工作了72小时。时间所剩无几了,池子还没清理干净,于是他哭着去找第二位和尚。第二个和尚站起来,借了一把铁锹,在每个池子跟附近一条清澈的溪流之间分别挖了一条沟渠。干净的水流进了池子,然后就变干净了。

Verburg说,在有自动化工具的时候,就不要靠开发你知道的工具。升级也许会带来一些短期的成本和阵痛,但自动化工具能够替将来省钱避免麻烦。给自动化找理由很容易,因为它是省钱机器。唯一的缺点是一些系统管理员会失去自己的工作。

3、寻找答案之路跟答案一样重要。在班上,一位出色的学生能够一下子就回答出复杂的问题。不过第二位学生,会把整个过程走一遍然后得出答案。禅师最重视哪一位呢?第二位和尚。

Verburg招聘时倾向于找面向过程的、勤奋的开发者。“我们招聘的时候会很小心,只招那些能够把过程走完,并就完成的事情跟团队沟通的开发者,”他说。软件开发是一项团队努力。即便是出色的开发者,那些不用经过很长的过程一下子就能跳到最后解决方案的人,也要能够把产生解决方案所需的步骤描述清楚。

4、整个系统都重要。和尚能够做出完美的木板,但他们从这则寓言中学到的是,木板并不能造出一座桥。

“我费了一番功夫才明白要更多地专注整个系统端到端的测试,整体性的系统测试,” Verburg说。开发者不能仅仅聚焦在应用或组件上,因为系统是相互依赖的。比方说,无法检查两个组件之间的活动的话就可能会弄错端口。然后系统管理员也就无法打开端口,开发者最后看起来会很糟糕。

5、代码尽可能少写,不要相信自己能写出完美的代码。两则相关的故事给出了有关完美主义的建议以及写出更好代码的办法。Java开发者会感到失望,因为别的开发者总是会搞坏他的代码—无论自己写多少代码,而另一位则会寻求写出完美的代码。这两种情况下,他们对现实的抵抗都是没有用的。完美代码并不存在。至于击败黑客,Verburg建议开发者可以通过尽可能少写代码来让损失最小化。

6、英雄早逝。软件开发的忍者手段会导致筋疲力尽,但许多组织仍然坚持这么做。他们会有一支“老虎”团队,出现失败的时候就会被召唤过来。“然后,拍拍你后背,表扬你用72小时不停歇的工作挽救了局面,”Verburg说:“如果你的组织是这么做的,那还是另谋高就吧。”

7、以身作则。Verburg回忆起未加管教的和尚,那位一而再再而三犯同样错误好多年的和尚。当他的老师向禅师抱怨时,禅师却指责老师没有以身作则。

不要光说“我是团队领袖,没有时间进行测试”这样的话,Verburg说。

最后,Verburg问观众是否倾向于自己写程序而不是用现有的。比方说,有没有写过自己的时间程序或领域相关语言?戒除这种习惯,他建议道:“如果有现成的解决方案,尤其是如果是开源的话,拿来用就是了,”他说。要拿过来用,即便需要调优,这样也能节省时间,然后更快更好地完成更多的项目。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

SOA开发>更多

  • 故障注入注定要成为软件专业人士的必备技能

    尽管云改善了企业迅速发布高质量、高能力应用的能力,但专家警告说要小心这些应用会变得太复杂,难以进行人工测试。

  • 容器与微服务要“联姻” 你对它们够了解吗?

    在虚拟化和云计算领域,容器大概是发展最快、最广为令人兴奋的技术了,微服务则紧随其后。如果把这两大技术结合起来会碰撞出怎样的火花呢?

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • HTML5促进企业移动化服务走向极致

    在企业困扰于传统移动化方式过于复杂时, HTML5凭借其天然的跨平台特性,乘势而起并逐渐得到企业的关注。可是,由于HMTL5标准建立时间不长,展示性能及稳定性更是需要和浏览器有一个良好的兼容,除此之外企业更是缺乏实际应用经验,所以基于HTML5技术的企业级服务市场还处于一片初创状态。

相关推荐

技术手册>更多

  • SOA建模指导手册

    SOA的跨组织的特性决定了其建模必须采取一个从企业级考虑,系统思考问题的方法。企业架构提供了一个企业整体的视图,是在对企业业务战略和核心业务流程理解的基础上,进行信息化顶层设计,形成的相对稳定的结构。本手册简单介绍了SOA建模的一些小技巧,帮助企业SOA架构师从本企业需求和SOA特点出发建立服务架构模型。

  • SOA与Web服务管理

    不管是服务的质量或是可靠性或是可获得性,所有这些能力服务都必须具有,他们必须以适当的方式工作。可能一个供应商提出了一个SOA管理技术,而且是如此地优于其他的技术以致于其实际上成为了事实上的标准。但是更可能的是相同的竞争压力驱使供应商试图合并,而唯一的SOA管理产品最终迫使市场在内部协作性上妥协,如果不能获得一个实际上的基于标准的方法。

  • BPM资源指南

    业务流程管理BPM究竟是怎么回事?BPM资源指南涵盖了BPM工具的最新消息、举措和平台。了解业务流程建模符号、如何采用SOA影响的BPM建模工具,以及如何得到改善,以致业务分析师可以发挥重大作用的BPM举措。

  • 移动应用开发技术手册

    移动应用开发是为小型、无线计算设备编写软件的流程和程序的集合,像智能手机或者平板电脑。移动应用开发类似于Web应用开发,起源于更为传统的软件开发。但关键的不同在于移动应用通常利用一个具体移动设备提供的独特性能编写软件。例如,利用iPhone的加速器编写游戏应用。在这本技术手册中,我们将着重为您介绍企业级移动应用开发的基本内容以及云端移动应用如何开发。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • 数据库
  • 服务器
  • 云计算