吐血整理 | 快速学习大厂们的软件案例经验

若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:https://github.com/eddycjy。前几天,煎鱼去了趟北京,参加了为期三天的全球软件案例研究峰会(TOP 100)。同时记了一些笔记,整理后分享出来,希望对大家有所帮助,拓展眼界非常重要。内容比较多(已经精简过),大家可以挑自己感兴趣的学习,建议三连。一级目录如下:百度内部业务 ServieMesh 实践。云原生开发平台在腾讯游戏运营中的实践。快狗打车可持续交付实践。网易数帆从微服务框架...阅读全文

Segmentfault 2021-03-02 18:32:36 煎鱼

Go 并发:一些有趣的现象和要避开的 “坑”

若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:https://github.com/eddycjy。大家好,我是煎鱼。最近在看 Go 并发相关的内容,发现还是有不少细节容易让人迷迷糊糊的,一个不小心就踏入深坑里,且指不定要在上线跑了一些数据后才能发现,那可真是太人崩溃了。今天来分享几个案例,希望大家在编码时能够避开这几个 “坑”。案例一演示代码第一个案例来自 @鸟窝 大佬在极客时间的分享,代码如下:func main() { count := 0 w...阅读全文

Segmentfault 2021-03-02 17:32:33 煎鱼

手撸golang 基本数据结构与算法 图的最短路径 贝尔曼-福特算法

缘起最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一)本系列笔记拟采用golang练习之贝尔曼-福特算法贝尔曼-福特(Bellman-Ford)算法是一种在图中求解最短路径问题的算法。 最短路径问题就是在加权图指定了起点和终点的前提下, 寻找从起点到终点的路径中权重总和最小的那条路径。 摘自 <<我的第一本算法书>> 【日】石田保辉;宫崎修一流程给定若干顶点, 以及顶点间的若干条边, 寻找从指定起点from到指定终点to的最小权重路径设定from的权重为0, 其他顶点的权重为无穷大将f...阅读全文

Segmentfault 2021-03-02 13:32:33 ioly

在Windows10安装部署Golang开发环境

在Windows10安装部署Golang开发环境 青春阳光king 码农编程进阶笔记 Golang语言在近年来因为其高性能、编译速度快、开发成本低等特点逐渐得到大家的青睐,本篇主要讲述在Golang的安装部署。操作系统为Windows 10 64位。 一、安装官网下载安装包:https://golang.org/ 点击Download: 选择Windows操作系统对应的安装包: 下载完成后,运行,一路按照默认设置点击下一步,直至完成安装。 二、环境变量安装完成后,需要设置若干个相关变量,环境变量...阅读全文

51CTO博客 2021-02-27 15:29:12 mb5fdb0f269f12c

一文让你知道为什么学了PHP的都要转学Go语言

一文让你知道为什么学了PHP的都要转学Go语言 青春阳光king 码农编程进阶笔记 很多人将GO语言称为21世纪的C语言,因为GO不仅拥有C的简洁和性能,而且还很好的提供了21世纪互联网环境下服务端开发的各种实用特性,让开发者在语言级别就可以方便的得到自己想要的东西。 发展历史2007年9月,Rob Pike在Google分布式编译平台上进行C++编译,在漫长的等待过程中,他和Robert Griesemer探讨了程序设计语言的一些关键性问题,他们认为,简化编程语言相比于在臃肿的语言上不断增加新...阅读全文

51CTO博客 2021-02-27 15:24:14 mb5fdb0f269f12c

手摸手Go 深入理解sync.Map

