Go语言中文网 为您找到相关结果 2379

40行代码聊天室,golang服务端

今天看到一个非常棒的及时通信的项目,分享给大家 服务端:[lhttp](https://github.com/fanux/lhttp) 40行代码聊天室[demo](https://github.com/fanux/lhttp-web-demo) 基本上写一个聊天室服务端一行代码不用写,客户端写极少量的代码就可以了。 比较值得一提的是作者的想法非常好,通信协议有点类似http协议,这样可扩展性就比较好,整个服务端都可以轻松定制的,作者实现和一些非常重要的首部过滤器,如订阅和发布。 如果说http协议是定位资源的,那lhttp最大的用处就是传输命令。是基于websocket协议的。 最让我喜欢的是订阅与发布,如: 通过websocket发送这样一条字符串: "L...阅读全文

Go 应该成为开发 android 的主要语言

前几天刚看到的新闻时,我就在猜想:如果 google 要摆脱 Oracle 的诉讼纠缠,那么只有一条路:就是用 go 取代 java 成为 android 的主要开发语言。这步迟早是要走的,也许谷歌已经在暗自部署了。我一直觉得手机应用开发采用VM语言或者JS是一种短视的行为,在前期也许会因为门槛低而吸引大量程序员涌入这个市场,但是很多高级应用(对速度响应要求很高)最终都难免要回到C/C++原生函数调用上来。别对我说什么C/C++门槛太高,两年前谁知道ObjectiveC,现在排行榜都到第九位了。苹果的ObjectiveC,诺基亚的C++/QT都选对了开发语言,相信Google很快会采用Go回到正轨,手机...阅读全文

为什么说程序员一定要看 ElasticSearch 源码

前提 人工智能、大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的浩瀚数据流当中。大数据技术业已集中在如何存储和处理这些海量的数据上。Elasticsearch 作为开源领域的后起之秀,从2010年至今得到飞跃式的发展。 Elasticsearch 以其开源、分布式、RESTFul API 三大优势,已经成为当下风口中“会飞的猪”。在我的电脑本地写了几篇 ElasticSearch 的源码解析了,回过头来想想应该也写一篇为何我会去看它的源码?为什么呢?下面我讲讲自己从接触搜索到现在看源码的过程!第一次接触搜索 搜索,我们首先想到的是搜索引擎:Google、百度,这个就算是接触的最早的了。我自己项目里面接触搜索是大二暑假那时练习的一个项目...阅读全文

博文 2018-12-21 20:34:42 Java高级架构狮

BoltDB 一个简单的纯 Go key/value 存储 [译]

boltDB Blot Bolt 是由 Howard Chu 的 LMDB 项目启发的一个纯粹的 Go key/value数据库。 该项目的目标是为不需要完整数据库服务器(如Postgres或MySQL)的项目提供一个简单,快速和可靠的数据库。 由于 Bolt 是用来作为这样一个低层次的功能,简单是关键。 该API将是小的,只专注于获取值和设置值而已。 项目状态 Blot 稳定,API固定,文件格式固定。 使用完整的单元测试覆盖率和随机黑箱测试来确保数据库一致性和线程安全性。 Blot 目前用于高达1TB的高负载生产环境。 Shopify 和 Heroku等许多公司每天都使用 Bolt 来支持服务。 A message from the author Bolt 最初的目标是提供一个简单的纯 ...阅读全文

centos下安装UPX+压缩golang可执行程序

centos安装upx wget -c http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/ucl-1.03-2.el7.rf.x86_64.rpm rpm -Uvh ucl-1.03-2.el7.rf.x86_64.rpm yum install ucl wget -c http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/upx-3.91-1.el7.rf.x86_64.rpm rpm -Uvh upx-3.91-1.el7.rf.x86_64.rpm yum install upx #upx压缩...阅读全文

博文 2017-08-25 09:03:27 雨花

数字货币招商中心-致力打造一站式服务平台

数字货币招商中心-致力打造一站式服务平台 咨询V:psweiweixiao 加盟QQ:315-479-1797对于币安链未来的生态是如何规划的?会有哪些计划来吸引开发者?用比特币支付仅是开始,星巴克在区块链上布局原来这么多核财经 ·05月07日热度: 2506不管技术细节如何实现,但用加密货币购买星巴克咖啡,将不再是一个遥远的梦想。00:00--:-- 据科技新闻网站GeekWire 5月6日报道,总部位于美国的咖啡连锁店星巴克将采用科技巨头微软的Azure区块链服务来跟踪咖啡生产。白话区块链问: 对于币安链未来的生态,币安是如何考虑的?会有哪些计划来吸引开发者? CZ答: 目前,币安链会基于投融资、发币、二级市场交易形成未来的生态圈。所有项目方可以直接在链上发币,申请上币经由节点投票通过后...阅读全文

博文 2019-05-07 13:35:14 数字货币一站式服务

【求助】如何编译MIPS处理器的GCCGO工具链。

RT: go基本已经通吃了所有主流处理器。MIPS64的处理器也已经支持了,但是唯独MIPS32的处理器不支持。 目前有个需求就是在MIPS处理器上也能用上GO。目前知道的只有GCCGO了。 老版本的gccgo可以编译成功,gcc 4.8.3这个我就成功了 但是新版本我基本上试过,所有的办法去编译mips的gccgo 5.X,6.X版本。 1、直接从GCC源码编译。 2、crosstool-ng工具编译。 3、buildroot工具编译。 4、通过openwrt编译工具编译 都失败了。 工具基本能编译出来(gccgo,go1等),但是库编译就报错,编译不通过。 基本是gcc\libffi\src\mips\o32.s这个文件报错。 ...阅读全文

Golang实现自动化部署工具

golang 实现自动化部署的实例 自动化部署有Jenkins为什么我还要写这篇文件,应为公司服务器太菜了,装上jenkins服务器炸了。所以想用golnag撸一了自动化部署工具 每次更新程序都scp太痛苦了 实践完成的自动化部署工具 https://github.com/dollarkill... 自动化部署的实现思路 看了这个图 大家应该发现这实践起来并不困难就是收到 请求 后去 调用 git pull 就行 下面是程序分析 # devops生成文件 请填写完成检查确认后 再 运行啊 (每次运行会重写sh模块) # 这devops系统配置 app: host: "0.0.0.0:8083" debug: true max_request: 1000 task_num: 10 # 要自动化...阅读全文

博文 2019-09-16 19:02:38 dollarkillerx

Golang GC算法

概括 Go的垃圾回收官方形容为 非分代 非紧缩 写屏障 三色并发标记清理算法。 非分代:不像Java那样分为年轻代和年老代,自然也没有minor gc和maj o gc的区别。 非紧缩:在垃圾回收之后不会进行内存整理以清除内存碎片。 写屏障:在并发标记的过程中,如果应用程序(mutator)修改了对象图,就可能出现标记遗漏的可能,写屏障就是为了处理标记遗漏的问题。 三色:将GC中的对象按照搜索的情况分成三种: 黑色: 对象在这次GC中已标记,且这个对象包含的子对象也已标记 灰色: 对象在这次GC中已标记, 但这个对象包含的子对象未标记 白色: 对象在这次GC中未标记 并发:可以和应用程序(mutator)在一定程度上并发执行。 标记清理:GC算法分为两个大步骤:标记阶段找出要回收的对象,清理...阅读全文

博文 2019-01-03 21:34:49 一剑光寒十九洲

Cache为什么有那么多级?为什么一级比一级大?是不是Cache越大越好?

点击上方“公众号” 可以订阅哦!通过我们前面的系列文章,大家对Cache的组织形式和特性都有了一定的了解。有个问题不知道大家思考过没有:为什么Cache分这么多级,而是不是直接把L1或者L2增大了事?我们为什么不能直接做出个Cache奇大的CPU呢?下面我们来一一分析。为什么Cache要分级? 前文(L1,L2,L3 Cache究竟在哪里?)中我们提到CPU中有L1、L2、L3甚至L4级Cache。为什么搞这么麻烦,制程提高,可以放更多晶体管了,CPU厂商直接把L1和L2加倍不就好了吗?要回答这个问题,首先我们要知道L1和L2 Cache的区别,它们的构造一样吗?答案是否定的,虽然它们都是由CAM(Content Addressable Memory )为主体的tag和SRAM组成的,但是区...阅读全文

博文 2018-01-02 10:31:03 Wolf

Go Girl养成记! Day One—女孩子学Go语言哇

我之所以一意孤行要学go,那是有原因的!就像意外怀孕一样,再怎么意外,那都是有原因的。 我来ThePlant面试时,老板和菲哥都很自豪的声称,ThePlant是工程师文化主导的公司。作为一个初出茅庐的文科生,当时我完全不知道他们在自high什么。工作一段时间之后,姐算是明白了什么是“工程师文化主导的公司”。所谓的工程师文化主导,就是完全由程序员说了算呗! 这里的程序员都是皇阿玛,四阿哥,我顶多就算个嬷嬷吧。我必须好好吐槽一下他们罄竹难书的滔天罪行,呵呵。。。呵呵呵。。。。。。 先说做产品吧,那必须geek!看看Qortex的神一样的编辑器你就知道。最初的版本只支持makdown(当然还支持纯文本!),你叫我一个弱女子怎么用!!!后来我讲道理,摆事实,据理力争,才教会了这群奇葩怎样...阅读全文

游戏服务器框架mqant

mqant是一个基于Golang语言的游戏框架,它具有高性能、高可伸缩、分布式多进程等特点,并且使用很简单。与以往多进程的游戏框架不同,mqant也支持单进程部署,并且也具备很高的性能。mqant在底层对分布式进行了抽象,在开发的时候无须考虑分布式,让开发者可以更多地去关注游戏的具体逻辑,大大提高开发效率。mqant的灵活性使得mqant也可以作为通用的分布式实时应用开发框架,用于一些高实时应用的开发。 mqant与客户端通信选择了mqtt协议,这使得mqant支持所有主流平台的客户端,使得客户端的开发变得很友好...阅读全文

开源项目 2017-02-28 03:04:10

Go语言适用的领域

Go语言适用的领域【转载自知乎】1、服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。2、分布式系统,数据库代理器等。3、网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。4、内存数据库,前一段时间google开发的groupcache,couchbase的部分组建。5、云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。6、游戏服务端的开发...阅读全文

博文 2017-02-10 11:30:56 抚琴煮酒

用go 实现下载功能

大家好,在学习go中, 想实现一个简单的下载功能, 即 文件在go服务器上, html 点击下载, 服务器 读取本地文件, 并且返回给浏览器,弹出下载框,选择下载。 找了很久都是实现上传和 服务器远程url (链接)再回给浏览器, 美怎么 看到go直接读取本地文件,然后直接给浏览器下载。希望大家能提个建议, 非常感谢^....阅读全文

golang 通过 Redis GEO 实现 LBS 功能

LBS 基于位置的服务(Location Based Services,LBS),是利用各类型的定位技术来获取定位设备当前的所在位置,通过移动互联网向定位设备提供信息资源和基础服务。LBS首先读者可利用定位技术确定自身的空间位置,随后读者便可通过移动互联网来获取与位置相关资源和信息。LBS服务中融合了移动通讯、互联网络、空间定位、位置信息、大数据等多种信息技术,利用移动互联网络服务平台进行数据更新和交互,使用户可以通过空间定位来获取相应的服务。 redis 中关于 GEO 的方法 geoadd:增加某个位置的坐标。 geopos:获取某个位置的坐标。 geohash:获取某个位置的geohash值。 geodist:获取两个位置的距离。 georadius:根据给定位置坐标获取指定范围内的位...阅读全文

博文 2020-03-17 15:32:53 hwholiday

优酷视频MP4修复工具 youkuMP4Patcher

# 优酷视频MP4文件修复工具 **场景**:春节期间帮老人家从优酷上缓存了一些戏曲视频,结果后来从手机导出之后使用其它播放器无法播放。作为技术行业的从业者怎能忍?:D 经过研究写了这么个工具,请自行编译。 **探索**:优酷对MP4源文件进行了简单的加密处理(其实谈不上加密,他们只是对MP4文件格式做了点小手脚),导致只能在优酷播放器里播放; 1. 修复从手机端导出的缓存优酷MP4文件只能在优酷播放器播放的问题; 2. 修复后的MP4文件可以在任意播放器里播放...阅读全文

Golang web开发目录结构说明

通常开发项目开发时目录结构可以随意设计,但好的目录结构能让代码显得更加清晰。 Golang web 项目通用目录结构说明: projectName # 项目名称 |-- app # 应用程序目录 |---- controllers # 控制器,入参校验 |---- middleware # 中间件 |---- routers # 路由 |---- services # 业务逻辑处理 |-- config # 配置文件 |-- dao # 数据库访问 |-- models # 数据模型 |-- storage #存储 |---- cache # 缓存 |---- logs # 日志 |-- main.go # 程序入...阅读全文

博文 2018-11-27 23:34:39 野尘lxw

beego自动化部署

beego是Golang写的应用程序开源框架http://beego.me/,我使用`beego`写了一个项目小项目,golang是编译语言,需要编译之后再部署,每次部署到服务上是件很麻烦的事情。就写了一个自动打包部署到服务器的脚本,方便发布部署。 ##**项目结构**先看看beego项目的结构: beepkg |-- conf | `-- app.conf |-- controllers | `-- default.go |-- main.go |-- models |-- routers | `-- router.go |-- static | |-- css | |-- img | `-- js |-- tests | `-- default_test.go `-- views `--...阅读全文

博文 2017-02-10 14:46:23 姜家志

golang web编程:简单的会话(使用sessions包)

网站不能根据来访的ip来确定来访者的身份,ip加端口号也不行.一般都是通过用户名密码来确定用户身份的,但用户也不能每次访问网页时都手动输入一次用户名和密码啊,这样太累了. 一个最简单的想法就是让浏览器帮我们输入,但是http协议本身没有夹带用户名密码的功能,而且有时我们的需求又不只是用户名和密码这么简单,比如说我们还想在浏览器和网页服务器之间传递用户的id,上次访问网站的时间等,每个网站的要求都不一样,所谓众口难调. 现在的做法是,浏览器允许网页服务器在浏览器里存一小段数据,什么数据都行,你自己的格式自己去解析就好了.具体的做法是,浏览器第一次访问服务器时,服务器应答中就会包含需要浏览器请求的数据,浏览器收到服务器的应答,并把数据保存起来.当浏览器再次访问服务器时,浏览器就在请求里包含这段数...阅读全文

博文 2015-06-17 20:17:43 dean_go

深圳羚羊极速科技有限公司 招聘golang开发工程师

go语言开发工程师 岗位职责: 1. 负责分布式系统设计与实现 2. 负责云存储系统的维护和优化 任职要求: 1. 3年以上 Linux 操作系统下的 C/C++项目的开发经验 2. 有分布式存储开发、设计、架构经验,深刻理解分布式存储原理 3. 精通linux IO系统、网络系统,精通高性能系统者优先 4. 有RabbitMQ开发经验者优先 5. 有go语言开发经验者优先 6. 具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力 7. 有良好的团队合作能力,富有工作激情,善于沟通,热爱开发事业 工作地址 深圳市南山区软件产业基地后海大道2388号怡化金融科技大厦1301 联系电话: 0755-26651282 kelly.wa...阅读全文

GO语言零基础入门资料整理

GO语言跟它名字一样是门比较装逼的语言,鲜有菜鸟初学者教程,所以没有语言基础的话,理解起来会有点困难。闲来没事整理了一个GO零基础入门资料。 安装与简介 因为国内老被墙,被墙之后请在网上直接下载,下载链接 开发环境编辑器 1.Sublime,支持多标签,自动排版,高亮,简单的填补,简单的SHELL直接运行等。 《Ubuntu下使用Sublime Text 2搭建Go开发环境》 《Sublime Text 2搭建Go开发环境(Windows)》 2.vim + gocode 《Go的Vim的高亮和自动补齐》 3.LiteIDE:只用于GO环境开发的编辑器 4.免费的golang在线开发环境:由实验楼与StudyGolang合作提供的在线实验室,可直接通过浏览器访问进行Go语言的学习与编程。 一...阅读全文

博文 2016-01-15 19:00:00 weiyuefei

【币码翁】IPFS官方周报第54期 ​

​ 欢迎关注 IPFS 周报!提请注意: 请将 URL 复制/粘贴到浏览器中打开网站。感谢您的支持!星际文件系统 (IPFS) ( https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。想参与其中?点击下面的一些链接,查看我们在 GitHub (https://github.com/ipfs ) 上的内容,或加入我们的 IRC ( https://riot.im/app/#/room/#ipfs:matrix.org )。想要更新你的收件箱吗? 订阅我们的每周通讯( https://tinyletter.com/ipfsnewslette...阅读全文

博文 2019-08-14 19:32:46 IPFS星际特工

使用 Goland 调试 - 起步

*由 [Florin Pățan](https://blog.jetbrains.com/go/author/florin-patanjetbrains-com/) 发布于 2019 年 2 月 6 日* 调试是任何一个现代应用的生命周期中的必要部分。 对于经常使用调试器的开发者而言,调试不仅对于发现 bug 很有用,也有助于查看和理解他们即将用到的新代码库中发生了什么,或是学习一门新的语言到底是怎么回事。 一般来说,大家比较喜欢的调试风格有两种: * 打印语句:在代码执行到各个步骤时进行记录。 * 使用类似 [Delve](https://github.com/go-delve/delve) 的调试器,或直接使用 IDE:这能让我们在程序执行过程中有更多的控制力,提供更多可查看代码的功能,...阅读全文

博文 2019-05-24 16:53:39 __leo_lee__

alpha—go

LOL心得:你必须知道的100件事 闪现是个智能施法,鼠标点哪里,它就闪哪里,所以别把鼠标放在自己脚下闪现,你会华丽丽的留在原地。 治疗术有DEBUFF,放完一个下一个会减少一半的治疗量,所以最好别一起用掉很多个治疗。 CTRL加某个技能的按键是升级此技能,比如CTRL+Q就是升级Q技能。所以你看到视频里的大神们都不用鼠标加点。 车子和超级兵都有个BUFF减少防御塔的伤害,所以防守时先把车子打掉。 防御塔会越打越痛,所以不要抗太久塔。 法伤对于攻击建筑有物理加成,例如500法伤的死歌,他只有100的攻击,但是打塔可能是200的伤害。 除非你们人数领先或者你妈妈喊你回家吃饭,对面五人在高地守着你们最好还是先拿外塔。 顺风血剑逆风无尽,虽然不是百分之百完美的打法,但是所有ADC几乎都可以这么出装...阅读全文

微服务架构

微服务架构·基础篇 看到最近“微服务架构”这个概念这么火,作为一个积极上进的程序猿,成小胖忍不住想要学习学习。而架构师老王(不是隔壁老王)最近刚好在做公司基础服务的微服务化研究和落地,对此深有研究。 于是成小胖马上屁颠屁颠的跑过去向老王请教:“王哥,我看微服务架构这么火,我也想学,您给我讲讲啥是微服务架构呗?” 老王笑了笑说:“要想知道什么是微服务架构,你得先知道什么系统架构设计。” 成小胖的理想是成为一名架构师,平时积累了不少知识,因此对“系统架构设计”这个概念还是很熟悉的,因此他马上就给出了答案【1】: 系统架构设计描述了在应用系统的内部,如何根据业务、技术、组织、灵活性、可扩展性以及可维护性等多种因素,将应用系统划分成不同的部分,并使这些部分彼此之间相互分工、相互协作,从而为用户提供某...阅读全文

博文 2017-10-29 15:03:58 Leo_wl

学习go语言能做什么样的工作?

载请注明出处:www.oldboyedu.comGo语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。Go语言成功案例Nsq:Nsq 是由Go语言开发的高性能、高可用消息队列系统,性能非常高,每天能处理数十亿...阅读全文

博文 2018-11-09 16:36:01 大数据hadoop

【北京】滴滴golang开发工程师急招

滴滴出行社招—平台技术HR直招-- Golang开发工程师—北京 岗位职责: 1. 参与滴滴基础服务平台的设计、研发工作,提升滴滴产品稳定性; 2. 与产品经理尝试沟通产品需求; 3. 进行相关产品的技术文档编写,方案设计; 4. 学习研究业界先进技术,保持技术进步。 任职要求: 1. 本科及以上学历,计算机相关专业,两年以上服务端研发经验; 2. 深入理解计算机原理,有扎实的数据结构和算法基础; 3. 深入理解linux系统及其原理,熟悉TCP/IP、HTTP协议以及网络编程; 4. 良好的编码和文档习惯,对代码美感的追求孜孜不倦; 5. 精通Go/C/C++/Python等至少一门语言,有Go开发经验者优先; 6. 熟悉常用的sql、nosql(非关系型数据库)数...阅读全文

Google 为 TensorFlow 启用 tensorflow.google.cn 域名

8月31日,Google 在中国的开发者网站上提供数百份实用资源,让中国的开发者们能够更便捷地使用 TensorFlow 打造人工智能应用。所有对 TensorFlow 感兴趣的开发者、研究人员或公司都可以在 tensorflow.google.cn 上获取使用指南,在知识库中搜索现有的 API(应用程序编程接口),或是构建模型的方法。如果你是一家希望打造人工智能服务的初创公司,可以在这里清楚地了解到 TensorFlow 的使用方式,并通过实践教程进行学习,而这些资料和教程都完全免费。 Google 很重视中国的 AI 开发者? 中文官网:https://tensorflow.google.cn/ 官网:https://www.tensorflow.org...阅读全文

Gin实践 番外 Golang交叉编译

Golang交叉编译 项目地址:https://github.com/EDDYCJY/go... (快上车,支持一波) 原文地址:https://segmentfault.com/a/11... 前言 在 连载九 讲解构建Scratch镜像时,我们编译可执行文件用了另外一个形式的命令,不知道你有没有疑问? $ CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o go-gin-example . 说明 我们将讲解命令各个参数的作用,希望你在阅读时,将每一项串联起来,你会发现这就是交叉编译相关的小知识 也就是 Golang 令人心动的特性之一跨平台编译 一、CGO_ENABLED 作用: 用于标识(声明) cgo 工具是否可用 意...阅读全文

博文 2018-03-26 15:34:41 煎鱼

google go语言

引用:http://developer.51cto.com/art/201203/326428.htm 谷歌今天发布了Go语言的首个正式版本,谷歌称,这是该语言发展过程中的一个重要的里程碑。 Go 语言最初由Rob Pike等谷歌工程师在2007年9月启动设计工作,在2009年11月正式对外发布。Go将动态语言易于编写的特性和静态语言的高效性相结合,具备良好的易用性和极佳的执行效率。Go语言最初定位于网络服务器、存储系统和数据库的程序设计,同时在语言中包含并发构造体,以帮助开发者创建并行任务。Go开发团队曾表示,编译完成的Go程序运行速度接近C语言实现的程序。 在3月中旬,谷歌曾发布Go 1的候选版本,并称已经非常接近正式版了。而此次发布的正式版在候选版的基础上改进了部分功能,修复了一些bu...阅读全文

博文 2014-10-04 19:26:24 sode

Go1.10 支持 HTTPS 代理

Go1.9 出来后 6 个多月的时间,Go1.10 就被[发布](https://blog.golang.org/go1.10)。新版本带来大大小小的变化([发行说明](https://golang.org/doc/go1.10)),但是我想谈谈有关 `net/http` 包的改变。1.10 版本支持在 HTTPS([commit](https://github.com/hyangah/go/commit/ab0372d91c17ca97a8258670beadadc6601d0da2)) 上的代理,而在原来它只能通过使用普通的(未加密)HTTP 来和代理进行沟通。接下来让我们来看看它是否真的可以工作。 ## Server 为了验证这一改变,首先请用 golang 启动一个简单的 HTTP(...阅读全文

Go 项目标准布局(结构)

https://github.com/golang-standards/project-layout 项目总结了 Go 项目的布局,这是Go应用程序项目的基本布局,并不是Go核心开发团队定义的官方标准;但是,这是Go生态系统中的一种常见的项目布局模式。 Go目录 /cmd 该目录用于存放 Go 项目的入口,即 main.go。一般来说,我们应该在 cmd 目录下创建子目录,子目录名称代表可执行程序的名称(例如/cmd/myapp)。上面列出的优秀开源项目基本上遵循了这一规则。 一般来说,该目录中的代码应该尽可能少。如果认为该代码可以导入并在其他项目中使用,那么它应该位于/pkg目录中。如果该代码不可重用,或者不希望其他人重用它,则将该代码放在/internal目录中。 /internal 这...阅读全文

博文 2020-03-03 15:33:24 DevilRoshan

golang test模块

1 创建文件夹testing101 2 被测试程序 package testing101 func Sum(numbers []int) int { sum :=0 for _,n :=range numbers { sum +=n } return sum } 3 测试程序 package testing101 import ( "testing" ) func TestSum(t *testing.T) { numbers := []int{1, 2, 3, 4, 5} expected := 15 actual := Sum(numbers) if actual != expected { t.Errorf("Expected the sum of %v to be %d but in...阅读全文

博文 2018-01-05 00:30:00 peterinblog

时速云与热璞科技达成战略合作,共同开拓企业云服务市场

2018年7月,企业级容器云计算领军企业时速云与上海热璞网络科技有限公司(简称热璞科技)正式达成战略合作,双方将基于各自的主营业务与资源优势,在产品、资源、渠道等多个方面展开深度合作,共同开拓金融、能源、运营商、广电等领域的云服务市场。 时速云是国内首家基于 Kubernetes 的企业级容器云计算服务商,业务涵盖容器 PaaS 平台、DevOps、微服务治理、AIOps 等领域,拥有金融、能源、运营商、制造、广电、汽车等领域的诸多大型企业及世界 500 强客户。 作为国内领先的企业级容器云计算服务提供商,时速云始终坚持以客户需求为中心,用领先的技术实力,为用户提供更高品质的产品和服务。目前,时速云已经为国家电网、新奥集团、戴姆勒奔驰等众多知名企业成功交付了容器云 PaaS 平台及相关产品,...阅读全文

Go Guru(golang 代码导航工具) 的使用

翻译来源:http://golang.org/s/using-guruGuru 是一个导航go 代码的编辑器集成工具这篇文章将展示了我们怎么使用Guru。在开发golang项目的过程中我们希望我们的编辑器回答我们各种各样的问题。例如: 标识符(名字,对于变量、常量、函数、语句块)在哪里申明? 所有对此申明的引用在哪里? 此表达式的方法变量是什么? 这个包的api 是什么? 哪些具体类型实现此接口? 动态调用可能的调用者是什么? 方法可能的调用这是什么? 在此channel 上发送的值可能在哪里接收?除了它带来了一些在任何ide中没有发现的高级静态分析功能,它还带来了很多重量级ide才能带给你的令人兴奋的效果。GopherCon 2014 talk on the Go Guru (https:...阅读全文

博文 2017-03-10 18:27:35 hehe_Android

golang chromedp简单学习

需求 有一项重复性工作,就是每天打开监控系统输入一些内容查询结果并截图然后检查发送日报,所以就在想能不能使用go来完成部分工作,查找之后就发现了chromedp,使用起来之后还是发现不少的坑。 安装 因为安装的时候一些包要翻墙,所以使用gopm下载包,具体可以百度gopm gopm get github.com/chromedp/chromedp 报错 刚下载完跑demo,这里提示这几行。 demo 地址https://raw.githubusercontent.com/chromedp/examples/master/click/main.go image.png 我的解决方法是进入handler.go把这几个类型注释掉,如果还有其他好的办法可以告诉我 解决掉上面几行之后,继续跑官方的de...阅读全文

博文 2019-03-30 02:34:39 jinnzy

Go 语言的 parse 解析器

解析器起始很简单,但是用处很大。当我们解析 XML文件,json文件,对源代码进行静态分析都是需要解析器。 Go 语言的 parser 是一个十分基础的解析器,采用递归下降语法进行解析。 接下来,我就进行逐一的分析!(待完成) $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for...阅读全文

博文 2015-06-17 23:00:46 xiaorenwuzyh

beego 0.9.0 中智能路由AutoRouter的使用方法及源码解读

了解beego的开发者肯定知道,beego的路由设计来源于sinatra,原来是不支持自动路由的,每一个路由都要自己配置的,如: type MainController struct { beego.Controller } func (this *MainController) Get() { this.Ctx.WriteString("hello world") } func main() { beego.Router("/", &MainController{}) beego.Run() } beego.Controller 提供所有的restful方法,Get,Post,Delete等方法,通过重写这些方法,已响应客户端不同的请求方式。 用过Node.js的同学,肯定觉得很熟悉,拿最...阅读全文

博文 2014-10-04 19:26:21 yuan-shuai

Go 1.4 Beta 1 发布

Go 1.4 Beta 1 发布,此版本是 Go 1.4 的 beta 版本,现已提供下载,反馈bug请前往这里。 此版本仅包括一个小的编程语言修改;对编译器做了重大修改,向后兼容 for-range loop 形式。此版本关键点在实现功能,改进垃圾收集器和为下个版本完整的收集器打好基础。 此版本还添加了新的工具,支持使用 go 命令生成构建时源代码。此版本支持 Android 和 Native Client(NaCl)的 ARM 处理器和 Plan 9 的 AMD64。 Go 1.4 最终版本计划在 2014 年 12 月 1 日发布,更多更新内容请看发行说明...阅读全文

博文 2014-11-01 01:00:01 mengyidan1988

go语言http服务处理image/css/js等静态文件

go语言实现http服务器时如果处理静态文件,需要用到http.ServeFile: func ServeFile(w ResponseWriter, r *Request, name string) { dir, file := filepath.Split(name) serveFile(w, r, Dir(dir), file, false)} 首先根据请求路径r.URL.Path判断是否包含静态文件目录,如果存在则直接返回: img_dir := "/home/qinpeng" if strings.HasPrefix(r.URL.Path,"/img"){ file := img_dir + r.URL.Path[len("/img"):] f,err := os.Open(fil...阅读全文

最近发现了一个代码学习工具的好网站 bytelang.com

最近在论坛发现了一个好网站,https://bytelang.com 平时用来逛论坛,写代码交流再方便不过了,每次都要打开保存再运行,给别人看代码还要贴代码,十分麻烦。为了给码友展示一段代码对方还要在粘贴复制运行调试,糟糕透了。昨天@香协理i给我说了这个,简直太好用了。 支持多种语言在线运行查看结果,提供常用的类库包。重要的是像我这种vim重度使用者,别的编辑器按键映射用起来特别别扭,也是支持vim编辑模式的。常用的代码配色,字体大小,字体类型,云端同步编辑器配置。 代码写好,立即就能看到结果,免去了打开ide的麻烦 要把代码发送给别人,也十分方便,获取分享链接对方打开就能查看,talk is cheap show me the code 我的小例子~嘿嘿 ...阅读全文

DockOne微信分享(五十九):基于Docker的分布式服务研发实践

【编者的话】Docker自从发布以来,短短3年的时间就迅速成长为各家争先追捧的宠儿,各家企业都希望能够借助Docker来提升自己的产品、优化现有的研发流程。本文分享Docker在天云软件分布式服务研发过程中的应用与实践,主要介绍使用Docker、Compose构建分布式服务的CI/CD体系;容器技术的引入为天云软件的SkyForm CMP带来了哪些变化;围绕着CI/CD,如何使天云软件在日常研发活动中变得更加敏捷、高效。 @Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自Rancher、携程、PPTV、蚂蚁金服、京东、浙江移动、海尔电器、唯品会、eBay、道富银行、麻袋理财、土豆网、阿里百川、腾讯游戏、数人云、点融网、华为、轻元科技、中兴通讯、中国民生银行等公...阅读全文

博文 2017-06-25 16:25:00 franklin798

聚合支付公司独立研发的聚合支付服务平台

第四方支付是相对第三方而言的,作为对第三方支付平台服务的拓展。第三方支付介于银行和商户之间,而第四方支付是介于第三方支付和商户之间,没有支付许可牌照的限制。 第四方支付集中了各种三方支付平台的接口,也就是说集合了各个第三方支付的优势,能够根据商户的需求进行个性化定制,形成支付通道资源互补优势,满足商户需求,提供适合商户的支付解决方案。 总体来讲,第四方支付属于支付服务集成商,具有第三方支付无可比拟的灵活性,便捷性和支付服务互补性。而且第四方支付比第三方支付更具中立性优势,可以一定程度上调和目前第三方支付恶意竞争的状况,保证支付行业健康发展。 现在市面上的支付系统太多了,价钱不一、开发语言多种多样,什么JAVA、.NET、PHP、GOLANG等等。每个公司都打着自己的支付系统才是真正好的系统,...阅读全文

博文 2019-03-23 12:34:41 qq3201809208

Golang 解决"go get xxxx"失败的问题

【问题1】 sudo go get github.com/nsf/gocode sudo: go: command not found 【解决1】 将已安装的go可执行程序链接到sudo的env路径下,例如下面的操作: sudo ln -s /usr/local/go/bin/go /usr/local/bin/ 【问题2】 sudo go get github.com/nsf/gocode sudo: cannot download, $GOPATH not set. For more details see: go help gopath 【解决2】 将GOPATH路径显式的设置并使用,例如下面的操作: sudo env GOPATH=/Users/ryan/go go get gith...阅读全文

博文 2017-01-05 02:00:01 吃一堑消化不良

Go语言,Docker和Kubernetes

载自:http://www.yinwang.org/blog-cn/2016/03/27/docker 当我嘲笑Go语言的时候,有些人跟我说,你说Go语言是垃圾,可是你看像Docker和Kubernetes之类的云计算项目,为什么是Go语言写的呢? 其实答案很简单:这些东西并不是非得用Go语言写才可以,用其他语言实现它们其实并没有什么问题,只不过它们碰巧是用Go语言写的而已。Docker和Kubernetes之类的项目,其实只依赖于操作系统的构架细节,对语言没有特别的要求,而且也没什么性能需求,所以它们其实可以用任何语言(包括Shell,Perl,Python,Ruby,C,Java……)来实现。只因为有人跟风,用Go语言写了这些东西,并不能说明Go语言是好东西。在当今混乱的IT业界,随便你...阅读全文

博文 2016-05-10 18:00:03 cytzrs

服务器框架zinx-基于Golang的轻量级TCP并发服务器框架

# Zinx [![License](https://img.shields.io/badge/License-GPL%203.0-blue.svg)](LICENSE) [![Gitter](https://img.shields.io/badge/在线交流-Gitter-green.svg)](https://gitter.im/zinx_go/community) [![zinx详细教程](https://img.shields.io/badge/zinx详细教程-简书-red.svg)](https://www.jianshu.com/p/23d07c0a28e5) [![zinx原创书籍下载](https://img.shields.io/badge/原创书籍...阅读全文

[翻译]Go 的调度器

[[翻译]Go 的调度器][1] Go 1.1 重要特性之一就是由 Dmitry Vyukov 贡献的新调度器。无需对程序进行任何调整,新的调度器就可以为 Go 程序带来令人兴奋的性能提升。因此我觉得有必要就此写点什么。 在本博文所述的大多数内容都已经在原始的设计文档中有所介绍。那是一篇相当全面的文档,同时也相当专业。 你想要了解的关于新的调度器的一切都能在那篇文档里找到,而这篇博文描绘了整体情况,所以优略得所。 [1]: http://www.mikespook.com/2013/07/%E7%BF%BB%E8%AF%91go-%E7%9A%84%E8%B0%83%E5%BA%A6%E5%99%A8...阅读全文

Canonical 用 Go 做了这五个超酷的项目

前不久,Google 的 Go 问鼎 TIOBE 排行榜,成为 2016 年年度编程语言。Go 因其易学性及务实性受到大家的喜爱。抛开长篇累牍的理论,Go 更注重的是实践经验,因此越来越多的用户将其应用到工业环境中。在 Canonical 中也一样!作为 Go 的支持者,我们用 Go 做了五个超酷的项目: 1、Juju Juju 堪称是“DevOps工作经验的结晶”,能使用 Charms 将应用程序体系结构部署到 EC2,OpenStack,Azure,HP 数据中心,甚至是基于 Ubuntu 的笔记本电脑。它使得开发和部署过程中团队间的对话和工作流程变得极为清晰明了。 2、Snapcraft Snapd 和 snap工具使系统能够使用 .snap 文件。 为每个 Linux 桌面,服务器,...阅读全文

博文 2017-01-24 17:00:09 编辑部的故事

Golang 开发移动应用的OpenGL(Android为例)的渲染管线

golang.org/x/mobile/gl 实现的是 OpenGL ES 2 的封装。 参考:https://godoc.org/golang.org/x/mobile/gl OpenGL ES(OpenGL for Embedded Systems)是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。OpenGL ES 1.0针对固定管线硬件的,OpenGL ES 2.0针对可编程管线硬件,可以认为完全是两套API。最新3.0版本也在Android4.3得到了支持,从源码上看完全扩展自2.0。 OpenGL负责把三维空间中的对象通过投影、光栅化转换为二维图像,然后呈现到屏幕上。 管线这个术语描述了OpenGL渲染的整个过程。openGL采用cs模型:c是cp...阅读全文

博文 2016-02-04 03:00:01 ghj1976