Flex 最佳做法-第 1 部分: 设置 Flex 项目

时间:2022-02-17 18:53:37

这是我在如何使用最佳做法并将它们应用到 Flex 开发流程的系列的第一部分。本文侧重于 Flex 项目设置的最佳做法。

为什么要采用最佳做法?在您的 Flex 开发职业生涯中, 您会接触到许多项目。并非所有项目都是从头开始创建的。您很可能会接触到一些现成的代码库, 它们是由不同的开发人员在不同的职业生涯阶段构建的。您会遇到一些已经开始或发行的项目, 现在需要对它们进行重构、更改和更新。您将不断发现自己身处各种项目的开发流程中。因此, 使用最佳做法启动项目很重要。否则, 您需要花更多的时间理解项目和代码库, 而不是进行要求的改进或更改。这一额外时间可能增加项目成本并对当前任务造成损害。为此, Flex 开发社区确立了一套常见最佳做法, 供 Flex 开发人员使用。遵循这些最佳做法可以提高 Flex 项目的清晰度, 使 Flex 开发人员能专注于创新而不是学习各种非标准开发方法。

无论您是承包商还是公司员工, 这些最佳做法可以作为导航项目结构、组织和代码格式的规则和路线图。本文讨论 Flex 开发社区采用和使用的常见技术和惯例。

请注意, 本文中列出的技术和做法应当用于它们合理并且可以为您和您的小组阐明开发流程的领域。

要求

为了充分利用本文, 您需要以下软件:

Flex Builder 3

Flex 3 SDK (免费并随附 Flex Builder 3 试用版)

如果您愿意放弃 Flex Builder 3.0 单机版或插件提供的功能强大的工具集, 则只能使用 Flex 3 SDK 开发应用程序。

无论您使用哪种设置方法, 都应遵循本文提到的做法。

必要条件

之前的 Flex 经验对于本文不是强制性的。但是, 之前的某些应用程序开发经验会有所帮助。

将工作区用于项目组织

按照以下最佳做法, 将工作区用于组织 Flex 项目:

Flex 最佳做法-第 1 部分: 设置 Flex 项目通过工作区使 Flex 项目井井有条。

Flex工作区基本而言就是一个计算机目录, 它存储一组 Flex 项目。工作区是组织多个 Flex 项目的理想方式。如果这是您的第一个 Flex 项目, 建议至少在您熟悉工作区以及它与计算机文件系统的关系之前使用默认工作区。更改工作区时新手可能遇到的一个常见问题是很难找到项目文件。您始终可以在 Flex Builder 中找到它们, 但如果您不确定要在哪里查找或什么是工作区, 可能会遇到问题。随着开发经验的积累, 您将负责管理多个 Flex 项目。为每个项目设置一个全新的工作区可能是减少混乱、使您每次专注于一个特定项目的最佳方法。请注意 Eclipse 首选项通常存储在工作区中, 因此需要为每个工作区设置主要绑定; 如果未使用默认设置, 您可能会遇到麻烦。

请务必记下 Flex 存储项目文件的位置。Flex Builder 3.0 工作区默认位置是:

Windows XP: C:/Documents and Settings/<用户名>/My Documents/Flex Builder 3

Mac OS X: /Users/<用户名>/Documents/Flex Builder 3

Linux: ~/工作区

有关 Eclipse 工作区的更多信息, 请参阅设置工作区*

Flex 最佳做法-第 1 部分: 设置 Flex 项目在小组环境中, 使用一个公共目录作为 Flex 工作区。

在装有 Flex Builder 的每台计算机上, 每个 Flex 工作区是唯一的。因此, 每个开发人员可以定义自己的工作区。为了向一组开发人员说明情况, 可以就一个工作区达成一致, 或至少就存储多个工作区的一个*目录达成一致。例如:

C:/_adobe/workspace

这样做会有所帮助, 因为每个人可以根据您为开发流程选择的粒度, 立即明白哪里可以找到您的 Flex 工作区或项目。这是一个简单操作, 我不必通过查看 Flex Builder 工作区设置找出特定开发人员的文件存储位置。

Flex 项目的命名惯例

Flex 项目的命名惯例请使用以下最佳做法:

Flex 最佳做法-第 1 部分: 设置 Flex 项目为 Flex 项目名称使用常用命名惯例。

对于 Flex 项目名称, 始终应以大写字母开头, 并且之后的每个单词也应以大写字母开头。这称为“UpperCamelCase”( 第一个词的首字母, 以及后面每个词的首字母都大写)。如名称“MyGreatFlexApplication”。Flex Builder 也将使用这种名称用于应用程序的主要可部署 MXML 文件。注意: 之后可随时更改 Flex 项目名称。

确定应用程序类型

确定应用程序类型时使用以下最佳做法:

Flex 最佳做法-第 1 部分: 设置 Flex 项目确定您的目标平台。

Flex 应用程序可以针对 Flash Player, 后者运行于 Web 浏览器或 Adobe Integrated Runtime (AIR)中。创建 Flex 项目时, 会提示您设置应用程序类型。它允许助您将项目设置为针对 Web 浏览器或 AIR, 并且如果您决定添加或更改目标平台, 这可以将潜在的返工量降到最低。

