- 博客(224)
- 收藏
- 关注
原创 【Go语言快速上手】第一部分:数据类型(数组、切片、映射)与控制语句
切片是基于数组的一个引用类型,它没有固定的长度,可以动态增长。切片包含三个要素:指向底层数组的指针、切片的长度、切片的容量。映射是由键值对组成的集合,Go 中的映射是引用类型。每个键都对应一个值,且每个键在映射中是唯一的。如果使用一个已经存在的键进行赋值,旧的值将被替换。结构体通过type关键字定义,通常每个字段都有一个名称和类型。Field2 type2 // 可以继续添加其他字段 }Age intp.Greet() // 输出: Hello, my name is John在上述例子中,Greet。
2025-03-02 18:14:19
1082
原创 【Go语言快速上手】第一部分:函数与错误处理
在Go语言中,通过funcfunc:关键字,用于定义函数add:函数名:参数列表,参数类型在参数名之后int:返回值类型。:函数体,返回两个整数的和。这行代码定义了一个方法,该方法与Rectangle类型关联。是方法的接收者,表示area方法是为Rectangle类型定义的。这里的r是一个Rectangle类型的值,它代表一个矩形对象。area()是方法的名称,表示该方法会计算矩形的面积。float64是方法的返回值类型,表示计算出的面积是一个float64类型的值。
2025-02-28 21:03:06
794
原创 【Docker基础】理解 Registry 镜像仓库:分类、工作机制、命令与实操
Docker Registry(镜像仓库)是一个负责存储、管理和分发 Docker 镜像的系统。它的作用类似于代码的版本控制系统,只不过它管理的是 Docker 镜像而非代码文件。Docker Registry 提供了镜像的存储、检索、版本管理等功能,并且具备用户认证和索引功能。功能该命令用于登录到 Docker 镜像仓库(如 Docker Hub 或私有镜像仓库)。登录后,可以进行镜像的推送和拉取等操作。语法关键参数:指定用户名。:指定密码(不推荐在命令行中直接使用密码)。
2025-02-26 22:17:22
993
1
原创 【Docker基础】理解 Docker:本质、性质、架构与核心组件
LXC:早期的容器技术,现已被 Docker 替代。:Docker 自主开发的容器实现,后与runc合并。Moby:Docker 开源项目,包含 Docker 引擎的核心。docker-ce:Docker 开源社区版。docker-ee:Docker 企业收费版,提供额外的企业级功能。
2025-02-25 23:01:58
1494
1
原创 【Shell编程 / 9】脚本实战项目:从基础到进阶的自动化管理方案
通过参与一些实际的项目,我们可以更加熟练地运用 Shell 脚本来自动化任务,提升工作效率。通过 Shell 脚本,可以实现文件从本地到远程服务器,或者从一个服务器到另一个服务器的自动传输。是最常用的定时任务管理工具。通过 Shell 脚本,用户可以简化定时任务的添加、删除和查看操作,避免手动编辑 crontab 文件。通过编写自动化部署脚本,我们可以将繁琐的部署过程简化,确保部署的一致性和效率。下面是一个简单的系统监控脚本,用于检查系统资源使用情况,如 CPU、内存、磁盘等,并将结果输出到日志文件中。
2025-02-22 21:58:38
819
原创 【Go语言快速上手】第二部分:Go语言进阶之工具与框架
在 Go 语言开发过程中,掌握常用的工具和框架能够提高开发效率和代码质量。Go 提供了许多内置工具来帮助开发者进行代码格式化、静态检查、单元测试等操作。同时,Go 的 Web 框架和 ORM 框架也大大简化了 Web 应用和数据库交互的开发工作。本文将介绍 Go 中的常用工具、Web 框架和 ORM 框架。
2025-02-22 19:34:47
1060
1
原创 【Python 学习 / 7】模块与文件操作
在 Python 中,模块是一个包含一组函数、类、变量和可执行代码的文件。模块的主要作用是让我们能够将代码分成不同的文件,使得代码结构更加清晰、易于管理和复用。模块是 Python 代码的组织方式,可以提高代码的可复用性和模块化。可以通过import或来导入模块。常用的模块包括mathrandomossys等,涵盖了从数学计算到操作系统交互的各个方面。文件处理通过open()read()write()等函数来读取和写入文件,可以使用with语句自动管理文件资源。日期时间处理通过datetime。
2025-02-19 22:23:23
667
原创 【Go语言快速上手】第二部分:Go语言进阶之测试与性能优化
Go 语言提供了强大的测试框架来进行单元测试、基准测试,并通过pprof工具进行性能分析。在这部分内容中,我们将介绍如何编写单元测试和基准测试,使用pprof进行性能分析,以及一些常见的代码优化技巧。
2025-02-19 21:38:00
773
原创 【Python学习 / 6】面向对象编程(OOP)
面向对象编程 (OOP) 是一种编程范式,它使用“类”和“对象”来组织代码。在 Python 中,面向对象编程通过类(Class)和对象(Object)来实现。类是对象的模板,而对象是类的实例。OOP 允许我们模拟现实世界中的事物和行为,具有封装、继承和多态等特性。好的!我将对文章进行优化,并使内容更加详细、易于理解。Dog装饰器是 Python 中的一种非常强大的功能,允许你在不修改函数本身代码的前提下,动态地修改或增强函数的行为。
2025-02-18 22:22:35
583
原创 【Go语言快速上手】第二部分:Go语言进阶之数据库操作
Go 语言通过内置的包支持关系型数据库的操作,同时也支持通过第三方库与 NoSQL 数据库进行交互。你可以通过标准的 SQL 操作与关系型数据库(如 MySQL、PostgreSQL)进行交互,也可以使用专门的库来连接 NoSQL 数据库(如 MongoDB、Redis)。本篇博客将介绍如何在 Go 中操作关系型数据库与 NoSQL 数据库。
2025-02-18 20:40:44
883
1
原创 【Python 学习 / 5】函数详解(定义、参数、作用域、lambda、内置函数)
在Python中,使用def关键字来定义一个函数。函数名后面跟一对小括号,括号中可以放参数。函数体需要缩进。")# 调用函数greet() # 输出: Hello, World!
2025-02-17 22:40:39
1116
原创 【Go语言快速上手】第二部分:Go语言进阶之网络编程
Go 语言提供了强大的网络编程能力,支持 TCP/UDP 协议的开发、HTTP 服务的构建,以及 WebSocket 协议的支持。通过内置的net和net/http包,Go 使得网络编程变得简洁高效。我们也可以使用第三方库,如来简化 WebSocket 的使用。
2025-02-17 22:21:43
1171
原创 【Go语言快速上手】第二部分:Go语言进阶之并发编程
可以在发送数据时不必立即等待接收方,直到缓冲区满或接收方取走数据。包,包含了多种同步原语,帮助开发者在并发程序中处理共享数据和同步问题。,可以安全地传递数据,避免了数据竞争问题。会在发送数据和接收数据时进行同步,确保发送和接收操作相互配合。是 Go 中最基本的并发单元,可以认为是轻量级的线程。包中的多种同步原语,用于处理并发程序中的共享资源访问问题。同时读取共享资源,但在写操作时会阻止其他的读写操作。的缓冲区大小为 2,可以在不立即接收的情况下向。,并发执行指定的函数或方法。时,可以指定缓冲区的大小。
2025-02-17 10:00:13
971
原创 【Python 学习 / 4】基本数据结构之 字符串 与 集合
在Python中,集合是可变的数据类型,集合的元素必须是不可变类型(如数字、字符串、元组等)。Python中的字符串是Unicode编码,而在处理文件或者网络通信时,可能需要将字符串转化为字节流(bytes)。在Python中,字符串是不可变类型,即一旦创建就不能修改其中的字符。集合是非常适合用于去重和进行集合运算的工具,可以高效地进行元素的查找、插入、删除等操作。来创建字符串,也可以使用三引号(单引号或双引号)来创建多行字符串。字符串支持切片操作,可以截取字符串的一部分。方法删除集合中的元素。
2025-02-16 21:15:00
794
原创 【Shell编程 / 7】定时任务:Cron和at命令的设置与应用
是 Unix 和类 Unix 系统中的定时任务管理工具,它可以用来在指定的时间间隔内定期执行任务。在日常的运维和自动化管理中,经常需要执行定期任务。通过这些工具,用户可以在特定时间或周期性地自动执行命令或脚本,减少人工干预,提高工作效率。用于执行一次性的任务,而非定期任务。这将任务安排在 2025 年 12 月 25 日下午 2 点执行。这将打开默认编辑器,你可以在里面添加或修改定时任务。这将任务安排在当前时间的 1 小时后执行。是另一个用于执行定时任务的工具,但与。,它定义了任务的执行时间和执行内容。
2025-02-06 21:52:23
731
原创 【Go语言快速上手】第一部分:Go 语言基础
为了解决这些问题,Google 的三位资深工程师——Robert Griesemer、Rob Pike 和 Ken Thompson(Unix 和 C 语言的共同创始人)——于 2007 年开始设计一门新的编程语言,这就是 Go 语言的雏形。Go 语言的设计哲学是“少即是多”,它摒弃了复杂的语法和冗余的特性,致力于提供一种简单而强大的编程体验。指针接收者是指方法接收的是类型的指针,这使得方法可以直接修改原对象的字段值。值接收者是指方法接收的是该类型的副本,这意味着方法中修改的只是副本,而不会影响原对象。
2025-02-06 21:45:57
786
原创 【Shell编程 / 8】脚本优化与高级功能:提高效率与自动化管理
在编写 Shell 脚本时,常常会遇到需要重复使用的功能或工具。为了提高脚本的复用性和可维护性,我们可以将这些常用的函数封装到脚本库中。这样,多个脚本就可以共享同一组功能,提高开发效率。创建脚本库假设我们有一个需要经常使用的函数库文件,可以将常用的函数存储在这个文件中:thenelsefi在脚本中引用库在主脚本中,通过source或命令引入库文件,从而可以使用库中定义的函数:脚本库的目录结构组织脚本库的目录结构是非常重要的。
2025-02-02 18:31:22
1050
原创 【Pytest】基础到高级功能的理解使用
pytest是一个功能强大的 Python 测试框架,专为编写简单、可扩展的测试而设计。它是 Python 中最受欢迎的测试工具之一,广泛应用于单元测试、集成测试以及功能测试等领域。pytest提供了清晰易懂的语法,并且可以轻松与其他测试框架(如unittest)兼容使用。pytest的夹具是用来在测试运行之前或之后执行某些准备工作和清理工作的。通过夹具,可以实现数据库连接、文件创建等操作,并在多个测试之间共享这些资源。
2025-01-21 21:50:24
797
原创 【Sanic 框架 / 2】进阶与实战:高级功能与项目开发
Sanic 支持插件的开发,允许我们为应用程序扩展功能。可以通过定义插件类来实现自定义插件。插件类需要继承自类,并实现方法以在应用启动时进行初始化。")"})app.run()此插件会在应用启动时输出日志。可以为后台任务定义定时器或周期性任务,Huey")该任务将每分钟执行一次。
2025-01-20 21:29:45
920
原创 【Sanic 框架 / 1】深入学习:从入门到进阶
Sanic是一个基于Python的异步Web框架,它使用Python的asyncio库实现高效的异步请求处理,适合高并发环境下的Web应用开发。Sanic的设计理念是轻量级且高性能,特别适用于需要处理大量并发请求的应用,比如实时聊天、推送通知、API服务等。与传统的同步Web框架相比,Sanic利用异步特性,通过async和await语法大幅提升了Web服务的响应能力,能够同时处理多个I/O密集型任务,而不会阻塞服务器的主线程。
2025-01-19 20:03:14
847
原创 【Tortoise-ORM】 高级特性与实战
假设我们正在开发一个简单的任务管理应用,用户可以创建任务、查看任务列表、更新任务状态以及删除任务。我们的任务模型包括任务的标题、描述、状态(待办、进行中、已完成)和创建时间。设计数据库模型。使用Tortoise-ORM进行数据库操作。在FastAPI中应用这些操作,处理前端请求。通过这个实战项目,我们学会了如何在实际应用中应用Tortoise-ORM,设计数据库模型,并将这些操作与FastAPI集成。
2025-01-19 17:38:29
1407
原创 【Python 基础学习 / 1】变量、数据类型与流程控制
在 Python 中,变量用来存储数据。与其他编程语言不同,Python 是动态类型语言,即在定义变量时不需要显式声明其类型。Python 会根据赋给变量的值来自动推断变量的类型。x = 10x存储一个整数10。name存储一个字符串"Alice"。is_active存储一个布尔值True。运算符是执行特定操作的符号,可以操作数据类型并返回结果。Python 提供了多种不同类型的运算符,包括算术运算符、比较运算符、逻辑运算符等。
2025-01-16 20:41:25
971
原创 【Shell编程 / 6】正则表达式与模式匹配(grep、sed、awk)
正则表达式(Regular Expression,即Regex)用于匹配字符串中的特定模式。扩展正则表达式(Extended Regular Expression, ERE)比基本正则表达式功能更强大,支持更多的元字符和模式。基本正则表达式(Basic Regular Expression, BRE)是一种较为简单的正则表达式形式,主要用于匹配基本的字符串模式。是一个强大的文本处理工具,可以基于正则表达式对文本进行模式匹配和操作。是一种强大的文本搜索工具,支持基本和扩展正则表达式。参数可以使用扩展正则。
2025-01-16 20:23:48
991
原创 【Tortoise-ORM】 基础与数据库操作
ORM(Object-Relational Mapping)是一种用于将对象模型与关系型数据库表格之间进行映射的技术。简单来说,ORM 允许开发者以面向对象的方式操作数据库,而不必直接编写 SQL 查询语句。传统的关系型数据库(如 MySQL、PostgreSQL)使用表格来存储数据,而对象导向编程语言(如 Python)使用对象来表示数据。ORM 通过创建数据库表与类之间的映射关系,简化了数据存取的操作,并在底层自动生成 SQL 语句,从而提高开发效率,减少了开发者与数据库的直接交互。
2025-01-16 20:20:50
1612
原创 【Shell编程 / 5】文件操作、进程控制与错误处理技巧
在 Linux 系统中,进程管理是非常重要的,尤其是在进行系统监控、脚本编写或开发后台服务时,理解如何管理进程能帮助你更好地掌控系统资源、优化程序运行。在 Shell 中,重定向和管道是非常有用的工具,可以将命令的输出传递给文件或另一个命令,进而实现更复杂的数据处理。我们可以使用不同的命令来查看系统中正在运行的进程,并获取有关每个进程的信息。通过检查退出状态码,我们可以在脚本中做出不同的反应,确保在出现错误时能够做出相应的处理。是一个简单的命令,用于统计文件的行数、字数和字符数,常用于文本文件的基本分析。
2025-01-06 08:52:42
802
原创 【Shell编程 / 4】函数定义、脚本执行与输入输出操作
Shell 允许 在脚本中定义函数,以便将常用的功能模块化,从而使得代码更加简洁易懂。# 函数体# 执行操作我们也可以使用function# 函数体# 执行操作。
2025-01-05 09:46:15
598
原创 【Shell编程-3】流程控制:条件判断与循环结构详解(if、for、while、case)
在 Shell 脚本中,流程控制语句是用来根据不同的条件或需求执行不同操作的关键。流程控制包括条件判断、循环结构以及选择语句,它们为脚本的逻辑构建提供了灵活性。掌握这些控制结构,可以使你编写出更复杂、功能更强大的脚本。条件判断用于根据表达式的结果(真或假)来决定是否执行某个代码块。循环结构用于反复执行某段代码,直到满足某个条件为止。循环用于遍历一组值,通常用于数组或范围内的值迭代。是 Shell 中的基本条件判断结构,用来执行不同的代码块,基于一个条件的真假。循环中的判断条件反过来使用。
2025-01-05 09:33:32
468
原创 【Shell编程-2】算术运算、字符串与文件操作精通
之前我们学习了 Shell的历史与其基本命令,以及Shell的变量与常量,接下来学习其基本运算。
2025-01-05 09:19:43
320
原创 【Shell编程-1】Shell的历史发展与基础命令、变量、常量
Shell是一种命令行界面(CLI),用来与操作系统交互,它提供了一种与计算机系统进行通信的方式。Shell 是操作系统的命令解释器,负责接收用户输入的命令并将其传递给操作系统内核执行。它的主要作用是通过命令行控制操作系统和应用程序。Shell最早起源于 Unix 系统,它为用户提供了一个便捷的接口,使用户能够执行各种操作,如文件管理、程序执行、系统监控等。Bash(Bourne Again Shell):是最常用的 Shell,尤其是在 Linux 和 macOS 系统中。
2025-01-05 09:14:15
778
原创 【Linux】资源控制机制 — cgroups 详解
Cgroups(控制组)是 Linux 内核提供的一项功能,旨在对一组进程进行资源分配、限制、优先级调整和监控。通过 Cgroups,系统管理员可以将进程组织成多个组,并对这些组的资源使用情况进行控制和管理。Cgroups 允许用户对 CPU、内存、磁盘 I/O、网络带宽等资源进行细粒度的管理,能够限制、优先分配或监控这些资源,确保系统资源在多个进程或容器之间合理分配。
2024-12-23 15:15:33
1768
原创 【Linux】资源隔离机制 — 命名空间(Namespace)详解
Namespace(命名空间)是 Linux 内核提供的一种资源隔离机制。它允许将系统资源分隔成多个虚拟的“空间”,每个命名空间内的进程只能访问该命名空间下的资源,而不能访问其他命名空间中的资源。通过namespace,不同的进程可以在同一个操作系统内共享硬件资源,但又能感知到各自独立的环境。具体来说,namespace可以将一个或多个进程的资源隔离到同一个命名空间中,确保这些进程只能看到和操作该命名空间内的资源。
2024-12-23 10:28:46
2213
原创 深入解析 MySQL 语句:从基础操作到高级优化
MySQL 是一个流行的关系型数据库管理系统,广泛应用于网站开发、数据存储和企业级应用。下面我们将详细介绍 MySQL 常用的 SQL 语句,包括数据库和表的操作、数据查询、数据更新、索引管理等内容,并结合实际示例进行说明。
2024-12-16 16:16:46
847
原创 深入探讨 C++ 中的“缺省”特性与机制
double y;MyClass() : x(0), y(0.0) {} // 自定义缺省构造函数public:int x;double y;如果类中有指针成员或动态分配的资源,可能需要自定义赋值操作符,避免浅拷贝(浅拷贝会导致资源泄漏)。if (this!= &other) { // 防止自赋值C++中的“缺省”机制,通过自动化、简化或提供默认行为来提升开发效率。缺省构造函数:编译器自动生成构造函数,初始化对象。
2024-12-16 11:12:05
977
原创 深入理解C++仿函数:概念、应用与实例
在 C++ 中,仿函数(Functor)是一个可以像函数一样被调用的对象。换句话说,仿函数是一个重载了operator()运算符的类或结构体对象,因此可以像函数一样使用该对象进行调用。仿函数的核心思想是将函数的行为封装到对象中,从而使得函数不仅能够存储状态,还能像普通函数一样被调用。这种机制在许多高级编程技术中非常有用,尤其是在 STL(标准模板库)中,广泛用于排序、查找等操作。
2024-12-16 10:50:48
752
原创 深入理解 MySQL 索引:原理、类型与优化实践
索引是数据库管理系统(DBMS)中用来提高查询效率的重要工具。下面我们将详细介绍 MySQL 索引的原理、类型、创建和管理方法,以及如何根据实际需求进行索引优化。索引是数据库中用于加速数据检索的一种数据结构。类似于书籍的目录,可以快速定位到数据的位置,而不需要逐行扫描整个表。通过索引,MySQL 可以大大提高查询效率,尤其是在处理大数据量时。
2024-12-12 10:10:29
1004
原创 【数据结构】B树家族解析:B树、B+树与B*树的理论与B树插入实现(C++)
B+树的孩子与关键字的数量相等所有数据都存储在叶子节点上,方便遍历查找所有值通过对三种树的了解,做一个总结:B树:有序数组+平衡多叉树;B+树:有序数组链表+平衡多叉树;B*树:一棵更丰满的,空间利用率更高的B+树。InnoDB 存储引擎要求每个表必须有一个 唯一的主键,并且主键索引是 B+树结构,保证数据行的唯一性、顺序存储和高效查询。MyISAM 存储引擎并不强制要求每个表必须有主键。MyISAM 表可以没有主键,而且其索引结构与 InnoDB 略有不同,通常为 非聚集索引。
2024-12-11 08:25:00
1429
原创 深入理解 C++ 异常处理机制
C++ 中,异常(Exception)指程序运行过程中发生的异常情况,可能导致程序流程的中断。**异常处理机制允许程序在出现错误时采取适当的行动,而不需要完全依赖于错误代码或中断程序的正常流。**异常处理不仅提高了程序的健壮性,也使得错误处理更加结构化和易于维护。在程序执行过程中,某些不可预见的状况可能会导致程序无法继续正常运行。逻辑错误:如数组越界、空指针解引用等。运行时错误:如文件未找到、网络连接中断、内存分配失败等。C++ 异常处理机制的核心思想。
2024-12-08 15:05:30
860
原创 Muduo 网络库 入门详解
Muduo 是一个现代化、高性能的 开源 C++ 网络库。主要目标:帮助开发者快速构建高性能的网络服务器。设计理念:基于事件驱动(Reactor 模式),充分利用 C++11 的特性(如智能指针、多线程)。应用场景:高并发场景,如聊天服务器、Web 服务、RPC 系统、实时通信等。高性能:采用多线程和 epoll 技术优化 I/O 性能。易用性:屏蔽底层细节,提供简单直观的 API。模块化:核心模块职责清晰,方便扩展和维护。
2024-12-06 08:22:45
1431
原创 《深入浅出 Linux 基础 I/O 操作:从标准库到文件系统》
Linux 操作系统以其高效、灵活的 I/O 机制闻名,它不仅为开发者提供了丰富的接口,还在底层设计上注重性能与可靠性。下面我们将从多角度解析 Linux 的基础 I/O,涵盖从文件读写到文件描述符、重定向、缓冲区管理以及异步 I/O 的方方面面,理清基础 I/O 在 Linux 中的全貌。
2024-12-05 10:08:31
1064
原创 【C++11】线程库解析:高效并发与线程安全
线程库是一种支持多线程编程的工具集合,它为开发者提供了管理和控制线程的API(应用程序接口)。线程库可以简化线程的创建、同步、通信和管理,使得程序员能够更加高效地进行多线程开发。C++11及以上版本的线程库为多线程编程提供了强大的支持。通过std::mutexstd::async等组件,开发者可以更容易地实现多线程任务的创建、同步、通信和管理。线程库的合理使用可以显著提升程序的性能,尤其在现代多核处理器环境下,实现并发任务将更具优势。
2024-11-29 09:08:50
972
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人