0

0

如何像真正的专业人士一样过度设计网站?

心靈之曲

心靈之曲

发布时间:2025-01-21 19:02:24

|

566人浏览过

|

来源于dev.to

转载

如果您正在学习编码,这可能意味着您脑子里有一个价值十亿美元的创业想法。但在执行这个想法之前,您需要选择一个技术堆栈。明智的选择很重要,因为以后改变它可能会非常具有挑战性。每个应用程序本质上都只是一个技术三明治,在本文中,我们将逐步介绍如何制作该三明治。

我们将探索流行的技术堆栈,例如 LAMP、MEAN、MERN,然后我们将从头开始构建我们自己的技术堆栈,深入研究每一层的决策过程。在本指南结束时,您将了解如何像真正的专业人士一样过度设计网站。

技术堆栈中有什么?

最初的技术堆栈 LAMP 出现于 90 年代末,代表 Linux、Apache、MySQL 和 PHP。当时构建 Web 应用程序要复杂得多,通常需要昂贵的商业软件。 LAMP 是免费且开源的,导致了 WordPress 和 Joomla 等 Web 框架的兴起。在现代,构建网络应用程序要容易得多,但技术堆栈变得更加复杂,因为许多公司在创业淘金热中出售铲子。

那么,技术堆栈到底是什么?技术堆栈是指用于构建 Web 或移动应用程序的技术、工具和框架的组合,但它可以分为三个主要部分:

  1. 前端层:这包括为网络上的最终用户构建用户界面 (UI) 所需的工具。它通常涉及 JavaScript 框架,或者对于移动设备,它可以是 iOS、Android 或像 Flutter 这样的跨平台工具。
  2. 后端层:它由 Node.js 或 Python 等服务器端运行时以及用于存储用户生成的数据的数据库组成。此外,这一层通常由云服务提供商提供,通常被锁定在堆栈中。
  3. API:这些是用于连接前端和后端的工具。它们可能包括您自己推出的 REST 或 GraphQL 等服务,但更常见的是,它们包括必要的第三方服务,例如用于支付的 Stripe、用于短信的 Twilio 和用于电子邮件的 SendGrid。这些工具经常执行跨越后端和前端类别的任务,因此它们被放置在中间。

流行的技术堆栈

让我们看一下您可能听说过的一些常见技术堆栈,从 MEAN 开始,它代表 MongoDB、Express、Angular 和 Node。该堆栈的受欢迎程度来自其朗朗上口的缩写。拥有一个令人难忘的首字母缩略词可以给人留下你知道自己在科技领域做什么的印象。

其他人已经注意到 MEAN 堆栈的这一点,并分别使用 React 和 Vue 创建了 MERN 和 MEVAN 等变体。然而,这些首字母缩略词并不能涵盖您在技术堆栈中真正需要的所有内容。要了解其他成功公司正在使用哪些技术,您可以访问 StackShare.io,在这里您可以看到最流行的技术以及哪些公司正在使用这些技术。

构建我们自己的技术堆栈

现在,让我们从头开始构建我们自己的技术堆栈。在第一轮中,我们将在每个点上使用最热门的技术,无论成本或复杂性如何。别担心 - 在指南结束时,我们将以更实用的方式简化事情。

前端架构

Image description

假设我们正在构建下一个 MySpace,这是一个需要用户身份验证、存储用户生成数据的数据库以及全球扩展能力的应用程序。第一个问题是,客户将在哪里使用该应用程序?是在网络、iOS、Android、桌面、物联网还是其他地方?对于此应用程序,我们假设大多数客户都在网络上,但我们可能希望稍后构建一个移动应用程序。

对于网络来说,前端的编程语言几乎总是 JavaScript。虽然有一些工具可以帮助您避免使用 JavaScript,但我建议您使用它来构建最好的 Web 应用程序。然而,我们需要这个应用程序进行扩展,因此我们将使用 TypeScript,而不是普通的 JavaScript。这在 JavaScript 之上添加了一个类型系统,有助于更早地捕获错误并提供更可靠的代码。

接下来,我们需要一个 UI 框架。使用普通 JavaScript 构建复杂的 UI 很痛苦,因此我们需要一个框架。在分析了许多选项之后,您选择了 React。不一定是因为它是最好或最快的,而是因为它是最受欢迎的。受欢迎程度很重要,因为它可以让你在未来雇用更多的开发人员。另外,可以轻松添加 React Native 来构建移动应用程序。

但是,仅仅做出反应是不够的。为了扩展我们的应用程序,我们需要一个状态管理解决方案。 React 有几十个状态管理库,但我们会选择 Redux。它很受欢迎,但也因需要大量样板代码而受到广泛欢迎。但更多的代码等于更好质量的应用程序,对吧?

我们还需要解决样式问题。 Vanilla CSS 还不够,所以我们将使用 Tailwind CSS。这提供了预构建的实用程序类来快速设置元素的样式,尽管它可能会导致 HTML 混乱。为了更高效的 CSS 工作流程,我们将添加一个像 SASS 这样的预处理器。此外,我们将使用 PostCSS 清除未使用的样式并优化我们的 CSS 以进行生产。

