如何使用Joomla! 接近大型项目
当我们基于Joomla CMS进行开发项目时,我们必须像对待其他任何开发项目一样对待它。一个常见的错误是将与开源软件(在我们的情况下是Joomla)一起开发的项目与其他涉及完整开发团队的项目进行比较。
也就是说,如果我们需要一个由分析师和程序员、排版师、设计师等组成的职业团队,由一个或多个项目经理协调,我们还希望对最终产品的质量以及其随时间演进而满足我们未来业务流程的需求进行控制,我们需要使用现有的任何软件开发方法,这需要建立在某种硬件结构之上,这种结构略微超越了典型的“免费托管”。
软件和工具
如今,创建或维护大型项目的趋势是基于快速应用程序开发。这是一种软件开发方法,它包括以下基本原则上的迭代开发和原型设计工作
快速开发和交付高质量产品的关键目标是实现相对较低的投资成本系统。
在其中的我们尝试通过将其拆分为更小的部分来降低项目风险,从而在开发过程中更容易进行更改。
并且在这个系统中,我们致力于快速生产高质量的系统,主要通过对原型(在开发过程中的任何阶段)进行迭代、促进用户参与和使用计算机化开发工具。这些工具可能包括图形用户界面(GUI)构建器、旧工具如计算机辅助软件工程(CASE)或数据库管理系统(DBMS),以及第四代编程语言、代码生成器和面向对象技术。
我们将特别强调满足业务需求,而技术或工程卓越性将不那么重要,并取决于前者。是的,我们都知道我们希望按另一种方式行事,但我们不是亏欠我们的客户吗?
此外,项目控制还涉及优先级的发展和交付截止日期的定义。如果项目开始延迟,我们将强调减少设置需求,而不是增加截止日期。
通常,我们将使用联合应用开发(JAD)技术,用户将深入参与系统设计,无论是通过结构化研讨会达成共识,还是通过电子方式。
记住,用户的积极参与是必不可少的。
当然,生成必要的文档以方便未来的开发和维护。
我曾参与的一些基于Joomla的项目,已经适应了框架和我们的CMS门户或扩展的开发需求,极大地促进了其成功。
结构硬件和服务器
开始开发的第一步是拥有一个定义良好的基础设施和服务器硬件,以方便以下操作
- 版本控制
- 运营原型
- 自动部署
- 自动单元测试
- 自动测试功能
- 持续集成
为此,我们将为客户配置一个如下所示的环境
让我们更详细地看看每一个部分。
核心
所有这一切的核心是一个名为Nginx的Web服务器。为什么是Nginx而不是Apache服务器?答案很简单,因为使用Nginx我们可以配置一个高可用性系统,具有负载均衡,将动态内容与只提供静态内容的服务器分开。因此,系统也准备好稳定地迁移到云。如果我们需要Apache兼容性,我们可以在Nginx下面或并行安装它,用于那些兼容性至关重要的任务。
核心的另一个组成部分是MySQL服务器。或者更具体地说,是服务器群集,它们在必要时同步,为显示客户门户的不同环境提供服务。
PHP解释器负责实现Nginx应该服务的页面。具有Joomla部署所需的所有必要模块,但移除了没有任何增值的模块,这意味着增加了系统负载或最小的安全风险。
最后,这个“核心”还包括NFS服务器,负责在上述图中构成应用程序之间的文件交换。通过专用高速线路与“核心”通信,有助于以最短的时间组成互联网请求的页面。
开发者区域
每个开发者都有一个IDE环境,其中可以找到版本控制管理的集成工具,以及各种便于为Joomla开发扩展的实用程序。
所有这些都集中在一个GIT服务器上,该服务器连接到内核NFS服务器,以存储每个团队成员验证的版本。
持续集成区域
配置部署工具和持续集成经理,负责单元测试(PHPUnit和JUnit)和功能测试(Selenium)的发布,以及在不同环境之间的计划部署。
通过这种方式,我们简化了开发团队的单元测试阶段,首先是不同开发者之间的首次集成,以及未来的用户测试,通过自动化那些每次更改Joomla项目时必须进行的功能测试。
最后,环境区域
我们拥有四个相互隔离的不同环境。作为内容管理系统,Joomla有一个特定的从生产环境反馈到其他环境的情况。为了重现某些情况,有必要定期将假数据备份到预生产环境。这有助于重现操作系统上内容管理员可能遇到的不期望的情况。
如I+D+I这样的关键环境使得在评估扩展和功能解决方案之前具有巨大的可能性。在此时将这些程序识别出来,通过将其集成到团队的常规周期中,在集成开发环境中重复它们。这个环境通常污染程度很高,因为经常进行测试,所以恢复程序与开发环境相同,只需刷新集成测试beta(预生产环境)之后所做的更改。
但让我们关注我们的团队承受更多压力的环境:开发。这是一个不断变化的环境,我们在单元测试后集成更改。开发者从该环境中获得与他们在私人测试环境中完全相同的“调试”信息,但与团队其他成员所做的更改的交互。
最后一个环境,预生产(或beta)环境使得用户能够像在生产系统中测试一样进行测试,但没有停止它的风险。
所有这些环境都配置为使用不同的数据库(如果需要遵守客户所在国家/地区的法规,则伪造信息,例如在西班牙为LOPD和LSSI),不同的邮件服务器(真实或模拟)以避免在测试过程中向真实用户发送电子邮件,但允许测量这些发送产生的负载,独立的备份系统等。
只有这样,我们才能以与在具有相同要求架构的专有产品上执行测试相同的质量和安全,来处理长期项目或低延迟的Joomla。
我们不要因为使用开源许可而对自己要求不高。
原文在西班牙语:https://magazine.joomla.net.cn/es/ediciones-anteriores/julio-2013/item/1391-como-abordar-grandes-proyectos-con-joomla
翻译者: https://magazine.joomla.net.cn/component/k2/itemlist/user/926-irenel%C3%B3pez
在Joomla社区杂志上发表的一些文章代表了作者在特定主题上的个人观点或经验,可能不与Joomla项目的官方立场一致
通过接受,您将访问由 https://magazine.joomla.net.cn/ 外部的第三方提供的服务
评论