自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的天空 我的梦

自由翱翔在追求理想的浩瀚天空当中

原创 我的技术管理感悟(架构篇)

天下之至柔,驰骋天下之至坚,无有入无间,吾是以知无为之有益。不言之教,无为之益,天下希及之。 做技术管理,一定会接触到项目的架构设计,那么架构到底要如何设计呢?有没有什么规律和方法可循?今天谈谈自己在架构方面的感悟。 1. 什么是架构?做架构设计有什么用处? 架构是一个很宽泛的概念,实际上,...

2020-05-31 07:34:12 24 0

原创 我的技术管理感悟(技术篇)

道冲,而用之有弗盈也。渊兮!似万物之宗。锉其兑,解其纷,和其光,同其尘。湛兮!似或存。吾不知其谁之子,象帝之先 做技术的人,可能会很看重技术,而作为技术管理,我们如何看待各式各样的技术人以及五彩缤纷的技术呢?这里谈谈我的看法。 1. 技术的培养,应该是注意深度还是宽度? 持而盈之,不如其已...

2020-05-24 07:48:00 78 1

原创 我的技术管理感悟(人篇)

管理是仁者见仁智者见智的事情,每个人可能都有自己不同的看法和理念,我将用几篇文章,谈谈自己的管理感悟,准备采用问答的方式,以明确自己希望表达的问题。 谈到管理,终归脱不开人,最近很容易想到一句话,有人的地方就有江湖,有人,才有了多彩的世界,才有了许多需要协调的事情,才有了分工,才有了利益分配,才...

2020-05-17 06:54:52 39 0

原创 插件式架构设计

插件式的架构设计简单来说就是将一套系统中的算法和功能不同而接口相同的同类事物抽象为插件的一种架构设计方式。我更将其看作是策略模式在整个系统的应用,如果采用微服务架构,插件也可以理解为微服务中的微单元。甚至于微服务架构也可以理解为一定程度上的插件设计,微服务作为大系统的插件而存在。 我最初使用这种...

2020-05-08 10:30:53 155 0

原创 golang如何更好地使用channel

最近学习了《GO语言并发之道》这本书,获益匪浅,其中channel方面的知识了解了更多,主要是以下几点: 1. channel在不同条件下读写,会有不同的行为形式,后面会通过实验说明; 2. channel使用完是要close的,而一般由写端创建和关闭,不要在读端关闭,上面的实验结果会说明这样...

2020-05-01 06:33:48 94 0

原创 golang使用坑两处

