Li Hui Blog

在历史的层林尽染中书写时代的年华。效能 (2022) 演化 (2023) 本源 (2024) YOLO(2025)

如何搭建私有仓库 Nexus 并配置 SSL 证书

本文主要讨论了为什么需要使用私有仓库,并介绍了在内网搭建 Nexus 仓库时可能遇到的问题及解决方案。首先,私有仓库允许我们自主控制版本和发布内容,确保安全性。随后,介绍了自 Maven 3.8.1 版本开始对 HTTP 协议的限制,因此需要配置 HTTPS 证书。在内网环境中,由于缺少公网域名,建议使用自签证书解决此问题。文中详细说明了三种方案:使用公网服务、内网域名或自签证书访问 Nexus 仓库。此外,文档还提供了使用 Docker 部署 Nexus、配置 Nginx 代理和自签证书的具体步骤,并涵盖了与 Spring Boot 项目的集成方法。

从零开始搭建单节点 ELK

本文介绍了如何在项目中搭建 ELK (Elasticsearch, Logstash, Kibana) 日志管理系统的过程和技术选型的原因。主要原因包括团队对 ELK 的使用经验以及其成熟性,有助于降低学习成本并深入了解其内部交互。文中详细讲解了如何使用 Docker Compose 来部署 ELK 三大组件,并通过 Filebeat 收集日志数据。文章还涵盖了如何通过配置文件及命令启动 ELK 和 Filebeat,以及如何通过 Kibana 进行日志数据的展示和管理。最后,针对远程服务器日志同步,文章介绍了使用 SSHFS 将远程日志挂载到本地的操作。

浅谈一个产品的用户引导

最近我在网上发现了很多新的效率产品,这些效率产品, 从宣传来看能极大地上提高人的效率, 但是它们的使用门槛比较高,需要人们按照它的固有的操作流程来操作才能有效果,而且这个软件呢,有没有对用户的引导,这对于一般人来说可能会有一个很长的尝试摸索期,才能去摸索出这个产品针对于自身来说真正能提率的地方,软件到底如何使用,每个人都有每个人都想法,在我这里有一个观点,软件是一种实现的工具,它帮助我们进行一系列的改善,充当着助理的角色,但是这个助理还是无法像专业人士(比如秘书)一样可以直接理解我们所有的内容,因此需要我们去按照既定的规则给它输入信息才能更好的帮助我们协作,对于既定的规则,软件的创作者和软件的使用者的逻辑可能会有(或者说一定会有,自显的产品太少了)偏差,因此在软件开始的时候如果有一个更好的方式,引导客户完成即有的流程,比如如何使用该软件,可以让用户以一种较为通用的规则去使用(比如记账软件的默认记账类别和默认的记账信息),通过引导,减少用户上手的门槛,提升用户体验,这里其实也让我感受到 UX 的重要性。


GoCD 加入基础密码验证

我们上一期完成了 gocd 的基本安装,安装完成了,但是存在一个问题,我们安装完成 gocd 是没有任何安全措施的,任何人都可以建立 pipeline 任何人都是 admin, 可以操作我们的 pipeline 等信息,这会造成一个问题,数据的安全没办法保证,因此我们需要有一个密码来确保我们 pipeline 的安全性,那如何在 gocd 中设置密码就成为一个关键的事情,也不能说网上没有设置密码的范本,而是一个完整的范本分散在多个地方,我在此做一个缝合剂,将所有的内容缝合起来,给自己的内容做一个梳理,同时帮助其他人也解决这个问题。


搭建一套 gocd 的环境

gocd作为一个一体化的CICD工具在世界五百强中占有很大的分量,我的公司是 Thoughtworks 正是开发维护gocd的公司,我的日常工作中也是使用的gocd, 翻了一些网站,对于gocd的介绍比较少, 恰逢最近我在学习一下gocd 的知识,因此总结一下 gocd 的使用并分享出来。


如何使用 gitbook cli工具

gitbook 是一个极好的工具帮助我们来写一个富有逻辑性的书籍。使用 gitbook cli 可以轻松地帮助我们非写作化的进程,使得我们更加专注于写作本身。

关于 gitbook cli 工具其实写作的内容并不多主要涉及的是两个方面,第一个是对应的 node 版本要选择正确,此步骤可以采用 node 版本控制工具 nvm 解决, 第二个就是 gitbook cli 工具的使用方法。


React JSX语法再实践

我们上一节封装了一个按钮,这一节我们继续理解封装的概念和了解封装组件需要注意的事项

首先我们回顾上一篇最后的代码,代码如下

const Button = ({color,text}) =>{
    return {
        type: 'button',
        props: {
            className: `btn btn - $ {
                color
            }`,
            children: {
                type: 'em',
                props: {
                    children: text,
                },
            },
        },
    };
}

我们最终调用的形式如下所示 Button({color:‘blue’, text:‘Confirm’}) 进行创建,其实我们发现 Buttonbutton 或者和 em 一样都可以 作为一个元素存在,我们可以以 Button 为基础创建特定属性的按钮,将其称为自定义类型的元素 或者可以称为组件元素。和上一节相同,我们可以采用 JSON 结构来描述它


React 组件示例

上一节,我们使用 create-react-app 生成示例程序的代码,这一节我们详细介绍下如何进行修改代码

看了一些 React 的书籍,其实 React 使用 JSX 语法,将程序的模块化和抽象做的很好。

我们新建立的程序的目录如下


如何搭建第一个 React 程序

最近在公司中的项目中是一个 React native 开发的程序,因此就有了这个文章,搭建第一个 React 的程序。

这个应该会很快写完,毕竟比较简单,这篇文章的目的还是尝试如何创建第一个React程序


[SpringBoot 指南] 连接 mysql 数据库并进行增删改查测试

落库是软件开发中的重要的事情,软件接受完成请求后,对请求的结果进行落入输入库是一件很重要的事情,而本篇文章想写出的内容就是 Springboot 连接本地的数据库的使用方案,本章文章也是入门的文章,因此篇幅可能不大。