前后端开发需要学什么,后端开发需要具备哪些

  前后端开发需要学什么,后端开发需要具备哪些

  现在的网站发展和过去有很大的不同,有很多东西会让进入这个领域的人感到困惑。这也是我们写这一系列文章——的原因,指导你如何胜任开发过程中的特定角色。

  大约一周前,我们发表了一篇名为《现代前端开发-2018》的文章,我们承诺会发布一份《后端和开发运维路线图》。为了实现这个承诺,这篇文章是关于现代后端开发人员的。如果你还没有查看过前端开发路线图,可以先查看一下。

  在此之前,后端路线图简单粗暴地给了你需要掌握的技能,没有明确的方向和合理的学习顺序。我们像前端一样一步一步的重绘后端路线图,希望能给你更好的指导。

  言归正传,我们开始吧。详细路线图在下图,我会一步一步解释。

  在接下来的章节中,我们将对其进行分解,并逐步解释。

  起初,虽然我们没有在路线图中列出HTML/CSS,但我们仍然建议用户应该具备基本的HTML/CSS技能,至少能够编写一些基本的HTML/CSS。

  

1. 学习一门语言

  语言选择有很多种。为了方便你,我把它们分类了。对于那些刚接触后端开发的人,我强烈建议你选择一种脚本语言,因为它们有很多要求,而且用起来很快。当然Python是最好的选择。它的需求增长很快,有大量的职位可供选择。

  

2. 学以致用

  最后的学习方法是动手实践。一旦你选择了一种语言,然后对它有了基本的了解,就开始使用它。尽量用它来练习,写一些小程序来练手,熟悉它。这里有一些小例子可以帮助你开始。

  *实现一些你在bash中常用的命令,比如ls的函数

  *写一个小程序,从reddit的/r/programming通道抓取数据,保存为JSON格式。

  *编写一个程序,将目录结构保存为JSON文件。

  *根据上面生成的JSON文件,生成目录结构。

  *思考日常工作中的任务,尝试自动化。

  

3. 学习包管理器

  一旦你了解了这门语言的基础,用它写一些示例程序,然后学习这门语言的包管理器。软件包管理器可以帮助您使用第三方库,您也可以发布自己的库供他人使用。

  假设你选择了Python,你应该学过Pip。Node.js有NPM或者Yarn,PHP有Composer,Ruby有RubyGems。无论你选择什么,进一步研究它的包管理。

  

4. 规范以及最佳实践

  每种语言都有自己的规范和最佳实践。你需要掌握这个东西。比如Python,有PEP8和Google Python代码规范。Node.js的每个社区都有不同的规范。其他语言的情况也差不多。

  

5. 安全

  务必掌握安全最佳实践。阅读OWASP指南,了解不同的安全问题,并知道如果您避免此类问题。(您选择的语言)

  

6. 实践

  既然已经掌握了语言基础、最佳实践、安全相关和包管理,那么就可以开发自己的库供他人使用了。如果用Python,需要用Pypi发布,如果是Node.js,需要用Npm发布。

  此时,你可以在Github上找到一些项目,参与其中。

  *重构和实施你学到的最佳实践

  *修复已知问题。

  *添加新功能

  

7. 测试

  测试有很多种。了解每个测试的类型和目的。但是现在,首先学习单元测试和综合测试,并应用到你的程序中。此外,您应该了解不同的测试术语,如mocks、stubs等。

  

8. 实践-测试

  为你编写的所有程序编写单元测试,尤其是你在Github上参与的项目。

  同时学习覆盖率的概念,计算测试代码的覆盖率。

  

9. 关系型数据库

  学会使用关系数据库保存你的数据。学习之前,先掌握数据库相关的术语。例如:键、索引、规范化、元组等。

  有许多数据库可供选择。你只需要掌握一个,其他的就变得很简单了。比较流行的有MySQL,MariaDB(MySQL分支,很像它)和PostgreSQL。选择MySQL开始。

  