如果您同时针对桌面 (AIR) 和 Web 浏览器, 可以在 Todd Prekaski 的文章“使用相同代码库构建 Flex 和 Adobe AIR 应用程序”*中找到更多信息。

设置 Flex 项目输出

设置 Flex 项目输出时使用以下最佳做法:

Flex 最佳做法-第 1 部分: 设置 Flex 项目除非您的 Flex 项目使用本地开发服务器, 否则请使用默认的“bin-debug”目录。

编译 Flex 项目时, 将创建构成该应用程序的文件并将它们写入 Flex 项目名为“bin-debug”的输出目录。如果您是 Flex 新手, 建议您使用默认的“bin-debug”目录以免混淆。但是, 您还需要检查组织的标准。如果小组使用另一个输出目录, 则应当遵循现有的最佳做法。

如果您的 Flex 项目使用本地部署服务器, 则需要在项目创建过程中定义该路径。

当您准备好使用“导出发行构建...”部署应用程序时, Flex Builder 3.0 将新建一个输出目录。默认名称为“bin-release”。

我们回顾一下, 输出目录为:

  • 开发: “bin-debug”
  • 部署: “bin-release”

管理源代码目录

管理源代码目录时使用以下最佳做法:

Flex 最佳做法-第 1 部分: 设置 Flex 项目始终将源代码放在一个名为“src”的目录中。

这是一个应用广泛的标准, 由背景和语言不同的开发人员共享。大多数开发人员知道在这里可以找到您的代码。这是 Flex Builder 3.0 提供的默认值, 建议您不要更改它。

将面向对象的编程做法用于 Flex 项目。

本文后半部分会介绍使用软件包的更多详细标准。目前请记住遵循 OOP 做法是 Flex 应用程序开发的基本要素。

考虑源代码控制管理

考虑源代码控制管理时使用以下最佳做法:

Flex 最佳做法-第 1 部分: 设置 Flex 项目将源代码控制解决方案用于您的“Main source”文件夹。

源代码控制管理 (SCM) 对于小组环境至关重要。源代码控制使您的小组能跟踪对应用程序代码库所做的更改。源代码控制使您的小组能在文件历史记录中进退自如。它是 Flex 项目的理想之选。三个常见源代码控制解决方案是 Subversion*CVS*Perforce*

添加和管理 SWC 库

引用 SWC 文件时要决定使用哪种最佳做法有两个选择。

Flex 最佳做法-第 1 部分: 设置 Flex 项目应使用 Flex 库路径引用共享 SWC 库。

如果会频繁更新或跨多个项目使用 SWC 库, 这种方法比较实用。要共享 SWC 库, 需要使用 Flex 库路径引用它。

Flex 最佳做法-第 1 部分: 设置 Flex 项目使用 libs 文件夹将 SWC 库与 Flex 项目捆绑在一起。

使用 libs 文件夹有一个优势, 即不存在与应用程序相关的外部依赖性。无需修改 Flex 项目属性即可编译和运行。应注意, libs 目录将自动加入 Flex 项目的库路径中。

必须记住一点, libs 文件夹中的 SWC 文件通常不会自动更新。SWC 开发与与应用程序开发一般是分开的, 因此编译 SWC 所在的目录通常不是 Flex 项目的 libs 目录。

使用文件名

以下几种做法可用于实现 Flex 项目中所使用的命名惯例的标准化。

Flex 最佳做法-第 1 部分: 设置 Flex 项目将 UpperCamelCasing 用于 MXML 文件名。

Flex 最佳做法-第 1 部分: 设置 Flex 项目将 UpperCamelCasing 用于 MXML 文件名。

Flex 最佳做法-第 1 部分: 设置 Flex 项目将 UpperCamelCasing 用于 ActionScript 接口文件名, 并以大写字母 I 作为文件名的开头字母。

这表明该文件是接口而不是类。注意: 这个做法有一些瑕疵。坚持您认为合理的, 并记录、沟通和遵循该标准。

Flex 最佳做法-第 1 部分: 设置 Flex 项目命名文件时不要使用空格!

这可能会导致各种问题, 尤其是在 Mac 上。

Flex 最佳做法-第 1 部分: 设置 Flex 项目命名文件时不要使用特殊字符!

