前后端开发需要学什么,后端开发需要具备哪些
现在的网站发展和过去有很大的不同,有很多东西会让进入这个领域的人感到困惑。这也是我们写这一系列文章——的原因,指导你如何胜任开发过程中的特定角色。
大约一周前,我们发表了一篇名为《现代前端开发-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