自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飞越蓝天的专栏

合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下!不积跬步无以至千里,不积小流无以成江河!

  • 博客(312)
  • 资源 (48)
  • 收藏
  • 关注

原创 Golang 装饰器模式以及在NSQ中的使用

最近在研究NSQ这款中间件,发现了一些有意思的东西,装饰器模式就是其中一个。在整个项目中,装饰器模式的使用随处可见,因此有了这篇文章。 装饰器模式属于设计模式的一种,它的定义,简单来说,就是在不改变对象的内部结构情况下,动态地扩展对象的功能。通过创建一个装饰器,包装真实的对象,给对象增加新的功能特性。在Java中,IO就是典型的应用到了装饰器模式;Python中,更是在语法上原生支持,这大大提高了装饰模式在 Python 中的应用。 我们举个例子来看一下装饰器的应用。首先

2022-07-02 22:30:01 452

原创 Golang 匿名函数使用

最近在研究NSQ中间件,在研究这个中间件的过程中,发现了一些自己在平时开发工作中未使用到的Golang特性;决定记录下在这个过程中学习到的一些知识;本篇文章要写的,是关于Golang匿名函数的使用 匿名函数没有函数名只有函数体,他可以作为一种类型被赋值给函数类型的变量,匿名函数也往往以变量方式传递。 Go语言支持随时在代码里定义匿名函数。 匿名函数,由一个不带函数名的函数声明和函数体组成。简而言之,就是匿名函数可以将作为普通变量使用:能在函数中传递或者是赋值给变量。

2022-06-26 15:07:47 406

原创 NSQ源码安装运行过程

最近对NSQ很感兴趣,所以想研究一下NSQ源码;要想研究源码,首先得知道怎么使用吧。因此,第一步,就是如何通过源码来安装并启动NSQ 1 下载源码,并且编译: 这样,整个NSQ项目就搞好了 2 在nsq目录下,进入build目录,如下: 可以看到,在这个目录下的nsqd,nsqlookupd,nsqadmin等可执行文件 1 在一个shell下,启动 2 在另一个shell下,启动;这里需要注

2022-06-18 22:24:39 485

原创 100 Go Mistakes and How to Avoid Them 之代码结构和项目组织(四)

七 返回接口类型      在设计一个方法时,我们可能不得不返回一个接口类型或者一个具体的类型。那么我们来思考下,在大多数情况,返回一个接口,在Go中是一个槽糕的实践。      我们来看下,接口存在于消费端(用户端)的情况。来看下下图,如果一个方法返回一个接口类型而不是结构体会发生怎样的依赖问题。我们将会看到,这样会如何导致问题。      设计如

2022-06-04 22:00:04 561 1

原创 100 Go Mistakes and How to Avoid Them 之代码结构和项目组织(三)

六 生产端的接口      在前面的例子中,我们看到了接口的价值所在;但是,有一个问题经常让开发者误解:那就是接口到底放在哪一端。      在讨论这个话题之前,我们先要明确在这一节里面说的相关术语的明确含义:      生产端:接口的定义与具体实现在同一个包里面      客户端(应用端):接口定

2022-05-29 10:36:06 380

原创 Go 语言中,for循环引起的并发安全问题

