淘先锋技术网

首页 1 2 3 4 5 6 7

尽管我在大学和研究生的整个职业生涯中都研究和尝试了不同的开发技术和工具,但我的全职职业生涯始于Adobe ColdFusion的开发。

从学校毕业后,使用技术解决现实世界中的业务问题本身就是一个挑战。 由于其相当简单的性质,ColdFusion不会妨碍您完成工作。 它也使我能够应用应用程序开发的主要原理。 但是,随着时间的流逝,我开始注意到该语言提供的工具集并不像其他开发技术(如Java)那样丰富。


最终,我渴望与更复杂但更有价值的语言紧密合作,那就是当我过渡到Java时。 因为我最初的有意义的应用程序开发经验是使用Java,所以我常常把这种转变追溯到我的根源。 该博客将讨论我在进行过渡时的一些想法和经验。

ColdFusion –简化基本任务

在典型的Web应用程序堆栈中,ColdFusion是服务器端开发技术,可满足从用户的Web浏览器收到的请求并向后发送有意义的信息。 ColdFusion是一种基于标记的语言,可以很好地与HTML集成。 它也可以以面向对象的方式独立运行,但这并没有改变其目的。

当我仍在使用ColdFusion时,我的经验为我提供了有关Java存储的资源的零碎提示。 由于ColdFusion本身是在Java之上运行的高级解释语言,因此可以创造性地使用其下的Java。 例如,以下代码片段允许在单个语句中从ColdFusion数组中删除重复项。

myArray = createObject("java", "java.util.ArrayList").init(
  createObject("java", "java.util.HashSet").init(myArray)
);

但是,这些技术基本上没有记录。 为了在ColdFusion中应用它们,您已经必须知道Java中的一些巧妙技巧。 如果是这样,为什么不花时间在Java上做得更好呢? 我相信ColdFusion随着时间的推移已经取得了长足的进步,但是只是发现并实现了Java已经掌握的知识。

虽然两种技术的基础非常相似,但ColdFusion在市场上有特定的用途。 它以简化基本任务而自豪。 例如,ColdFusion中的数据库访问工具非常简单,尤其是在首次引入它们时。 由于这种易用性,ColdFusion在快速应用程序开发平台方面享有盛誉。 该语言不仅方便使用服务器端功能,而且还提供了一些现成的UI组件,可以节省开发时间,并且可以说在某种程度上减轻了开发人员的前端职责。

理论上听起来不错。 但是,实际上,UI小部件太简陋,无法在任何现代现实应用程序中使用,特别是考虑到最近几年出现的前端库,更不用说HTML5的新兴功能了。 进行AJAX调用的内置快捷键看起来确实很优雅,但是它们通常不足以适应所有情况,因此无论如何您最终都会诉诸于更强大的jQuery。

当您只使用好部件时,ColdFusion就是“另一种”服务器端技术,它也恰好同时带来了组织文化,或者我认为长期而言,它并不理想。

快速性

快速应用程序开发的概念经常被误解。 实际上,它的快速性最终并没有给您带来多少好处。 尤其是在首次设置应用程序时,应该对体系结构进行大量的思考和计划。 如果适当的体系结构到位,则对应用程序进行增强将不是一件容易的事。

另一方面,如果“快速”地开发某些东西,不可避免的技术债务将永远使您感到沮丧,因为花费时间重构应用程序比创建增强功能更难辩解。 通常,重构需要更长的时间,会引入系统范围的错误,这需要额外的质量检查资源。 我越是坚持这种想法,我就越意识到建立正确的基础是多么重要,在这种情况下,“快速”一词似乎并不有吸引力。

考虑到这一点,我在使用这两种技术的工作场所中遇到了不同的性能期望。 您可能已经猜到了,在使用ColdFusion的情况下,完成功能的时间表一直要求更高。 我绝对是生产性工作环境的拥护者,但我也相信,在提供功能和维护代码库之间应该保持平衡,以便可以更轻松地完成将来的增强和修复。

当仅关注应用程序功能时,很难保持高质量的文化。 我发现,使用更明智的体系结构的环境允许一定的“缓冲时间”使代码库比您遇到时有更好的位置,就像Boy Scout规则一样。

工装

值得探讨的另一点是开发工具的复杂程度和实用性。 在我的ColdFusion和Java开发工作中,我都使用Eclipse作为集成开发环境。 Eclipse传统上称为Java IDE。 但是,由于其可扩展性,可通过插件促进ColdFusion开发。 尽管该插件对社区的支持非常出色,但它与Java可用的代码检查和调试工具不匹配。 我倾向于认为差异是由于Java是一种编译语言,而ColdFusion是在运行时解释的。

无论如何,考虑到Eclipse是一种免费资源,它极大地提高了开发人员的生产力。 当我开始从事Java的职业生涯时,这是一种重新发现的奢侈品。 我深信,不一定可以节省您时间的开发技术本身,而是可以在整个开发过程中使用的工具。 可以免费获得有用工具的访问肯定使Java在这一比较中处于领先地位。

最后的想法

无论是否偶然,不同的技术似乎都在一定程度上促进了组织文化的发展,并各有优缺点。 最终,无论您喜欢发展什么,重要的是要继续成长为专业人士,并挑战自己以找到使用技术或开发语言的新颖方法。 我发现Java平台在这方面非常有益。

每天学习新事物似乎不胜枚举,但就像进行体育锻炼一样,随着时间的流逝,大脑变得更加有效。

资源资源

翻译自: https://www.javacodegeeks.com/2014/05/my-move-from-coldfusion-to-java-development.html