在生活中,你通常只知道「喔!原来这网站是用 Java 写的」、「喔!原来这是手机的 Java Game 」。若自技术层次拆解, Java Technology 可简单区分为 Java 程序语言( language )与 Java 平台( platform )。 Java 程序语言所指是撰写程序所需的语法与词汇,像学习中、英文,有一套基本的单字与语法,只要利用单字组出符合语法的句子,这就是 Java 程序的基础。
至于 Java 平台, 如大家熟知的, Java 共分三大平台: J2ME 、 J2SE 和 J2EE ,分别专精于嵌入式行动平台、标准平台和企业应用平台,除了共同的类别函式库 (API) 之外,每个平台也有其特定的 API ,供程序设计师们开发使用。
随着开发工具陆续推出,降低了 Java 开发技术门坎,要写出正确无误的 Java 程序不是太难的事情,但论及系统性的 Java 软件开发,那可就不是一件轻松事。开发大型项目有三项非常重要的因素,将会影响整个项目的进度与质量,分别是人( people )、流程( process )与技术( technology )。
这三个要素是环环相扣 的,任何一项要素的成败都会影响另外两个要素,而每个要素也都足以影响一个项目的成败。如何取得这三者的平衡,并将每个要素充份的发挥,取决于管理者的经验,与相关开发人员的素质,这不是一项简单容易的任务,但有好的方法可以完成。
Java 弹性多选择 资源丰富任君挑选
「技术」应该是最容易掌握的部份,因为你选择了 Java 。如前所述,全世界已有许多 Java 资源可以选择。某些人可能会认为 Java 技术门坎高,考虑训练成本而决定导入较为简易的程序语言,如 VB.Net ,或是不敢转换到 Java 平台。事实上,真正困难的不是 Java 程序语言或是 API 的使用,而是整个对象导向程序设计的概念。 C# 也标榜与 Java 有着类似的对象导向架构,除执行平台不同、 API 的名称不同,本质与 Java 可以算是峦生兄妹,怎么没听有人抱怨 C# 很难学?
既然 Java 、 .Net 门坎是一样的,那该如何选择?答案是,你喜欢谁就选谁。只是当你决定投靠其中一个阵营时,不妨想想一件事:「在这个平台上,我是不是有选择的空间与自由?」 Java 是一开放的技术、平台,可执行于各类作业平台,还有各式各样的开发工具、 API 套件与执行环境,包括商业、免费、开放源码等丰富资源 任 君挑选。
流程关乎项目预算与时间控制
「程序」指的是软件开发流程或是项目流程,定义流程的目的是要掌控所有的情况。项目的最大敌人是时间及预算,这两者都是有限的,如何在有限预算内准时完成项目,可说是一项艺术。幸运的是,时间和预算都是可控制的,并不是指我们可以控制时间快慢或长短,而是如何明确知道哪一个时间点,需要何种产出物,而我们有多少的预算可以完成。为有效控制,我们需要一个标准的流程,只要照着规矩走,一切都好办。
RUP(Rational Unified Process) 就是一种业界常用的不成文规矩,在多数软件项目中几乎都会使用的一项语言、方法与工具。 RUP 的精神在于反复( iterative )与渐近的( incremental ) 。在渐进式的开发过程中,透过不断的提炼( refine ),可趁早发现问题且找出解决方法,也确保每一工作项目的进度。不过,在架构 (Architecture) 方面, RUP 确实着墨较少,而架构优劣也是足以影响软件系统成败的关键因素。
QoS(Quality of Service) 或是 SLR(Service Level Requirement) ,我想是每个系统最基本的要求,它包含可用性 ( Availability )、可管理( Manageability )、可信赖( Reliability )、可扩充( Scalability )和安全性( Security )等条件。