程序编程实战教程 -AI、Java、Spring Boot 实战 专注后端开发知识分享,涵盖 Java 基础、Spring Boot 实战、数据库优化与中间件应用,助力程序员成长为优秀后端开发工程师。

网络浏览器的工作原理 - 导航(第 1 部分,附插图)⚙️💥

文章摘要:本文主要介绍了网络浏览器的工作原理,特别是导航过程中的DNS查找、TCP握手、TLS协商等步骤。文章详细解释了浏览器如何请求网页,包括DNS服务器解析域名、TCP三次握手建立连接、TLS协商确保通信安全等过程。同时,文章辅以插图和详细说明,帮助读者更好地理解这些概念。

Web 浏览器的工作原理 - 解析 HTML(第 3 部分,附插图)📜🔥

摘要:本文第三部分详细解析了Web浏览器工作原理中的HTML解析过程。首先介绍了浏览器接收到HTML响应后的解析工作,包括标记化和构建DOM树两个主要步骤。然后分别解释了标记化和构建DOM树的具体过程,包括词汇分析和构建类似源代码的令牌序列,以及将令牌转换为文档对象模型(DOM树)。文章还讨论了DOM的重要性,并指出解析过程中的一些优化方法,如将非阻塞资源与阻塞资源的处理区分开来,以及将JavaScript脚本移动到HTML文件的末尾或使用defer和async属性。

Web 浏览器的工作原理 - 解析 CSS(第 4 部分,附插图)⏳🌐

这篇文章简要概述了Web浏览器解析CSS的过程。首先,浏览器在解析HTML后,会解析CSS(在外部CSS文件和样式元素中找到),并构建CSS对象模型(CSSOM)。浏览器通过标记化和构建CSSOM的过程来解析CSS,类似于HTML解析。在这个过程中,浏览器会执行一项称为“选择器匹配”的操作,意味着每组样式都会与页面上的所有节点(元素)进行匹配。文章还提供了一个关于CSSOM结构的示例,并解释了规则特异性的概念,即当存在多个适用于同一元素的规则时,浏览器如何决定应用哪个规则。文章通过具体的代码示例和插图来解释这些概念。

如何在 JavaScript 中使用 Object.freeze()

文章介绍了在 JavaScript 中如何使用 Object.freeze() 方法冻结对象,使其不可变。首先,文章解释了对象在 JavaScript 中的可变性,并指出 Object.freeze() 方法可以冻结对象,阻止对其属性的修改。然后,文章通过代码示例展示了如何使用此方法,并强调了需要注意的一些点,比如需要递归冻结对象的所有属性以实现深度冻结。最后,文章提供了一个深度冻结对象的函数示例。 关键词:JavaScript,Object.freeze(),对象不可变,深度冻结

网络无障碍——ARIA 简介

摘要:本文介绍了网络无障碍技术ARIA(Accessible Rich Internet Applications)的基本概念、作用和使用方法。ARIA是用于补充HTML标记以便将应用程序中常用的小部件和交互传递给辅助技术的属性集合。通过实例详细解释了ARIA如何帮助残障人士更方便地访问Web内容和Web应用程序,并提供了使用ARIA属性的简单示例,如复选框的实现。

使用 TypeScript 编写结构良好的单元测试

使用 TypeScript 为 Sequelize 和项目编写结构良好的单元测试的方法如下:首先创建一个新的项目并安装必要的依赖项,包括 Sequelize、TypeScript、Jest、babel等。然后创建项目结构,包括模型、存储库、数据库库和服务等。接着,配置 Jest 和 Babel 以使用 TypeScript 运行测试。最后,编写单元测试用例以测试模型、存储库和服务等组件的功能和性能。通过编写结构良好的测试用例,可以确保代码的质量和可维护性,并提高开发效率和可靠性。

API 项目模板,以 Typescript 编写

文章提供了一个以 Typescript 编写的 API 项目模板,旨在节省构建标准化结构项目的时间,让开发者专注于业务流程而非项目结构。该模板内置了 Express.js、续集、Swagger、TypeScript、JsonWebToken 和 PostgreSQL 等工具,并具备模块化、可单元测试的特性和依赖注入路由、控制器、存储库、中间件和服务等。文章还给出了文件夹结构概览,并提供了完整项目的 GitHub 链接。该模板可帮助开发者快速搭建一个结构化、易于维护和重构的 API 项目。

2021 年 5 个被低估的 React 设计系统

本文介绍了2021年五个被低估的React设计系统,包括Grommet、Garden React组件-Zendesk、美国网页设计系统(USWDS)、Priceline One和Ring UI-JetBrains。这些设计系统为初创项目提供快速启动,并在项目持续发展过程中提供架构,其价值远超预制的CSS/JS资源。文章还提供了每个设计系统的详细介绍、演示链接和GitHub地址。希望读者能够了解并使用这些被低估的设计系统,以提高项目开发的效率和品质。

如何指导初级开发人员

本文介绍了如何指导初级开发人员,文章提到以下几点核心思想:一是对于指导者的核心在于同理心和清晰的思路,其要扮演引导者并支持下属集中精力学习;二是知识传授的价值超越实际编程工作,优秀的公司会给予奖励和指导这一行为;三是初级开发人员的学习应从小任务开始并逐步深化知识;四是指导需要灵活变通,包括在学习新知识的过程中采用适当的教学方式、收集反馈并了解学员的学习习惯等;五是评审过程有助于反思和改进流程,同时促进沟通和反馈循环的培养。文章旨在为那些想要成为导师的高级开发人员和接受指导的初级开发人员提供帮助。

如何制作高级指针动画(TS React 和 Framer Motion)

如何制作高级指针动画(TS React 和 Framer Motion) 我通过 Product Hunt 找到了Pointer 博客