自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

原创 Dubbo快速入门(一):分布式与微服务、Dubbo基本概念

在互联网时代,随着用户基数的急剧增长和技术的不断进步,互联网项目与传统项目相比有了显著的区别。因此,互联网项目更加注重用户体验,包括界面的美观度、功能的丰富性、加载的速度以及系统的稳定性。在互联网架构中,为了实现上述目标,通常会采用集群和分布式计算的技术方案。例如,在一个分布式系统中,为了提高系统的可用性和性能,通常会采用集群技术来部署关键组件,如Web服务器、数据库和缓存等。集群技术主要用于解决单点故障问题,提高系统的可靠性和可用性,同时也能通过负载均衡来提升系统的处理能力。

2024-09-26 10:47:46 1208

原创 MySQL连接查询解析与性能优化成本

也就是说一条语句在server层中执行的成本是和它操作的表使用的存储引擎是没关系的,所以关于这些操作对应的成本常数就存储在了server_cost表中,而依赖于存储引擎的一些操作对应的成本常数就存储在了engine_cost表中。当需要组合来自不同表的信息时,通常会使用连接查询。的驱动表(即,left join中左边的表,或right join中右边的表)的记录来说,如果无法在被驱动表中找到匹配ON子句中的过滤条件的记录,那么该记录仍然会被加入到结果集中,对应的被驱动表记录的各个字段使用NULL值填充。

2024-09-22 15:57:17 931

原创 深入MySQL的索引实践及优化

索引是帮助MySQL高效获取数据的数据结构。简单来讲,数据库索引就像是书前面的目录,能加快数据库的查询速度。对于海量数据来说,它的目录也是很大的,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中。InnoDB提供的一种分类方式,InnoDB的每张表都会有一个聚集索引,有且仅有一个,这也是该表的物理存储方式;非聚集索引可以有多个;InnoDB和MyISAM会自动为主键或者声明为UNIQUE的列去自动建立B+树索引。- 聚簇索引(主键索引):根据主键构建的索引叫做聚簇索引。

2024-09-13 12:01:17 1175

原创 MySQL的启动选项与配置管理:掌握数据库的强大定制能力

MySQL是一个强大的关系型数据库管理系统,提供了丰富的服务以支持数据的存储、管理和访问。除了基本的数据操作功能之外,MySQL还允许用户通过启动选项和配置文件来调整其行为,以适应不同的应用场景。本文将详细介绍MySQL的启动选项及其配置管理方法,并通过示例来说明如何利用这些功能来优化MySQL的性能和安全性。MySQL的服务器程序和客户端程序有许多可配置的启动选项,这些选项允许用户在启动时改变程序的行为。如果同一选项在多个配置文件或组中定义,则最后读取的文件或组中的设置优先。选项名是区分大小写的,如。

2024-09-03 17:04:27 966

原创 MySQL的服务器与客户端:架构解析与实践

MySQL是一个广泛使用的开源关系数据库管理系统,其核心架构由服务器端和客户端两大部分组成。本文旨在探讨MySQL服务器端和客户端的工作原理,理解它们是如何协同工作来完成数据的增删改查操作的。

2024-09-03 16:49:10 1091

原创 ~/.bashrc、 ~/.bash_profile、~/.profile、 /etc/profile几个配置文件的区别

/.bashrc:适用于每个用户的 bash shell,每次打开新的终端窗口时加载。:适用于每个用户的 bash shell,登录时加载,可以包含~/.bashrc。~/.profile:适用于每个用户的所有 shell,登录时加载。:适用于所有用户的系统范围配置,登录时加载。根据你的需求,你可以选择合适的地方来配置环境变量或其他个性化设置。通常,如果你只需要配置 bash shell 的个性化设置,可以使用~/.bashrc;如果需要设置全局环境变量,可以使用或~/.profile。

2024-09-02 14:33:46 1245

原创 软件开发最佳实践:接口设计、自测与效率提升

测试驱动开发(Test-Driven Development, TDD)是一种软件开发方法,它要求在编写功能代码之前先编写测试用例。这种方法有助于保证代码的质量,并促进更好的设计。接口设计是前后端通信的基础,合理的接口设计可以提高开发效率,降低维护成本。提升开发效率是每个软件团队都在追求的目标。

2024-08-28 18:58:10 1015

原创 全面解析软件开发流程:从需求分析到部署上线