一 问题来源       最近项目的开发过程中,遇到报空指针错误的问题。追查了好久,发现是Golang的经典问题: for循环中使用了goroutine,而在goroutine中使用了for循环的参数。二 问题描述       在工作项目中,实现了一个业务需求功能;去掉业务逻辑,代码抽象出来大概是这样: for msg:= range list {

2022-05-22 22:59:09 965

原创 100 Go Mistakes and How to Avoid Them 之代码结构和项目组织(二)

四 过度使用getters and setters方法 4.1 Ps:没有举具体代码实例,就当成作者的一个提醒吧五 接口污染 5.1 概念      接口污染的概念,指的是,用不必要的抽象来处理代码,使其难以理解与使用。在Go中,接口一般用来定义一组规范,而不是具体实现。...

2022-05-15 21:23:51 481

原创 Gitpod---可以在线运行Github上代码的IDE

一 Gitpod是什么Gitpod是一个在线IDE,可以打开任何Github页面,然后运行对应的实例代码。官方地址二 如何使用Gitpod在任何GitHub项目的URL前加上“gitpod.io#”即可。例如,一个Github项目的地址是:https://github.com/seabridge/xxx,那么加入后的地址就是:https://gitpod.io/#/github.com/seabridge/xxx 这样就能在浏览器中用Gitpod打开这个项目,在浏览器中处理了三 演示如何使

2022-05-14 18:47:42 5854

原创 100 Go Mistakes and How to Avoid Them 之代码结构和项目组织(一)

来源《100 Go Mistackes:How to Avoid Them》一 意外的变量隐藏        变量的作用域是指它的可见性。换句话说,程序中的名称在哪部分是有效的。在Go中,在块中声明的变量名称可以在内部块中重新声明。这种被称为变量隐藏的原则很容易出现错误。举例如下:var client *http.Client 1if tracing { client, err := createClientWithTracing() 2

2022-05-08 21:46:36 769

原创 git cherry-pick的使用

       最近在开发一个紧急项目的时候,同事遇到一个很尴尬的问题:一些很重要的代码提交到不是项目的分支上,由于代码数量比较多,所以想通过复制文件重新提交到这个项目分支上有点麻烦。他问我,第一时间没想到git cherry-up命令。在网上搜索后,发现git cherry-up命令真香!解决了同事的问题。       git cherry-pick命令的作用,就是将

2022-05-01 21:53:33 2058

原创 解决 printf missing ... in args forwarded to printf-like function (go vet)的报错问题

如下的一段代码func (t *BaseTable) DebugLogf(format string, v ...interface{}) { g.Log().Warningf("%s", fmt.Sprintf(format, v))}执行golangci-lint run的提示,提示 printf missing … in args forwarded to printf-like function (go vet);如下所示发现是Sprintf方法里面,没有把接受到的可变参数传递进去,导

2021-12-14 23:10:47 993

原创 PHP 8.1 新的特性

PHP8.1新的特性有:1 增加Enums(枚举功能)2 增加fsync() 函数,作用是:帮助确保操作系统把改变的数据或者原数据成功写入到底层存储;新的fdatasync() 函数,仅作用于数据同步,而不针对原数据;在Windows / non-POSIX 环境下,它的作用于fsync函数相同3 继续在性能方面进行改进;其中的一个方面是在PHP8.1中增加inheritance cache(继承缓存),有助于减少在类继承中的开销4 新增对"Fibers"的支持,增加对PHP的异步功能的支持5 P

2021-12-12 21:37:59 1241

原创 Golangci-lint 安装

GolangCi-Lint 是Go的静态代码检查工具,最近需要用到它来检测我们项目组的代码质量,于是研究了下如何安装。其实很简单,直接从官网上看如何下载,官网地址两种方法:go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.43.0 或者curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -

2021-11-21 11:41:33 3244

原创 docker 1045 - Access denied for user ‘root‘@‘172.23.0.1‘ (using password: YES)

本地用docker搭建了一套完成的开发环境,由于数据库的默认配置是123456(测试环境),因此想把本地的环境的MySQL数据库链接密码修改成123456,修改后如下:修改后,用MySQL客户端登录数据库,结果提示如下docker 1045 - Access denied for user 'root'@'172.23.0.1' (using password: YES)出现这个错误,要是就是账号密码错误,要不就是说我的账号权限有问题(一般情况下就是这两个);前面一种情况可以排除,因为我确实已经修

2021-10-25 23:00:00 2365

原创 Failed to execute script docker-compose

执行 docker-compose compose-local.yml时,出现一堆提示:Traceback (most recent call last): File "docker-compose", line 6, in <module> File "compose/cli/main.py", line 71, in main File "compose/cli/main.py", line 124, in perform_command File "compose/cli

2021-10-24 20:00:02 8350 1

原创 终端界面,Linux服务器与mac之间文件的上传和下载

首先需要说明的是,我链接Linux服务器的软件是ZenTermLite的终端界面使用终端最主要的理由是,简单,快捷。上传命令是:rz,下载命名是sz一 上传进入linux服务器界面后,直接输入:rz,这个时候就会有弹窗出现,提示你上传文件:在对应的目录下,找到自己需要的文件,直接上传即可二 上传下载的话,直接输入sz+对应的文件即可,比如我想下载对应的文件名是dd.php,直接sz dd.php 即可...

2021-09-20 21:54:30 1340

原创 Phalcon介绍

一 Phalcon是什么Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 5 框架。 开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 PHP 类的方式暴露出来,可以直接使用。 Phalcon 也是松耦合的,可以根据项目的需要任意使用其他对象。Phalcon 不只是为了卓越的性能, 我们的目标是让它更加健壮,拥有更加丰富的功能以及更加简单易于使用!来源二 Phalcon的特性1 低开销原因是:类和方法已经被编译好,能直接使用,不需要重新去加载。Phalco

2021-09-12 17:08:00 1603

原创 PHP array_merge 与 +理解不同引起的线上bug

最近上线,遇到一个问题:根据语言区域不同,获取的数据信息一直只有某一个区域的,其他区域的数据都没了。吓了我一大跳,赶紧开启debug模式。最终发现是没有搞清array_merge 与 + 的区别导致的bug。首先需要说明的是,array_merge 与 + 号都可以合并数组,但二者是有所不同的:对于+,当key相同时,不管key是字符还是数组,都是舍弃后面的结果;array_merge ,当key相同时,key是字符,则后面的覆盖前面的;key是数字,则不发生覆盖,会重新建立数组索引。<?php

2021-09-04 20:54:58 239

原创 mac exit 退出zsh

在mac的zsh上,运行exit,不能直接退出;可以设置如下:选择终端,选择偏好设置,设置如下:这样就可达到,在linux执行exit命令一样的效果了!

2021-06-29 23:01:28 4519

原创 macbook golang zsh: exec format error

mac电脑上,编译golang的代码,编译成功后,执行,报错提示:exec format error排查了好久,终于发现问题的所在:我的电脑关于golang的配置,有两项是这样的:GOOS="linux"而我编译完成后,是运行在macos上的,所以就报错了。知道问题的所在了,解决起来也很简单,编译的时候 ,执行如下:GOOS=darwin GOARCH=amd64 go build -o http -v ./main.go...

2021-06-29 22:54:45 15866

原创 Linux查看端口以及进程

本篇记录下自己经常使用查看端口以及进程命令:查看端口一 lsoflsof -i:端口号 用于查看某一端口的占用情况,比如查看8080端口使用情况,lsof -i:8080二 netstatlnetstat -tunlp |grep 端口号,用于查看指定的端口号的进程情况,比如查看8080端口使用情况,netstat -tunlp |grep 8000查看进程一 lsoflsof -p PID 用于查看某一进程情况,比如查看进程13704, lsof -p 13704二 top三 进

2021-05-23 12:59:21 12345

原创 docker下安装pcntl扩展

用docker搭建好workman环境后,使用curl -Ss http://www.workerman.net/check.php | php查看有无扩展依赖,发现需要安装pcntl扩展。以前没有在docker下安装php的扩展,所以在网上找了好半天,终于找到了对应的解决命令:docker-php-ext-install这个命令,是docker里面,用来安装并启动PHP扩展的它的基本格式是:docker-php-ext-install 扩展名例如这次我需要安装pcntl扩展,因此,我直

2021-04-18 17:10:22 1927

原创 如何解决.gitignore无法忽略文件

最近提交代码时候,发现总把一些本地的配置文件携带到git提交里面去了。于是在gitignore文件里面,添加了这些配置文件,以为能有效!结果发现还是不行!于是对.gitignore无法忽略文件的问题进行了研究!经过折腾,发现,如果一个文件是untrack时,添加到gitignore是可以及时生效的。但是对于已经加入版本库的文件是无效的。它需要执行:git update-index --assume-unchanged 文件(夹)A然后在.gitignore文件里添加要忽略的文件A或文件夹A就行了

2021-04-18 17:00:50 1623

原创 Nginx与PHP-FPM的通信方式

前面两篇文章,分别介绍了《PHP-FPM的原理及使用》和《PHP-FPM的配置,参数详解以及性能优化》。PHP-FPM主要是和Nginx进行交互,它们交互(通信)的方式有两种:一种是TCP的方式,一种是Unix Socke方式。两种方式的特点如下:TCP是使用TCP端口连接,在nginx配置为: 127.0.0.1:9000Socket是使用Unix Domain Socket连接套接字,一般以文件形式:/tmp/php-cgi.sock在实际的环境中,配置如下一 TCP配置.

2021-03-21 18:43:17 663

原创 PHP-FPM的配置,参数详解以及性能优化

上一篇《PHP-FPM的原理及使用》,介绍了关于php-fpm的今生前世以及如何与nginx交互的全过程。这一篇主要是说明php-fpm在服务器上是如何配置,对应的参数说明以及该怎么去优化一 参数配置以及说明这个配置是我们一个团队设置在测试环境里面的,主要参数说明如下:pm = dynamic; 这个配置有两个参数:1 dynamic; 2 static;dynamic表示php-fpm进程数是动态的,最开始是pm.start_servers指定的数量,如.

2021-03-21 18:39:31 731

原创 PHP-FPM的原理及使用

最近有人问我,一个Api请求的整个运行周期,在解答这个问题的过程中,发现自己对php-fpm相关的知识点不熟,以下是自己的相关总结。一 为什么要使用php-fpm出现的原因很简单,早期的Web Server只能处理HTML等静态文件,随着动态语音,比如PHP的出现,Web Server无法处理这种请求。于是CGI协议出现了,它的全称是Common Gateway Interface(公共网关接口),它 解决不同语言解释器与Web Server的通信问题。开发者可以按照CGI协议的要求使用任何语言编写程

2021-03-21 17:55:47 723 4

原创 linux查找大于100M的文件

命令 find / -type f -size +100M

2021-03-01 09:47:13 4392

原创 Laravel-Admin Cannot Declare Class XXXX,Because The Name Is Already In Use

感悟-来源网站个人感悟–来源公众号如果觉得对你有所帮助,欢迎点在看和关注!

2021-01-21 22:25:36 1391

原创 今日感悟

感悟-来源网站个人感悟–来源公众号如果觉得对你有所帮助,欢迎点在看和关注!

2021-01-07 22:02:31 179

原创 个人网站

自己搭建的基于wordpress的个人网站,欢迎大家访问:小猪猪小鲁班

2020-12-21 22:02:46 427

原创 Linux清除磁盘文件后还是100%

感悟-来源网站个人感悟–来源公众号如果觉得对你有所帮助,欢迎点在看和关注!

2020-12-21 22:00:31 583

原创 个人感悟

感悟-来源网站个人感悟–来源公众号如果觉得对你有所帮助,欢迎点在看和关注!

2020-12-10 22:00:01 219

原创 Laravel 解决使用 Env 读取环境变量为 Null 的问题

Laravel 解决使用 Env 读取环境变量为 Null 的问题

2020-11-21 15:09:31 1033

原创 使用Number_format遇到的坑

使用Number_format遇到的坑

2020-11-21 14:09:03 1531

原创 Error: Run After Build Is Not Possible Main File Has Non-Main Package Or Doesn’t Contain Main Functi

Error: Run After Build Is Not Possible Main File Has Non-Main Package Or Doesn’t Contain Main Functio

2020-11-21 10:47:32 1270

原创 ubuntu20.04 安装swoole

前言首先需要说明的是,自己之所以要写这篇文章,主要是网上坑爹文章太多了,按照有的文章来安装,完全安装不了,坑的一比。所以才有了这篇文章。其次,我的Ubuntu版本是20.04,并且已经安装好了nmp环境(这个就不多说),显示如下:所以,最终的一步,就是如何安装swoole了。需要说明的是,本人已安装成功,最终的结果显示如下:安装过程如下先下载swoole源码:wget https://codeload.github.com/swoole/swoole-src/tar.gz/v4.5.

2020-10-26 23:12:59 1559

原创 ubuntu20.04 命令行终端字体颜色和大小

发现命令行默认终端字体的颜色和大小不符合我的使用习惯,想调整下,搜了下网上的各种使用说明,没找到对应的位置;后来经过摸索,终于找到了正确设置的地方。首先需要说明的是,我的ubuntu版本是20.04,默认字体颜色如下:对于我而言,字体太小了,并且颜色之类的也并不好看,想替换下,设置步骤如下:主页面如上,选择左上方的“终端” =>首选项 =》 未命名:![在这里插入图片描述](https://img-blog.csdnimg.cn/20201018163450568.png?x-o

2020-10-18 16:39:33 7318

原创 MySQL-change buffer的总结

一 change buffer 是什么change buffer (写缓冲)是一种应用在非唯一普通索引页(non-unique secondary index page)不在缓冲池中,对页进行了写操作,并不会立刻将磁盘页加载到缓冲池,而仅仅记录缓冲变更(buffer changes),等未来数据被读取时,再将数据合并(merge)恢复到缓冲池中的技术。它的目的是降低写操作的磁盘IO,提升数据库性能。二 为什么需要change buffer假设没有change buffer ,在缓冲池中没有对应数据页时

2020-10-12 22:44:13 1041

原创 base64url在线加密

http://thrysoee.dk/base64url/

2020-09-22 18:00:48 4382

原创 composer.json 解决依赖冲突

Problem 1- hedeqiang/umeng 1.0.4 requires guzzlehttp/guzzle ^6.3 -> satisfiable by guzzlehttp/guzzle[6.3.0, 6.3.1, 6.3.2, 6.3.3, 6.4.0, 6.4.1, 6.5.0, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 6.5.x-dev] but these conflict with your requirements or minimum-sta

2020-09-16 14:56:44 4313

can you make your computer reliable and secure

这是一篇关于os的论文,很经典的!大家可以看看!

2014-10-20

讲解surf 算法的 PPt

这个是关于surf算法讲解的ppt,原创哦!可以看看!

2014-10-20

MYSQL Dos下命令大全

关于常用的dos下mysql操作的命令,很不错的!值得一看!

2014-11-07

python scipy模块的最新版本

这个是python scipy的最新版本,真的不错!安装简单!

2015-04-10

基于CI框架的留言板

这是一个基于CI框架的留言本,适合新手,大家可以看看!

2014-11-06

SURF算法的实现

这个是关于SURF算法实现的源代码,可以看看的

2014-11-05

CI框架的下载

关于CI的最新框架,大家可以下载来看看啊!

2014-11-05

PHP6高级编程的源代码

这个是关于PHP6高级编程的源代码,大家看看吧!!很好的!

2014-11-17

canny算法实现及代码

caany算法的实现,可以看看的!特别是对于使用Matlab的用户来说!

2014-11-05

DOM中文文档

这个是关于DOm的技术手册,中文版的,大家看下吧!

2015-04-03

matlab实现关于Canny的边缘检测

这是关于Canny算法边缘检测的实现,代码和文档都有了,可以直接得到结果!大家可以看看!

2014-11-06

Python最新技术手册

这是关于python的技术文档,最新版的,可以看看的!

2015-04-03

PHP 敏捷开发框架 CodeIgniter

这是关于CI框架的一本书,写得很详细,很不错!

2015-04-03

ThinkPHP技术手册

这个是关于ThinkPHP的最新技术手册,大家看以看看的!

2015-04-03

ID3算法C++的实现

这个是关于ID3的C++实现,是可以运行的哦 非常的不错

2014-11-11

决策树算法的实现

决策树C4.5的实现,可以在VS2013上运行的!

2014-11-11

基于ASP的新闻系统

适合初学者的毕业论文,可以看看,参考参考

2013-11-24

模糊逻辑入门

这个是关于模糊逻辑入门经典的ppt,很不错的!

2015-04-17

PHP线上环境问题解决办法

这个是讲解PHP 线上环境出问题后如何解决的ppt,大牛的推荐,你不得不看!

2015-09-24

php extending and embedding中文翻译版

php extending and embedding的中文翻译版,很不错!

2015-09-24

Docker从入门到实践

这个是讲解关于Docker的书籍,很不错的!值得学习!

2015-09-27

MySQL_5.5中文参考手册

这个是MySql最新的技术手册,中文的哦!大家可以看看!

2015-11-15

谷歌浏览器插件octotree,方便查看Github代码

在谷歌浏览器下,安装 octotree插件,可以像是在IDE下,查看Github代码,你值得拥有!

2017-10-01

REDIS 入门指南

REDIS 入门指南的书籍,很好很不错的!值得一看!

2015-09-24

Can We Make Operating Systems Reliable and Secure

介绍了如何解决操作系统可靠性的一篇文筱

2015-09-22

ajax实现文件自动上传

这个是ajax实现文件的自动上传代码,亲测可用

2015-09-24

最新python3.4 NUmpy模块

这个是关于numpy最近版本的,是exe文件,可以直接安装即可

2015-04-10

基于PHP语言的设计模式

设计模式的实现,现在市面上大多是基于Java的,这个手册是基于PHP实现的各个设计模式,值得一看!

2017-09-28

SQLyog软件

这个是基于mysql的SQLyog中文版,很好用的资源!注册码之类的都有,在sn.txt里面。亲测可以用!

2015-07-02

高性能php应用开发 pdf

这个是关于高性能php的讲解,很不错的一本书!大家可以看看!

2015-08-16

PHP精粹 编写高效PHP代码

这个是关于高效PHP代码的讲解!PHPer必须要看看呢!@

2015-08-16

疯狂java讲义

这是一本疯狂java讲义的高清书籍!大家可以看看,真的儿很不错!

2016-05-15

贝叶斯网络学习、推理与应用

贝叶斯网络学习、推理与应用 这本书讲解关于贝叶斯网络的一切知识,很好!

2016-04-02

TCP-IP详解(卷一、二、三)

这个是TCP-IP详解的书,分为三卷,可以加深你对tcp,ip的了解!

2015-11-30

空空如也

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

TA关注的人

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