古老的榕树

Go 世界里的失落园和园丁

发表于 2022-02-27 17:01 阅读(783) 评论(0) 赞(35)
Go 语言从2006年到2022年,已经历了15个年头,创始人 Ken Thompson 肯·汤普逊 到项目 Leader 领导 Russ Cox 拉斯·考克斯,尽管人和事变迁,甚至有些已经物是人非,但 Go 语言将一直高效持续发展下去,直至从一门新语言变成成熟语言,往顶级主流语言推进,成为一门顶级语言过程中肯定会出现一些影响行业的项目,如 Docker, K ubernet ... 阅读全文

Go 1.18 即将发布

发表于 2022-02-19 15:02 阅读(805) 评论(1) 赞(3)
看 Go 官网博客介绍,Go 1.18 Bata2 已经发布,正式版将会在 2022年3月份发布出来,这个版本绝对是一个里程碑的版本,不亚于 1.0 的发布。这次主要是语言加入了泛型,影响是很深远的,基本之前的底层包的类型和函数都被翻了一遍,并且以后使用带泛型的 Go 语言,在使用上也是有很大的区别的,2022年,注定很多第三方类库会因此做出相 ... 阅读全文

Go 交叉编译部署

发表于 2022-01-02 22:09 阅读(1132) 评论(6) 赞(24)
Go 服务部署在 Linux 服务器上,比如我常用 Debian 部署 Go 写的微服务,都懒得在服务器上安装设置 Go 语言环境了,直接在本地 PC 机编译为 Go 二进制文件,放在任意文件夹下,启动即可。 但是自己开发的环境不是 Linux 系统,可能是 Windows 或 MacOS ,这是就用到交叉编译了,什么交叉编译? 交叉编译,就是打包的系统和执行的系统 ... 阅读全文

到2021年了,现在究竟谁是 Go 项目的老大?

发表于 2021-09-17 14:27 阅读(999) 评论(1) 赞(38)
最近 Go 项目开发小组讨论最多的,应该是泛型相关的东西,泛型的引入,会使 Go 语言发生极大的改变,以前底层 API 函数,都需要做调整,工作可谓是大工程,开发的进程中,也遇到了不少的问题,需要讨论和定稿,github 最近出来了 Discussions 功能,就是专门用于讨论项目问题而生的。 现在 Go 语言的三大创始人 Ken Thompson 肯·汤普 ... 阅读全文

Go 1.17 尝鲜

发表于 2021-08-19 09:23 阅读(1020) 评论(0) 赞(24)
Go 1.17 在 2021年08月17日发布,官方称 Go 1.17 性能提升了 5% 左右,编译包体积缩小 2%,自己亲自重新编译了 myblog,体积真的变小了,从原来的 10.73 变成了 8.87 M,性能也得到相应的提升,另外更让人意外的是,内存使用率从原来的 30-40M 降低到现在的 12-16 M 之间。网友特意试用一下泛型是否开启,结果可以用: package main i ... 阅读全文

用 Go 开发终端接口服务--写在最后

发表于 2019-05-14 18:57 阅读(3324) 评论(0) 赞(0)
本系列教程,所讲到的内容,源码不能一一列举,以下是 chapter01 源码,读者可以自行下载和学习。下载地址: https://github.com/panjunjie/course/blob/master/chapter01.zip 源码要正常运行,除了配置 Go 环境之外,还需要注意以下事项: 本教程项目数据库为 MySQL 5.6 ,数据库生成脚本位于根目录下的 database.sql 文件里,读者可 ... 阅读全文

用 Go 开发终端接口服务--保证高性能项目的法宝

发表于 2019-05-14 18:54 阅读(3515) 评论(1) 赞(0)
我们在《 准备项目所需的 Go 类包 》章节里,选择所需的类包,其实是为保证项目的高性能做好了准备。整个项目自上而下,我们都尽量避免产生性能损耗发生的情况。 最顶层路由器部分,是终端每次请求服务必经的模块,我们直接放弃了第三方的路由器,采用 Go 原生内置的 ServeMux 路由器, 并全面禁止在 URL 上携带任何参数,每个 URL 在 ... 阅读全文

