20

我从 2006 年开始开发 TYPO3 项目,项目越来越大,越来越复杂。建立一个带有联系表格和新闻列表的简单 CMS 网站都是例行公事。

现在,我们完成了一个更大的项目:一个具有无数扩展的国际公司平台:登录和注册、新闻、列表数据库记录、动态联系表、调查和统计、内网功能:文件上传和下载、几个后端“调整”每个 TCA 修改等。

项目经理对我们这些开发人员很生气,因为有时,在我们完成函数 X 并随后将函数 Y 提交给开发服务器后,函数 X 被破坏了。这与打字稿设置、扩展相互依赖、版本控制错误或有时是简单的编程错误和打字错误有关。我知道如何照顾后者,但总的来说:

根据您的经验:

我们如何在 TYPO3 中开发一个防错系统,让一切尽在掌握,并且扩展不会妨碍它们?换句话说:我们如何保护和隔离功能(扩展) - 并避免那些相互依赖的问题?

我们正在与两名开发人员一起在 DEV 团队中工作,我们已经使用:

  • 颠覆存储库
  • 用于开发和测试的本地 DEV 服务器
  • 外部打字稿配置文件,每个扩展名拆分为单个文件

赏金猎人编辑:

我正在寻找的是可能包括以下主题的最佳实践摘要:

  • 一般工作流程习惯
  • 一般编码习惯
  • 我们的颠覆提交(或 Git)的可靠性
  • 单元测试(PHPUnit、Selenium?)
  • 部署(我还没有弄清楚自动化部署如何帮助我们)
  • 排版最佳实践
4

3 回答 3

26

我们可以在大型 TYPO3 项目中发现的问题与任何开发项目没有太大区别。

一般做法:

常见的 TYPO3 做法:

附加参考:

扩展可以帮助管理复杂的 TYPO3 安装:

使用现代项目管理方法和工具

  • Scrum、看板、精益开发原则
  • Bugtrackers 作为 Redmine, Trac

书籍:

于 2012-04-11T08:04:24.327 回答
4

我绝对建议开始使用PHPUnit进行单元测试,但请记住,单元测试实际上是关于如何首先创建代码,而不是通常稍后添加的内容。但当然,迟到总比没有好。

您应该考虑设置一个构建服务器,例如 jenkins/hudson 或atlassian 竹子。后者非常好,并且与 zend studio 集成,在我看来这是用 PHP 开发时更好的选择。一般来说,atlassian产品广泛用于软件项目。(尤其是 Jira + confluence + greenhopper)

于 2012-04-09T21:45:06.960 回答
2

我还建议在 jenkins 上设置 phpunit - 请参阅http://jenkins-php.org/作为模板,尽管我已经阅读了有关 Teamcity 的良好反馈。然后,根据您编写的代码,您设置单元测试(对于原始 php 代码,可能有点模拟)、集成测试(API 和模块连接)和系统测试(硒)。

一旦在每次构建后运行它,您就可以确定至少涵盖的功能正在运行。然而,问题是您将花费更多时间来编写测试及其支持以及考虑可测试的代码。另请记住,您无法涵盖所有​​内容-这不是重点。您必须涵盖关键路径。

于 2012-04-10T12:14:24.197 回答