今天的文章给大家看看两处golang使用中存在的坑,了解这两处坑,能够防止一些隐蔽性比较大的bug出现。闲话少叙,上代码 package main import ( "errors" "fmt" ) func main() { var err ...

2020-04-25 14:28:22 64 0

原创 SSH反向代理——让你的树莓派能够在任何地方访问

上周文章我们使用Go Module配置项目,做了一个基于gin的Hello World,今天我们把这个项目部署到树莓派上,作为我们的一个服务,这样带来了一个问题,树莓派一般在家里放着,我怎么能访问到呢?今天的文章就解决这个问题。 首先,我们编译一下上次的项目,使之能够在树莓派上运行,go bui...

2020-04-19 07:35:42 129 2

原创 Golang真香之Go Module

Golang使用将近有一年多了,期间使用Golang做过不少项目,使用中对其愈发喜爱,一个词概括,真香!闲话少说,下面进入主题。 用过Java的都知道Java有meaven,gradle等代码依赖管理工具,使用这些工具,你只需要添加依赖,在构建时,会自动下载对应的包并在项目中集成。我们可以控制使...

2020-04-12 08:11:02 444 0

原创 信息世界之道

好久没写文章了,最近真的比较忙,再加上自己的身体状况需要调整,正好有时间看点形而上的书籍,感觉受益匪浅,也让自己对很多事情有了新的看法。《道德经》是道家思想的重要来源,看过之后,生活上的心态有了变化,也使得自己对软件和信息技术有了一些新的认识,对错无所谓,感悟说出来供大家消遣,仅此而已。 信息的...

2020-04-04 13:50:07 69 0

原创 docker配置kafka集群

三台主机 10.10.10.27 yf-kafka1 10.10.10.28yf-kafka2 10.10.10.29yf-kafka3 安装docker(替换下面的USERNAME为你自己的用户名) $ sudo apt-get remove docker docker-engine...

2020-03-28 18:38:59 131 0

原创 软件研发管理中的一些思考

最近事情比较多,好久没有写文章了,考虑不如就写写最近工作和学习中的感悟。 程序员是人而不是机器,这个理念在很多软件管理类的书籍中都有提到,但是自己在管理工作中观察和实践之后,进一步感受到了这句话的道理。由于程序员从事的工作内容复杂度很高,很多时候需要程序员采用非线性的思维模式思考问题。采用传统的...

2019-08-18 09:18:12 1086 2

原创 Golang使用感受

之前一段时间,我曾经做过一些有关Golang的介绍。最近从使用Golang的过程中,又有一些新的感受,与大家分享一下。我比较反对语言之间的比较,一门编程语言能做什么,取决于用户用它做了什么,而一门语言擅长于做什么,取决于用户经常用它做什么,它的语法在解决哪个领域的问题比较有优势。我只是单纯站在一门...

2019-07-06 07:57:21 523 3

原创 Docker使用卷模式创建mysql5

只需要两行命令,作为记录 docker run -d --volume /var/lib/mysql:/var/lib/mysql --name mysql-dc alpine docker run -d --name mysql5 --volumes-from mysql-dc -e MYS...

2019-07-01 09:52:26 162 0

原创 在数据集CIFAR10上使用Keras构建卷积神经网络

Keras是一套构建深度学习模型的高级API,使用Keras可以使构建深度学习模型和摆乐高积木类似,使用不同的组件构建模型即可,不需要复杂的深度学习网络构造。 CIFAR10数据集共有60000张彩色图像,这些图像是32*32,分为10个类,每类6000张图。内容如下 对于多分类图像识别问...

2019-06-23 08:52:34 585 0

原创 碎片化学习和系统学习的选择

上一篇文章写的是k8s相关的内容,本来准备将k8s系统写一些文章,但是经过分析,感觉对于我,写这种系统知识的文章不太合适。由于更新文章每两周一次——不是非常频繁,可能等我写完,大家已经自己学完了相关的知识,所以继续写相关的文章没有什么意义。以后的文章会更加偏向于方法论,思维以及一些技术知识碎片,这...

2019-05-26 07:53:08 488 0

原创 Kubernetes通过Service开放集群内布服务

五一假期结束,我们继续看看k8s的使用,上一篇文章讲到pod,文末提到,这样的pod还无法从集群外部使用,那么如何才能访问到集群内布的服务呢?这要借助于k8s的Service资源,利用Service可以将集群内布的服务映射出来,供集群外访问。 查看Service我们可以使用命令 kubect...

2019-05-08 16:58:18 156 0

原创 Ubuntu下vlc-qt编译

最近用到vlc-qt,编译过程如下 git clone git://github.com/vlc-qt/vlc-qt.git cd vlc-qt sudo apt-get install cmake export QTDIR=/Qt安装路径/5.12.3/gcc_64 export LD...

2019-04-26 09:00:32 329 0

原创 Kubernetes Pod的使用

上一篇文章介绍了k8s的部署,既然部署完成了,我们就来看看如何使用k8s。我们从最基本的概念开始。 k8s管理容器的核心是Pod,我们可以将Pod理解为容器的集合。也就是说,一个Pod中可以部署相关的多个容器,但是一个Pod的功能应该足够独立。打个比方,数据库和我们的Web程序是否应该放置在一个...

2019-04-13 12:08:47 353 0

原创 UbutnuServer18.04部署Kubernetes 1.13.4

Kubernetes是Google开源的容器引擎,由于单词很长,常常简称为k8s,8代表k和s之间有8个字母。k8s包含很多组件,用来对容器进行组织,可以对容器进行编排,自动管理容器的运行,实现滚动更新,进行负载均衡等。由于k8s集群搭建非常复杂,出现了很多部署k8s的工具,但是由于国内网络环境的...

2019-03-24 09:56:07 452 0

原创 docker环境变量使用

docker是目前使用很广泛的容器技术,它不同于虚拟机,docker使用了Linux内核提供的命名空间和cgroups等技术,利用沙箱机制,将不同容器的运行环境进行了隔离,保证了软件系统在部署上的封装和安全。 docker在提供部署安全性的同时,也在改变着我们开发的方式。在以前的系统中,为了方便...

2019-03-10 07:58:35 2253 0

原创 为什么要学习多种编程语言

新的一年开始了,先祝大家猪年诸事顺利。过年期间文章停更几周,今天正式回归。今天的文章可能是一个老生常谈的问题,软件工程师到底是否需要掌握多种编程语言? 如果一直看我博文的人应该了解,我掌握的编程语言就不少,系统编程的C/C++,Web开发的Java和JavaScript,脚本语言Python和S...

2019-02-23 11:51:38 9140 6

原创 软件中的通信之道

一个软件系统总是由很多不同功能的子系统组成的,每一个子系统又会采用不同的设计方式,会包含不同的模块,会编写不同的代码,有不同的函数和变量。我们今天的文章将目光放在软件中存在的各种通信上,从宏观的角度看看软件系统。 百度百科对通信的定义是这样的: 通信,指人与人或人与自然之间通过某种行为或媒介进...

2019-01-13 09:53:05 210 0

原创 2018年终个人总结

转眼间2018年马上就要结束了,又到了写个人总结的时候。回头看看去年的个人总结,自己大部分目标都实现了,还是很欣慰的。2018年总的来说就是一个字:新。这个新让我经历了很多,也让自己重新认识了自己。 新年新问题 2018年1月到2月,新的一年开始了,这两个月,自己好好学习了机器学习的相关知识,...

2018-12-30 23:35:49 3865 0

原创 软件技术中的道与术

说起专业基础课,编程语言和各种库和框架在软件开发中的地位,大家可能会有不同的看法,关于深入学习什么,也存在着各式各样的看法。有的人认为,只要熟悉一门编程语言,然后深入学习这门语言实现的各种框架,就可以做好相关领域的开发;还有一些人认为,我需要广泛的学习各种编程语言,做一名语言专家,这就好比是编程领...

2018-12-15 13:14:14 6250 12

原创 我的软件修习之路(三)——实践出真知

研究生毕业以后,我的职业之路正式拉开序幕。为了能够接触更多的软件牛人,我选择了到北京工作。也因此和老婆开始了异地生活。生活虽然苦,但是为了将来,我认为还是值得的。 初到北京,工资不是很高,为了能够给家里多节省一些钱,选择了在离公司比较远的回龙观租了房子。在北京工作的人应该了解,北京北面的回龙观,...

2018-12-01 12:11:02 537 1

原创 我的软件修习之路(二)———柳暗花明

离开了本科校园,2010年9月新的旅程开始了。刚进入研究生阶段,一切都很新奇,自己选课,自己安排时间。导师徐老师也非常开明,研一让我们尽可能学好研究生阶段的课程,并没有安排很多的研究任务。正是有这一年的时间,让我想清楚了很多问题,也让我研究生三年的时间没有白白浪费。 徐老师非常看重数学,直到现在...

2018-11-17 11:15:08 202 2

原创 我的软件修习之路(一)——迷茫

2006年,高考结束,出于对物理的喜爱和未来就业的考虑,我选择了机械设计制造及其自动化专业。当时喜欢用电脑玩游戏,也曾考虑过是否能写出自己的程序,可是我并没有考虑计算机相关专业。回想当时的情形,可能是自己觉得这些专业比较高端,自己选择的几所高校的这类专业也非强项,就放弃了。 机械设计及其自动化专...

2018-11-04 20:21:33 387 0

原创 Golang使用WebSocket通信

使用Golang能够创建WebSocket通信,只需要使用golang.org/x/net/websocket包即可,该包有可能被墙,无法使用go get下载,但是我们可以从golang中国提供的地址下载,然后将包放在对应的路径下。 WebSocket是一种通信协议,旨在改善HTTP作为无状态协...

2018-10-27 12:52:03 13311 8

原创 Golang如何优雅地提取JSON数据中需要的字段数据

JSON数据是我们开发中经常遇到的一种数据格式,一般通用的做法是,我们通过建立实体类,然后利用一些框架将JSON数据转化为对应的实体类对象,这样我们就可以方便地访问JSON数据了。 但是有些时候,一个JSON对象很大,字段很多,而我们可能只需要其中的几个字段值,这在调用第三方API时可能经常发生...

2018-10-13 10:12:02 8781 0

原创 Golang对excel进行处理

国庆节祝我们的祖国更加繁荣昌盛,想必大家在国庆期间也好好放松了一下,中秋节过节停更了一次,家里面有孩子了,放假期间希望能好好陪陪孩子,请大家谅解。今天发一篇技术文章,帮助大家逐渐回归到正常的工作状态。 之前有关Golang的文章主要是基于Golang的标准库来讲解的,今天我们来看看Golang的...

2018-10-06 09:59:58 7611 0

原创 利用golang通道优化TCP Socket服务器

前面的几篇文章分别介绍了UDP和TCP进行Socket编程的方法,在TCP的文章中,我们除了传统的阻塞型服务器,还给出了多线程服务器的实现方式。今天我们利用golang的通道,给出一种更加高效的服务器设计。 package main import ( "fmt" &q...

2018-09-15 10:25:10 5395 3

原创 golang TCP Socket编程

上一篇文章介绍了golang进行UDP编程的方式,本篇文章继续golang的网络编程,我们看看如何实现TCP编程。UDP传输的是数据包,传输时不会建立实际的连接,UDP传输数据不会保证可靠性。TCP则不同,它会维持客户端和服务器之间的连接,并且保证数据传输的可靠性,服务器和客户端之间会维护连接,使...

2018-09-09 09:54:55 4450 0

原创 golang使用UDP进行网络通信

golang提供了网络编程使用net包,使用net包可以进行很基础的socket编程,如果希望了解socket的一些基础知识,可以参看我之前的文章,虽然是Java示例,但是前面的原理说明不会因为语言的差别而不同。今天我们一起看看使用golang如何实现UDP编程。代码分为server端和clien...

2018-09-02 16:21:14 12218 0

原创 Golang如何正确的停止Ticker

Golang可以利用time包的Ticker实现定时器的作用,最近使用Ticker时,发现调用Ticker的Stop方法无法正确的停止Ticker,协程会阻塞在等待Ticker的C通道处,精简后的代码如下: func UseTickerWrong() *time.Ticker { ticke...

2018-08-25 10:44:27 5337 0

原创 Golang并发以及通道的使用

Golang最擅长的就是并发编程,使用Golang可以很方便的进行并发编程。先看一段普通的代码 package main import ( "fmt" "time" ) func Foo(i int) { fmt.Printf("%d...

2018-08-18 11:30:06 2504 0

原创 Golang方法不同类型接收者的区别

Golang中对方法和函数进行了区分,函数就是传统意义上的函数,定义方式如下: func 函数名(参数列表) (返回值列表) { } 方法在函数的基础上添加了一个接收者,接收者可以是结构体类型的变量或指针,也可以是slice或者map,也就是说,无法将基本类型的变量或指针作为方法的接收者,只...

2018-08-05 11:41:25 1389 0

原创 《区块链技术驱动金融》读书笔记

一、密码学及加密货币概述 1.加密数字货币需要去中心化,通过安全规则保证安全,而不是依赖于中央机构 2.密码学可以防止对系统的干扰,还能避免混淆,将新货币创造的规则编码到数学协议中 3.哈希函数有三个特性: (1) 输入为任意长度字符串 (2) 产生固定大小的输出 (3) 在合理的时间...

2018-08-02 08:41:58 1492 0

原创 Golang结构体中Tag的使用

Golang中可以为结构体的字段添加tag,这类似于Java中为类的属性添加的注解,Golang本身的encoding/json包解析json使用了tag,一些开源的ORM框架,也广泛使用了tag,那么,我们如何通过代码自己实现tag的解析,从而简化结构体字段的使用方式呢?下面看一个例子。 假设...

2018-07-28 13:50:09 3924 0

原创 Golang基本程序结构

今天的文章,我们来了解一下Golang的程序结构,只有知道Golang的组成,才能够在使用时有的放矢,选择合适的方式。 包和包的初始化 Golang中的包是按目录结构组织的,下面假设是一个GOPATH下的src中的目录结构 src     folder1         folder2 ...

2018-07-21 13:36:44 517 0

原创 docker-gitlab配置

最近gitlab使用docker配置遇到坑,官方要求修改/etc/gitlab/gitlab.rb如下: external_url 'http://docker宿主机IP:将docker的80端口映射出的端口号' gitlab_rails['gitlab_shel...

2018-07-20 15:08:12 166 0

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