用 Go 开发终端接口服务--把项目部署到服务器

发表于 2019-05-14 18:47 阅读(4540) 评论(0) 赞(0)
本章节主要讲解三部分内容:打包项目源码,通过 supervisord 启动和守护服务进程,最后用 nginx 代理服务和绑定域名。 Go 编译代码生成二进制包的时候,只处理 go 类型文件,静态文件、配置文件、 HTML 等那些非 go 类型文件都原样保留。进入项目根目录下,执行打包指令如: go build -ldflags "-w -s" Go 在不同的操作系统上编译出来 ... 阅读全文

用 Go 开发终端接口服务--测试已写好的接口

发表于 2019-05-14 18:30 阅读(4761) 评论(1) 赞(1)
项目的测试工作相当重要,它直接影响到项目的质量。通常一个项目,虽然外围测试团队会进行高强度、多维度的测试,但作为开发者的我们,在测试团队正式测试之前,自己编写一些测试案例,输入一些常规的数据,测试接口是否返回正确的数据,这种工作是非常有必要的,开发者不能没有经过测试,就直接扔给测试团队。 编写测试案例,总体思 ... 阅读全文

用 Go 开发终端接口服务--暴露 controller 控制层接口

发表于 2019-05-14 17:04 阅读(4150) 评论(0) 赞(1)
控制层主要负责接收外部的请求参数,然后把参数传递给 service 服务层,等服务层处理返回数据,再把数据序列化输出给外部。所以实际上 controller 控制层,是负责把终端提交的 JSON 数据转成对象,传递给 service 服务层函数,然后再把服务层函数返回的对象转成 JSON 返回给终端,这些流程都是可以封装在一些通用的函数里,可以节省很 ... 阅读全文

用 Go 开发终端接口服务--按需写 service 服务层逻辑

发表于 2019-05-14 16:54 阅读(5392) 评论(0) 赞(0)
service 服务层是整个项目的枢纽部分,它调用下面 dao 数据层的函数,给上面 controller 控制层输送数据,此外,项目的业务逻辑、数据事务都在服务层完成的,结合以上特征,我们对服务层做法做了一些约定:服务层每个对外函数和 controller 控制层的接口是一一对应的,每个函数只为一个接口服务,保证所有业务逻辑都在服务层函数里实 ... 阅读全文

用 Go 开发终端接口服务--灵活写 Dao 数据层函数

发表于 2019-05-14 16:43 阅读(5043) 评论(0) 赞(0)
上一章节把实体层的结构体都准备就绪了,dao 数据层主要是进行数据操作,以实体层结构体为载体返回给上层使用。数据层的函数,我们尽量提高它们的可复用性和扩展性。数据层的函数根据功能性一般可以抽象几个分类出来,读和写相关的两种类型函数,读函数再细分读取一条记录、读取多条记录、读取聚合统计单列数据;而写函数可以细分 插 ... 阅读全文

用 Go 开发终端接口服务--定义 model 实体层结构体

发表于 2019-05-14 16:37 阅读(4279) 评论(0) 赞(0)
本教程主要讲解项目的构建方法,并不会涉及错综复杂的业务,错综复杂的业务是由多个业务实体和多个实体关系组成的,我们进阶教程会讲解到,所以我们项目的实体也是简单的,现在我们主要挑选典型的 Product 产品和 Product Photo 产品图片业务进行讲解,把构建的方法和流程说明清楚,其他业务模块因项目不同而异,但再复杂的项目,万变 ... 阅读全文

用 Go 开发终端接口服务--公共类关键函数

发表于 2019-05-14 16:28 阅读(3172) 评论(0) 赞(0)
我们所说的公共类包,包括 dbutil、util、common 这三个包,下面展开一一说明它们里面关键的函数。 **dbutil** 顾名思义就是数据库工具类,我们采用了第三方 sqlx 类包来操作数据库, sqlx 的 DB 对象在 dbutil 里完成初始化工作,我们把这个简单的功能独立到一个包里,是为了以后遇到新的需求,易于扩展。比如 sqlx 有更换成 gorp、g ... 阅读全文

