- 博客(33)
- 收藏
- 关注
原创 短信平台技术分享
去年工作需要要写一个短信平台,开发完成后一直没有整理分享,趁着现在还有一些余温,把大概的思路和过程分享出来(不具体贴代码,只发设计模式,开发思路,流程图等信息),中间会用到一些设计模式以及熔断的一些知识。希望可以提供大家一些想法或收获。先来说一下短信平台开发前后的状况开发前的状况:项目中多个地方需要发送短信,并且各自开发,导致一个项目中出现N多个相同的SDK和冗余代码;维护成本过高,如果...
2020-09-08 21:01:44 1412 1
原创 依赖注入+demo案例
的核心思想是将对象的依赖关系从类内部移到外部管理。也就是说,不是由类自己来创建它所依赖的对象,而是将这些依赖通过构造函数参数、方法参数或属性设置的方式传递给它。这样,类不再负责依赖的创建和管理,而是依赖于外部注入,这样可以更方便地替换或修改依赖对象。
2024-10-22 11:18:57 240
原创 如何晋升答辩
晋升答辩竞聘 是让所有人对你的未来有长远的信心竞聘 = 肯定现有战场 + 我的独特打法 + 我的充分准备版本一: 在前任领导的带领下,本部门业务发展良好,已经临近一个突破口。我如果竞聘成功,希望能在新媒体营销上更加发力。 为此我已经匿名做了一个抖音号,初步有了手感,现在已经有了三十万粉丝shen版本二: 此前领导曾多次带领我们研讨某个发展方向。我用心体会,觉得可以落实为这么一些具体工作。为此,我做的准备如下。竞聘避坑一: 不要说前任的坏处,要肯定现有战场。(是为了胜任这个职位,而不
2021-07-18 10:56:08 241
原创 如何汇报提案
准备工作-》向老板或客户汇报-〉获得认可和批准-》推进下一步计划请示VS演习请示:我铺全信息,领导来决策,责任是领导的演习:我给领导看看演习结果,责任是我的降低对方的思考成本和决策成本提案 = 融目标 + 抢进度 + 提诉求改变双方心态融目标把双方的目标融合起来,可以提前做出一些可以直观看到摸到的东西,或者数据领导的目标是把事情做成,但不止是把事做成,可能还有别的维度怎么才能知道领导/客户心理的目标?穿越大法项目太复杂,汇报时间长,主线容易跑,怎么办?不要指望一次解决所有问题,可
2021-07-18 10:55:31 358
原创 如何即兴发言
精彩的即兴发言不是毫无准备,而是可能没准备,但一定有意识的发言没准备 有意识管理注意力 大脑要运转 时刻思考是否和我有关系 认真做笔记没有准备好的时候,需要争取时间 ,比如说:信息量有点大,我先消化一下,让这两位先说大场合卡壳,那就笑场合多练几次比如说:年会上发言不敢,可以在同学会上主动提酒杯,说个祝酒辞,强迫自己反复练习即兴发言=万能开头+谈感受/谈行动第一类万能开头:自我介绍初见破冰|1对1 交互场景 信息简单即兴发言|1对多 吸引注意 别人记住、尊重我可以说一些自己的小隐私(没上过
2021-07-18 10:54:47 188
原创 如何提意见
世界上没有提意见,有的只是提建议提意见 潜台词是:你不对提建议 潜台词是:希望你更好原则:先发展关系,再解决问题提意见=事前征求同意+定义双方关系+提供具体建议征求同意第一步:事前打草稿打草稿的目的是为了搞清楚三件事:事实是什么情况,我们搞清楚了吗情绪要明确目标,抓住核心目标征求同意第二步:问他想听吗否定信号:对方回避,回避当面沟通把场合升级如果对方不想听,可以改用温和的或泛泛的方式来说,或者就别说了,说了也大概率没用提醒:控制时间和场合私下提,发现问题的第一时间提
2021-07-18 10:53:50 235
原创 如何说服一个人
说服 != 花言巧语、威逼利诱(忽悠)最成功的说服是不说服说服=自己说话有分量+凿穿对方的心理防线说服=把“你的目标”变成“他的目标的一部分”怎么样才能说话有分量强准备用超强的准备所形成的心理优势和信息优势去碾压对方当我们不得不去说服领导的时候,应该怎么办那?一针捅破天对高级别的人,研究大方向,从大方向的某一点进行入手,研究透彻后,用思考后的方案来说服对基层的人,需要充分展现着尊重,最好定一个会议室最佳实践别人怎么干的?怎么干成的?举例那些最成功的公司或者人或者事,来加
2021-07-18 10:52:53 231
原创 展现自我的沟通
即兴发言精彩的即兴发言不是毫无准备,而是可能没准备,但一定有意识的发言没准备 有意识管理注意力 大脑要运转 时刻思考是否和我有关系 认真做笔记没有准备好的时候,需要争取时间 ,比如说:信息量有点大,我先消化一下,让这两位先说大场合卡壳,那就笑场合多练几次比如说:年会上发言不敢,可以在同学会上主动提酒杯,说个祝酒辞,强迫自己反复练习即兴发言=万能开头+谈感受/谈行动第一类万能开头:自我介绍初见破冰|1对1 交互场景 信息简单即兴发言|1对多 吸引注意 别人记住、尊重我可以说一些自己的小隐
2021-07-14 21:00:19 169
原创 面对艰难沟通,怎么样积极回应
面对艰难沟通,怎么样积极回应目标:只有我解决不了的问题,没有我沟通不了的问题积极回应艰难沟通四个换:换口径、换时间、换场合、换角色换口径:偷换概念案例:问:您可真是大忙人那。回答:唉,我就佩服您这样的业务大拿,举重若轻,什么事儿到您手上都能很快解决换时间:化被动为主动。当下解决不了,换个时间继续沟通解决你的问题案例:马上要下班,领导突然叫住你,跟你说:“小杨,我想给你调个岗位。把你跳到客服,你觉得怎么样?”你可以这么说:“领导,这么重要的事,我得认真想想。您能不能给我点时间,
2021-07-07 14:57:16 719
原创 结构话倾听
场景1领导: 你现在忙吗?解析:你现在对我有空吗?回复:领导,您请讲。解析:无论我忙不忙,对您都不忙场景2领导:你这个思路挺有意思,你可以试试解析:不让试,如果领导决定靠谱会给到准确答复,而不是试试。也可能好似领导没有想法,需要让自己来想办法。回复:场景3领导:行,你定。解析:你全权负责,出了问题也是你全权负责。回复:场景4相亲对象问:加班辛不辛苦解析:你有时间投入给咱们俩的关系吗?要学着像个侦探,去找隐藏的信息具体方法:结构话倾听把听到的话,划分成三个部分情绪|事实|
2021-07-06 17:12:19 202
原创 判断坐标是否在地图围栏中,自测可用
//********************************判断坐标是否在地图围栏中begin************************* // 一个表示区域的三维数组 protected $config = null; // 包含每个区域的四边形 protected $rectangles = null; // 每个区域(多边形)的所有边 protected $lines = null; // 要判断的点的x, y坐标 p
2021-04-08 15:45:40 961
原创 Laravel8文档读取和总结(一)发行说明 语义化版本
文章地址,查看请点击此处工作需要,今天开始正式接触Laravel8框架,先从看文档开始。除了正常需要总结的技术性问题,一些有意思、对开发有帮助的我会记录下来。语义化版本点击查看Laravel框架及其项目内使用组件版本号应严格遵从该规则主要意思是对版本号的规范管理,明确每次发布代码不同情况要怎么定义版本号,避免出现依赖地狱的情况。看过这篇文章基本上就可以对他们的每次版本发布做出相应的预估,避免出现大版本出现的时候,应措不及时。这种规范可以用到以后的发布上,不仅限于代码的发布,比如说产品发布一个
2021-03-24 19:19:21 291
原创 Go语言 冒泡法
Go 写法package mainimport "fmt"func main() { arr := []int{4, 1, 5, 7, 3, 2, 9} fmt.Println(maopao(arr)) // [1 2 3 4 5 7 9]}func maopao(arr []int) []int { var swap int for i := 0; i < len(arr); i++ { for j := i + 1; j < len(arr); j++ {
2021-03-16 19:58:54 116
原创 Go语言 快速排序法
go 写法package mainimport "fmt"func main(){ arr := []int{4, 1, 5, 7, 3, 2, 9} fmt.Println(freeSort(arr)) // [1 2 3 4 5 7 9]}func freeSort(arr []int)[]int { sign := arr[0] var leftA []int var rightA [] int for _,v := range arr { if v > sig
2021-03-16 19:00:58 179
原创 go语言 函数汇总(持续更新)
make动态的创建一个切片,格式如下:make([]T, size, cap)其中:T:切片的元素类型size:切片中元素的数量cap:切片的容量func main() { a := make([]int, 2, 10) fmt.Println(a) //[0 0] fmt.Println(len(a)) //2 fmt.Println(cap(a)) //10}append为切片动态添加元素,格式如下:append(切片, 追加数据)其中:切片:
2021-03-11 20:49:58 262
原创 go语言(六)数组与切片
数组使用前需要先定义, 数组中只有有一个类型, 不允许有多个类型.如果长度不确定,可以用[…]来接收长度不确定的数组var 数组名[长度]类型 : var a1 [3]bool 定义一个3个长度布尔类型的数组不设初始值,默认元素都是零值(布尔值:false, 整型和浮点型都是0, 字符串"")package mainimport "fmt"//数组// 存放元素的容器// 必须指定存放的元素的类型和容量(长度)// 数组的长度是数据类型的一部分func main() { v
2021-03-11 20:39:34 113
原创 go语言(六)运算符
package mainimport "fmt"func main() { var ( a = 5 b = 2 ) // 算数运算符 fmt.Println(a + b) fmt.Println(a - b) fmt.Println(a * b) fmt.Println(a / b) fmt.Println(a % b) a++ // 单独的语句, 不能放在=的右边赋值 => a = a + 1 a-- // 单独的语句, 不能放在=的右边赋值 => a
2021-03-11 11:22:58 81
原创 go语言(五) if判断和for循环
if条件结构if条件和PHP的一直,就是条件没有用圆括号括住package mainimport "fmt"func main() { age := 30 if age >= 30 { fmt.Println("30而立了老铁, 赶紧努力") } else { fmt.Println("青春就是浪") }}// 特殊写法// 作用域, age1变量此时只在if条件判断语句中生效 if age1 := 19; age > 8 { fmt.Println(a
2021-03-09 20:52:02 277
原创 go语言(四)数据类型及fmt总结
数据类型的详细介绍请查看李文周老师的博客整型package mainimport ( "fmt")func main() { // 十进制 i1 := 10 fmt.Printf("%d\n", i1) fmt.Printf("%o\n", i1) // 把10进制转换成八进制 fmt.Printf("%x\n", i1) // 把10进制转换成16进制 fmt.Printf("%b\n", i1) // 把10进制转换成二进制 // 八进制 i2 := 077 fmt.
2021-03-09 15:57:05 224
原创 go语言(三)常量和iota
常量和php定义一样,一次赋值后不可重复赋值, 可以批量声明,package mainimport "fmt"const pi = 3.1415926const ( STATUSOK = "200" NOTFOUND = 404)// 批量常量赋值, 如果某一行声明后没有赋值,默认和上一行一致const ( n1 = 200 n2 = 100 n3)func main() { fmt.Println(pi) fmt.Printf("当前服务器状态码:%s", ST
2021-03-08 19:17:39 169
原创 go语言(二)第一个程序、数据结构及变量
输出hello worldpackage mainimport "fmt"func main() { fmt.Println("hello world")}编译在程序所在目录下使用命令:go build在其他路径下需要添加路径(src后边的路径):go build test.com\day01\helloworld会生成相对于的exe文件,该文件可直接运行指定生成目标名称:go build -o hello.exe数据结构package main // 声明包,main包编
2021-03-08 18:34:57 121
原创 go语言(一)环境搭建和编辑器的选择
详细参考地址详细步骤请参考李文周老师的博客下载地址Go官方镜像站(推荐):https://golang.google.cn/dl/安装(这里只是windows)下载完后,直接下一步安装就好检查在cmd下,执行 ‘go version’, 出现版本表示安装成功环境变量把GOPATH设置到常用的项目目录中比如说我的常用目录是:d:\goCode, 就直接在环境变量中,把GOPATH的指向d:\goCode还有一些详细的设置,具体请移至文章开头的李文周老师的博客编辑器VS code
2021-03-06 15:49:23 191
转载 理解 PHP 8 的 JIT
PHP 8 的 JIT(Just In Time)编译器将作为扩展集成到 php 中 Opcache 扩展 用于运行时将某些操作码直接转换为从 cpu 指令。这意味着使用 JIT 后,Zend VM 不需要解释某些操作码,并且这些指令将直接作为 CPU 级指令执行。PHP 8 的 JITPHP 8 Just In Time (JIT) 编译器带来的影响是毋庸置疑的。但是到目前为止,我发现关于 JIT 应该做什么却知之甚少。经过多次研究和放弃,我决定亲自检查 PHP 源代码。结合我对 C 语言的一些.
2021-02-24 17:34:01 256
原创 快速排序法
每次拿到第一个数来做基准,分别获取大于这个数的集合(right)和小于这个数的集合(left),如果left或者right存在多个值就分别递归调用,直到当前值最左边的值或者最右边的值,然后在数组合并。$demo = [ 6,2,5,4,7,1,9];print_r(demo($demo));function demo($demo){ $left = $right = []; $curren = $demo[0]; $l = 0; $r = 0; for($i = 1; $i
2021-02-20 14:56:56 75
原创 nginx配置文件及反向代理、负载均衡、动静分离
nginx配置文件nginx配置文件位置nginx配置文件组成(1)全局块(2)events块(3)http块nginx配置文件位置/usr/local/nginx/conf/nginx.confnginx配置文件组成(1)全局块从配置文件开始到events块之间的内容,主要是设置一些影响nginx服务器整体运行的配置指令。比如:worker_processes 1;worker_processes 值越大,可以支持的并发处理量越多,worker进程越多(2)events块events块
2020-08-19 15:01:35 416
原创 docker实用笔记
全部来自于别人文章的内容,但是他的博客太卡,进去整个电脑都不好了,所以把内容copy了出来,文件头进行说明。引用地址:docker实用笔记一、Docker介绍1.下载Dcoker依的赖环境2.指定Docker镜像源3.安装Docker4.启动Docker并测试二、Docker的中央仓库1.Docker官方的中央仓库:这个仓库是镜像最全的,但是下载速度较慢。2.国内的镜像网站:网易蜂巢,daoCloud等,下载速度快,但是镜像相对不全。3.在公司内部会采用私服的方式拉取镜像(添加配置)三、镜像的操作1.拉
2020-08-19 14:41:07 379
原创 nginx名词含义解释
nginx名词含义解释正向代理反向代理负载均衡动静分离正向代理正向代理的是客户端,客户端想要访问一个网址,访问不到,可以通过代理服务器对网络进行访问,正向代理搭建在客户端和目标主机之间。反向代理反向代理的是服务器,客户端向反向代理服务器发送一个请求,由反向代理服务器选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对客户端来说就是一个服务器,暴露的是反向代理服务器地址,隐藏了真实服务器的ip地址。负载均衡同一个时间段有多个请求,反向代理服务器会这些请求平均分配到不同的目标服
2020-08-11 21:21:15 1009
原创 PHP7内核剖析读书笔记2(Fpm)
PHP7内核剖析读书笔记2(Fpm)SAPIFpmFastCGI介绍PHP通过FastCGI对HTTP请求进行处理的简单概述扩展知识:网络处理模式基本实现master进程和worker进程的主要工作worker pollFpm初始化配置项Fpm总结承接上篇继续SAPI的部分案例,此篇只记Fpm的笔记SAPIFpmFpm(FastCGI Process Manager)是PHP FastCGI运行模式的一个进程管理器,从它的定义可以看出,Fpm的核心功能是进程管理,那么它用来管理什么进程呢?这个问题需
2020-08-09 15:21:43 3313
原创 PHP7内核剖析读书笔记1(php的构成、异常处理、SAPI介绍,Cli模式介绍)
PHP7底层技术记录和整理所有知识点都是通过《PHP7内核剖析》书籍整理底层垃圾回收原理异常处理功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入所有知识点都是通过《PHP7内核剖析》书籍整理需要详细完整的知识请先阅读本书底层垃
2020-08-08 09:43:56 606
原创 redis中incr并发锁的使用场景案例
PHP并发锁的使用开发中时常会遇到并发,当前遇到一个使用场景,需要定时去拉取对账单,但是可能框架原本的问题,原本定时在10点整开始拉取一次的时候,导致10点钟同时多次请求,导致程序上没有拦截成功,数据同时插入了多条相同数据。其实在当前项目种已经做了判断是否存在方法,当前对账单如果存在的话,会直接进行更新操作,但是因为并发的存在,当时情况下,同时多条相同的数据进行了判断是否存在的,发现没有,同时进...
2019-08-29 20:29:25 2012 5
原创 通用型php标记
通用的php标记PHP_EOL 换行符echo PHP_EOL;//windows平台相当于 echo "\r\n";//unix\linux平台相当于 echo "\n";//mac平台相当于 echo "\r";DIRECTORY_SEPARATOR 系统分隔符,自动区分系统$dir = 'data'.DIRECTORY_SEPARATOR.'ab...
2019-08-21 20:49:39 110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人