成为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之云开发技术手册

    十年前,面向服务架构突然出现在IT舞台上,而且许多公司已经在SOA应用上进行了大量的投资。现在云计算在IT舞台上更是独领风骚。SOA之于云,云之于SOA的意义又是怎样的。很明显,云计算的成功取决于它能够给现有的SOA实现增加价值的能力。而SOA的使用也促进了云开发。

  • 敏捷扩展:大型网站项目最佳实践

    其实从某种意义上讲,敏捷软件开发是自身成功的一个牺牲品。随着项目的进行,焦点一直集中在需求定义上,一边编写一测试,一边交付工作软件的各个部分,所以可以看出敏捷是多么好,以致于许多组织都在试图扩展它的使用,而不仅只是局限在单一的团队项目中。但怎样才能把敏捷方法从小项目转移到大型项目中呢?

  • 企业敏捷开发实践

    敏捷却是一把双刃剑,这一方法并不是适合所有人,当然也不会适合所有的项目。敏捷要求有合适的团队,合适的业务经理理念,当然也要有适合的项目。没有一种方法是适合一切的,所以本文讲了六种方法来确定你的云项目是否已经足够敏捷性,或者确定你的组织是否足够敏捷。

  • 开源PaaS技术手册

    开源业界向来不太平,关于诸多技术的开源未来足以让很多粉丝兴奋躁动起来。商业软件开始揉进开源技术,开源技术也成为IT大佬们得基础架构,这一种趋势蔓延的缓慢有有力。在广告漫天飞得云计算中,开源的分量有多重?是否走向云端就意味着走向开源?开源的PaaS如何选择?如何为开源项目选择PaaS厂商?哪些服务平台值得我们关注,下面我们一一来揭晓。

TechTarget

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