后端开发者基于需求文档设计API接口,包括定义URL路径、HTTP请求方法(GET, POST, PUT, DELETE等)、请求参数及格式(如JSON、XML)、响应数据结构等。在项目启动阶段,需要确保产品团队、前端工程师、后端工程师、测试团队以及用户体验设计师(UED)等所有关键角色都能对项目需求有一个统一且深刻的理解。这一步骤旨在确保所选的技术方案能够满足项目需求,并且是可行的。在开发完成后,需要进行一系列的测试来确保系统的稳定性和性能符合预期。

2024-08-28 18:57:35 500

原创 提升代码质量的艺术:最佳实践与编码规范

在软件开发过程中,良好的编程习惯和代码规范是构建高质量软件的关键。本文将探讨一些实用的编码技巧,帮助开发者写出更加易读、易于维护的代码。将被调用的函数放置在其调用者之下,可以建立一种直观的自顶向下的逻辑流,使得阅读者能够更好地理解程序的执行顺序。避免将注释与代码混合在一起,而是将其放在合适的位置,以便于理解和维护。限制每行代码的长度,确保代码能在不拖动水平滚动条的情况下完全显示,有助于提高代码的可读性。即使循环或条件体为空,也应该使用明确的语法结构来增强代码的可读性。在面向对象的语言中,

2024-08-27 11:49:40 383

原创 回调机制在Java中的应用与实践

在软件工程中,回调是一种允许程序或对象将执行权交给另一个函数的编程模式。它使得一个函数可以被另一个函数调用,而不是直接控制整个流程。这种模式在异步编程、事件驱动系统以及多线程环境中非常有用。在Java中,我们可以使用多种方式来实现回调,其中最常用的是接口和匿名内部类,或者使用Lambda表达式(从Java 8开始)。首先,我们需要定义一个接口,这个接口将包含一个或多个方法,这些方法将在适当的时机被调用。实现回调客户端需要实现这个接口,并提供具体的方法实现。注册并触发回调现在可以在需要的地方注册这个回

2024-08-27 10:56:39 843

原创 优化代码设计:构建高效、安全与可维护的应用程序

自定义注解可以帮助简化代码,避免在多个地方重复相同的逻辑或配置。面向切面编程(AOP)是一种编程范式,用于模块化横切关注点。通过自定义注解结合AOP可以方便地记录对数据库的操作,便于后续日志分析。示例步骤 1: 创建自定义注解Retention;Target;步骤 2: 应用自定义注解// 更新用户信息// 这里可以是调用DAO层的方法// 创建新用户// 删除用户。

2024-08-23 10:35:37 801

原创 Java的Optional类——解决空指针异常的好工具

类是 Java 8 引入的一个容器对象,旨在解决空指针异常的问题。Optional类提供了一种优雅的方式来处理可能为 null 的值,从而避免了显式的 null 检查。这对于提高代码的可读性和减少空指针异常非常有用。

2024-08-20 14:11:38 336

原创 Java的Lambda表达式与Stream类

API,它提供了一种新的处理数据的方式,尤其适合于集合操作。流API的设计目的是为了更高效地处理数据集,尤其是当数据集很大时。它支持函数式编程风格,并且可以很容易地并行化。Lambda 表达式是 Java 8 引入的一个重要特性,它使得代码更加简洁、易于理解和维护。Lambda 表达式允许你把功能作为方法的参数,这极大地简化了函数式接口的使用。下面通过一些具体的例子来说明如何使用Stream API结合Lambda表达式。接下来,我们将通过几个具体的示例来展示如何使用 Lambda 表达式。

2024-08-20 11:46:56 962

原创 WebSocket协议解析

掩码标志是一个位标志,用来指示WebSocket帧中的有效载荷数据是否已经被掩码(即加密)。这个标志位于WebSocket帧头部的第一个字节中,它是第7个比特位(从右向左计数)。

2024-08-19 20:02:08 1063

原创 函数代码规范

编写代码与写作其他类型的文章非常相似。在撰写论文或文章时,我们往往先将脑海中的想法直接记录下来,然后再进行精炼和打磨。初稿可能显得粗糙且杂乱无章,但我们可以不断地对其进行优化,直到它符合我们的预期。当我开始编写函数时,它们往往冗长且复杂,包含大量的缩进和嵌套循环,以及过长的参数列表。函数名可能是随意选取的,并且常常会出现重复的代码片段。不过,我会为这些函数编写一套单元测试,确保每一行代码都能被覆盖到。之后,我逐步对这些代码进行打磨:分解函数、修改命名、消除重复。

