如何优雅的操作链表

leetcode中的一道题目: 设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作:获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值留出空间。 进阶:你是否可以在 O(1) 时间复杂度内完成这两种操作? 示...阅读全文

Segmentfault 2020-06-20 20:32:34 laughbug

内网穿透利器NGROK学习笔记

内网穿透利器NGROK学习笔记SofM 2019-10-31 14:13:57内网穿透利器NGROK学习笔记2019.10.31 SofM1. 介绍10月28号,某客户内网虚拟机服务出现故障,云计算中心工程师是在得到用户的报障后进行的处理。虽然,云计算中心工程师具有高度的责任心以及快速的问题处理能力,但是监控体系的部署使我们进一步提升服务质量的目标。因此,为了更及时的发现客户系统中的异常,避免因系统服务对用户造成使用上的影响,于是安装部署了Nagios监控。但是,由于该机器深入内网,并与我们的办...阅读全文

Golang下载包技巧

1. golang 的包, 对应下载在下面自己找 https://github.com/golang2. 下载失败或者速度慢, 直接网页打开链接例如 github.com/frankban/quicktest下载完毕之后放到GOPATH路径下src/github.com/frankban下即可, 记住下载目录带master, 自行去除其他模块module google.golang.org/protobuf https://github.com/protocolbuffers/protobuf-...阅读全文

简书 2020-06-17 17:49:10 听我一言ing

5年 Python 功力,总结了 10 个开发技巧!网友:太实用了

大家好。 今天给大家分享 10 个我平时整理非常实用的 Python 开发小技巧,内容目录如下: 值得一提的是,这 10 个技巧全部收录在我自己写的 《Python黑魔法指南》里 你可以在按照如下方法,后台发送『黑魔法』就可以获取精美排版的 PDF 电子书。 1. 如何在运行状态查看源代码? 查看函数的源代码,我们通常会使用 IDE 来完成。 比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码。 那如果没有 IDE 呢? 当我们想使用一个函数时,如何知道这个函数需要接收...阅读全文

简书 2020-06-17 17:49:10 王炳明

Java线程只能有上千个,而Go的Goroutine能有上百万个