感叹号“!”、右方括号“[”或左圆括号“(”等特殊字符在许多情况下是非法的, 并且可能导致应用程序出现严重问题。

Flex 最佳做法-第 1 部分: 设置 Flex 项目不要使用首字母缩略词或缩写。

这种做法的例外情况是很常用的首字母缩略词, 如 HTTP、WWW、SQL 等其它类似的首字母缩略词。

Flex 最佳做法-第 1 部分: 设置 Flex 项目不要使用英文句点。

将软件包用于代码组织

将软件包用于代码组织时使用以下最佳做法:

Flex 最佳做法-第 1 部分: 设置 Flex 项目使用软件包组织和构造项目代码库。

软件包是基于 OOP 应用程序的标准。软件包代表类形式的相关 ActionScript 和 MXML 文件的逻辑分组。使用软件包和类是面向对象编程的基本要素。

要继续使用社区标准, 命名软件包时请使用以下做法:

Flex 最佳做法-第 1 部分: 设置 Flex 项目使用 lowerCamelCase (第一个词的首字母小写, 后面每个词的首字母大写)。

例如: com.seantheflexguy.stringUtils

Flex 最佳做法-第 1 部分: 设置 Flex 项目软件包名称以应用程序所有者的*域 (TLD) 开头:

例如: com、net、us;

然后是应用程序所有者的名称:

例如: seantheflexguy, adobe;

然后是项目名称:

例如: burrow;

然后是相关代码文件的逻辑分组:

例如: utils、components 或其他相关项。

以下是一个使用此惯例的软件包名称:

com.seantheflexguy.burrow.view

查看 Flex 项目设置注意事项

您已经看到, 使用一些基本做法可以为 Flex 项目创造出一个明确、易于理解的工作环境。一致性对于理解其他开发人员的工作至关重要。随着应用程序趋于成熟, 可能会由不同的开发人员对它进行修改和缩放。此时, 项目的代码库以一种有机、生动的方式发生变化。这是不同开发人员为项目发展付出的汗水和智慧的结晶。如果一开始就使用最佳做法, 开发人员可以看到一个模板, 指导他们如何实现工作的结构和格式。

这些做法可以应用到所有 Flex 应用程序。请查看这些做法:

Flex 最佳做法-第 1 部分: 设置 Flex 项目通过工作区使 Flex 项目井井有条。

Flex 最佳做法-第 1 部分: 设置 Flex 项目在小组环境中, 使用一个公共目录作为 Flex 工作区。

Flex 最佳做法-第 1 部分: 设置 Flex 项目为 Flex 项目名称使用常用命名惯例。

Flex 最佳做法-第 1 部分: 设置 Flex 项目确定您的目标平台。

Flex 最佳做法-第 1 部分: 设置 Flex 项目使用默认的“bin-debug”目录

Flex 最佳做法-第 1 部分: 设置 Flex 项目将代码放入“src”目录中。

Flex 最佳做法-第 1 部分: 设置 Flex 项目将面向对象的编程做法用于 Flex 项目。

Flex 最佳做法-第 1 部分: 设置 Flex 项目使用源代码控制解决方案。

Flex 最佳做法-第 1 部分: 设置 Flex 项目使用 Flex 库路径引用共享 SWC 库。

Flex 最佳做法-第 1 部分: 设置 Flex 项目使用 libs 文件夹将 SWC 库与 Flex 项目捆绑在一起。

Flex 最佳做法-第 1 部分: 设置 Flex 项目将 UpperCamelCasing 用于 MXML 文件名。

Flex 最佳做法-第 1 部分: 设置 Flex 项目将 UpperCamelCasing 用于 MXML 文件名。

Flex 最佳做法-第 1 部分: 设置 Flex 项目将 UpperCamelCasing 用于 ActionScript 接口文件名, 并以大写字母 I 作为文件名的开头字母。

Flex 最佳做法-第 1 部分: 设置 Flex 项目命名文件时不要使用空格!

Flex 最佳做法-第 1 部分: 设置 Flex 项目命名文件时不要使用特殊字符!

Flex 最佳做法-第 1 部分: 设置 Flex 项目不要使用首字母缩略词或缩写。

Flex 最佳做法-第 1 部分: 设置 Flex 项目文件名中不要使用英文句点。

Flex 最佳做法-第 1 部分: 设置 Flex 项目使用软件包组织和构造项目代码库。

Flex 最佳做法-第 1 部分: 设置 Flex 项目对软件包名称使用以下格式: com.seantheflexguy.stringUtils

后续工作

有关对 Flex 开发流程使用和应用最佳做法的更多信息, 请务必阅读本文的第二部分(Adobe Flex 开发人员中心即将推出)。

免责声明

阅读本文展示的资料时, 请将这段话铭记在心。我认为这段话相当贴切:

“针对 Flex 的每个项目都有所不同, 因此最佳做法因涉及的小组和项目不同而异。我看到有些适合较小小组的项目做法不适用于较大的小组, 反之亦然。这是我在过去三年中观察许多项目后得出的 Flex 最佳做法心得。我的建议在许多情况下并不会令人吃惊, 因为它们是经典的软件开发原则。”-Ted Patrick*

感谢

感谢以下人员为本文提供的信息和评论。本文离不开他们的帮助: Hong Qiu、Dolores Joya、Eric Feminella、Jeffry Houser、Jesse Warden、Shannon Hicks 和 Chris Griffith。

关于作者

Sean 是一位知名的 Flex 开发人员兼顾问, 他拥有丰富的 ActionScript 编程经验, 包括超过五年的 Flash 平台开发经验以及十多年基于桌面和 Web 的应用程序设计和开发经验。作为公司所有人、技术作者、博客撰写者以及 Adobe Flex/AIR 热衷者, Sean 是 Adobe Flex 开发人员社区领袖以及 ActionScript Cheatsheet 创建者。他拥有 Adobe Flex 2.0 和 Flash MX 开发人员证书。