全栈Web工程师致力于整个Web栈技术的开发, 包括前端,后端和服务器管理 。
如今,拥有专门技术团队的小型公司和大型公司中,现代全栈开发非常受欢迎。
许多全栈开发人员之所以能提供价值,是因为他们可以将构思从构思到发布 ,并完全理解流程的每个步骤 。
从特定的角度来看,这可能是正确的,但是技能组的重要性仅在于它可以完成的工作。
许多人认为,全额筹码只会导致“万事通,万事通”。
我将解释一个全栈开发人员的一般要求,角色是什么,以及该技能对希望直接为客户或自己的项目工作的自由职业者/承包商如何有用。
如果您打算采用完整的堆栈路由 ,那么本文适合您。
全栈基础
这意味着前端代码,后端代码,数据库系统以及服务器的Web服务器平台+ OS。
一般来说,“堆栈”代表了使网站正常运行的各种技术。
应将完整堆栈要求用作考虑以下内容的准则。
随着Web技术的变化,现代全栈开发已经走了很长一段路。
尽管这可以大大提高您的生存能力和工作质量,但这并不意味着您具有设计或UI / UX工作的知识。
全栈开发的基本原则是了解构建网站的所有方面。
- 前端的基础包括HTML / CSS和JavaScript ,最有可能带有Angular或React之类的框架 。
- 对于后端语言,您需要选择可以与数据库系统结合使用的语言。 PHP / MySQL是最常见和最容易学习的,因为它为许多CMS引擎(如WordPress)提供了支持。 同样, LAMP堆栈无疑是当今最受欢迎的Web堆栈 。
- 服务器知识可以很简单,也可以很详细。 绝对的基础知识是对服务器程序(如Apache)和数据库(如MySQL或PostgreSQL)的了解 。
- 您甚至可以进一步了解安装邮件服务器或性能工具(例如memcached或Varnish)的知识 。

一个完整的堆栈开发人员应该在足够的知识下涉足这三个领域,以独立地启动网站 ,而没有其他任何人的帮助。
技术知识深度
有人认为这是可能的,但这可能不是达到全栈目的 。
全栈工程师真的是任何事物的大师吗?
关于全栈开发的一个大问题是要深入每个领域 。
这些工程师可能只专注于一个领域,但在需要时可以担任任何职务 。
大多数公司都想聘请在任何地方都有一点知识的全栈工程师。
这对技术进行了真实的解释,以了解不同的问题如何应用于实际项目。
刚开始走这条路的开发人员应该在各个领域四处学习,以“足够”地解决问题的出现 。

全栈编码的最大好处是无需其他任何人就能构建自己的应用程序的能力。
而且,您无需成为JavaScript专家就可以创建灵活的下拉导航,尤其是现在我们在网络上有太多可用的开源代码 。
您无需成为PHP的高手,即可构建自定义的Laravel应用。
如果您学习了开发过程的每个阶段,那么您就可以自己做所有事情。
这完全取决于您,您的答案可能会随着时间而改变。
那么您应该深入这些领域中的任何一个?
当您遇到不了解的事物时,可以利用它作为更深入的机会 ,并进一步了解该特定主题 。
但是,当刚开始使用时,只需深入到足以将您学到的知识应用到实际项目中即可 。
选择语言
但是,您不仅应该学习普通JavaScript,还应该有更多的兴趣。
JavaScript也是必需的 ,但是您不必认为自己是JS大师。
毫无疑问, HTML和CSS是绝对必需的 。
对于新开发人员来说,选择要学习的技术是一个难题。
大多数开发人员也学习jQuery ,但是React , Ember , Angular , Vue或Backbone之类的框架都为构建完整的Web应用程序提供了更简单的过程。

一个全栈开发人员应该知道足够多的知识来完成工作,然后继续前进。
可以跳入更深入的学习型JavaScript效果 (例如动画),但它们是完全可选的。
这使得PHP对更多公司来说是一种有价值的语言 。
大多数程序员意识到Python是比PHP更通用的语言 ,但是大多数网站都在PHP服务器上运行。
后端语言的选择与技术优势无关,而与舒适度有关。

如果您从Ruby开始但切换到Python,则在此过程中不会丢失任何内容。
另外请记住, 您不会永远只使用一种后端语言 。
选择适合您需求的任何语言,或为您提供最大的前景。
这些框架将加快您的开发过程,并帮助您正确构建应用程序。
PHP具有Laravel ,Ruby具有Rails ,Python具有Django等等。
但是,我建议您一旦找到自己喜欢的后端语言,请深入研究该语言,并选择一个相关的框架 。
数据库和服务器
当今最大的两个Web堆栈是LAMP (Linux-Apache-MySQL-PHP)和MEAN (MongoDB-ExpressJS-AngularJS-Node.js)。
PHP通常与MySQL一起使用,因此这是最优选的选择。
选择数据库引擎取决于项目需求和服务器堆栈。
您可以在此列表中找到更多的Web堆栈,或者通过在线搜索来找到更多。
但是,像Digital Ocean这样的定制解决方案使您几乎可以在任何时候都需要一点弯头润滑脂。
大多数托管公司从一开始就提供LAMP,而无需进行设置。
老实说,任何语言通常都可以与任何数据库一起使用 。
Python默认提供SQLite支持, RoR开发人员通常可以使用任何工具 。
您选择的数据库通常将与您的后端语言联系在一起 。
您会发现表设置和管理方面的差异,但是这些差异通常很小。
SQL是一种通用语言,并且在所有数据库引擎中几乎都使用相同的语法。
但是,您想选择在大多数Web项目中都足够普遍使用的东西。

除了数据库之外,您还可能需要了解一些技术性的服务器端主题。
- CDN和内容托管
- 服务器软件安装和更新
- 最佳的服务器配置,以应对流量高峰和加载时间
- 数据库查询和文件系统存储的缓存解决方案
- 数据库和平面文件的自动备份,或磁盘映像备份
- 使用域管理(DNS服务器,CNAME记录等)进行HTTPS设置
- 更详细的主题,例如电子邮件,微服务和负载平衡
另外,上面的列表并不是所有全栈开发人员都必需的路线图。
这些VPS是完整的虚拟服务器环境,您可以在其中完全控制配置(或销毁)所有内容。
获取一个基本的VPS帐户,然后尝试设置自己的堆栈。
最好的学习方法之一是在构建项目时修补服务器 。
如果您有任何疑问或想向专业人士学习,请访问Reddit的/ r / SysAdmin社区。
从那里开始,其他任何东西都只是知识的提高。
您真正需要的唯一知识就是创建空白服务器环境并安装运行网站所需的软件 。
前方的路
从那里,您可以一对一地解决这些问题,从而制定自己的练习项目以测试您所学的内容。
如果您真的想学习全栈开发,请列出要学习的所有技术 。
但始终愿意更深入,更好地发展!
测试各种堆栈和语言,直到找到所需的内容。
Web开发是一个日新月异的行业,因此您应该始终愿意学习更多。
但是这里有一些相关的帖子可能会帮助您弄清楚这一点。
那是你决定的。
全栈开发值得付出努力吗?
- 论“全栈”的合法性 (heapsortjobs.com)
- 因此,您想成为一名全栈开发人员 (rubysteps.com)
- 关于如何成为全栈开发人员的7条提示 (usersnap.com)
翻译自: https://www.hongkiat.com/blog/fullstack-web-development/