自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 《领导力》读后感&笔记

卓越领导五种习惯行为:(1)以身作则;(2)共启愿景;(3)挑战现状;(4)使众人行;(5)激励人心。 你不可能投入一个自己不相信的愿景。 建立可靠的领导力的基础,就是要做你所说,说你所做。 领导别人先要领导自己,直到你能够回答关于你是谁的基本问题时,你才能做到。当你明确了解自己的价值观并找到了自己的声音,你也会发现掌控自己生活的内在信心。 你不能用其他人的价值观、其他人的语言进行领导。除非使用你自己的方式、你自己的语言,否则就不是你——你不过是在装装样子。 当你去购物的时候,你会看到你喜欢的东西

2022-05-23 01:20:04 789

原创 《原则》读后感&笔记

我相信拥有把事情探究明白的能力,要比拥有如何做某件事的具体知识更重要。 如果管理者不知道员工不同的思维方式,他就不知道员工将如何处理不同的情况,这就像一个工程领队不知道他的设备如何工作。 每当面对是实现自己的目标还是取悦他人(或不让他人失望)时,他们都会选择实现自己的目标。 我发现很有帮助的做法是,把生活想象成一场游戏,我面临的每个问题都是一个需要被破解的谜。我通过解密获得一块宝石,即一项原则,它能帮助我再未来避免同样的问题。不断收集这样的宝石能够提高我的决策水平,这样我就能进入更高一级的游戏,涉及的

2022-05-21 13:59:50 333

原创 软件工程和团队共识管理

一、俯瞰软件工程我们常常把软件工程和建筑工程作对比,两者确实有很多相似的地方,但是对于如下两点,差异却很大:不确定性。软件工程有很多人参与,但是没有任何两个人的工作是重复的,即便对于某个人,昨天和今天的工作也是不一样的,没有人会写一模一样的代码,软件工程从事的是创造性的工作,创造意为着试错。大部分软件工程涉及的人力、时间、业务的变数都很多,导致软件工程有非常大的不确定性。快速变化。建筑工程在完成以后就结束了,基本上很少会有变更。但是软件工程,产出只是开始,只要软件还在服务客户,程序员的工作就不会停止

2021-06-03 00:26:08 320

原创 Go 把并发留给调用者处理

func ListDirectory(dir string) ([]string, error)func ListDirectory(dir string) chan string上述两个API有什么区别?第一个,是同步请求,如果目录较大,需要分配大量内存,也需要需要很长时间第二个,返回一个string类型的chan,通过chan传递目录,通道关闭时,表示不再有目录。由于在返回后发生通道的填充,函数内部启动goroutine来填充通道针对第二个,还有两个问题:把关闭通道视为结束的信号,

2021-04-29 01:30:39 226

原创 Go中的 slice 和 array

本文是听过Go进阶训练营《再探Golang的slice、map、channel》之后一些思考。一、array数组的定义:var buffer [256]bytearray的存在是必要的,它可以很好的表示矩阵信息,但是在Go中数组的存在,更重要的意义在于作为slice的源数据存储介质。二、slice切片的定义:var slice []byte = buffer[100:150]那么slice这个变量在这里究竟是什么呢?我们采用下面的表述形式来理解slice:type sliceHeade

2021-04-25 21:44:36 302

原创 Go 为什么不提供可重入锁?

分享下Russ大神的观点,英文原版可重入锁是一个非常差的设计。使用锁的一个最基本的原因是,锁可以保护变量(后续称之为invariant),使其不被其他因素改变。明确这一点,就可以判断某个场景下,是否应该使用锁。举例说明:一个使用原子操作实现的计数器,是否需要使用锁?这取决于invariant.如果invariant就是这个计数器本身,那么原子操作足以保证并发安全,不需要锁。但是如果这个计数器需要和其他数据结构(比如列表中元素的个数)保持一致性,那么独立的原子操作就不够了,这种情况下就需要使用锁机

2021-04-25 16:21:10 878

原创 Go 并发安全的有序单链表实现

多个goroutine访问同一个变量,需要考虑Data Race的问题。可以使用下面的命令来进行检测:go test -race 或者 go run -race解决方案:使用atomic库或者sync.Mutex,对访问顺序进行限制。atomic,一般在单个变量一写多读的场景使用, Compare And Swap虽然可以用于多写多读,但是应用乐观锁,效率不高sync.Mutex,一般在多个变量的多写多读场景使用针对当前问题,实现并发安全的有序单链表,最简单的思路是,对给单链表加锁。如果是

2021-04-25 01:13:31 444 1

原创 Go 错误处理的最佳实践

文章目录一、Error二、panic三、不透明的错误四、处理错误一、ErrorGo 中实现了Error()方法的对象都是一种error。type error interface { Error() string}errors.New() 返回一个errorString对象的指针,errorString对象就实现了Error()方法。type errorString struct { s string}func (e *errorString) Error() string

2021-04-21 01:24:58 482

原创 微服务之BFF

BFF是什么BFF,是Backend For Frontend的缩写,为前端而生的后端。为什么会有这个东西?常见的业务开发岗位一般按照前端、后端来区分,BFF位于前后端之间,解决前后端的配合问题。BFF有哪些能力,可以解决哪些问题接口剪裁。后端提供的一个接口,对于不同的前端场景来说,需求的字段可能会不同。BFF的剪裁能力使得后端只需要专注领域开发,不需要为前端定制不同的API接口,方便API生命周期的管理。接口聚合。一个前端页面,往往会依赖多个后端接口,这样就需要和后端产生多次交互。BFF可以对

2021-04-19 00:42:03 1478 2

numpy for python2.7

python的模块,可以方便的进行列表和矩阵的操作。

2014-07-10

空空如也

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

TA关注的人

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