年odejs开发人员学习路线图腾讯云开发者社区

Node 软件包管理(Node Package Manager,npm)提供当前规模最大的注册软件库,其中提供 80 多万种软件包。正确使用 npm,可极大地降低软件包管理的复杂度,非常便于解决应用开发中的依赖问题。

npm 提供三个组成模块:

npm 还可管理各版本的代码及依赖。如果使用 npx,无需下载软件包即可运行软件包。

版本管理系统:掌握 git、GitHub 等的使用。开发中,应尽量避免交叉修改代码导致的更改不可逆。因此,在大型项目中需使用版本控制系统管理。要熟悉版本控制系统的使用,开发人员应该具备扎实的基础知识。

注意:关系数据库依然是主流。例如,在建模产品、类比、标签等时依然主要使用关系表结构。类似于电子表格,关系表由行和列组成。

关系数据库管理系统

SQL Server:微软的关系数据库产品,支持标准 ANSI SQL,也提供产品独有的 SQL 实现。

MySQL:一款优秀的关系数据库管理系统,时由 Oracle 提供的开源后端软件,具备按需改进代码的灵活性。MySQL 可很好地替代 Oracle、Microsoft SQL server 等商业数据库产品。

PostgreSQL:具有大规模开发团队支持的开源产品,可运行在 Linux、UNIX 和 Windows 等大多数主流操作系统上。PostgreSQL 支持绝大多数标准 SQL 查询,还提供复杂 SQL 查询、外键、触发器、事务、MVCC、流复制等特性。

MariaDB:MySQL 的改进版,额外内建了多种特性、安全和性能改进。简而言之,MariaDB 性能优于 MySQL,推荐在大型应用中使用 MariaDB。例如,MariaDB 的大型连接池支持超过 20 万的并发连接,显著优于 MySQL。

云数据库服务

Azure CosmosDB:一种全球分布式数据库服务,支持远程管理数据。对于大型应用,云数据库在扩展型和可管理性上具有优势。Microsoft Azure 完全简化了可扩展和分布能力,在同一后端上支持多种数据模型,即可同时用于文档、键值、关系和图模型。该服务不依赖于任何模式,因此可称为 NoSQL 数据库,但可使用支持 ACID 交易的查询语言。

Amazon DynamoDB:非常适用于具有 SQL 经验的用户,提供全托管 NoSQL 数据库服务,具有高性能,可预测,扩展性很好。DynamoDB 支持创建关系表,可存储并检索任何规模的数据,提供任何服务等级的请求。

NoSQL 数据库

MongoDB:面向文档的 NoSQL 数据库,适用于大规模数据存储。类似于表是关系数据库的基础,MongoDB 使用集合(Collection)和文档(Document)。其中,文档包含了键值对,是 MongoDB 的基本数据单元。集合包含一系列文档和函数,对标关系数据库中的表。

Redis:可用于数据库、缓存和消息代理(Message Broker)。Redis 使用字符串、哈希、列表、集合、位图、hyperloglog 和时空索引等数据结构,以键值形式存储数据。下面举例说明:

假设应用必须处理授权用户的不同操作。每次验证用户身份,都必须获取应用中访问权限控制模块的授权。实现此类安全机制的方案很多。例如,标准的 JOSE(JavaScript 对象签名和加密)框架可确保应用数据的安全性。但面对多种授权时,应用同样很难扩展。除了发送授权列表给用户,另一种解决方案是将用户授权以某种形式的数据库存储。授权以键值对(也称为令牌)形式提供,用户必须提供键值进行验证。

Apache Cassandra:Facebook 创建的高度可扩展、高性能的分布式数据库,设计针对物理上分布的海量数据,实现无单点故障的存储。不同于其它关系数据库系统,Cassandra 在分布式设计上参考了 Amazon DynamoDB,数据模型使用 Google BigTable。

LiteDB:一款超轻量级、高性能的 .NET NoSQL 嵌入数据库,实现无服务器的文档存储。LiteDB 使用于小型的桌面应用、Web 应用,可根据每个用户的每个账户建立一个独立数据库。

搜索引擎

注意:为什么需要了解搜索引擎技术,下面举例说明。如果使用谷歌搜索引擎,它本身就是一个完整的 Web 应用。对于 Solr 和 ElasticSearch 等后端框架,它们会对所有类型数据集创建索引,进而在服务器提供搜索功能。Solr 支持百万级用户的搜索引擎网站。

