链表公共节点之你的名字算法 2020-07-09(未经允许,禁止转载)

输入两个链表,找出它们的第一个公共节点 golang版 /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ // 辣鸡程序员算法 func getIntersectionNode(headA, headB *ListNode) *ListNode { // 压入两个栈,然后同时pop stack1, stack2 := []*ListNode{}, ...阅读全文

简书 2020-07-10 01:32:47 9_SooHyun

高性能服务器设计

最近看网课的时候学习到了几篇专门讲解高性能服务器设计的切入点,结合demo代码在此进行总结。1.代码逻辑异步设计异步是一种开发设计的思想,异步设计代码可以解决同步逻辑中可能出现的某一个流程需要进行io等待等操作,但后续流程并不完全需要等阻塞掉的流程返回结果也可以执行时,让后续逻辑代码异步执行,无需等待阻塞流程返回即可执行后续逻辑。这样可以充分利用cpu,防止服务器明明cpu大部分之间都在空闲状态但因为io等待的时间较长导致吞吐率下降。2.使用高性能IO即使用io多路复用这种同步非阻塞的io模型,...阅读全文

简书 2020-07-10 01:32:46 谁没有做过白日梦呢

[Translation]现代GO的一些理论

翻译自<A theory of modern Go> by Peter Bourgon 2017/06/09 原文链接 全文结论: 全局状态会产生巨大的副作用 ——> 需要避免包级别的变量和init函数 Part1 Go is easy to read Go语言唯一最佳的属性是基本上没有什么魔法代码。除了极少数的例外外,直接阅读Go的源码不会产生诸如“定义”,“依赖关系”,“运行时行为”的歧义,而这让Go的可读性较好,从而使得Go代码较容易维护,这是工业化编程的最高境界。 Part2 Magic...阅读全文

Segmentfault 2020-07-16 11:32:33 Wzy_CC

Golang 和 PHP

PHP是我们的初恋情人! 我的第一次(编写生产级项目)给了PHP,PHP给予了我们工作,帮助我们走进来实践软件工程的大门,按正常逻辑来说我应该PHP幸福的走下去。但是我就是一个花心的developers,相处的5年中我一直在不停的勾三搭四,一会儿撩撩JAVA大姐姐,一会儿又撩撩Python小姐姐,最近我觉得隔壁Golang发育的越发楚楚动人。嘻嘻 大概打量了一番觉得Golang还真“不赖”,和我家PHP比起来各有特色。哈哈 以后就可以三个人幸福的相处下去了。1. 标记 @号代表可作为讨论内容想知...阅读全文

简书 2020-07-09 16:38:57 张雷_edae

区块链开发的11种顶级编程语言

区块链是一种去中心化,安全且非常快速的技术,已经在商业世界引起轰动。随着大量的区块链项目正在开发和部署在互联网上,区块链开始走向世界。已经有一些公司试图在其他人的基础上发展。所有这些区块链开发都是通过不同的编程语言完成的,下面对其中一些进行了说明。1. JavaScript这是一种高级编程语言,更重要的是,它是一种弱类型的,动态的,基于原型的领先的Web技术。这种编程语言非常流行,并且已经为javascript创建了新框架,可用于开发代码。Javascript非常简单,您只需要了解基本知识即可开...阅读全文

简书 2020-07-09 16:36:39 EOS生态观察

[View]我不喜欢“我不喜欢 Go 语言的十个理由”的十个理由

《我不喜欢Go语言的十个理由》 by Lawrence 2019/06/17 《我不喜欢“我不喜欢 Go 语言的十个理由”的十个理由》 by Wzy_CC 2020/07/08 我不喜欢Go语言的十个理由作者Lawrence使用了三年Go语言,并且参与了多个大型Go的项目。但是他现在放弃了Go并且认为Go“在不好的方面令人无法忍受”。但是其中一些理由我认为有点牵强,View1-10分别是作者的十个不喜欢Go语言的理由: View1 Go 语言使用首字母大小写来决定标识符的可见性 对包外暴露的变量...阅读全文

Segmentfault 2020-07-16 11:32:33 Wzy_CC

Go语言学习 - Chan的工作原理

