摘要: Golang开发 1.GO语言基础 [日常] 搭建golang开发环境 [日常] Go语言圣经前言 [日常] Go语言圣经-声明,变量,赋值,类型,包和文件习题 [日常] Go语言圣经--作用域,基础数据类型,整型 [日常] Go语言圣经--浮点数习题 [日常] Go语言圣经--复数,布尔值,字符串 阅读全文
posted @ 2020-12-17 11:29 陶士涵 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 当有复杂sql语句的时候,我们需要执行原生sql语句,这样更加方便 比如下面的这条sql语句 //查询每天条数 type EveryDayNum struct { Day string `json:"day"` Num int64 `json:"num"` } func CountVisitorsE 阅读全文
posted @ 2021-10-17 15:30 陶士涵 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 当有统计每天的数据条数的时候,可以直接一句sql语句实现 比如字段updated_at是时间日期格式,那么DATE_FORMAT(updated_at,'%Y-%m-%d') as day 配合group by day 就能实现 select DATE_FORMAT(updated_at,'%Y-% 阅读全文
posted @ 2021-10-17 15:25 陶士涵 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 当使用mysql的时候 我们有时候需要进行特定的in查询,这个时候可能需要先把想要in的数据,拼接成一条逗号分割的数据 类似这样 select * from admin where id in (1,2,3) 这个时候可以通过sql语句操作一下,取出拼接好的1,2,3 select GROUP_CO 阅读全文
posted @ 2021-10-16 16:15 陶士涵 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 当有数据导出需求的时候 我们直接写sql语句就能实现 但是有时候mysql中存储的数值太大了,在excel里面会变成科学计数法,如果超过了64位的话,那么还会丢失精度 需要在sql语句中concat 拼接一个\t 例如这样的sql里的 concat('\t',a.ding_userid), sele 阅读全文
posted @ 2021-10-16 11:49 陶士涵 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 不需要安装输入法 直接按 win 键+ .点 或者 win键+ ;分号 你get了吗✔ 阅读全文
posted @ 2021-10-14 10:05 陶士涵 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 在好几个月之前申请了下GOFLY在线客服系统的软件著作权 现在正式发证书了😎✌ 阅读全文
posted @ 2021-10-13 13:11 陶士涵 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 经常在代码中我们需要实现数组排序,或者数组过滤,或者数组查找类似查找数据库一样的用法 可以使用collect $items=[ ["num"=>17,"status"=>0,"grade"=>5], ["num"=>17,"status"=>2,"grade"=>4], ["num"=>7,"sta 阅读全文
posted @ 2021-10-13 09:57 陶士涵 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 这是因为数据库的超时时间比较短,连接被mysql服务关闭了 程序还在使用旧连接查询数据库 比如gorm 我们程序里设置下时间旧可以了,时间比超时时间短一些 DB.DB().SetConnMaxLifetime(59 * time.Second) DB, err = gorm.Open("mysql" 阅读全文
posted @ 2021-10-10 12:18 陶士涵 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 有时候我项目里需要把时间格式化为xx秒前、xx分钟前、xx小时前等形式 可以使用下面这个函数 /** * 人性化时间 * @param {Object} timestamp */ function beautifyTime(timestamp){ var mistiming = Math.round 阅读全文
posted @ 2021-10-05 16:58 陶士涵 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 在观察网站的访问者ua信息的时候 看到有很多AhrefsBot Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/) 官方网站的介绍总结就是一个对于我们国内用户无用的蜘蛛 什么是AhrefsBot? AhrefsBot 阅读全文
posted @ 2021-10-04 17:52 陶士涵 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 公司多个项目公用一个redis 我这边死活获取不到数据 $selfInfo = Redis::connection('ucs')->hget( 'EMPL_BASEINFO', "5580120537497600" ); var_dump($selfInfo); 使用tcpdump查看端口的数据,才 阅读全文
posted @ 2021-09-28 17:55 陶士涵 阅读(7) 评论(0) 推荐(0) 编辑
摘要: os.Getwd返回的是当前路径 os.Executable返回的是临时文件的绝对路径 package tools import ( "log" "os" "testing" ) func TestOs(t *testing.T) { log.Println(os.Getwd()) log.Prin 阅读全文
posted @ 2021-09-28 10:16 陶士涵 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 框架自身会给我们维护create_at和update_at字段 如果不存在这俩字段,更新数据库会报错 现在可以这样取消掉框架的维护 在model里面 public $timestamps = false; 阅读全文
posted @ 2021-09-27 19:26 陶士涵 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 在go.mod文件里,有时候会出现// indirect ,这个意思是间接依赖 出现这个有两个原因 1.直接依赖为开启Module A的go.mod require ( B vx.x.x B1 vx.x.x // indirect B2 vx.x.x // indirect ) 2.直接依赖的go. 阅读全文
posted @ 2021-09-25 10:12 陶士涵 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 这句话的意思是 从隐式的引入模块导入的 比如我使用某个第三方包,这个第三方包里面包含了validator 包 我在代码里直接使用了这个验证包,但是在go.mod里没有引入,代码里ide是不会报错的,因为能找到代码库,但是运行的时候会报错 这个时候只需要显示的引入一下就可以了 比如提示的go get 阅读全文
posted @ 2021-09-25 10:04 陶士涵 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 这是因为字段是int类型的,但是传递的默认值是'' 空字符串 应该传递个数字的默认值 解决 SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 阅读全文
posted @ 2021-09-24 11:32 陶士涵 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 扩展下载地址:http://pecl.php.net/package/rdkafka 根据自己的版本选择,比如我是php7.4.3nts ,windows系统 一定要注意 把librdkafka.dll 放入php.exe所在的目录 把php_rdkafka.dll 放入ext目录 就可以按照php 阅读全文
posted @ 2021-09-18 18:29 陶士涵 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 当连接数据库报,too many connection的时候 大概是数据库的连接数被占满了 检查哪些服务在长连接占满数据库的连接数,关掉应该就可以了 查看数据库的最大连接数 show variables like '%max_connection%'; 查看所有用户的当前连接 show full p 阅读全文
posted @ 2021-09-16 20:02 陶士涵 阅读(15) 评论(0) 推荐(0) 编辑
摘要: laravel 验证请求参数,有自带的规则,如果有特殊的规则,可以自己写正则验证逻辑 比如验证手机号 在控制器文件中可以直接这样编写 默认情况下,如果验证通过,你的代码会继续正常运行。如果验证失败,则会抛出异常,并自动将对应的错误响应返回给用户。 在传统 HTTP 请求下,会生成一个重定向响应, 而 阅读全文
posted @ 2021-09-16 16:27 陶士涵 阅读(10) 评论(0) 推荐(0) 编辑
摘要: kafka官方介绍是分布式的流处理平台,理解上比较难。先简单理解为一种分布式的支持发布订阅的高可用消息队列 kafka通过topic(主题) 对数据分类,每条记录包含:一个key,一个value,一个时间戳 核心概念:一串流的记录topic,一个topic可以有一个或者多个消费者来订阅 topic数 阅读全文
posted @ 2021-09-16 10:28 陶士涵 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 优质奶源地: 南北纬40-50度是优质奶源地,欧洲,新西兰,荷兰,爱尔兰,瑞士,德国,法国,阿根廷,中国黑龙江,中国内蒙古 DHA,ARA含量,高 乳铁蛋白含量,高 含有OPO配方,高 奶粉成分: 三大营养素,蛋白质,脂肪,碳水化合物,必须的维生素和矿物质 高端奶粉和低端奶粉的最主要的区别是:是否有 阅读全文
posted @ 2021-09-15 10:37 陶士涵 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 当使用uniapp开发完代码后 可以这样打包成原生安卓apk 安卓包名位置: 使用自有证书,可以在这个网址生成一个自己的证书,并且下载下来 证书私钥密码,证书文件,都可以获取得到 https://www.yunedit.com/ 阅读全文
posted @ 2021-09-11 14:37 陶士涵 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 当在进行json的序列化时经常用到,结构体标签对于go本身来说就是注释 但是可以通过反射获取到标签的内容,所以很多包都可以有自己的作用 具体原理就是反射实现 package v2 type VisitorLoginForm struct { VisitorId string `form:"visit 阅读全文
posted @ 2021-09-10 16:41 陶士涵 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 当开发登录验证系统的时候 现在基本都是使用的jwt来实现的权限校验 这时候就涉及到了jwt的加密和解密 可以参考下面的使用方法 tools/jwt.go package tools import ( "github.com/dgrijalva/jwt-go" "time" ) const SECRE 阅读全文
posted @ 2021-09-07 17:13 陶士涵 阅读(26) 评论(0) 推荐(0) 编辑
摘要: gin框架有获取并验证post的数据的功能 可以参考下面这段代码,兼容form数据和json数据 type RegisterForm struct { Username string `form:"username" json:"username" uri:"username" xml:"usern 阅读全文
posted @ 2021-09-06 17:26 陶士涵 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 当需要接口返回错误信息的时候 尽量不要硬编码在接口返回对方 可以封装一个错误码类 类似下面这样 演示 types/api_code.go package types type Codes struct { SUCCESS uint FAILED uint CnMessage map[uint]str 阅读全文
posted @ 2021-09-06 15:50 陶士涵 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 在线客服系统要解决什么问题? 企业的真正需求并不是找一个聊天工具挂在那里,可以和用户聊天就够了 最终的目的是让客户沉淀下来,转变为付费用户 GOFLY客服能解决的问题是什么? GOFLY可以全方位收集用户信息,最大程度的获取用户需求点,知道在访问自己的产品的是哪些人 知道访客的更多信息,可以更精准的 阅读全文
posted @ 2021-09-06 09:36 陶士涵 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 方法声明就是在方法名前面增加一个类型声明 这样这个方法就是这个类型的成员方法了 不止是可以用于struct ,任何type定义的类型都可以增加成员方法 例如下面这个给封装的[]int 切片类型增加的方法 type Ages []int func (a *Ages) AgeAdd(num int) { 阅读全文
posted @ 2021-09-05 15:55 陶士涵 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 经常需要手动增加、删除、修改mysql表的字段类型,可以参考下面的例子: 增加多个字段: ALTER TABLE `test11` ADD COLUMN ( `ucid` bigint(20) NOT NULL DEFAULT 0 COMMENT '线索ucid', `clue_type` int( 阅读全文
posted @ 2021-09-04 16:50 陶士涵 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 经常使用的正则,验证是否是手机号或者邮箱 \w的意思是 [a-zA-Z0-9_] 这几个字符 +意思是1次到多次 *意思是0次到多次 ? 意思是0次到1次 <?php class Helper{ /** * 验证手机号 * @param $mobile * @return bool */ publi 阅读全文
posted @ 2021-09-04 16:00 陶士涵 阅读(34) 评论(0) 推荐(0) 编辑
摘要: laravel默认的异常处理是展示出异常的界面,不能够完善的捕获异常并响应为json格式数据 需要修改下以下文件 app/Exceptions/Handler.php <?php namespace App\Exceptions; use App\Lib\ApiHelper\ApiCode; use 阅读全文
posted @ 2021-09-04 10:47 陶士涵 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 之前有个业务,每分钟执行crontab ,会每天自动记录日志,但是日志的属主是root 这个时候fpm的www用户就会写入日志失败 crontab -e是普通的编辑增加一个crontab crontab -u www -e 这样编辑的crontab就是以www用户执行的 crontab -l -u 阅读全文
posted @ 2021-08-31 11:33 陶士涵 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 在做开发的时候,要求传递的参数是int类型 linux下php7.4.4: var_dump(strtotime('2021-01-01'));$a=strtotime('2021-01-01') * 1000;var_dump($a); 相乘后变为了float类型 windows下php 7.4. 阅读全文
posted @ 2021-08-28 12:35 陶士涵 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 当ubuntu使用包安装存在多个版本的php的时候 如果是命令行运行,默认会编译在 /usr/bin/php /usr/bin/php7.2 /usr/bin/php7.4 /usr/bin/php8.0 因此默认的php命令会使用 /usr/bin/php 如果不想改变命令名字,可以直接把别的版本 阅读全文
posted @ 2021-08-28 10:29 陶士涵 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 当我们使用新的laravel框架的时候 复制出来了新的.env文件 但是我们没有生成一个随机key,这个时候就会报这个错误 执行 php artisan key:generate .env文件中的APP_KEY就会生成了 例如下面这样 APP_NAME=Laravel APP_ENV=local A 阅读全文
posted @ 2021-08-28 09:22 陶士涵 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 当在使用很多依赖包的时候,会有最低php版本要求 如果在安装的时候遇到需要php > 7.4 那么就需要升级一下php版本 windows下如果使用的集成环境,那么就可以直接通过集成环境里面安装php 7.4以上版本 linux下可以使用包安装命令通过设置新的仓库源来升级php,或者也是使用宝塔等类 阅读全文
posted @ 2021-08-28 09:11 陶士涵 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 当多人开发的时候 如果想知道两个分支有啥差异 git diff 分支1 分支2 --stat -标记的是 左边有,右边没有的 +-标记的是两边有修改的 查看某个文件的差异 git diff 分支1 分支2 文件路径 阅读全文
posted @ 2021-08-26 19:14 陶士涵 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 当使用很多框架的时候,不知道返回的对象是哪个类型,可以使用这个函数 比如我这样用可以得到 Illuminate\Database\Eloquent\Builder 阅读全文
posted @ 2021-08-26 14:41 陶士涵 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 在使用laravel框架的时候 php artisan vendor:publish 可以把对应的服务提供者的资源文件,复制到指定的路径下 一般用法是: 比如overtrue/laravel-wechat php artisan vendor:publish --provider="Overtrue 阅读全文
posted @ 2021-08-26 10:04 陶士涵 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 当远程仓库很多分支已经删除了以后 使用git branch -a ,在本地仍然能看到那些分支 使用 git remote show origin 可以查看远程的现在分支,以及和本地的对应关系 使用 git remote prune origin 可以清理掉远程已经删除的分支在本地的缓存 阅读全文
posted @ 2021-08-24 18:07 陶士涵 阅读(12) 评论(0) 推荐(0) 编辑