go_get代理问题
问题使用 go get 命令无法成功安装第三方库,这问题是被墙了导致的。
解决方案添加国内镜像 https://goproxy.cn/ 这个网站是七牛云支持的,七牛是最早做这方面的,所以是当前最佳的方案。
坑点一开始学习 GO 的时候在网上也找到过这个镜像方案,但是却一直出现 404 的情况。这里以一个测试库为例
1go get -u github.com/stretchr/testify
然后出现如下的问题
12go get github.com/stretchr/testify: module github.com/stretchr/testify:Get "https://goproxy.cn/github.com/stretchr/testify/@v/list": Method Not Allowed
这个问题很奇怪,所以在我刚入门的时候一直配置也无法使用国内镜像。然后找到了一种另类的方法
12set http_proxy=127.0.0.1:1080set https_proxy=127.0.0.1:1080
这样子我们就可以通过自己搭建代理的形 ...
Carbon当月第几周问题
序今天遇到一个问题,那就是使用 Carbon 包获取当月的第几周时不准确。
获取方式1Carbon::now()->weekOfMonth
结果122020-11-29 周日 第5周2020-11-30 周一 第5周
观察发现,这两个值不应该相等的。所以这里只能是查看 Carbon 里面的具体实现了。
追查源码1234case $name === 'weekOfMonth': return (int) ceil($this->day / static::DAYS_PER_WEEK);
搜索 weekOfMonth 我们发现,这个函数只是简单的使用 29 / 7 然后向上取整(ceil 函数)。所以就会存在 29 / 7 和 30 / 7 向上取整的结果都是 5 的情况。
然后我们可以看见它下面还有一个类似的函数 weekNumberInMonth 。
1234case $name === 'weekNumberInMonth': return (int) ceil(($this->day + $this- ...
项目发布中的tars_start.sh是如何生成的?
开始发布任务之后,我们都会在 bin 目录下看见 tars_start.sh 文件。但是这个文件是如何获取的呢?为了探究这个问题,我们首先下载源码到本地。
1git clone git@github.com:TarsCloud/TarsFramework.git
然后这里我使用 vscode 进行全局搜索 tars_start.sh 这个文件名。
从中我们发现其实是使用了常量 TARS_SCRIPT 这个变量,所以我们再搜索这个变量。
然后我们就会发现 save2file 函数就是保存 tars_start.sh 的脚本,然后我们可以推测这个代码中是否还存在着具体文件逻辑写入。
然后我在前面就找到了如下的代码,对比发现知道,就是从这里面进行编写的服务启动脚本。
Laravel结合tars使用感想
序使用 laravel-tars 这个扩展包做开发已经一年了,越来越觉得 laravel 结合 tars 使用非常的蹩脚。我刚接触 tars 的时候,刚好官方也进行推广使用。但是好景不长,官方文档虽然是越来越完善了,但是论坛简直是一潭死水,没啥人使用 tars 进行开发。
问题如何解决?把 tars 当做硬骨头来啃下,要看 tars 的 c++ 代码时不可能的了,毕竟这个工程量非常大,没必要将时间浪费在这里,我们通常可以相信框架的健壮性。然后就是 tarsphp 这一块必然就需要啃下,看这块的时候,我发现之前负责这块的阅文集团好像也是将 tarsphp 全部转移到 tarsjava 了。导致里面很多问题提了 issue 解决很慢,不过这块不大,慢慢的我也了解整体的代码了。
提 issue 的路上因为历史遗留的问题,我们公司使用的都是 laravel-tars 这个框架,这个是罗晓俊开源的一个项目,技术是非常牛逼的,不过因为用户量少,并且作者可能也没有投入到生产环境,在更新版本的时候会出现一些意想不到的 bug, 我也是多次给其提 issue, 也算是为 tarsphp 生态尽一份力吧。 ...
tarsweb平台搭建
环境推荐使用:Centos7
docker 环境搭建可以自己在网上找教程,文章中就不再说明了。
docker-compose 安装123sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
DaoCloud 镜像配置123curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
tars 环境搭建 docker-compose 文件12345678910111213141 ...
CRM系统设计思路
序CRM 全称 Customer Relationship Management,中文意思是客户关系管理。
为什么需要 CRM ?对于很多商家来说,怎么去获取客户是非常重要的一件事情。而且人力管理数据也是一件非常痛苦的事情,要在一堆的 Excel 里面找时间的浪费是非常大的。为了提高整体效率,CRM 系统的出现是非常必要的。
普通的 CRM 可能是服务于自身公司的。然而我接触的却是平台服务商家的层次。相对传统的模式多出了一个 平台 角色。
流程平台端通过自身渠道获取到一系列客资,然后在平台后台中对客资录入。客资录入后就可以对商家渠道进行分发。
人工指派
红包雨渠道
自动匹配
其中红包雨和自动匹配都是采用智能匹配的形式,这里会对客资和商家进行打标操作,然后匹配对应的打标数据,提高客资与商家的契合度。
然后这里面还存在着商家的权重数据这些
基础获客数
权重获客数
基础获客数是由平台运营进行人工配置数量,只有自动派发小于基础获客数才会进行,这里面还有个每天派发数限制,保证一天不会全部获客数使用完。
权重获客数是由商家在商家端做出的一系列操作,然后权重系统运算得出的分值,这个是每 ...
设计模式系列-抽象工厂模式
介绍抽象工厂模式也可以叫为产品族模式,因为它是负责一个套餐的生产。比如一个硬件代工厂要生产 Mac 的鼠标和键盘,然后又接到了华为的鼠标和键盘生成需求。因为华为和 Mac 是两个不同的公司,所以他们的产品外观,性能也有不同要求。然后将这些组合起来一起,就形成了一个产品族。
项目结构
UML 图
代码Mouse.php
1234567<?phpinterface Mouse{ public function click();}
Keyboard.php
1234567<?phpinterface Keyboard{ public function input();}
Factory.php
123456789<?phpinterface Factory{ public function createMouse(); public function createKeyboard();}
WinKeyboard.php
1234567891011<?phpclass WinKey ...
设计模式系列-工厂方法模式
介绍工厂实例推迟到子类实例化,从而避免了简单工厂模式对内部进行修改的问题。所以工厂方法模式就是让子类来做决定。
项目结构
UML 图
代码Mouse.php
1234567<?phpinterface Mouse{ public function click();}
Factory.php
1234567<?phpinterface Factory{ public function create();}
WinMouse.php
1234567891011<?phpclass WinMouse implements Mouse{ public function click() { return 'win mouse click'; }}
MacMouse.php
1234567891011<?phpclass MacMouse implements Mouse{ public function cl ...