我们创建了一大堆线程, 现在我们想要实现线程间的同步, 这其中的关键就是chan(通道)的使用, 如果没有通道, 你应该怎么去做线程间同步呢? time.Sleep吗? Introduction type hchan struct { dataq_size uint // 缓冲槽大小 buf unsafe.Pointer // 缓冲槽本体 elem_type *_type // 槽内数据类型 } 复制代码 缓冲槽的工作方式就是上图那样, 每当你往通道里写消息, 消息会先存到缓冲槽里, 而后才被取...阅读全文

掘金 2020年07月08日 xiaohan.liang?

从零学习 Go 语言(27):学习 Go 协程中的 WaitGroup

![](http://image.iswbm.com/20200607145423.png) 在线博客:http://golang.iswbm.com/ Github:https://github.com/iswbm/GolangCodingTime --- 在前两篇文章里,我们学习了 `协程` 和 `信道` 的内容,里面有很多例子,当时为了保证 main goroutine 在所有的 goroutine 都执行完毕后再退出,我使用了 time.Sleep 这种简...阅读全文

Go语言中文网 2020-07-09 08:54:39 hello_wbm

golang如何launch一个shell

以前讲代码安全的时候会提到一种代码注入的风险,就是客户端注入代码,这段代码会launch一个shell然后黑客们就可以在shell里面做任何事了。 当时一直不理解这怎么操作;现碰巧遇到这么一个例子,记录下来。 首先分两台机器: 我的机器: 我的电脑,我有管理员权限。 客户机器 客户的电脑,在上面运行的客户的程序,我没有访问权限。但是客户的程序代码是由第三方人编写,存在注入代码的风险。 现在假设客户代码有风险,存在注入代码的风险,这段注入代码会在客户机器上启动一个shell,并把shell的输入输...阅读全文

简书 2020-07-09 08:32:42 CodingCode

Golang必备技巧:接口型函数

接口型函数,指的是用函数实现接口,这样在调用的时候就会非常简便,我称这种函数,为接口型函数,这种方式使用于只有一个函数的接口。 对于只有一个方法的接口,每次都要实现这个接口,过于繁琐,所以通常通过接口型函数,来达到简化的目的,直接上代码 package main import ( "fmt" ) type Handler interface { Do(k, v interface{}) } func Each(m map[interface{}]interface{}, h Handler) {...阅读全文

简书 2020-07-09 04:32:43 亮子_a8be

GO vs Python哪个更适合做web开发?

GO和python都是当下非常受欢迎的编程语言,因为各具有不同的优势受到了很多人喜欢,现在很多人都想要通过培训来从事web开发,但是面对编程语言选择就十分困扰,该选择python还是GO呢? 在GO与python语言当中,当涉及到用户社区的时候,python是绝对的赢家。python有着丰富的扩展库,更加成熟稳定,具有更多框架,配备了用于web开发的资源。 GO和python语言将自己宣传为面向简单性,尽管它们两个代码都易于阅读和理解,但是GO需要更多代码来执行与python相同的操作。 GO ...阅读全文

51CTO博客 2020-07-08 20:40:13 老男孩IT

Redis、面试、缓存、雪崩、分布式锁实现一篇文章搞定!

什么是Redis及其重要性? Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久化的高性能键值对数据库。Redis的之父是来自意大利的西西里岛的Salvatore Sanfilippo,Github网名antirez,笔者找了作者的一些简要信息并翻译了一下,如图: 从2009年第一个版本起Redis已经走过了10个年头,目前Redis仍然是最流行的key-value型内存数据库的之一。优秀的开源项目离不开大公司的支持,在2013年5月之前,其开发由VMware赞助,而201...阅读全文

简书 2020-07-08 23:33:03 源源的java日记

Prometheus+Grafana+Onealert

Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。基于时间序列的数值数据的容器监控解决方案。 按照时间顺序记录系统、设备状态变化的数据被称为时序数据优势 易于管理 轻易获取服务内部状态 高效灵活的查询语句 支持本地和远程存储 采用http协议,默认pull模式拉取数据,也可以通过中间网关push数据 支持自动发现 可扩展 易集成grafana 将Prometheus收集到的数据以图形化展现通过grafana+oneale...阅读全文

简书 2020-07-08 20:32:46 Saka_2859

Golang入门

前言 安装与配置 去Golang社区或官网下载对应的安装包,安装并配置环境变量。 以我的电脑win10系统为例: 我安装的是go1.14.4(windows)版本,傻瓜式安装,一路next。默认安装在C盘,但是因为我的C盘已经有太多内容了,我把安装目录更改为D:\GO1.14.4。 这里的安装目录也就是下文要配置的GOROOT。 安装结束后,打开命令行工具输入go env,如果显示如下内容说明安装成功。 配置环境变量GOPATH、GOROOT: 方法一:打开git bash命令,注意是git b...阅读全文

掘金 2020年07月08日 cathy_1007

YouCompleteMe 克隆时及编译时出错的解决办法

最近因为一些原因,将Vim重新设置了一下,然后需要重新安装YouCompleteMe,因为之前也安装过,可能也出过问题,但是现在不记得了,还花了一点时间解决。所以把这个解决的过程记录下来,给自己做一个备忘,也希望能帮助到需要用到的朋友。 按照说明,我用了git submodule update --init --recursive命令下载子模块,但是跳出以下错误: fatal: 无法连接到 github.com: github.com[0: 192.30.253.113]: errno=Oper...阅读全文

简书 2020-07-08 16:35:29 大象同学