用 Go 开发终端接口服务--准备项目所需的 Go 类包

发表于 2019-05-14 16:13 阅读(3263) 评论(0) 赞(0)
我们选择第三方类包,主要是为了方便快速开发,把主要精力放在业务流程上,为了避免走弯路,我们坚持选择稳定、符合 Go 语言哲学、开发团队活跃的类包作为优先选包原则。下面将罗列我们项目用到的第三方类包,并简单说明用途和特征。 github.com/codegangsta/gin **gin 用途**: 开发环境自动热编译部署工具,方便开发使用,只需启动 ... 阅读全文

用 Go 开发终端接口服务--项目整体结构介绍

发表于 2019-05-14 16:06 阅读(3749) 评论(0) 赞(0)
通常一个项目我们建议分 dao service controller 三层 ,这样可以重用一些关键的部件,模块尽量趋于松耦合,分工明确便于维护。数据的传输方式,我们采用 JSON 格式数据发起 POST 请求,再返回 JSON 格式数据给终端,这样终端和服务端的数据格式都统一了,便于协调沟通,还可以提高数据传输过程中的安全性。但凡事不能绝对,主要还是 ... 阅读全文

用 Go 开发终端接口服务--快速编写一个 Web 服务器

发表于 2019-05-14 16:03 阅读(4455) 评论(0) 赞(0)
上一章节我们搭建好了 Go 环境,本节准备在 Windows 下用 Go 写一个简单的 Web 服务器,Go 本身对 Web 开发支持的相当完善,不依赖任何第三方的类库,也不需要依赖容器来运行我们的 Web 服务,编写一个基本 Web 服务器也只要几行代码。 首先我们新建项目,打开 cmder 命令控制台工具,进入 E:\GOPATH\src 路径,新建一个 chapter01 文 ... 阅读全文

用 Go 开发终端接口服务--Go 语言编码规范

发表于 2019-05-14 15:25 阅读(3307) 评论(1) 赞(0)
初学者使用 Go 语言开发项目的时候,首先需要熟悉一下该语言的编码规范,逐渐养成良好的编码习惯,提高自己的编码质量,对自己,对项目团队都受益匪浅。 **【强制】程序内部命名方式** ,一律采用驼峰命名方式。常量、变量、函数名都统一采用驼峰命名,公用对象首字母需大写,私有对象首字母可小写。有些特定名词或缩写名词,建议全部 ... 阅读全文

用 Go 开发终端接口服务--Go 语言基本语法

发表于 2019-05-14 15:03 阅读(2805) 评论(0) 赞(0)
Go 语言本身是一门极简的语言,它是 “大道至简” ,“少即是多” 理念的典范语言,而我们的接口服务用到东西又只是一小部分,所以学员需要掌握的基本语法是极少的。 Go 语言一共25个 关键字 ,对于新手很容易记 关键字 关键字 关键字 关键字 关键字 break default func interface select case defer go map struct chan else goto pa ... 阅读全文

用 Go 开发终端接口服务--环境搭建和开发工具选择

发表于 2019-05-14 14:52 阅读(3432) 评论(0) 赞(0)
在主流操作系统上搭建 Go 环境,其实都很简单,一般分两个步骤。以下只对最常用的 Windows 系统和 Linux 系统搭建方法做介绍。 在 Go 官网上 https://golang.google.cn/dl/ 选择最新版的安装文件(截止目前最新版本是 go1.12.5)下载: windows 版本 :https://dl.google.com/go/go1.12.5.windows-amd64.msi linux 版本 :https://d ... 阅读全文
第 1 页 共 3 页 下一页

关于作者

About Me

忘却理想,只为洒脱地活着!

文章数(104)

评论数(54)

访问数(429079)

最新评论