2024-08-19 15:50:10 281

原创 Java命名规范:名副其实、避免误导、做有意义的区分、易读和可搜索

在编程中,命名是至关重要的一环。一个好的命名能够提高代码的可读性、可维护性和可扩展性。本文将介绍一些关于Java命名的原则和技巧,帮助你写出更高质量的代码。

2024-08-15 17:34:26 368

原创 追求代码的整洁与美丽

追求代码的整洁与美丽是一个持续的过程,它要求我们不断地审视和改进我们的代码。通过消除重复和提高表达力,我们不仅能够编写出更易于维护的代码,还能够享受到编程带来的乐趣。通过抽象和重构,我们可以将重复的逻辑提取到单一的位置,使得代码更加清晰,易于管理。”这意味着,当我们审视自己的代码时,应当感受到一种愉悦,一种对于问题解决方案的满足感。在编程的世界里,代码不仅仅是实现功能的工具,它也是艺术的体现。一段整洁、优雅的代码就像一首好诗,让人赏心悦目。在这个改进后的版本中,我们不仅消除了重复,还提高了代码的表达力。

2024-08-14 20:56:43 267

原创 基础测试常识

在塑造高质量软件产品的旅程中,测试扮演着确保符合用户期望与需求的基石角色。本博客将介绍测试的基本理念、指导方针及多样化的测试类别,旨在构建一个清晰、高效的测试实践框架。

2024-07-23 20:38:11 289

原创 GitLab教程(六):通过rebase来合并commit

Git Rebase的基本逻辑是将一个分支的更改移到另一个分支上,同时看起来好像这些更改是在目标分支的最新提交之后直接进行的一样,以此来实现更简洁、线性的项目历史。:Rebase 可以让你的提交历史更加整洁,因为它可以将多个提交合并为一个或几个有意义的提交,从而简化项目历史,使其更易于阅读和理解。:通过将一个分支的更改重新应用到另一个分支的顶端,rebase可以创建一个看似连续的提交序列,这对于查看项目历史和回溯问题非常有帮助。

2024-06-14 18:42:47 1526

原创 GitLab教程(五):高效的工作模式——Feature Branching

特性分支(Feature Branching)是一种软件开发工作流,尤其在使用Git或其他版本控制系统时被广泛采用。这种策略鼓励开发者为每一个新功能、改进或者代码改动创建一个独立的分支进行开发,以此来组织和管理代码更改。创建分支:当开始开发一个新的功能时,首先从主分支(通常是main或master)创建一个新分支。这个新分支被称为“特性分支”,命名上通常会反映该分支所包含的特性的名称或目的,例如。独立开发:开发者在特性分支上进行代码编写、测试和修改,而不会影响到主分支上的代码。

2024-06-14 17:39:46 832

原创 GitLab教程(四):分支(branch)和合并(merge)

命令进行合并时,Git具备一定的智能自动化处理能力:如果一个分支仅修改了文件A,而另一个分支独立地修改了文件B,Git能够无缝整合这些更改,自动完成合并过程——即最终的代码既包含了对A文件的修改也包含了对B文件的修改。同样地,若两个分支虽然都修改了同一个文件,但涉及的是文件中互不重叠的部分,比如一个改动发生在第一行,另一个则在第二行,Git同样能巧妙地自动合并这些非冲突性修改。获取了远程分支的最新变化,或者当你想要合并本地的一个分支到当前分支时,就会用到这个命令。,默认会尝试合并远程分支到当前分支。

2024-06-12 19:46:34 4239

原创 GitLab教程(三):多人合作场景下如何pull代码和处理冲突

执行命令,在clone代码时指定本地仓库的文件夹名:我这里是指定了将拉下来的代码存在中,和在上一篇博客中产生的test文件夹相区分。也就是说,现在我本地有两个文件夹,用来模拟另一个同事A的本地仓库,test文件夹模拟我自己的本地仓库。

2024-06-11 19:53:34 876

原创 GitLab教程(二):快速上手Git

git clone用途:此命令用于从远程Git仓库下载代码库的完整拷贝到本地。当你想要在本地机器上拥有一个现有仓库的复制品并进行开发工作时,就会使用此命令。示例这里,是远程仓库的URL,username是仓库所有者的用户名,repository是仓库名。git status用途:此命令用来查看当前工作目录和暂存区的状态。它会显示出哪些文件被修改了、哪些文件是新建的但未被跟踪(untracked)、哪些文件已经准备好被提交(staged)等信息。示例输出上述输出显示了README.md。