10. 动手时间 - 实践

  是时候把学过的东西整合一下了。

  创建一个简单的应用程序,并使用你所学到的一切。要实现一个想法,可能需要创建一个简单的博客网站,并实现以下功能:

  *账户系统3354注册登录

  *注册用户可以创建博客。

  *用户可以查看自己创建的所有博客。

  *用户可以删除自己发布的博客。

  *确保用户只能看到自己的博客,而不能看到其他人的博客。

  *为应用程序编写单元/综合测试

  *为查询创建索引。查询以确保索引生效。

  

11. 学习一个框架

  根据您的项目类型和语言,您可能需要一个框架来帮助开发。(可能没必要)。每种语言都有不同的选择,选对了就好。

  如果选择Python,建议选择Django,对于微帧,建议使用Flask。

  对于Node.js,最广为人知的框架是Express.js

  

12. 实践-框架

  用选定的框架重新构建您的博客应用程序。不要忘记集成测试代码。

  

13. 学习NoSQL(not only SQL)数据库

  首先,理解什么是NoSQL,它与关系数据库有什么不同,以及为什么需要它们。NoSQL数据库也有很多选择。了解并比较它们的特点和差异。常用的有MongoDB,Cassandra,RethinkDB,Couchbase。建议选择MongoDB入手。

  

14. 缓存

  了解如何在您的程序中实现应用程序级缓存。学习如何使用Redis或Memcached实现缓存,同时在你的博客应用中实现缓存功能。

  

15. 创建RESTful APIs

  了解REST,学习如何编写RESTful APIs,阅读关于REST的白皮书。(罗伊菲尔丁).要明白REST不仅仅是HTTP APIs。

  

16. 学习不同的认证方法

  学习不同的认证和认证方法。你需要了解它们是什么,它们的区别,以及它们适用的场景。

  * OAuth -开放认证

  *基本认证

  *令牌认证

  * JWT - JSON网络令牌

  * OpenID

  

17. 消息代理

  学习消息代码,并知道何时以及为何使用它们。可供选择的有很多,最著名的是RabbitMQ Kafka。建议从RabbitMQ开始学习。

  

18. 搜索引擎

  随着应用规模的增长,简单的查询已经不能满足要求。这时候就需要用搜索引擎了。选择也很多,各有特色。

  

19. 学习使用Docker(容器)

  Docker可以为你的发展提供极大的便利。它可以使您的开发环境与生产环境保持一致,保持您的系统整洁,加快您的编码和测试部署。Docker的好处,请自己谷歌一下。从现在开始,学习Docker。

  

20. Web服务器的知识

  此时,您可能已经处理了与服务器相关的问题。这一步主要是了解不同服务器之间的区别、限制以及不同的调优方法。

  

21. 学习Web Sockets

  虽然不是必须的,但是有Web Sockets的技能是有好处的。学习编写实时web应用程序。在博客应用程序中,博客列表可以即时更新。

  

22. 学习GraphQL

  学习GraphQl的API。了解它和REST的区别,然后为什么叫REST 2.0。

  

23. 研究Graph数据库

  图模型在处理数据之间的关系时具有很好的灵活性。图形数据库提供了高速高效的访问和查询。了解中学或OrientDB。

  

24. 不停探索

  在你学习和实践的过程中,一定会遇到路线图中没有提到的东西。你只需要保持开放和渴望去学习新的东西。

  永远记住,学习的关键是实践。多做!寒石,你可能会不舒服。有了你的坚持和时间,你会越来越好。

  以上为转载,主要转载于339 MP。微信。QQ。com/s吗?-biz=mza 3 otgymdcwng=mid=2650636791 idx=2sn=08 a 57 b 9579 cf 24f 31 CDC 429 DD 54 e 4845 chsm=87 a 4833 ab 0d 30 a 2 cc 07 c 9 AC 0 a 9 DC 453280706 cb2 d 8 22 FB 0409 db 4 D2 C3 CFA 12309 c 91108 a 94

前后端开发需要学什么,后端开发需要具备哪些