- 博客(284)
- 资源 (30)
- 问答 (2)
- 收藏
- 关注
原创 go语言在docker环境下运行-可用于生产环境
本文介绍了一个优化后的Go应用Dockerfile构建方案,具有多阶段构建、静态编译、非root用户运行等安全特性。关键优化包括:使用国内代理加速依赖下载、固定基础镜像版本、通过ldflags减小二进制体积、添加健康检查机制,并配套.dockerignore文件避免构建污染。该方案特别适合生产环境,实现了镜像体积最小化(从约1GB降至约15MB)、构建速度优化和安全性提升三大目标,同时考虑了国内开发者的网络环境需求。
2025-08-22 10:47:19
293
原创 golang 鸭子类型 隐式接口
Go语言采用"鸭子类型"设计哲学,通过支付网关系统实例展示了接口的灵活应用。系统定义统一支付接口PaymentGateway,包含创建支付、查询、退款等方法,而支付宝、微信支付等具体实现只需满足接口方法即可自动适配。这种设计实现了业务逻辑与具体支付方式的解耦,支持运行时动态切换支付渠道,展现了Go接口隐式实现的优势。代码示例中,业务层OrderService无需关心具体支付实现,只需通过统一接口调用支付功能,提高了系统的可扩展性和维护性。
2025-08-21 08:38:47
614
原创 os标准库
本文介绍了Go语言os标准库的主要功能,包括文件权限说明和常用文件操作函数。文件权限采用Unix风格的8进制表示法(如0777),详细解释了权限位含义。主要函数包括:Create创建文件、Mkdir/MkdirAll创建单/多级目录、Remove/RemoveAll删除文件/目录、Getwd/Chdir获取/修改工作目录、TempDir获取临时目录、Rename重命名文件等。这些函数提供了跨操作系统一致的文件操作接口,遵循Unix设计风格,是Go语言中进行文件系统操作的基础工具。
2025-08-08 10:37:25
622
原创 go语言标准库学习, fmt标准输出,Time 时间,Flag,Log日志,Strconv
Go语言提供了丰富的I/O处理功能,主要包括fmt包的格式化输出和time包的时间操作。fmt包支持Print、Fprint、Sprint系列函数,分别用于标准输出、文件/网络输出和字符串生成,还提供了Errorf创建格式化错误。格式化占位符包括%v、%d、%s等,支持多种数据类型输出。time包可获取当前时间、提取年月日时分秒,并处理时间戳(Unix时间戳以秒为单位)。这些功能使Go在数据处理和时间操作方面非常强大和灵活。
2025-08-08 09:46:26
755
原创 golang context.Context 接口和 context.Background()的关系
Go语言通过接口与实现分离的设计哲学,使得context.Context接口仅定义行为方法(如Deadline、Done等),而不包含创建逻辑。context.Background()作为包级工厂函数,负责返回实现了Context接口的具体emptyCtx实例。这种设计体现了Go的核心思想:接口专注能力契约(能做什么),实现类处理具体逻辑(怎么做),创建由独立工厂函数完成。类似io.Reader等标准库接口也采用该模式,实现了使用与创建的完全解耦,增强了代码的灵活性和扩展性。
2025-08-08 09:03:57
442
原创 go goroutine chan 用法
优先选 sync.WaitGroup:在大多数业务代码中,它更简洁、高效、易维护,是同步 goroutine 的 “标准答案”。选多通道同步:当你需要强调 “通信优先” 的设计,或同步逻辑较复杂(需要通过通道传递更多状态)时,它是更优雅的选择。
2025-07-31 18:03:30
797
原创 golang -gorm 增删改查操作,事务操作
在 GORM 中保存、删除操作会默认运行在事务上, 因此在事务完成之前该事务中所作的更改是不可见的,如果您的钩子返回了任何错误,则修改将被回滚。如果您已经为模型定义了指定的方法,它会在创建、更新、查询、删除时自动被调用。如果任何回调返回错误,GORM 将停止后续的操作并回滚事务。为了避免共用db导致的一些问题,gorm提供了会话模式,通过新建session的形式,将db的操作分离,互不影响。同样的道理,不带条件不能进行删除,必须加一些条件,或者使用原生 SQL,或者启用。map创建注意,主键不会被填充。
2025-07-11 10:46:11
710
原创 virtualbox 如何虚拟机ip固定
本文简要介绍了Linux系统中配置网络的基本步骤:1. 在网络管理中新建网络配置;2. 进入Linux系统查看网卡信息(如enp0s8);3. 修改网卡配置文件(如ifcfg-enp0s8),设置静态IP并关闭IPv6;4. 主要修改DEVICE、ONBOOT、IPADDR等参数;5. 最后重启网络服务使配置生效。整个过程通过命令行操作完成,适用于静态IP的网络环境配置。
2025-06-06 11:47:12
482
原创 hyperf 事件机制
php/***/// 建议这里定义成 public 属性,以便监听器对该属性的直接使用,或者你提供该属性的 Getterphp/***/// 返回一个该监听器要监听的事件数组,可以同时监听多个事件return [// 事件触发后该监听器要执行的代码写在这里,比如该示例下的发送用户注册成功短信等// 直接访问 $event 的 user 属性获得事件触发时传递的参数值。
2025-01-14 11:36:06
646
原创 Linux 常见运营维护,从安装软件开始,到mysql,php,redis,tomcat等软件安装,配置,优化,持续更新中。。。
如果 sshd 配置为使用低于 1024 的端口(如。检查 /etc/yum.repos.d/ 目录下的仓库配置文件,确保 extras 仓库的 URL 是有效的。如果默认仓库不可用,可以替换为国内镜像站(如阿里云、腾讯云)。如果默认仓库不可用,可以替换为国内镜像站(如阿里云、腾讯云)。firewalld 是基于 iptables 的,它会动态管理 iptables 规则。如果需要精细控制和直接操作 iptables,使用 iptables。基于 iptables,是对 iptables 的封装和扩展。
2025-01-14 11:33:13
1265
原创 thinnkphp5.1和 thinkphp6以及nginx,apache 解决跨域问题
中间件:推荐使用中间件统一处理跨域。控制器:如果仅需局部跨域,可以在控制器中设置响应头。OPTIONS 请求:确保正确处理预检请求。服务器配置:可以通过 Nginx 或 Apache 配置跨域。ThinkPHP 6:提供了更简单的跨域配置方式。根据项目需求选择合适的方式即可!
2025-01-07 09:40:38
1017
原创 hyperf json-rpc
通常来说,一个服务消费者会同时消费多个服务提供者,当我们通过服务中心来发现服务提供者时, config/autoload/services.php 配置文件内就可能会重复配置很多次 registry 配置,但通常来说,我们的服务中心可能是统一的,也就意味着多个服务消费者配置都是从同样的服务中心去拉取节点信息,此时我们可以通过 PHP 变量 或 循环 等 PHP 代码来实现配置文件的生成。如果没安装请先安装相关的插件。如果没安装请先安装相关的插件。不常用,可以看下面的配置复用。这个接口与服务端是一致的。
2024-08-28 17:16:10
1167
原创 nacos 安装
使用此快速开始方法进行Nacos安装及部署,需要安装Docker和Docker Compose。如何下载不下来,可换镜像加速地址可用镜像加速地址。
2024-08-27 14:22:17
484
原创 hyperf 中间件
内每个 server 的 name 属性对应的值,该配置仅应用在该 Server 中// 数组内配置您的全局中间件,顺序根据该数组的顺序],只需将您的全局中间件配置在该文件及对应的内,即该Server下的所有请求都会应用配置的全局中间件。当我们有些中间件仅仅面向某些请求或控制器时,即可将其定义为局部中间件,可通过配置文件的方式定义或注解的方式。
2024-08-27 09:05:22
1175
原创 hyperf 配置文件
Hyperf 为您提供了分布式系统的外部化配置支持,目前支持由携程开源的 Apollo、阿里云 ACM 应用配置管理、ETCD、Nacos 以及 Zookeeper 作为配置中心的支持。关于配置中心的使用细节我们由 配置中心 章节来阐述。单独的 Server 配置需要添加在对应 servers 的 settings 当中,如 jsonrpc 协议的 TCP Server 配置启用 EOF 自动分包和设置 EOF 字符串。文件夹内的配置文件在服务启动时都会被扫描并注入到。后,程序将转入后台作为守护进程运行。
2024-08-26 13:53:58
625
原创 Python3 迭代器与生成器
迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。iter()和next()。结果1 8 hello。
2024-08-21 13:53:00
320
原创 python逻辑控制 学习
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。注意:以上的无限循环你可以使用 CTRL+C 来中断循环。Python 中的循环语句有 for 和 while。你可以使用 CTRL+C 来退出当前的无限循环。无限循环在服务器上客户端的实时请求非常有用。和php里的 switch case 类似。
2024-08-21 13:12:41
353
原创 Python3 解释器
安装完成后,我们可以将路径 /usr/local/python3/bin 添加到您的 Linux/Unix 操作系统的环境变量中,这样您就可以通过 shell 终端输入下面的命令来启动 Python3。Linux/Unix的系统上,一般默认的 python 版本为 2.x,我们可以将 python3.x 安装在 /usr/local/python3 目录中。
2024-08-20 13:44:53
221
原创 Python3 数据类型转换
整型和字符串类型运算结果会报错,输出 TypeError。Python 在这种情况下无法使用隐式转换。Python 会将较小的数据类型转换为较大的数据类型,以避免数据丢失。但是,Python 为这些类型的情况提供了一种解决方案,称为显式转换。在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。等预定义函数来执行显式类型转换。
2024-08-20 13:39:22
433
原创 hyperf 协程上下文
由于同一个进程内协程间是内存共享的,但协程的执行/切换是非顺序的,也就意味着我们很难掌控当前的协程是哪一个(事实上可以,但通常没人这么干),所以我们需要在发生协程切换时能够同时切换对应的上下文。以hyperf 2.2版本为例。
2024-08-20 09:56:56
631
原创 python3 pip install psutil
也可能是访问国外服务器缓慢,可以使用国内镜像。可能是你的python版本和psutil 不兼容。
2024-08-19 15:57:04
478
原创 Hyperf 安装,使用,
config/autoload/exceptions.php 文件phpreturn [],],php/***//***/// 判断被捕获到的异常是希望被捕获的异常// 格式化输出// 阻止异常冒泡// 交给下一个异常处理器/***/php /**phpreturn [// http 对应 config/autoload/server.php 内每个 server 的 name 属性对应的值,该配置仅应用在该 Server 中。
2024-08-16 16:28:34
1672
原创 fastadmin实用技巧
自由度更大些} else {// 验证码加密密钥// 验证码字符集合// 验证码过期时间(s)// 使用中文验证码。
2024-08-13 16:17:42
1124
原创 Magento2 常用命令以及技巧
Magento2 带有一个命令行工具,在windows下,用管理员权限打开MS-DOS命令提示符,然后cd到Magento根目录,运行下面命令,就可。
2024-07-31 10:46:36
982
原创 Magento2安装更换主题
下载您选择的 Magento 2 主题,该主题将以压缩形式提供。下载主题后,请解压下载的主题,您将得到两个文件夹,即 App 和 Pub。解压后将 App 和 Pub 文件夹上传到 Magento 2 商店的根目录执行下面命令。
2024-07-30 15:41:52
323
原创 compser 镜像,常用命令,避坑,查看下载细节找到install或updata被卡原因
如果能正常访问这个网站,则不需要找国内镜像如果想下的更快点,可以找国内镜像。
2024-07-12 10:58:55
389
商品栏目分类,京东栏目分类,拼多多栏目分类
2018-09-04
js jquery 图片滑动 验证
2020-05-09
语言跟读小程序
2018-09-04
mysql笔记,mysql优化图解
2019-05-17
通路微信三级分销系
2018-03-29
把php生成静态(html)页面程序类
2018-08-13
php多功能的图片处理类,php上传php裁剪php水印php多图
2018-09-12
php资源 curl请求类分装,get,post,等分装
2018-08-13
大气的微网站,
2014-08-12
android List 转json 问题
2018-09-28
JQUERY 树形菜单问题,就是每次刷新后菜单就缩回了
2014-03-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人