2024-06-11 14:18:40 1547

原创 揭开ChatGPT面纱(5):使用chat.completions接口实现多轮聊天

openai版本==1.6.1,本博客对应文件夹05。

2024-04-22 13:30:00 3393

原创 揭开ChatGPT面纱(4):单轮及多轮文本生成任务实践(completions接口)

openai版本==1.6.1,本博客对应文件夹04在前面的博客中介绍过了OpenAI一共有11个接口,其中completions接口常用于文本生成类任务。下面来对completions接口的参数、使用进行一些介绍。

2024-04-22 09:45:00 1143

原创 揭开ChatGPT面纱(3):使用OpenAI进行文本情感分析(embeddings接口)

openai版本==1.6.1,本博客对应文件夹03在这一篇博客中我将使用OpenAI的embeddings接口判断21条服装评价是否是好评。

2024-04-21 16:09:54 1028

原创 揭开ChatGPT面纱(2):OpenAI主类源码概览

OpenAI版本==1.6.1在上一篇博客中,我实现并运行了一个OpenAI的demo,我们可以发现,想要使用OpenAI完成一个需求仅需要两个步骤,第一步是 传入参数 配置并声明对象,第二步是 调用接口 实现需求。清楚这两点后,我们接着来看看源码。在openai包中,OpenAI类是核心类,它作为客户端库的入口点,提供了与OpenAI API进行交互的方法和属性。这个类封装了API的各种功能,使得开发者可以通过编写代码来使用OpenAI提供的各种服务,如文本生成、图像生成、模型微调等。下面我将针对Open

2024-04-21 10:45:00 1158

原创 揭开ChatGPT面纱(1):准备工作(搭建开发环境运行OpenAI Demo)

本博客对应01文件夹。

2024-04-20 18:03:39 1113

原创 AI应用实战3:使用可视化工具进行可视化实践

常用的可视化工具有三个:Matplotlib、Seaborn、Plotly。其中,Matplotlib是最基础的,其他二者的都是基于它进行的封装。Breast Cancer Wisconsin (Diagnostic) 数据集是一个广泛应用在乳腺癌诊断识别领域的医学数据资源,其可通过访问以下链接获取:https://archive.ics.uci.edu/dataset/17/breast+cancer+wisconsin+diagnostic。

2024-04-20 13:59:47 835

原创 PandasAI的应用与实战解析(二):PandasAI使用流程与功能介绍

PandasAI这个工具最突出的优点就是通过结合了Pandas和生成式LLMs,极大地为开发人员降低了工作量。可以看到,对于开发人员来说实现一个需求需要完成多个步骤。PandasAI 使用生成式 AI 模型来理解和解释自然语言查询,并将其转换为 python 代码和 SQL 查询。然后,它使用代码与数据进行交互,并将结果返回给用户。可以看到,

2024-04-13 13:30:21 2303 2

原创 PandasAI的应用与实战解析(一):环境安装、运行demo

一句话总结的话,PandasAI就是一个结合了Pandas和AI的开源工具,更详细地说,PandasAI 是一款强大的Python库,它使得用户能够以自然语言轻松向各类数据源(如CSV、XLSX、PostgreSQL、MySQL、BigQuery、Databricks及Snowflake等)提出问题。同时,它能有效处理缺失值问题以净化数据集,并通过特征生成进一步提升数据质量。),已经有其他人遇到了和我一样的问题,并给该开源作者提了issue,但是目前这个bug还没有修复,因此需要修改一下demo的代码。

2024-04-12 19:00:32 1370 2

原创 GitLab教程(一):安装Git、配置SSH公钥

此外,在中国地区,GitLab相比Github在网络连接上更加稳定,笔者使用Github十次有九次都会连接失败,但是使用Gitlab却不会,这是笔者选择Gitlab的主要原因。难以跟踪每个人的更改、合并不同分支的代码以及解决代码冲突,这会导致团队之间的沟通和合作问题;注释是可选的,但是添加一个描述性的注释可以帮助我们标识密钥的用途和所有者。通过使用SSH进行通信,可以在本地和GitLab之间进行安全的Git操作,而无需每次都输入用户名和密码。较长的密钥位数提供更高的安全性,但也需要更长的时间来生成和处理。

