如今,现代全栈开发在小型机构和拥有专门技术团队的大型公司中都非常流行。全栈 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这样的定制解决方案允许您只需付出一点努力就能运行几乎任何东西。您可以在此列表中或通过在线搜索找到更多 Web 堆栈。
您选择的数据库通常与您的后端语言相关。Python默认支持SQLite ,而RoR开发人员通常可以使用任何语言。老实说,任何语言通常都可以与任何数据库一起使用。
但您需要选择一种在大多数 Web 项目中足够常用的语言。SQL 是一种通用语言,它在所有数据库引擎中使用几乎相同的语法。您会发现表设置和管理方面存在差异,但这些差异通常很小。
除了数据库之外,您可能还想了解一些服务器端技术主题。
CDN 和内容托管
服务器软件安装和更新
流量高峰和加载时间的最佳服务器配置
数据库查询和文件系统存储的缓存解决方案
数据库和平面文件的自动备份或磁盘映像备份
使用域管理(DNS 服务器、CNAME 记录等)设置 HTTPS
更详细的主题,例如电子邮件、微服务和负载平衡
最好的学习方法之一是在构建项目时摆弄服务器。获取一个基本的VPS帐户,然后尝试设置自己的堆栈。这些 VPS 是完整的虚拟服务器环境,您可以完全控制配置(或销毁)所有内容。此外,上面的列表并不是所有全栈开发人员的必需路线图。
您真正需要的唯一知识是创建空白服务器环境和安装运行网站所需的软件所需的知识。从那里开始,其他任何事情都只是提高知识。如果您有任何疑问或想向专业人士学习,请查看 Reddit 的/r/SysAdmin社区。
前方的路
如果你真的想学习全栈开发,那就列出你想学习的所有技术。然后,你可以逐一解决它们,制作自己的实践项目来测试你学到的东西。
Web 开发是一个不断变化的行业,因此您应该始终愿意学习更多知识。测试各种堆栈和语言,直到找到您喜欢的。但始终要愿意深入研究并变得更好!
全栈开发是否值得付出努力?这由您来决定。
欢迎关注我,共同探讨学习科技前沿技术资讯,提升认知赚钱能力。