为什么大学应该考虑使用Joomla
如果我要回到大学教书,我会选择Joomla作为学生作业的网页平台。原因如下...
在过去25年的时间里,我在三所不同的大学学习或教书,在这段时间里,我见证了从当前技术到教授软件开发的教学转变。特别是,系里选择Smalltalk、C++和Java来教授面向对象编程和开发。OO技术的标准化允许在职场中出现新的实践:设计模式、敏捷过程、重构、测试驱动开发等。这些是学生应该学习的现实世界学科,因此学校对技术的选择很重要。
当然,在过去的15年里,大量的软件开发已经转向了网络。Web开发是不同的,它涉及的问题和学科超出了传统计算机科学领域。一个全面的学习体验应该包括使用Web技术的动手实践和对相关问题的了解,如安全和国际化。学生期望这样,而网络行业将从这样的毕业生中受益。
五年前,我转向全职Web开发。我选择Joomla而不是其他CMS的原因是经过深思熟虑的,并且基于我过去的经验。我想选择一个CMS平台,让我能够应用我在软件开发期间获得的技术。对于我这样的人来说,Joomla是合理的选择。如果我要回到大学教书,我会选择Joomla作为学生作业的Web平台。以下是我的原因:
1. 开源
这是一个毫无疑问的选择。要用于大学研究,任何技术候选人都必须有一个可以让学生自由工作的代码库。
2. 面向对象
在软件工程领域,缺乏OO是一个决定性的因素。面向对象设计是我们教授数据封装、抽象、继承、多态、内聚与耦合、对象的协作和依赖性、代码复用以及所有其他优秀软件设计的基本原则。此外,OO是过去二十年一些最重要的学科的推动因素。我们需要一个面向对象的系统来教学...
- 设计模式:对常见设计问题的可重用抽象解决方案。
- 单元测试和测试驱动开发:通过构建测试套件来指导软件开发,并识别出破坏先前验证行为的代码更改。
- 重构:提高软件的可维护性。(好吧,可以对过程式代码进行重构,但重构大多假设面向对象。)
- 设计原则:使用对象使我们能够发现并实践像“开闭原则”、“Liskov替换原则”和“依赖倒置原则”这样的经过验证的设计原则。
在显著碎片化的CMS市场中,当我们要求开源和面向对象时,候选名单会显著减少。在这些满足这两个重要标准的CMS中,Joomla是部署最广泛的,拥有大量开发者和最终用户的社区。
3. 集成开发环境支持
任何供学生使用的开发平台都应该允许进行调试以及安装到笔记本电脑上。网络技术可以满足这些需求。
软件专业人士使用IDE(集成开发环境),多个IDE支持Joomla开发。例如,PhpStorm是一个商业IDE,但在课堂使用上是免费的,它提供网页和网页应用的调试,与版本控制系统(如GitHub)集成,并提供如重构等强大的编码工具。其他IDE如Eclipse和NetBeans提供类似的功能。
此外,因为可以在笔记本电脑上安装和运行网络服务器,所以每个学生都可以拥有自己的安装和专用开发环境。
4. 模型-视图-控制器
Joomla框架建立在经典的MVC模式之上——这在类似的CMS中令人惊讶地缺失。这种分离使得前端开发者可以专注于前端技术,如HTML、CSS和JavaScript。前端开发与更深层次的服务器问题分离。使用Joomla作为教学平台提供了提供网页设计课程或与图形艺术部门联合授课的机会。Joomla因其易于使用和非凡的灵活性而享有设计师友好的CMS声誉,这种灵活性能通过模块和模板轻松地更改和组织视觉设计。
5. 访问控制/安全
在互联网时代,安全是一个非常重要的概念,需要教授。Joomla在这方面特别强大,因为其本地的ACL(访问控制列表)集成了一个可配置的用户、组和权限系统。可以使用Joomla的ACL进行实战教学,例如RBAC(基于角色的访问控制)等已建立的安全模型。
6. 国际化
基于网络的开发需要考虑全球。作为一个被全球采用的CMS,Joomla将其多语言功能内置于其核心。提供了60多个语言包可供安装,并强烈鼓励每个项目都实现这一功能。设计良好的组件说明了多语言网站的重要性,并展示了如何实现多语言。
7. 库和代码复用
整个CMS都是建立在可重用库之上的,核心和第三方组件预期会扩展这些库。学生可以跟踪代码执行,更好地理解代码复用和包依赖的原则。院系和学生可以创建并添加自己的库和API集,以扩展到专用应用。
8. 真实网络应用
作为一个CMS,Joomla也是一个开发全功能网络应用的平台。几乎任何需要桌面编译器(C#、Java等)的学生作业都可以在Joomla平台上用PHP编程——要么作为CLI可执行文件,要么作为网络应用。作为网络应用,开发者可以利用CMS丰富的功能,如用户管理、访问控制、数据库访问和网页显示。学生的工作不一定是理论性的——它可以打包成真实可分发的网络应用。
9. 真实机会
由于 Joomla 是开源的,并由其社区持续开发,因此发展良好的学生项目可以贡献给“Joomlasphere”。有用的应用程序可以作为免费或付费产品(即“扩展”)提交,供公众下载。由于 Joomla 的核心开发依赖于在 GitHub 上协作的志愿者,因此学生可以提供贡献(从补丁到新功能),这些贡献将接受同行评审并考虑接受。每年 Google Summer of Code 程序赞助大学生与导师合作进行特殊 Joomla 开发项目。
10. Joomla 架构解析
由 Dexter 和 Landry 编写的《Joomla 编程》一书,正是您和学生们理解 Joomla 如何在“底层”工作的需要。它解释了构建网页的所有步骤,扩展或注入自定义代码的钩子,以及安全问题、语言和数据库访问等问题。像任何开源项目一样,Joomla 持续发展,并添加了新的功能。尽管如此,您会发现这本书在解释架构和说明如何通过自定义项目扩展平台方面非常重要。
重点
这一切的重点不是让 Joomla 或任何 Web 平台取代课程中的传统技术,如 Java。但 Web 技术应包含在今天的课程中。这项技术应该是经过验证的、面向对象的、适合学生项目,并有利于教学。
作为支持学生作业的 Web 技术,Joomla 满足了这一需求。目标是教授软件原理和学科,学生们可以通过在 Web 技术上编码和处理现代 Web 问题来提高这一能力。作为一个基于 Web 的开发平台,请考虑 Joomla —— 一个开源、面向对象的 CMS,学生们可以在其上实验和实践构建优秀软件的基本原理。
在 Joomla 社区杂志上发布的某些文章代表了作者对特定主题的个人观点或经验,可能与 Joomla 项目官方立场不一致。
通过接受,您将访问 https://magazine.joomla.net.cn/ 之外的第三方外部服务
评论