<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HHHBan的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HHHBan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HHHBan]]></copyright><item><title><![CDATA[Windows 环境脚本一键安装 Node.js]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/139253824</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/139253824</guid><author>HHHBan</author><pubDate>Tue, 28 May 2024 09:36:27 +0800</pubDate><description><![CDATA[1）install_node.bat 文件内容如下。2）打开 cmd 窗口人工验证。3）修改镜像（可选）]]></description><category></category></item><item><title><![CDATA[单机多线程模拟 MapReduce 思想完成超大文件的 WordCount 计算]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/133151561</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/133151561</guid><author>HHHBan</author><pubDate>Fri, 22 Sep 2023 21:53:07 +0800</pubDate><description><![CDATA[之前看过一些 MapReduce 的源码，所以按照源码中的思路进行了回答，感觉还不错，于是回来后尝试写了代码。最近面试遇到了一个问题，就是有个 100G 的文件，里面的内容都是单词，请问在单机笔记本的情况下，怎么使用 MapReduce 的思想完成 WordCount 的计算。大概耗时变成了 15 秒左右，大约快了 3 倍左右。由于都是空格，也不涉及什么正则啥的，于是换成 StringTokenizer 类来切割，代码如下。1）首先，需要模拟出对应的数据，我这里模拟了 1G 左右的数据测试，代码如下。]]></description><category></category></item><item><title><![CDATA[集群机器之间 SSH 免密登录的一键脚本]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/132873780</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/132873780</guid><author>HHHBan</author><pubDate>Thu, 14 Sep 2023 12:49:42 +0800</pubDate><description><![CDATA[创建 /root/host_list 文件，内容如下：分别是IP地址、用户、密码、用户的家目录、主机名。]]></description><category></category></item><item><title><![CDATA[CentOS 7.x 升级 Linux 内核版本实操]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/132802680</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/132802680</guid><author>HHHBan</author><pubDate>Mon, 11 Sep 2023 11:03:19 +0800</pubDate><description><![CDATA[注意：Linux 支持多版本内核共存，也意味着系统启动时具体使用什么版本的内核是由用户决定的。1）导入公钥，下载并安装elrepo仓库，以及加速镜像。3）清除旧内核（可选）]]></description><category></category></item><item><title><![CDATA[一键安装 ZooKeeper 集群脚本]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/132773930</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/132773930</guid><author>HHHBan</author><pubDate>Sat, 09 Sep 2023 11:12:20 +0800</pubDate><description><![CDATA[【代码】一键安装 ZooKeeper 集群脚本。]]></description><category></category></item><item><title><![CDATA[用 Python 清理 Markdown 文档中多余图片]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/132503724</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/132503724</guid><author>HHHBan</author><pubDate>Fri, 25 Aug 2023 22:09:06 +0800</pubDate><description><![CDATA[在用 MD 文档记录笔记的时候，一般我都是把引用的图片都是在相对路径下，但发现目录下有些历史遗留下来没有使用的图片，就写了个小程序用于清理一些不被 MD 文档引用的图片。]]></description><category></category></item><item><title><![CDATA[Ubuntu 一键安装 miniconda]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/132120198</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/132120198</guid><author>HHHBan</author><pubDate>Sat, 05 Aug 2023 15:23:10 +0800</pubDate><description><![CDATA[用于在 Ubuntu 一键安装 miniconda。]]></description><category></category></item><item><title><![CDATA[安装WSL2和Ubuntu22.04版本]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/126843786</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/126843786</guid><author>HHHBan</author><pubDate>Tue, 13 Sep 2022 23:38:53 +0800</pubDate><description><![CDATA[安装WSL2并安装Ubuntu22.04发行版]]></description><category></category></item><item><title><![CDATA[Docker笔记01：常用命令、数据卷、部署应用、制作镜像]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/122165233</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/122165233</guid><author>HHHBan</author><pubDate>Mon, 27 Dec 2021 09:58:12 +0800</pubDate><description><![CDATA[文章目录一、Docker 简介1.1 应用部署的环境问题1.2 Docker 如何解决问题1.2.1 解决依赖兼容1.2.2 解决操作系统环境1.3 什么是 Docker1.4 虚拟化技术1.5 容器与虚拟机比较1.6 Docker 概念与架构1.6.1 Docker 基本概念1.6.2 Docker 基本架构二、Docker 安装与启动2.1 安装2.2 Docker 守护进程相关命令2.3 镜像加速三、Docker 中常用命令3.1 镜像相关命令3.1.1 搜索镜像3.1.2 拉取镜像3.1.3 查看镜]]></description><category></category></item><item><title><![CDATA[SpringCloud笔记02：Nacos配置中心、Feign、Gateway]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/122113339</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/122113339</guid><author>HHHBan</author><pubDate>Thu, 23 Dec 2021 18:13:14 +0800</pubDate><description><![CDATA[文章目录一、Nacos 配置管理1.1 统一配置管理1.1.1 添加配置文件1.1.2 微服务拉取配置1.2 配置热更新1.2.1 方式一：RefreshScope1.2.2 方式二：ConfigurationProperties1.3 配置共享1.3.1 添加共享配置1.3.2 读取共享配置1.3.3 不同 profile 测试1.3.4 配置共享的优先级1.3.5 不同微服务配置共享1.4 搭建 Nacos 集群1.4.1 初始化数据库表1.4.2 配置 nacos 集群1.4.3 启动 nacos 集]]></description><category></category></item><item><title><![CDATA[SpringCloud笔记01：Eureka、Ribbon、Nacos注册中心]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/122031584</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/122031584</guid><author>HHHBan</author><pubDate>Sun, 19 Dec 2021 22:58:35 +0800</pubDate><description><![CDATA[文章目录一、认识微服务1.1 单体架构1.2 分布式架构1.3 微服务1.4 微服务技术对比1.5 SpringCloud1.6 总结二、服务拆分和远程调用2.1 服务拆分原则2.2 服务拆分示例2.2.1 导入 SQL 语句2.2.2 导入项目工程2.3 实现远程调用案例2.3.1 案例需求2.3.2 注册 RestTemplate2.3.3 实现远程调用2.3.4 测试总结2.4 服务调用关系三、Eureka 注册中心3.1 Eureka 的结构和作用3.2 搭建 eureka-server3.2.1 ]]></description><category></category></item><item><title><![CDATA[Vue学习笔记09：Vuex的基本使用]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/121579325</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/121579325</guid><author>HHHBan</author><pubDate>Sat, 27 Nov 2021 16:33:13 +0800</pubDate><description><![CDATA[文章目录一、Vuex 概述1. Vuex 是什么2. Vuex 好处与用处二、Vuex 的核心概念三、Vuex 的基本使用1. 安装配置 Vuex2. state2.1 定义数据2.2 使用数据3. mutations3.1 定义 mutations3.2 使用 mutations4. actions4.1 定义 actions4.2 使用 actions5. getters5.1 定义getters5.2 使用getters6. modules6.1 定义modules6.2 使用带命名空间的模块四、Vu]]></description><category></category></item><item><title><![CDATA[Vue学习笔记08：Vue Router 路由的基本使用]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/121544041</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/121544041</guid><author>HHHBan</author><pubDate>Thu, 25 Nov 2021 18:17:00 +0800</pubDate><description><![CDATA[文章目录一、前端路由的概念与原理1. 什么是路由2. 前端路由的工作方式3. 实现简易的前端路由二、vue-router 的基本使用1. 什么是 vue-router2. vue-router 4.x 的基本使用步骤2.1 在项目中安装 vue-router2.2 定义路由组件2.3 声明路由链接和占位符2.4 创建路由模块三、vue-router 的高级用法1. 路由重定向2. 路由高亮3. 嵌套路由3.1 声明子路由链接和子路由占位符3.2 通过 children 属性声明子路由规则4. 动态路由匹配4]]></description><category></category></item><item><title><![CDATA[Vue学习笔记07：ref 、动态组件、插槽、自定义指令]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/121525334</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/121525334</guid><author>HHHBan</author><pubDate>Wed, 24 Nov 2021 21:23:52 +0800</pubDate><description><![CDATA[文章目录一、ref 引用1. 什么是 ref 引用2. 引用 DOM 和组件实例3. this.$nextTick(cb) 方法二、动态组件1. 什么是动态组件2. 动态组件渲染和 keep-alive三、插槽1. 什么是插槽2. 插槽的基础用法3. 具名插槽4. 作用域插槽4.1 表格使用作用域插槽四、自定义指令1. 什么是自定义指令2. 声明私有自定义指令的语法3. 声明全局自定义指令的语法4. updated 函数5. 指令的参数值五、table 案例1. 案例效果2. 实现步骤3. 搭建项目基本结构]]></description><category></category></item><item><title><![CDATA[Vue学习笔记06：监听器、生命周期、数据共享]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/121503367</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/121503367</guid><author>HHHBan</author><pubDate>Tue, 23 Nov 2021 21:39:14 +0800</pubDate><description><![CDATA[文章目录一、watch 侦听器1. 什么是 watch 侦听器2. watch 侦听器的基本语法3. axios + watch 检测用户名是否可用4. immediate 选项5. deep 选项6. 计算属性 vs 侦听器二、组件的生命周期1. 组件运行的过程2. 如何监听组件的不同时刻3. 组件中的生命周期函数4. 完整的生命周期图示三、组件之间的数据共享（重点）1. 组件之间的关系2. 父子组件之间的数据共享2.1 父组件向子组件共享数据2.2 子组件向父组件共享数据2.3 父子组件之间数据的双向同]]></description><category></category></item><item><title><![CDATA[Vue学习笔记05：props、计算属性、自定义事件]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/121445010</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/121445010</guid><author>HHHBan</author><pubDate>Mon, 22 Nov 2021 23:00:37 +0800</pubDate><description><![CDATA[一、props 验证
1. 什么是 props 验证
指的是：在封装组件时对外界传递过来的 props 数据进行合法性的校验，从而防止数据不合法的问题。

使用数组类型的 props 节点的缺点：无法为每个 prop 指定具体的数据类型。

2. 对象类型的 props 节点
使用对象类型的 props 节点，可以对每个 prop 进行数据类型的校验，示意图如下：

对象类型的 props 节点提供了多种数据验证方案，例如：

基础的类型检查

可以直接为组件的 prop 属性指定基础的校验类型，从而防止组]]></description><category></category></item><item><title><![CDATA[Vue学习笔记04：组件思想、vite、vue-cli]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/121444930</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/121444930</guid><author>HHHBan</author><pubDate>Sun, 21 Nov 2021 22:03:06 +0800</pubDate><description><![CDATA[文章目录一、单页面应用程序1. 什么是单页面应用程序2. 单页面应用程序的特点3. 单页面应用程序的优点4. 单页面应用程序的缺点5. 如何快速创建 vue 的 SPA 项目二、vite 的基本使用1. 什么是 vite2. 创建 vite 的项目3. 梳理项目的结构4. vite 项目的运行流程三、vue-cli 的基本使用1. 什么是 vue-cli2. 安装 vue-cli2.1 解决 Windows PowerShell 不识别 vue 命令的问题3. 基于 vue ui 创建 vue 项目4. 基]]></description><category></category></item><item><title><![CDATA[Vue学习笔记03：Vue基础入门]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/121444260</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/121444260</guid><author>HHHBan</author><pubDate>Sat, 20 Nov 2021 19:45:48 +0800</pubDate><description><![CDATA[Vue 基础入门
一、Vue 简介
1. 什么是 vue
官方给出的概念：Vue (读音 /vjuː/，类似于 view) 是一套用于构建用户界面的渐进式框架。
渐进式框架：Vue 不强求你一次性接受并使用它的全部功能特性，我们可以在项目中一点点来引入和使用 Vue，而不是用 Vue 的一个小功能，就必须用 Vue 来开发整个项目。

1.1 解读核心关键词：构建用户界面
前端开发者最主要的工作，就是为网站的使用者（又称为：网站的用户）构建出美观、舒适、好用的网页。

1.2 构建用户界面的传统方式
在传统]]></description><category></category></item><item><title><![CDATA[Vue学习笔记02：前端工程化、webpack]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/121432863</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/121432863</guid><author>HHHBan</author><pubDate>Fri, 19 Nov 2021 23:24:38 +0800</pubDate><description><![CDATA[前端工程化与 webpack
一、前端工程化
1. 小白眼中的前端开发 vs 实际的前端开发

小白眼中的前端开发：

会写 HTML + CSS + JavaScript 就会前端开发
需要美化页面样式，就拽一个 bootstrap 过来
需要操作 DOM 或发起 Ajax 请求，再拽一个 jQuery 过来
需要快速实现网页布局效果，就拽一个 Layui 过来


实际的前端开发：

模块化（js 的模块化、css 的模块化、资源的模块化）
组件化（复用现有的 UI 结构、样式、行为）
规范化（目录结构]]></description><category></category></item><item><title><![CDATA[Vue学习笔记01：ES6模块化与异步编程]]></title><link>https://blog.youkuaiyun.com/HHHBan/article/details/121403500</link><guid>https://blog.youkuaiyun.com/HHHBan/article/details/121403500</guid><author>HHHBan</author><pubDate>Thu, 18 Nov 2021 16:17:52 +0800</pubDate><description><![CDATA[ES6模块化与异步编程高级用法
一、ES6 模块化
1. 回顾：node.js 中如何实现模块化
node.js 遵循了 CommonJS 的模块化规范。其中：

导入其它模块使用 require() 方法
模块对外共享成员使用 module.exports 对象

模块化的好处：大家都遵守同样的模块化规范写代码，降低了沟通的成本，极大方便了各个模块之间的相互调用，利人利己。
2. 前端模块化规范的分类
在 ES6 模块化规范诞生之前，JavaScript 社区已经尝试并提出了 AMD、CMD、Common]]></description><category></category></item></channel></rss>