ElasticSearch:一种基于 Apache Lucene 使用 Java 开发的搜索和分析引擎,实现海量数据的实时存储和分析。其高性能来自于对索引而非文本的搜索,核心基于结构化文档,而非关系表和模式,提供丰富的 REST API 存储和搜索数据。ElasticSearch 可认为是一台处理 JSON 请求并返回 JSON 数据的服务器。

Solr:提供包括字段搜索、布尔查询、短语查询、模糊查询、语法检查、自动填全等高级实时搜索功能。

注意:缓存使用内存中存储文件拷贝,降低网络调用,提供更快的网络响应。

内存缓存

分布式缓存

分布式缓存将多个网络内存整合为单一的内存数据存储,进而用于缓存最终数据,提供对数据的快速访问。该技术尤其适用于大规模数据和大量网络调用的情况,通过在群集中添加更多的服务器实现缓存容量的增量扩展和扩容。Redis 是目前最广为使用的 分布式内存,推荐进一步了解 Memcached。

模板引擎支持在应用开发中使用静态模板文件,并在运行时替换模板文件中的变量为实际值,生成发送给客户的 HTML 文件。下面列出了一些广为使用的模板引擎。

REST

在 REST 提出之前,API 使用远程过程调用(RPC)开发,类似于本地执行的代码。期间许多技术使用了类似于 RPC 的技术栈,并未从根本上解决问题,直到 REST 提出以更好的方式构建基于 Web 的 API。

GraphQL

GraphQL 可很好地替代 REST。它使用 API 优先为客户准确提供所请求的数据,是一种灵活并且对开发人员友好的替代方案,可使用 GraphiQL IDE 部署。GraphQL 具有多项优点,包括在不影响现有查询情况下添加和禁用数据域,以及支持多种方式构建 API。

单元测试框架

模拟测试(Mocking)

单元测试的规模越小越好,并尽可能轻量级执行。但在一些情况下,测试对象存在对其他对象的依赖。

例如,对于需要与域服务器或 Web Service 通信的对象,无法执行快速、轻量级的测试,这时就需要 Mocking 测试。运行 Mocking 测试不需要任何实际数据库,或是任何类型的连接,只返回给出预期结果的对象。Mocking 测试只使用一些基本对象,模拟给出实际测试结果,因此可摆脱所有局限更快地运行测试。

推荐阅读: 下面资料分别介绍了如何使用 Sinon 和 Jasmine 实现 Mocking 测试:

THE END
0.MySQL数据库的基础知识Mysql这篇文章主要介绍了MySQL 数据库的基础知识,它是一类更具体的可以管理数据的软件。但是实现数据库的这个软件,需要用到很多的数据结构,下面来看看文章是怎么具体介绍这个数据库的+ 目录 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 1. 认识数据库 1.1 数据jvzquC41yy}/lk:30pku1jwvkerf1;8347>/j}r
1.MySQL基础知识——AND&OR本文详细介绍了SQL中的AND和OR运算符如何用于基于一个以上的条件对记录进行过滤。通过具体示例展示了AND和OR的不同用法,以及它们在复杂查询中的组合使用技巧。 点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL基础知识汇总 SQL高级知识汇总 AND 和 OR 作用 jvzquC41dnuh0lxfp0tfv8qk{wk19:<363791jwvkerf1mjvckrt1:5:87<4;?
2.什么是AzureSQL?无论你是现金不足的新公司,或是在预算有限的情况下运作的已成立公司的小组,资金的限制通常是决定数据库托管方式的主要考虑因素。在本部分中,将学习 Azure 中与 Azure SQL 产品系列相关联的计费和许可方面的基础知识,以及计算总应用程序成本的方法。计费和许可基础概念目前, Azure SQL 数据库 和Azure SQL 托管实例jvzquC41fqit0vnetqyph}3eqo5{j6hp1c€vtn4c|wxf/|vn1c€vtn2usn3jcjx/xu3qcjx/yjgu/rx/qxksxrjy
3.PowerBI基础知识——连接数据源SQL数据库基础知识汇总 SQL数据库高级知识汇总 连接数据源 Power BI作为一个数据可视化平台,不具备存储数据的能力,所以需要通过连接外部数据源,才能开设对数据进行下一步的操作。 常见的数据源有Excel,数据库以及Web浏览器。此外还支持各种各样的数据源,如下图所示是Power BI支持的所有数据源: jvzquC41dnuh0lxfp0tfv8qk{wk19:<363791jwvkerf1mjvckrt1:52;;:859