日常开发过程中,map结构应该登场率是较为频繁的。但是Go的内建map类型并不是协程安全的。如下面这个栗子,如果业务开发过程中不注意很容易中招。 func main() { m := make(map[int]int) go func() { for { m[0] = 1 } }() go func() { for { if v, ok := m[0]; ok { fmt.Println(v) } } }() ch := make(chan os.Signal) signal.Notify(ch...阅读全文

简书 2021-02-28 03:32:38 光华路程序猿

LeetCode896 单调数列 golang实现

896. 单调数列 方法1 image.png 解题思路 先判断递增还是递减 然后再依次判断后续是否为单调 notice: 数据越界 前两个元素可能相等 代码 func isMonotonic(A []int) bool { i := 0 up := false for ;i<len(A)-1;i++{ if A[i]==A[i+1]{ continue } if A[i]>A[i+1]{ up = false }else{ up = true } break } return isMonoto...阅读全文

简书 2021-02-28 03:32:37 lucasgao

手撸golang 基本数据结构与算法 图的搜索 深度优先/广度优先

缘起 最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一) 本系列笔记拟采用golang练习之 图的搜索 图的搜索指的就是从图的某一顶点开始, 通过边到达不同的顶点, 最终找到目标顶点的过程。 根据搜索的顺序不同, 图的搜索算法可分为“广度优先搜索”和“深度优先搜索”这两种。 虽然广度优先搜索和深度优先搜索在搜索顺序上有很大的差异, 但是在操作步骤上却只有一点不同, 那就是选择哪一个候补顶点作为下一个顶点的基准不同。 广度优先搜索选择的是最早成为候补的顶点(FIFO), 而深度优先搜索选...阅读全文

简书 2021-02-27 23:32:54 老罗话编程

gof Linux Epoll模型的实现

本项目地址:gof 一个支持百万连接的websocket框架 本文提及的内容包含在:epoll.go 关于Linux Epoll模型的原理,这里就不在做过多介绍了,在Nginx、Redis等的网络并发模型方面,有诸多的详细解释。 Epoll模型中,应用是监听Epoll的Wait接口,来等待系统的推送,因此,比之select/poll等的实现方式略微复杂。 首先我们需要定义一个epoll对象的结构体,在其中记录一下我们需要的内容,包括监听端口的句柄、epoll对象以及监听的ip,端口等一些其他内容...阅读全文

简书 2021-02-27 23:32:45 公式般欢笑

LC395 至少有K个重复字符的最长子串 golang实现

395. 至少有K个重复字符的最长子串 image.png 分治算法实现 如果一个字符在s中出现的次数小于k次,那么我们就可以把这个字符进行分割为2部分分别统计长度 如果s中所有字符出现的次数均大于k次,那么最大的长度就为s的长度 优化 如果s的长度小于k,则一定不满足 防止每次需要遍历s计算每个字符的数量,可以讲之前统计的字符数量作为参数传进来 细节见注释 /** 分治算法实现 1. 如果一个字符在s中出现的次数小于k次,那么我们就可以把这个字符进行分割为2部分分别统计长度 2. 如果s中所有...阅读全文

简书 2021-02-27 23:32:45 lucasgao

2021-02-27:假设一个固定大小为W的窗口,依次划过arr,返回每一次滑出状况的最大值。例如,arr = [4,3,5,4,3,3,6,7], W = 3。返回:[5,5,5,4,6,7]。

2021-02-27:假设一个固定大小为W的窗口,依次划过arr,返回每一次滑出状况的最大值。例如,arr = [4,3,5,4,3,3,6,7], W = 3。返回:[5,5,5,4,6,7]。 福哥答案2021-02-27: 采用双端队列,存序号。遍历数组。 1.当双端队列里没值或者双端队列最右边的值小于当前值,则把当前值的序号从右边push到队列里。 2.否则pop最右边的序号,直到符合条件为止。 3.双端队列左边的序号太小,当前序号-左序号>=窗口大小W,需要pop左边的序号。 4.双端...阅读全文

简书 2021-02-27 23:32:40 福大大架构师每日一题

基于原论文,我实现了一个更全面的布谷鸟过滤器

原文地址“判断一个值是否在一个巨大的集合当中”(下文中统称为集合隶属测试),是一种常见的数据处理问题。在以往的经验中,如果允许一定的假阳性率,那么布隆过滤器是首选,而如今我们有了更好的选择:布谷鸟过滤器。最近的业务需要用到过滤器,搜索了一下发现我们的场景下布谷鸟过滤器性价比更高,要好于布隆过滤器。为了确定最终的技术选型,我去读了一下原论文,后来确定要用布谷鸟过滤器时发现几乎没有 golang 的全面实现,当前在 GitHub 上的几个高 stars 实现都存在一些缺陷,并没有最大化空间利用率,因...阅读全文

Segmentfault 2021-03-02 09:32:33 linvon

手撸golang 基本数据结构与算法 图的搜索 深度优先/广度优先

缘起最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一)本系列笔记拟采用golang练习之图的搜索图的搜索指的就是从图的某一顶点开始, 通过边到达不同的顶点, 最终找到目标顶点的过程。 根据搜索的顺序不同, 图的搜索算法可分为“广度优先搜索”和“深度优先搜索”这两种。 虽然广度优先搜索和深度优先搜索在搜索顺序上有很大的差异, 但是在操作步骤上却只有一点不同, 那就是选择哪一个候补顶点作为下一个顶点的基准不同。 广度优先搜索选择的是最早成为候补的顶点(FIFO), 而深度优先搜索选择的则是...阅读全文

Segmentfault 2021-03-01 22:32:34 ioly

大厂动态规划面试汇总,重量级干货,彻夜整理

注:本文是BAT真题收录很值得大家花心思看完,看完会有收获。前言算法是面试大公司必考的项目,所以面试前准备好算法至关重要,今天整理的常见的动态规划题目,希望可以帮到大家。要想学习其他绝世武功,要先打好基础。算法属于内功,则更为重要。强盗抢劫题目:强盗抢劫一排房间,每个房间都有钱,不能抢劫两个相邻的房间,要求抢的钱最多。数组如:[2,7,9,3,1]思路:当输入房间数为0,1,2时,这个很好判断,当输入房间数字大于3时,就要用到动态规划了,方程是:dp[i]是当抢到第i个数时,能抢到最大值,从局部...阅读全文

Segmentfault 2021-03-01 22:32:34 晨梦思雨