Week 1 Pre-class 1.2: What is full-stack development?
本页目录· 11 条
1. Software stack for web development
| 技术栈 | 后端语言 | 数据库 | 前端框架 | 主要特点 |
|---|---|---|---|---|
| LAMP | PHP | MySQL | HTML/CSS/JS | 传统 Web 开发,适合中小型网站 |
| MEAN | Node.js (JS) | MongoDB | Angular | 全 JS 技术栈,现代单页应用 |
| MERN | Node.js (JS) | MongoDB | React | 全 JS 技术栈,更灵活、社区活跃 |
| Jakarta EE | Java | 通常搭配 PostgreSQL / MySQL / Oracle 等 | 可结合任何前端框架 | 专为大规模、企业级系统设计,标准严谨、扩展强大 |
在本课程中,我们将使用 Vue.js + Firebase 来简化学习!但你也应该在职业生涯中接触到其他技术栈!
Firebase 是一个帮助你快速构建、托管和管理应用的全栈后端平台。
2. FIT5032 Stack
Introduction of Vue.js
vuejs.orgvuejs.orgVue.js 是一个用于构建交互式 Web 界面的库。
从技术上讲,Vue.js 专注于 MVVM 模式中的 ViewModel 层。它通过双向数据绑定连接视图 (View) 和模型 (Model) 。实际的 DOM 操作和输出格式被抽象为指令 (Directive) 和过滤器 (Filter) 。
Introduction of Firebase
firebase.google.comfirebase.google.comFirebase 是一家后端即服务 (BaaS) 平台,最初是一家 YC11 创业公司。它发展成为 Google Cloud Platform 上的下一代应用开发平台。Firebase(一种 NoSQLjSON 数据库)是一个实时数据库,允许以树状结构存储对象列表。我们可以在不同设备之间同步数据。
Google Firebase 是一款由 Google 支持的应用程序开发软件,允许开发者开发 Android、iOS 和 Web 应用程序 。Firebase 提供了多种工具,用于报告和修复应用程序崩溃、跟踪分析、创建营销和产品实验。
Firebase 有三个主要服务,即实时数据库、用户身份验证和托管。
Why use Firebase?
- Firebase 管理数据库中的实时数据。因此,它可以轻松快速地与数据库交换数据。因此,对于开发实时流媒体、聊天消息等移动应用,我们可以使用 Firebase。
- Firebase 允许在所有设备(iOS、Android 和 Web)之间同步实时数据,而无需刷新屏幕。
- Firebase 提供与 Google Advertising、AdMob、Data Studio、BigQuery DoubleClick、Play Store 和 Slack 的集成,以便高效、准确地管理和维护我们的应用程序。
- Firebase 包含数据库、分析和崩溃报告等所有内容。因此,应用开发团队可以专注于提升用户体验
- Firebase 应用程序可以通过与 Firebase 服务器的安全连接进行部署。
- Firebase 提供了一个简单的控制仪表板。
- 它提供了许多有用的服务可供选择。
3. What is the MVC design pattern?
| Component | Description |
|---|---|
| Model | Manages the data, logic, and rules of the application. |
| View | Responsible for displaying data to the user (UI/UX). |
| Controller | Handles user input and interactions, updates the model and/or view. |
| Language | Framework (uses MVC) |
|---|---|
| Java | Spring MVC, Jakarta EE (JSF) |
| Python | Django (MTV, a variant of MVC) |
| JavaScript | Angular, Express (with Handlebars/EJS) |
| PHP | Laravel, Symfony |
| Ruby | Ruby on Rails |
Advantages of MVC
- enables full control over the rendered HTML
可以完全控制渲染的 HTML
- provides clean Separation of Concerns (SoC)
提供清晰的关注点分离(SoC)
- enables Test Driven Development (TDD)
支持测试驱动开发(TDD)
- easy integration with JavaScript frameworks
轻松与 JavaScript 框架集成
- following the design of stateless nature of the web
遵循 Web 无状态特性的设计
- RESTful URLs that enable Search Engine Optimisation
支持搜索引擎优化的 RESTful URL
4. Architectural and design patterns
Architectural patterns
架构模式是针对特定环境下软件架构中常见问题的通用、可重用的解决方案。它们与软件设计模式类似,但适用范围更广。
架构模式解决了软件工程中的各种问题,例如计算机硬件性能限制、高可用性以及业务风险最小化。一些架构模式已在软件框架中实现。
MVC 被认为是一种架构模式,而非设计模式。我们之所以说 MVC 更像是一种架构模式,是因为它与 UI 以及与用户的交互更相关。
Design patterns
设计模式代表了经验丰富的面向对象软件开发人员所使用的最佳实践。如果你计划从事软件开发工作,了解设计模式几乎是必需的。
设计模式是软件开发人员在软件开发过程中遇到的常见问题的解决方案。学习这些模式可以帮助缺乏经验的开发人员更轻松、更快地学习软件设计。
5. Separation of concerns
关注点分离 (SoC) 是一种设计原则,旨在将计算机程序划分为不同的部分,以便每个部分分别处理一个关注点。关注点可以是一般性的,例如待优化的硬件代码细节;也可以是具体的,例如需要实例化的类的名称。
SoC 的价值在于简化了计算机程序的开发和维护。当关注点被良好地分离时,各个部分可以重复使用,并且可以独立开发和更新。
例如,用户界面逻辑的变化频率往往比业务逻辑更高。如果将表示代码和业务逻辑合并到一个对象中,则每次更改用户界面时都必须修改包含业务逻辑的对象。