自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zsd

记录一些 自己看到的研究过的经验记录

  • 博客(59)
  • 收藏
  • 关注

原创 Golang 自定义时间结构体支持Json&Gorm

因为时区等问题,很多项目需要自定义时区和时间格式。还有需要自定义输出显示。

2024-03-12 18:10:04 643

原创 Protobuf 语法

protobuf 文件以.proto做为文件后缀,除结构定义外的语句以分号结尾结构定义可以包含:message、service、enumrpc方法定义结尾的分号可有可无Message命名采用驼峰命名方式。

2023-11-14 14:50:03 133

原创 想喝一点汤 - 如何看懂新闻联播

埋头苦干、辛苦劳作是挣不到钱的,要去离钱近的地方。

2023-10-30 17:39:22 219

原创 RedisSearch 标签搜索 中文支持

公司需要做一个推荐系统,最后确定下来做一个初版,基于内容的推荐算法,使用相似度算法(余弦相识度)算法,目前Redis扩展 RedisSearch支持了 FLAT 和 HNSW 两种方式。HNSW 比较合适,但是因为目前我们使用 golang 语言,没有合适的框架帮助我们生产商品数据,以及时间等原因第一期暂时不适用。最终选择了 Tag 搜索来满足0到1的实现。

2023-07-20 15:35:05 336

原创 项目开发计划模板

软件开发计划。

2023-07-10 16:23:39 517

原创 传统推荐算法入门

小厂推荐算法采用入门推荐。

2023-07-07 10:59:24 100

原创 增广贤文 - 原文

增广贤文前人俗语,言浅理深。 补遗增广,集成书文。世上无难事,只怕不专心。成人不自在,自在不成人;金凭火炼方知色,与人交财便知心。乞丐无粮,懒惰而成。勤俭为无价之宝,节粮乃众妙之门。省事俭用,免得求人。量大祸不在,机深祸亦深。善为至宝深深用,心作良田世世耕。群居防口,独坐防心。体无病为富贵,身平安莫怨贫。败家子弟挥金如土,贫家子弟积土成金。富贵非关天地,祸福不是鬼神。安分贫一时,本分终不贫。不拜父母拜干亲,弟兄不和结外人。人过留名,雁过留声。择子莫择父,择亲莫择邻。爱妻之

2023-06-29 14:49:16 291

原创 Git 变基多 commit 合并成一个

开发过程中我们会不断的提交 commit , 一个需求可能会有几十上百个commit, 当我们把这些 commit 合并到 master 分支时,会看到整个开发线条凌乱不堪。为了让合并线条更加优雅,这里讨论一下变基命令。需求全部测试完毕后,发布上线前,处理好开发分支,然后提交合并请求。Notice::如果处理途中出现冲突,需要复测代码。采用变基命令将最新的代码调整至 master 上。

2023-06-29 14:48:32 145

原创 代码中坏味道

代码中坏味道*DuplicatedCode(重复代码)*LongMethod(过长函数)*LargeClass(过大的类)*LongParameterList(过长参数列)*DivergentChange(发散式变化)*ShotgunSurgery(霰弹式修改)*FeatureEnvy(依恋情结)*DataClumps(数据泥团)*PrimitiveObsession(基本类型偏执)*SwitchStatements(switch惊悚现身)*ParallelInheritanceHie

2023-06-29 14:48:19 59

原创 消息AMQP之RabbitMq

背景做新项目需要使用到异步过程,这里需要使用到消息队列,调研了下市面上的队列服务,目前考虑使用 RabbitMq队列。至于为啥选RabbitMq,是因为市场占有率高,表现比较稳定,社区活跃程度高,相对完善的文档和资料。技术选择类型值语言PHP >= 7.2框架swoft队列RabbitMq数据库Mysql前言 AMQP概要:...

2023-06-29 14:46:56 71

原创 Goland 开发配置规范

goland 开发设置

2023-05-24 13:47:06 320

原创 RPC协议深入理解

随着业务的扩张,系统的架构也从单体应用迈向微服务进化。微服务之间的通信普遍采用 RPC 协议。本文重点理解 RPC协议。

2023-05-16 10:56:32 444

原创 Mysql delete where 子查询

在delete的时候,发现按照select的语法使用子查询无法删除数据。

2023-05-12 10:40:57 810

原创 golang 开发注释规范

golang注释规范

2023-05-09 14:26:49 362

转载 Sublime Text 基本操作与多选变更

Ctrl + Enter在当前行下面新增一行然后跳至该行Ctrl + Shift + Enter在当前行上面增加一行并跳至该行Ctrl + ←/→进行逐词移动Ctrl + Shift + ←/→进行逐词选择Ctrl + ↑/↓移动当前显示区域Ctrl + Shift + ↑/↓移动当前行。

2023-04-27 14:54:41 553

原创 开源协议选择

图片来源:阮一峰:如何选择开源许可证?

2023-03-25 16:52:31 31

原创 入坑 Godot发量还保得住嘛 ?

作为一个老游戏玩家,也是一个老程序员了,突然有一天我想不开了,准备自己开发一款游戏。

2023-03-25 16:36:36 67

