今天的Web开发与几年前完全不同,有很多不同的东西可以很容易地阻止任何人进入Web开发。这就是我们决定制作这些循序渐进的可视化指南的原因之一,这些指南可以展示更大的图景并让任何人清楚地了解他们在Web开发中的角色。这就是我们决定制作这些循序渐进的可视化指南的原因之一,这些指南可以展示更大的图景并让任何人清楚地了解他们在Web开发中的角色。事不宜迟,让我们开始吧。您可以在下图中找到详细的路线图,但我也会在下面的描述中解释每个步骤。如果下图看不清楚,可以看这里->原图地址下面小节来分解一下每个步骤。在我们开始之前,虽然我们没有在上面的路线图中列出HTML/CSS知识,但建议您至少了解一些基本的HTML/CSS并且知道如何编写基本的HTML/CSS。第1步-学习语言在选择语言时有很多选择。我将它们分为几类,以便您更容易做出决定。对于刚刚接触后端开发的初学者,我建议你选择任何脚本语言,因为他们有很多需求,它会让你很快上手。如果你有一些前端知识,你可能会发现Node.js更容易,而且就业市场很大。如果你已经在做后端开发并且知道一些脚本语言,我建议你不要选择其他脚本语言,而是从“函数”或“多参数”部分中选择一些。例如,如果您已经在使用PHP或Node.js,请不要使用Python或Ruby,而应尝试使用Erlang或Golang。它一定会帮助您拓展思路,开阔视野,开拓新视野。第2步-实践所学没有比实践更好的学习方法了。一旦您选择了您的语言并对这些概念有了基本的了解,您就可以使用它们了。尽可能多地制作小程序。尽可能多地制作小应用程序:实现一些你自己在bash中使用的命令尝试实现ls的功能写一个命令,为你提供JSON格式的目录结构,例如jsonifydir-name给你一个目录结构目录名称中包含结构的JSON文件编写一条命令,从上述步骤中读取JSON并创建目录结构想一想您每天执行的一些任务并尝试将它们自动化第3步-了解包管理器现在您已经了解了语言的基础知识并制作了一些示例应用程序,了解如何使用您选择的语言包管理器。包管理器帮助您在应用程序中使用外部库,并将您的库分发给其他人使用。选择PHP就得学Composer,Node.js有NPM或者Yarn,Python有Pip,Ruby有RubyGems。无论您选择什么,请继续学习如何使用其包管理器。第4步-标准和最佳实践每种语言都有自己的做事标准和最佳实践。研究他们为您选择的语言。例如PHP有PHP-FIG和PSR。有许多不同的社区驱动的Node.js使用指南,其他语言也是如此。第5步-安全请务必阅读安全最佳实践。阅读OWASP指南,了解不同的安全问题以及如何在您选择的语言中避免这些问题。第6步-练习现在您已经掌握了语言、标准和最佳实践、安全性以及如何使用包管理器的基本知识。现在开始创建一个包并将其分发给其他人,确保遵循您目前学到的标准和最佳实践。例如,如果您选择PHP,那么您将把它发布到Packagist,如果您选择Node.js,那么您将把它发布到Npm注册表,等等。完成后,在Github上搜索一些项目并打开一些pullrequests在一些项目上。对此的一些想法:重构并实施您学到的最佳实践查看未解决的问题并尝试解决添加任何附加功能的问题第7步-了解测试测试有几种不同类型的测试。了解这些类型及其用途。了解如何在您的应用程序中编写单元测试和集成测试。此外,了解不同的测试术语,如模拟、存根等。第8步-练习为了练习,请继续为您目前完成的实际任务编写单元测试,尤其是您在第6步中所做的练习。还要学习和计算您编写的测试的覆盖范围。第9步-了解关系数据库了解如何在关系数据库中保存数据。在选择学习工具之前,先了解不同的数据库术语,例如键、索引、规范化等。这里有几个选项。然而,如果你学会了一个,其他的应该相当容易。你想学的是MySQL、MariaDB(大同小异,MySQL的一个分支)和PostgreSQL。选择MySQL启动。第10步-练习时间现在是时候把你学到的一切都用在这里了。使用您目前所学的一切创建一个简单的应用程序。随意挑选任何想法,也许创建一个简单的博客应用程序并在其中实现以下功能。用户帐户-注册和登录注册用户可以创建博客文章用户应该能够查看他创建的所有博客文章他们应该能够删除他们的博客文章确保用户只能看到他的个人博客文章,而不能看到其他人写的应用程序对于单元/集成测试,您应该为查询应用索引。分析查询以确保正在使用索引第11步-了解框架根据您选择的项目和语言,您可能需要也可能不需要框架。每种语言都有几个不同的选项,请继续查看您选择的语言有哪些选项,然后选择相关选项。如果你选择PHP,我建议你使用Laravel或Symfony,对于框架,我建议你使用Lumen或Slim。如果您选择Node.js,有几个不同的选项,但最突出的是Express.js。第12步-练习时间要实现此步骤,请将您在第10步中创建的应用程序转换为使用您选择的框架。还要确保移植所有内容,包括测试。第13步-学习NoSQL数据库首先了解它们是什么、它们与关系数据库的区别以及为什么需要它们。有几种不同的选择,研究一下并比较它们的特性和差异。您可以选择的一些常见选项包括Rdeis、MongoDB、Cassandra、RethinkDB和Couchbase。如果非要二选一,那就用Redis吧。第14步-缓存了解如何在您的应用程序中实现应用程序级缓存。了解如何使用Redis或Memcached并在第12步中创建的应用程序中实现缓存。第15步-创建RESTfulAPI了解REST并了解如何制作RESTfulAPI,并确保阅读RoyFielding的REST来源文章。如果他们说REST仅适用于HTTPAPI,请确保您可以与其他人对战。第16步-了解不同的身份验证方法了解不同的身份验证和授权方法。您应该知道它们是什么、它们有何不同以及何时更喜欢一个OAuth-开放式身份验证基本身份验证令牌身份验证JWT-JSONWeb令牌OpenID第17步-消息代理了解消息代理并了解何时以及为何使用它们.有多种选择,但最突出的是RabbitMQ和Kafka。如果您想选择一个,现在学习如何使用RabbitMQ。第18步-搜索引擎随着应用程序的增长,对关系数据库或NoSQL数据库的简单查询不会解决问题,您将不得不求助于搜索引擎。有几种选择,每种都有自己的差异。例如Solr、Sphinx、ElasticSearch、Xapian等。第19步-学习如何使用Docker无论您是复制与生产环境相同的环境、保持操作系统清洁还是加快编码、测试或部署,Docker都可以极大地方便您在开发过程中的工作。在这一步中,继续学习如何使用Docker。第20步-关于Web服务器的知识如果您已经走到这一步,您可能不得不在前面的步骤中使用服务器。这一步是关于找出不同Web服务器之间的差异,了解限制和可用的不同配置选项,以及如何最好地编写利用这些限制的应用程序。第21步-了解如何使用Web套接字虽然不是必需的,但在您的工具带中掌握这些知识是有益的。了解如何使用网络套接字编写实时网络应用程序并使用它创建一些示例应用程序。您可以在上面制作的博客应用中使用它来实现博客文章列表的实时更新。第22步-学习GraphQL了解如何使用GraphQL创建API。了解它与REST的不同之处以及它被称为REST2.0的原因。第23步-研究图数据库图模型代表了一种非常灵活的处理数据关系的方式,图数据库为此提供了快速高效的存储、检索和查询。了解如何使用Neo4j或OrientDB。第24步-继续探索一旦您开始学习和实践,您一定会遇到本路线图中未涵盖的内容。只要保持开放的心态和对新事物的健康渴望。请记住,关键是尽可能多地练习。一开始它看起来更可怕,您可能会觉得自己没有抓住任何东西,但这是正常的,随着时间的推移您会感觉越来越好。嗯,就是这样。谢谢阅读。更多PHP知识请前往PHPCasts