为了捆绑我们的前端代码,我们将使用 Webpack。虽然配置可能很棘手,但 Webpack 是捆绑 JavaScript 文件的最受欢迎的选项。

后端架构

Image description

现在让我们进入后端,这是我们技术堆栈中更复杂的部分。这里最重要的决定是为用户生成的数据选择数据库。像 MongoDB 或 Firebase Firestore 这样的 NoSQL 文档数据库可以很好地工作,因为它们易于学习、价格低廉且易于扩展。然而,他们在某些关系上遇到了困难,比如我们克隆 MySpace 时可能需要的社交图谱。

米歌MWM实用企业网站管理系统3.1
米歌MWM实用企业网站管理系统3.1

米歌_实用企业网站管理系统 Mixge Web Manage (简称:米歌MWM),我们的与众不同在于:彻底颠覆了传统网站的固定模式变成可操控模式。米歌WMW简单,实用,灵活,为非专业人士而设计开发。正如, 第一步添加栏目,第二步发布内容,剩下的就是一些设置。新增功能:1.增加了右侧的联系方式(包括电话、QQ、MSN和旺旺);2.自动缩略图功能,在首页提取和栏目提取自动显示缩略图,并且在文章插入大

下载

像 MySQL 或 PostgreSQL 这样的关系数据库是处理关系的黄金标准,尽管它们在处理不断变化的需求时可能更昂贵且不太灵活。对于本演示,我们将选择 MySQL。

由于 MySQL 在规模上可能不够快,我们将添加 Redis 作为第二个数据库进行缓存。 Redis 将数据存储在内存中,读取速度比从磁盘读取速度快得多。

接下来,我们需要一个服务器端运行时。有很多选项可供选择,但如果您是 JavaScript 开发人员,则应该选择 Node.js。对于服务器端框架,您应该使用 NestJS,它支持开箱即用的 TypeScript。

要与数据库交互,请使用对象关系映射器(ORM),例如 TypeORM。我们还需要一个 Web 服务器来使我们的应用程序可以在互联网上访问,因此我们将 Nginx 添加到堆栈中。

部署和基础设施

为了部署我们的应用程序,我们需要使用 Docker 标准化环境。这将为部署到任何云服务器创建一致的 Linux 环境。随着我们的应用程序扩展,我们需要编排多个容器,因此我们将添加 Kubernetes 来管理它。

我们将选择 Amazon Web Services (AWS) 作为我们的云提供商,但为了使其更易于管理,我们将使用 Terraform 以编程方式创建和版本化我们的基础设施。对于版本控制,我们将在 GitHub 上托管源代码,并使用 GitHub Actions 来自动化持续集成和部署。

API 和第三方服务

我们的应用程序需要执行的许多任务都过于复杂,无法由我们自己处理。为了让前端和后端进行通信,我们将使用 GraphQL 和 Apollo 来帮助我们构建安全的 API。对于付款,我们将使用 Stripe。对于用户身份验证,我们将使用 Auth0。为了防止不当内容,我们将集成 Amazon Rekognition 进行图像分析。对于短信,我们将使用 Twilio。

至此,我们已经拥有了几乎完整的技术堆栈。但这可能比必要的复杂得多。关键的一点是,最终用户并不关心你使用的技术——他们只是想要良好的体验。过度设计你的堆栈可能会浪费时间,特别是如果它使用户体验变得复杂的话。

简化技术堆栈
现在,让我们把所有的复杂性都扔到窗外并简化我们的堆栈。我们将从 纯 HTML 文件开始,为了实现交互性,我们将使用 Petite Vue,它是 Vue.js 的轻量级替代品,可以通过脚本标签添加。对于 CSS,我们将使用 Bootstrap,它可以快速轻松地获得像样的 UI。

对于后端,我们将使用 Firebase,它提供了一个可自动扩展的文档数据库,处理用户身份验证,并允许我们使用 Firebase Cloud Functions 编写无服务器代码。我们不会担心容器化、Kubernetes 或 Terraform。对于持续集成,我们将跳过它,除非我们每天都部署更新。

这个简化的堆栈,我称之为 Petite Fire Stack,可能是构建全堆栈 Web 应用程序的最简单方法。

结论

现在,您应该清楚地了解如何构建从前端到后端的技术堆栈,以及如何根据应用程序的需求做出决策。关键的一点是你不需要让事情变得过于复杂。

精心挑选的技术堆栈应该服务于您的项目目标,而不会使开发过程过于复杂。专注于提供出色的用户体验,技术将支持这一目标。

如果您认为我为您的知识增添了价值,请尽可能多地关注此列表,并关注更多。

感谢您的阅读,我们下一篇再见!

别忘了关注我:
领英 | | 蓝天

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

46

2026.02.13

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

191

2026.02.25

mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

686

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

513

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

287

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

519

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

267

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

392

2023.08.08

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

4

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

CSS教程
CSS教程

共754课时 | 41.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号