2024-04-10 22:31:58 8344 1

原创 AI应用实战2:使用scikit-learn进行回归任务实战

代码仓库在,本博客对应于02文件夹。

2024-04-10 22:05:17 783

原创 AI应用实战1:AI项目实战五大环节

在AI项目实战中,“定义问题”环节是至关重要的第一步,它决定了整个项目的导向和后续实施策略。问题痛点在这个阶段,我们需要深入了解业务场景或实际需求,明确存在的问题或挑战。例如,在医疗领域,问题痛点可能是诊断效率低下,误诊率高;在电商领域,则可能是用户个性化推荐效果不佳,导致转化率低等。识别这些问题痛点,是为AI项目找准发力点。现状分析分析当前的问题是如何产生的,有哪些现有的解决方案以及它们的效果如何。比如,对于上述医疗领域的诊断问题,现状可能是依赖医生个人经验,且病例数据未得到有效利用;

2024-04-08 21:17:45 1211

原创 AI应用实战0:一站式机器学习框架——scikit-learn

scikit-learn是一个用于机器学习的Python库,提供了丰富的工具和算法,用于数据预处理、特征选择、模型建立、模型评估和模型部署等机器学习任务。scikit-learn提供了多种模型评估方法,可以帮助评估模型的性能和泛化能力。例如,可以使用交叉验证方法进行模型评估,使用不同的评估指标如准确率、精确率、召回率和F1值等进行模型性能评估。scikit-learn提供了多种经典的监督学习和无监督学习算法,包括线性回归、逻辑回归、决策树、支持向量机、随机森林、聚类、降维等。

2024-03-05 19:15:19 1117

原创 安装Windows10系统的最简化教程

后面基本上就是一些傻瓜式操作,设置语言、连接网络之类的。重启电脑,不断按Fn+F2(百度一下你的电脑进入BIOS的快捷键)。后面都是傻瓜操作,等待安装即可。到这里PE盘就制作好了。然后设置Boot项下的启动顺序第一位是你的U盘。然后在下一个页面选择你电脑上插入的U盘。在U盘保持插入的情况下,重启电脑。一个U盘,至少大于8G。

2024-03-05 19:14:27 197

原创 手写MySQL常用语法

安装:本地安装好mysql,有必要的装一个navicat for mysql(别的可视化工具也行)不会的自行百度。创建好数据库之后执行create.sql和populate.sql创建需要的数据库表并注入数据。下载:数据库搭建需要的基本数据。书籍:《MySQL必知必会》

2024-01-19 18:35:34 472

原创 解决系统开发中的跨域问题:CORS、JSONP、Nginx

最近我在做一个系统的全栈开发,遇到了这样一个问题。首先,我的前端是一个来自百度的开源框架——Amis,它封装自React.js,基于JSON配置。我下载了Amis提供的SDK文件夹,并进行了代码开发。但是我在部署整个系统的时候遇到了跨域问题。原因是,我的前端不是以服务的形式运行的,它是一组在浏览器中打开的HTML页面。

2024-01-19 18:33:34 1273

原创 两周掌握Vue3(五):自定义指令、路由、ajax

自定义指令是Vue.js框架提供的一个非常强大的特性,它允许开发者直接操作DOM,扩展Vue.js的能力。封装常用操作:当你发现在多个组件中需要重复执行相同的DOM操作时,可以将这些操作封装成一个自定义指令,以提高代码的复用性和可维护性。与第三方库集成:有时候你可能需要与第三方库(如图表库、地图库等)进行集成,自定义指令可以帮助你在Vue组件中使用这些库,并提供统一的接口。访问底层DOM。

2024-01-12 16:41:46 1275

原创 两周掌握Vue3(四):计算属性、监听属性、事件处理

Vue 中的计算属性具有以下作用:数据处理:计算属性可以用于对数据进行处理和计算,例如对原始数据进行格式化、筛选、排序等操作,以便在视图中直接使用处理后的数据。响应式更新:计算属性会根据其所依赖的响应式属性的变化而自动更新。这意味着当依赖的数据发生变化时,计算属性会自动重新计算其值,从而保持视图的实时更新。模块化和复用:通过将复杂的数据处理逻辑封装在计算属性中,可以提高代码的可维护性和可读性。此外,计算属性还可以在不同的组件中进行复用,从而避免重复编写相同的数据处理逻辑。

2024-01-12 15:03:44 940

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除