新闻中心
充分考虑目标用户群体,精准分析行业市场需求,以目的为导向,支持多方案组合
全栈 Web 开发入门
发布日期:2022.05.24 编辑:奕捷网络
如今,现代全栈开发在小型机构和拥有专门技术团队的大型公司中都非常流行。全栈 Web 工程师致力于整个Web技术栈,包括前端、后端和服务器管理。
许多人争辩说,全筹码只会导致成为“万事通,无所事事”。从某种角度来看,这可能是正确的,但是技能组合仅与可以用它完成的事情一样重要。许多全栈开发人员提供价值,因为他们可以将一个想法从构思到发布,并完全理解流程的每一步。
如果您正在考虑走全栈路线,那么本文适合您。我将解释全栈开发人员的一般要求、角色需要什么,以及技能组合如何对想要直接为客户或在他们自己的项目中工作的自由职业者/承包商有用。
全栈基础
随着 Web 技术发生了很大变化,现代全栈开发已经走过了漫长的道路。应将完整堆栈要求用作考虑遵循的准则。一般来说,“堆栈”代表协调运行以使网站正常运行的技术。这意味着前端代码、后端代码、数据库系统和服务器的 Web 服务器平台 + 操作系统。
全栈开发的基本原则是了解构建网站的各个方面。这并不意味着了解设计或 UI/UX 工作,尽管这可以极大地提高您的生存能力和工作质量。
前端的基础包括HTML/CSS 和 JavaScript,最有可能使用框架,例如Angular或React。
对于后端语言,您需要选择可以与数据库系统耦合的东西。PHP/MySQL是最常见和最容易学习的,因为它支持许多 CMS 引擎,例如 WordPress。此外,LAMP堆栈无疑是当今最流行的 Web 堆栈。
服务器知识可以根据您的喜好简单或详细。绝对基础知识是了解像Apache这样的服务器程序以及像MySQL或PostgreSQL这样的数据库。
您可能会更进一步,包括安装邮件服务器或性能工具(如memcached或Varnish )的知识。
一个全栈开发人员应该涉足所有三个领域,拥有足够的知识来独立启动一个网站,而无需其他任何人的太多帮助。
技术知识深度
全栈开发的一个大问题是深入到每个领域。全栈工程师真的能精通任何事情吗?有人认为这是可能的,但这可能不是全栈的目的。
大多数公司都希望雇佣在任何地方都有一点知识的全栈工程师。这些工程师可能专注于一个领域,但他们能够在需要时担任任何角色。
刚开始走这条路的开发人员应该在所有领域中玩弄,学习“刚刚好”以解决出现的问题。这为技术提供了真实世界的解释,以了解不同的问题如何应用于实际项目。
全栈编码的最大好处是能够构建自己的应用程序而无需为其他任何人工作。
如果您了解开发过程的每个阶段,那么您可以自己做所有事情。您无需精通 PHP 即可构建自定义 Laravel 应用程序。而且您无需成为 JavaScript 专家即可创建灵活的下拉导航,尤其是现在我们在网络上有如此多的开源代码可用。
那么你应该深入到这些领域中的任何一个吗?这完全取决于您,您的答案可能会随着时间而改变。
但是当第一次开始时,只要深入到将你学到的东西应用到一个真正的项目中。当你碰到你不理解的东西时,利用它作为一个更深入的机会,并更多地了解那个特定的主题。
选择语言
对于新开发人员来说,选择学习哪些技术是一个难题。摆脱必需品,HTML 和 CSS 是绝对需要的。JavaScript 也是必需品,但你不必认为自己是 JS 高手。但是,您应该有兴趣学习的不仅仅是普通的 JavaScript。
大多数开发人员也学习jQuery ,但React、Ember、Angular、Vue或Backbone等框架都为构建全面的 Web 应用程序提供了更简单的过程。
可以深入学习花哨的 JavaScript 效果,例如动画,但它们是完全可选的。全栈开发人员应该知道足以完成工作,并从那里继续前进。
后端语言选择不是技术优势,而是舒适度。大多数程序员意识到Python 是一种比 PHP 更通用的语言,但是大多数网站都在 PHP 服务器上运行。这使得PHP 成为对更多公司有价值的语言。
选择适合您需求或为您提供最大前景的任何语言。还要记住,您不会永远停留在一种后端语言上。如果您从 Ruby 开始但切换到 Python,您不会在此过程中失去任何东西。
但是,我确实建议,一旦您找到了自己喜欢的后端语言,就深入研究该语言,并选择相关的框架。PHP 有Laravel,Ruby 有Rails,Python 有Django — 以及许多其他选项。这些框架将加快您的开发过程,并帮助您正确构建应用程序。
数据库和服务器
选择数据库引擎归结为项目需求和服务器堆栈。PHP 通常与 MySQL 一起使用,因此这是最首选的选择。当今最大的两个 Web 堆栈是LAMP(Linux-Apache-MySQL-PHP)和MEAN(MongoDB-ExpressJS-AngularJS-Node.js)。
大多数托管公司从一开始就提供 LAMP,无需设置。但是像DigitalOcean这样的定制解决方案可以让您运行几乎任何东西,只需一点点肘部油脂。您可以在此列表中找到更多网络堆栈,或通过在线搜索。
您选择的数据库通常与您的后端语言相关联。Python默认支持SQLite,RoR开发人员通常可以使用任何. 老实说,任何语言通常都可以与任何数据库一起使用。
但是您想选择在大多数 Web 项目中足够常用的东西。SQL 是一种通用语言,它在所有数据库引擎中使用几乎相同的语法。您会发现表格设置和管理方面的差异,但这些差异通常很小。
除了数据库之外,这里还有一些您可能想了解的技术服务器端主题。
CDN 和内容托管
服务器软件安装和更新
针对流量高峰和加载时间的最佳服务器配置
用于数据库查询和文件系统存储的缓存解决方案
自动备份数据库和平面文件,或磁盘映像备份
带有域管理的 HTTPS 设置(DNS 服务器、CNAME 记录等)
更详细的主题,例如电子邮件、微服务和负载平衡
最好的学习方法之一是在构建项目时修补服务器。获取一个基本的VPS帐户,并尝试设置自己的堆栈。这些 VPS 是完整的虚拟服务器环境,您可以完全控制配置(或销毁)所有内容。此外,上面的列表并不是所有全栈开发人员都需要的路线图。
您真正需要的唯一知识是创建空白服务器环境以及安装运行网站所需的软件。从那里开始,其他任何事情都只是提高了知识。如果您有任何疑问或想向专业人士学习,请查看 Reddit 的/r/SysAdmin社区。
前方的路
如果您真的想学习全栈开发,请列出您想学习的所有技术。从那里,您可以一个接一个地处理它们,组成您自己的练习项目来测试您学到的东西。
Web 开发是一个不断变化的行业,因此您应该始终愿意了解更多信息。测试各种堆栈和语言,直到找到你喜欢的。但始终愿意走得更深,变得更好!