经验教程 设计模式之软件设计原则 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 6 条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。 1 开闭原则 对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。 想要达到这样的效果,我们需要使用接口和抽象类。 因为抽象灵活性好,适应...
经验教程 设计模式之UML类图 1. 类图概述 统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部...
程序开发 50 个 Java 编程技巧 一、语法类技巧 1.1. 使用三元表达式 普通: String title; if (isMember(phone)) { title = "会员"; } else { title = "游客"; } 精简: String title = isMember(phone) ? "会员" : "游客"; 1.2.利用 fo...
程序开发 Java 彻底理解两种动态代理 在 java 中,有两种常见的动态代理实现方式,即基于接口的动态代理(JDK 动态代理)和基于类的动态代理(CGLIB 动态代理),下面就对这两种代理进行解释和举例。 1. JDK动态代理 这种动态代理实现方式是基于接口的,使用 java.lang.reflect.Proxy 类和 java.lang.reflect.InvocationHandler 接口来创建代理对象。代理对象实现了目标接口,...
瞎折腾 Docker 自建超实用的导航网址 onenav 为什么选择onenav 在之前,阿蛮君也搭建过导航网址,不过当时使用的 wordpress 搭建,并使用的一为导航主题。 但是后来发现,这个导航网站的作用并不大,因为搭建以后我并没有去管理过它,毕竟因为添加那么多链接是一件很心累的事。 此外,wordpress 搭建静态导航网址,实在是大材小用,占用内存也比较高,还需要用到 mysql。 直到发现了 onenav 这款导航,配合 baisu 主题,...
瞎折腾 Docker 搭建中继服务器 derp - 纯 IP 实现 1. 纯IP搭建关键 接之前 Docker 搭建中继服务器 derp,上次的文章需要有域名,并且申请好 ssl 证书。 原因在于 derp 服务器,在 tailscale/cmd/derper/cert.go 文件中需要验证域名,如果将验证的代码去掉,那么 derp 将不会出现证书不匹配的错误,也就是说此时可以使用 IP或者域名都不会报错。 func (m *manualCertManager) ...
瞎折腾 Docker 搭建中继服务器 derp - 需要域名并配置 ssl 了解Derp 在搭建 derp 之前,前提是你应该了解并搭建了 headscale 服务端,否则请先看文章 Docker 搭建 headscale 异地组网完整教程。 已经加入 headscale 的异地组网的客户端可以使用如下命令查看当前的 derp 服务器。 # docker 运行的客户端 docker exec -it tailscaled tailscale netcheck # 非 do...
其他分享 NAT 类型详解以及如何查看自己的 nat 类型 四种NAT类型 NAT 可以分为四种类型: 完全锥形NAT(Full Cone NAT) 完全锥形NAT最简单,也是最灵活的一种。它会为内部网络中的每个主机分配一个公共IP地址和端口号,并且允许从任何外部网络地址的任何端口与内部主机通信。一旦内部主机首次向外部主机发送数据,完全锥形NAT就会将源IP和端口映射到公共IP和端口,以便外部主机可以回复。 地址限制锥形NAT(Address Restri...
其他分享 使用 ocrmypdf 把 pdf 文件变成可搜索的工具 很多 pdf 是图片导出 pdf 文件,此时如果想要进行搜索和复制是没有办法的。接下要介绍的是 orrcmypdf 工具,这个工具能即将你的 pdf 变成可搜索可复制的工具。 开源项目地址:https://github.com/ocrmypdf/OCRmyPDF 如果你只是想简单试一下效果,将 test.pdf 修改为你的 pdf 文件名,并放在当前目录下。 # 如果文档是中文 docker ru...
wordpress Docker-compose 安装 wordpress 搭建个人博客非常详细教程 前言 有人问阿蛮君如何搭建一个这样的博客,今天就抽空写一下使用 docker-compose 搭建个人博客。这需要你有一定的 docker 或 docker-compose 基础,如果你还不了解 compose,那么可以看看这篇文章 容器编排 Docker-compose 详解。 直接使用 docker run 其实也是可以的,如果你实在不想用 compose,那么你可以让 chatgpt 帮你转...
瞎折腾 Docker 搭建开源文件同步工具 Syncthing 简介 Syncthing 是一个开源的文件同步工具,可以在不同设备之间同步文件和文件夹。它使用了点对点的方式进行同步,如果点对点连接成功则不需要通过云服务器中转,因此更加安全和私密。 Syncthing 就好比是 Onedrive,当你指定了同步哪些文件夹,它会定时检测文件夹下的文件是否有增加减少或者修改,如果有修改那么将会点对点同步到另外的客户端,当然这是你在一边配置了分享,另一边配置了同步的情...
瞎折腾 Docker 搭建开源的网盘管理工具 AList 前言 AList 是一个支持多种存储的文件列表程序,它本身的搭建非常简单,但是功能非常强大,能够支持展示各大网盘厂商的网盘内容,包括阿里云盘、百度网盘等等,同时还支持展示对象存储、webdav、ftp等等。 阿蛮君其实很久之前就知道 alist,但由于自己本身找文件的场景不是非常多,而且就算是展示网盘内容,速度也还是比较慢的,所以就没怎么用。 最近想着公司内部分享公开文件,但是直接公开 webda...