前言 哈喽,大家好,我是asong,我又来做知识分享了。对于做过Java开发的程序员来说,或许会遇到这个问题:java.lang.OutOfMemoryError: Unable to create new native thread。造成这个问题的原因是因为Thread限制导致内存溢出。对于这个问题,我们可以写一个小demo,测试一下这个问题: /** * 功能:Unable to create new native thread * 订阅号:Golang梦工厂 * create by aso...阅读全文

简书 2020-06-17 17:45:42 sunsong1997

golang单元测试

简介 golang单测,有一些约定,例如文件名是xxx.go,那么对应的测试文件就是xxx_test.go,单测的函数都需要是Test开头,然后使用go test命令,有时发现mock不住,一般都是内联(简短)函数mock失败,可以执行的时候加上编译条件禁止内联 -gcflags=all=-l 1. gomonkey gomonkey用于mock跑单测,有以下的功能: 为函数打桩 为成员方法打桩 为全局变量打桩 为函数变量打桩 为函数打一个特定的桩序列 为成员方法打一个特定的桩序列 为函数变量打...阅读全文

简书 2020-06-17 17:45:41 123archu

pip包管理器的使用

前情提要: python包的介绍: 可以说是python的功能扩展模块,有官方开发的也有第三方开发的,总之都会经过pip官方社区的整合才会上架。 区别于C++、java这些传统的语言需要自己去找扩展功能的文件,而pip直接就可以从社区服务器下载(不过网络不怎么好) 其实新开发的语言都有这样的特点,比如nodejs和golang都可以在线下载扩展包,甚至还有自带web服务的组件 目前如果你在 python.org 下载最新版本的安装包,那已经自带了pip包管理器。 Python 2.7.9 + 或...阅读全文

简书 2020-06-17 17:45:41 JJJoeee

Web开发如何入门?网站开发如何入门?

在这里插入图片描述 导图 掌握了这些基础技能至少对于web开发有一个基本的认知了,但是学无止境,光会这些是远远不够的。 一、前端 开发框架 Angular.js,React.js,Vue.js是目前最流行的三大前端开发框架,Angular略显式微。React.js生态好,组件齐全,入门相对vue高。Vue.js容易上手,好用,近年来用户人数大幅提升,有愈发流行的趋势。这三大框架至少要熟悉一个,再了解另一个。 个人建议先学Vue。可以看谷歌趋势的数据,Vue现在可以说是非常热门了,而Angular...阅读全文

简书 2020-06-17 17:43:30 HackDev

从新冠疫情出发,漫谈 Gossip 协议

众所周知周知,疫情仍然在全球各地肆虐。据最新数据统计,截至北京时间 2020-05-28,全球累计确诊 5698703 例,累计死亡 352282 例,累计治愈 2415237 例。 从上面的统计数据,我们可以看出,新冠病毒在人与人之间的传播是极其高效的,且影响范围广。如果我们把「新冠病毒」想象成一小段数据,将「人与人之间传播」想象成数据交换,那么,我们可以得出结论,在不考虑免疫系统和人为干预等一些因素,经过反复迭代,数据(新冠病毒)可以被发送(感染)到每个节点(人)上。 这个就是今天要介绍的 ...阅读全文

简书 2020-06-17 17:40:52 又拍云

爬虫管理平台 Crawlab 专业版 v0.1.0 正式发布

前言 爬虫管理平台旨在解决大量不同类别爬虫难以管理的问题,能够在一体化平台中部署调度、监控爬虫程序,做到高效数据抓取,让工程师们不再被繁琐的爬虫管理问题所困扰,能够将主要精力放在爬虫开发上。分布式爬虫管理平台 Crawlab 就是为了解决核心问题而诞生的。自去年 3 月份发布以来,Crawlab 受到很多开发者喜爱,如今在 Github 上已有 6.3k Stars,到目前为止使用过 Crawlab 的用户数(不包括 Demo)已经超过 6k,而且这些数字还在不断高速增长。Crawlab 是一个...阅读全文

Segmentfault 2020-06-20 20:32:34 MarvinZhang

Python-FastAPI 异步框架开发博客系统(四)部分使用Golang重构~

title: [Frodo-V2.0] 拥抱Golang, go~! layout: post date: 2020-06-15 tag: note author: BY Zhi-kai Yang Frodo-v2.0 没有添加新功能,而是将后端最重要的部分,后台API使用golang重构,python现在只负责前台模板的渲染。这样原本的单服务应用就成了多服务。本文将简介v2.0的调整思路和golang异步的特性,新版本的部署文档请参看项目地址 项目地址 博客地址 主要重构的模块为: 博文、用户...阅读全文

掘金 2020年06月16日 zhikai

beego orm 批量插入并更新

 需要用到根据唯一索引来进行批量更新和插入,这里利用ON DUPLICATE KEY UPDATE 来进行更新,遇到的问题:1)因为刚接触go 不太清楚如何将切片转换为字符串,所以自己写了一个 方法 MapTranslateString2)因为刚接触go 不太清楚orm的 sql的占位符除了‘?’之外还能是什么,导致打印出来的sql语句一堆问号,如果有错误也不好排查// o orm 对象, dataList 需要传入参数 fieldList dataList 的 map的字符串键值 (更新的字段...阅读全文

Go语言中文网 2020-06-17 11:00:08 CHUYUBO

5年 Python 功力,总结了 10 个开发技巧!网友:太实用了

大家好。 今天给大家分享 10 个我平时整理非常实用的 Python 开发小技巧,内容目录如下: 值得一提的是,这 10 个技巧全部收录在我自己写的 《Python黑魔法指南》里 你可以在按照如下方法,后台发送『黑魔法』就可以获取精美排版的 PDF 电子书。 1. 如何在运行状态查看源代码? 查看函数的源代码,我们通常会使用 IDE 来完成。 比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码。 那如果没有 IDE 呢? 当我们想使用一个函数时,如何知道这个函数需要接收...阅读全文

掘金 2020年06月17日 王一白

5年 Python 功力,总结了 10 个开发技巧!网友:太实用了

大家好。 今天给大家分享 10 个我平时整理非常实用的 Python 开发小技巧,内容目录如下: 值得一提的是,这 10 个技巧全部收录在我自己写的 《Python黑魔法指南》里 你可以在按照如下方法,后台发送『黑魔法』就可以获取精美排版的 PDF 电子书。 1. 如何在运行状态查看源代码? 查看函数的源代码,我们通常会使用 IDE 来完成。 比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码。 那如果没有 IDE 呢? 当我们想使用一个函数时,如何知道这个函数需要接收...阅读全文

Segmentfault 2020-06-20 20:32:33 Python编程时光

golang雪花算法SnowFlake解决时间回拨问题

package main import ( "errors" "fmt" "sync" "time" ) const ( workerBits uint8 = 10 // 每台机器(节点)的id位数 10位最大可以有2^10=1024个节点(0-1023) numberBits uint8 = 22 // 表示每个集群下的每个节点,1秒内可生成的id序号的二进制位数 即每秒可生成 2^22-1=4194304个唯一id(0-4194303) // 这里求最大值使用了位运算 workerMax i...阅读全文

简书 2020-06-17 05:32:42 成功的失败者

Go之断言类型(assert type)

1.背景介绍: 笔者最近在使用一个数据结构实现多个接口,但是却发现想要在一段时间内转换成接口1,另外一段时间转换成接口2,所以也就使用到了断言类型。在看过断言类型之后,觉得还是很有必要讲一讲这个断言类型,于是便有了这篇文章。2.断言类型介绍:接口类型提供一种,将接口类型转换成具体类型的转换方法,也就是断言类型(assert type)。使用方法如下所示:t := i.(T) // T:表示的是具体的数据类型,i:表示的是接口变量i,t:表示的是转换之后的变量。这个语句实现的功能是:将接口变量i按...阅读全文

简书 2020-06-17 05:32:42 灰常出色

撸一个预言机(Oracle)服务,真香!—上篇

一、文章结构 本文将通过上、中、下三篇文章带领大家一步步开发实现一个中心化的Oracle服务,并通过一个抽奖合约演示如何使用我们的Oracle服务。文章内容安排如下: 上篇:Oracle简介及合约实现 中篇:使用go语言开发Oracle服务 下篇:抽奖合约调用Oracle服务示例 一、Oracle简介 Oracle(预言机)是链接链上与链下的桥梁,能够将链下数据推送给链上。正是由于Oracle的存在,使得区块链从封闭走向开放,充满无限可能。 如需了解Oracle基础知识,这里推荐阅读孙孝虎的《什...阅读全文

简书 2020-06-17 05:32:42 六天天天向上

招聘Golang开发工程师

要求: 1.2年以上Golang开发经验或3年以上c/c++开发经验 2.熟悉tcp/ip http等常用网络协议相关知识 3.熟悉多线程,分布式,缓存,消息队列 4.熟悉掌握Mysql数据库,InfluxDB时序数据库,有Redis,MongoDB使用经验 5.具备高并发、高性能系统设计及开发能力 Base:西安 薪资:14-25 上市公司 行业全球排名前三 复制运维及运营相关平台开发,全新产品。 欢迎广大Gopher加入 有意者请发邮件:wang_kebing1@d...阅读全文

Go语言中文网 2020-06-17 01:07:04 wang_kebing

GoCenter 的“火眼金睛” ——检测、报告并减少Go Module的安全漏洞

一、背景 Golang开发者非常关心开发应用的安全性。随着Go Module应用越来越广泛,Golang开发者需要更多的方式来确保这些公共共享文件的安全。Golang1.13版本在创建Go Module时,通过增加go.sum文件来验证之后从GOPROXY再次访问到的该Module是否曾被篡改。这个机制有助于保证Module的完整性。但是,当初次创建并提交Go Module时,如果原始文件中被引入了恶意代码,这种安全漏洞还是不能被发现和预警的。 Go Module的安全漏洞影响了很多项目和Go开...阅读全文

51CTO博客 2020-06-16 17:35:39 JFrog中国