原创 golang性能分析 pprof

golang 性能分析

2022-10-09 18:30:48 71

原创 如何写出好的文档

如何更好的写文档本文档的目的是为了表述项目事项,方便他人阅读。从文本格式、句子、风格、中英文、段落等挑出八条约定。(1)全角中文字符与半角英文字符之间,应有一个半角空格。错误:本文介绍如何快速启动Windows系统。正确:本文介绍如何快速启动 Windows 系统。(2)避免使用长句,符号分隔的20字内,单一句话尽量不要超过100字。错误:本产品适用于从由一台服务器进行动作控制的单一节点结构到由多台服务器进行动作控制的并行处理程序结构等多种体系结构。正确:本产品适用于多种体系结构。无论是由一台

2022-07-29 18:12:24 473

原创 API 设计以及思考

背景当一个系统运行一段时间以后,随着业务的变化,对外提供的 API 越来越多。 那么什么样的 API 是好的设计,什么样的 API 需要下掉或者重构掉。这篇文章讨论的问题:API 应该尽量满足哪些规范。如何设计一个 API。如何重构一个不好的 API。API 四个理念在这里我参考一些资料和文章,试图总结一些好的 API 所具备的共性。清晰API 是用于程序之间的交互,对外提供服务。API 需要清晰表述提供了哪些能力,如何使用这些能力。不要出现歧义以及难以理解的情况。 使用者与维护者有

2022-05-27 17:59:03 352

原创 坏的代码25种味道

Duplicated Code (重复代码)重复代码就是不同地点,有着相同的程序结构。一般是因为需求迭代比较快,开发小伙伴担心影响已有功能,就复制粘贴造成的。重复代码很难维护的,如果你要修改其中一段的代码逻辑,就需要修改多次,很可能出现遗漏的情况。如何优化重复代码呢?分三种情况讨论:同一个类的两个函数含有相同的表达式class A { public void method1() { doSomething1 doSomething2 doSom

2022-05-12 16:14:16 168

原创 PHP OPcache 包文件不被导入问题

背景项目重构后, 新项目使用更新的laravel框架,和老版本对比 单服务器 QPS 降低了4 倍。排查php配置,nginx配置, OPcache配置 都表现正常, 排除其他原因最终怀疑到 OPcache头上。通过 CacheTool 这一非入侵式的工具,为后续的排查带来质的飞越。最终查到原因。原因开启 OPcache 后,运营在非项目包拉去后的文件时间,被设置成了 未来的一个时间,导致包未被加载到 OPcache中。参考文献折磨人的 OPCache...

2022-04-14 16:57:44 2018

原创 Docker 中进行composer 操作报错内存不够

背景需要对lumen框架进行composer移除包操作。报错信息docker composer remove Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 byt解决办法/usr/local/bin/php -d memory_limit=-1 /usr/local/sbin/composer remove xxx解释:php -d memory_limit

2021-09-18 09:51:43 295

原创 Mysql 主从复制数据库 实现 读写分离

本着学习的精神在 windows 7 上实现 mysql-5.6.10 的主从复制数据库功能。一 主从数据库概念首先 看一个 图 :在 Master 数据库的操作,在执行之后,都会写入 Binary log 日志系统中大致描述一下过程:从服务器的IO线程从主服务器获取二进制日志,并在本地保存为中继日志,然后通过SQL线程来在从上执行中继日志中的内容,从而使从库和主库

2021-07-05 14:03:09 65

原创 PHP7的 Throwable

对于php的warning和Notice 错误,在php7以前等错误信息无法被try catch 捕获。一、异常与错误的概述PHP中什么是异常:程序在运行中出现不符合预期的情况,允许发生(你也不想让他出现不正常的情况)但他是一种不正常的情况,按照我们的正常逻辑本不该出的错误,但仍然会出现的错误,属于逻辑和业务流程的错误,而不是编译或者语法上的错误。PHP中什么是错误:属于php脚本自身的...

2021-07-05 14:02:01 494

原创 swoole框架Swoft初探

查看php扩展版本php --ri Show configuration for extension .例如查看 swoole版本➜ note-swoole git:(dev) ✗ php --ri swooleswooleSwoole => enabledAuthor => Swoole Team <[email protected]>...

2021-07-05 14:00:15 153

原创 Centos Rabbitmq 配置systemctl启动

需求在测试环境安装Rabbitmq后,因为一些原因导致需要重启服务器。所以需要配置rabbitmq 在systemctl下启动。##实施编辑service文件vim /lib/systemd/system/rabbitmq.service输入[Unit]Description=rabbitmqAfter=network.target [Service]Type=forkingExecStart=/usr/local/rabbitmq_server-3.8.3/sbin/

2021-07-05 13:58:50 4415

原创 PHP 性能分析平台 Xhgui

背景生产环境可以监控到哪个接口比较慢,但是想要知道具体那里慢,这个就需要今天的猪脚 Xhgui 性能分析平台了。介绍XHProf 分析数据的图形界面,可以将结果存储在 MongoDB 或 PDO 数据库中。应用程序被分析并将分析数据传输到 XHGui,XHGui 获取该信息,将其保存在 MongoDB(或 PDO 数据库)中,并提供一个方便的 GUI 来使用它。安装参考: perftools/xhgui文档参考: perftools/xhgui...

2021-05-31 15:14:03 302

原创 PHP代码注解规范 - phpDoc

PHP代码注解规范背景在日常开发中,经常有小伙伴不注解,或者注解内容不规范,在这里统一列一下phpDoc的注解规范。规范@api表示这是一个提供给第三方使用的 API 接口@author作者格式 @author [名称] [<邮箱>]例如 @author mokeyjay <[email protected]>@copyright版权声明。例如很多网站底部都有格式 @copyright [描述]例如 @copyright 1949-2016 China@d

2021-03-05 10:05:22 285 1

原创 Centos yum 安装 mysql8以及安全策略

需求Centos yum 安装 mysql8 需要用到的命令内容wget http://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpmyum -y install mysql80-community-release-el8-1.noarch.rpmyum module disable mysqlyum install mysql-community-serversystemctl status mysqld.s

2020-12-07 16:59:23 116

转载 Go Modules详解

Go modules 是 Go 语言中正式官宣的项目依赖解决方案,Go modules(前身为vgo)于 Go1.11 正式发布,在 Go1.14 已经准备好,并且可以用在生产上(ready for production)了,Go 官方也鼓励所有用户从其他依赖项管理工具迁移到 Go modules。而 Go1.14,在今天终于正式发布,Go 官方亲自 “喊” 你来用:因此在今天这篇文章中,我将给大家带来 Go modules 的 “终极入门”,欢迎大家一起共同探讨。什么是 Go ModulesGo

2020-11-25 10:32:49 12362 1

原创 ES IK分词器 - 停用词

配置如果你使用ik分词器,其实都为你解决了.但是它默认设置的停用词都是英文的,比如AND,OR等等配置中文停用词your/path/elasticsearch/config/analysis-ik打开它发现会有stopword.dic和extra_stopword.dic, stopword.dic里面的都为配置的英文停用词,而extra_stopword.dic里面的都为配置的中文停用词配置IKAnalyzer.cfg.xml中给下面这行加上 extra_stopword.dic&lt

2020-11-17 17:18:58 3350

原创 数据库 - 关系理论 - 基础关系模式设计(一)

案例:冗余设计带来的问题:可以明显看出,这不是一个好的关系模式。

2020-11-02 19:33:56 227

原创 Mysql update join 单表批量更新

mysql 的批量插入比较便利,批量更新就有点难受了。这里记录一下,使用update join 对mysql单表的批量更新操作。单表更新案例更具表中 content_id 和 outeach_id 字段改变 sort的值,(不要问为啥不用ID,业务需要。)如下图。有一招 update joinUPDATE `表A` a JOIN (SELECT 1 AS content_id, 1 AS outreach_id, 1 AS sortUNION SELECT 1 AS content_.

2020-10-15 15:21:04 1230 1

原创 linux 设置文件可执行权限等好用的命令

linux 文件可执行权限设置,文件同步。

2020-10-09 17:05:02 280 1

原创 Git clone 指定tag代码

背景再使用git的时候,我比较喜欢直接用命令的方式操作。这里记录一下常用的命令,方便查找命令拉去指定tag的项目git clone --branch [tags标签] [git地址]...

2020-09-24 14:36:14 46932

原创 Docker compose 安装 xxl-job

背景公司需要安装 xxl-job ,在开发测试环境使用docker安装。Dockerversion: '3'services: xxl-job: image: xuxueli/xxl-job-admin:2.2.0 container_name: xxl-job environment: PARAMS: "--spring.datasource.url=jdbc:mysql://{数据库IP}:3306/xxl_job?useUnicode=true&am

2020-09-23 16:54:57 1818

原创 Hyperf框架实现Rabbitmq延迟队列

Hyperf框架实现Rabbitmq延迟队列Hyperf框架官方支持了Amqp,但是只是具备了基础发消息和接受消息。对于我们经常使用的延迟队列却不支持,这让人感到痛苦。设计延迟队列由于Rabbitmq默认没有支持延迟队列,需要使用官方的TTL和死信队列来实现我们的延迟队列功能.实现原理:1、rabbitmq 可以针对 Queue和Message 设置 x-message-ttl 来控制消息的生存时间,如果超时,消息变为 dead letter2、rabbitmq 的queue 可以配置

2020-07-02 11:44:01 4333 12

原创 腾讯云 Centos 搭建PHP7.3测试环境

需求需要安装测试环境,这里记录一下yum update -ymkdir /usr/local/services -pvmkdir /usr/local/src -pvyum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel ...

2020-04-14 11:27:33 242

原创 编码工程规范

背景多个小伙伴合作开发,因为个人习惯,对工程的理解不同,有的人习惯controller写大量的业务逻辑,有的人习惯在service中之间调用远程服务,这样就导致了整个项目混乱不堪,难以维护。工程规约开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行 网关安全控制、流量控制等。终端显示层:各个端的模板渲染并执行显示的层。当前主要...

2020-02-05 10:52:31 154

空空如也

空空如也

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

TA关注的人

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