slzm40 发表于 2019-7-31 23:17:12

golang入门资料全集

    今年技术选型在golang和python中选中的golang,开发真的是太迅速了,目前web小程序,耗10Mrom,10Mram,arm板Linux上开发,方便的都快放弃c了。
供参考

slzm40 发表于 2019-7-31 23:26:54

本帖最后由 slzm40 于 2019-8-1 08:54 编辑

再传两本,如果迅速的话。一周入门,一个月就可以上手项目了,类c语法。
我的程序用了哪些涉及的库, beego web框架,modbustcp和rtu ,ini库,validator库,sqlite3,日志库,静态文件绑定statik, 串口库,MQTT,其它均为官方标准库
主要实现升级(bz2文件压缩再上传,所以涉及bz2解析),md5校验,aes用来做授权,csv文件解析和生成,MQTT数据传输,MODBUS tcp和rtu数据传输,数据库存储,日志记录,web上显示各种配置和debug,validator数据校验等
没考虑cgi,直接用框架restful。交叉编译现在用xgo(需要会docker)

slzm40 发表于 2019-10-23 11:43:38

欢迎大家来本人github支持: https://github.com/thinkgos

daiqx 发表于 2019-7-31 23:29:13

已下载,慢慢看,谢谢分享

287504461 发表于 2019-7-31 23:51:50

感谢楼主分享

tear604922959 发表于 2019-7-31 23:54:41

感谢楼主分享

hxke 发表于 2019-7-31 23:55:21

感谢楼主分享

FireBrain 发表于 2019-8-1 01:01:46

发现一个明智的朋友,go进军嵌入式指日可待

dukelec 发表于 2019-8-1 01:30:36

本帖最后由 dukelec 于 2019-8-1 01:41 编辑

10Mrom,10Mram 已經很大了,比標準 python 還大,更不用說 micropython (用 buildroot 測試)

占資源只是問題之一,大同時意味着首次加載速度慢。

前段時間,我的項目 spi flash 1Gbit,片上 ram 64MByte,對比過 python3、micropython、go、nodejs,最終發現 micropython 比較小,加載速度快,但很多庫用不了,最終用 C 做文件上傳 cgi,shell script 做其它 cgi,服務器用 busybox httpd。

saccapanna 发表于 2019-8-1 07:53:03

我也对比了一下,感觉go更好用一些,正在学习……

lzchuo 发表于 2019-8-1 07:53:21

有空研究下,多谢分享

muniao 发表于 2019-8-1 08:21:21

学习学习。

xiaomu 发表于 2019-8-1 08:23:08

感谢分享!

jianbo513 发表于 2019-8-1 08:24:56

感谢分享。

chinazhaoyl 发表于 2019-8-1 08:27:06

感谢分享

Gline77 发表于 2019-8-1 08:27:53

mark, 收藏,多谢了

zhangzhika 发表于 2019-8-1 08:30:42

感谢楼主分享。

yyts 发表于 2019-8-1 08:33:35

web小程序是什么,是做一个web服务器吗

我是一个大白菜 发表于 2019-8-1 08:43:05

谢谢楼主分享,楼主知道个goAhead和这个有什么区别吗

slzm40 发表于 2019-8-1 08:51:26

dukelec 发表于 2019-8-1 01:30
10Mrom,10Mram 已經很大了,比標準 python 還大,更不用說 micropython (用 buildroot 測試)

占資源只 ...

我觉得的挺快的,程序主要还是web库占用程序空间极大, 单单这个库占据了近7M多,还是去掉了连接符等各种信息,不然他得占10M,有没有库的确是个问题,主要是为了快速出实现, 说下我的程序用了哪些涉及的库, beego web框架,modbustcp和rtu ,ini库,validator库,sqlite3,日志库,静态文件绑定statik, 串口库,MQTT,
主要实现升级(bz2文件压缩方式),md5校验,aes用来做授权,csv文件解析和生成,MQTT数据传输,MODBUS tcp和rtu数据传输,数据库存储,日志记录,web上显示各种配置和debug,validator数据校验等
其实我原来用gin的,但是太大了,又不想用标准库来解决路由,也不想用cgi,直接restful风格

slzm40 发表于 2019-8-1 08:56:22

我是一个大白菜 发表于 2019-8-1 08:43
谢谢楼主分享,楼主知道个goAhead和这个有什么区别吗

你说的这个是个web服务框架,我说的是个开发语言。。。

creep 发表于 2019-8-1 09:00:56


感谢分享。

slzm40 发表于 2019-8-1 09:05:09

FireBrain 发表于 2019-8-1 01:01
发现一个明智的朋友,go进军嵌入式指日可待

前面有看过你在用, 这个目前是最喜欢的跨平台语言之一。后端和嵌入式两不误

lyping1987 发表于 2019-8-1 09:05:18

dukelec 发表于 2019-8-1 01:30
10Mrom,10Mram 已經很大了,比標準 python 還大,更不用說 micropython (用 buildroot 測試)

占資源只 ...

好奇还有用到文件上传的WEB,什么场景需要在这么小资源的服务器下运行呢?

heimareed 发表于 2019-8-1 09:21:45

多谢分享,好资料,收下了~

nickzhn 发表于 2019-8-1 09:22:36

这个可以了解一下

笑笑我笑了 发表于 2019-8-1 09:50:40

golang有个特别好的地方就是只依赖glibc

gamep 发表于 2019-8-1 10:28:23

感谢楼主分享,抽空了解一下。

mlhorizon 发表于 2019-8-1 10:29:31

slzm40 发表于 2019-8-1 08:51
我觉得的挺快的,程序主要还是web库占用程序空间极大, 单单这个库占据了近7M多,还是去掉了连接符等各种 ...

也准备用go,可以学习下你的代码框架吗?
或者分享下你用到的好用的第三方库。

FireBrain 发表于 2019-8-1 10:57:45

dukelec 发表于 2019-8-1 01:30
10Mrom,10Mram 已經很大了,比標準 python 還大,更不用說 micropython (用 buildroot 測試)

占資源只 ...

只是为了加载速度错失学习一门优秀的语言,惋惜

slzm40 发表于 2019-8-1 11:18:30

mlhorizon 发表于 2019-8-1 10:29
也准备用go,可以学习下你的代码框架吗?
或者分享下你用到的好用的第三方库。 ...

我代码只实现逻辑。。 web用的是restful思想,典型的mvc
第三方可以看下awesome-go,目前是能用标准库就用标准库,需要第三方的看主流大项目里的go.mod 用的啥再和awesome对比,选高维护的,web后端选gin,嵌入式选了beego(因为编译小),
交叉编译可以看下xgo, xgo编译openwrt可惜跑不了,目前自己弄,其它都行。
web静态文件如Js,html 用的statik, 这个我觉得不错,直接所以编译成一个二进制。
参数校验用validator,这个太爽了,一目了然。
数据库目前gorm

dukelec 发表于 2019-8-1 11:23:27

FireBrain 发表于 2019-8-1 10:57
只是为了加载速度错失学习一门优秀的语言,惋惜

對 go 印象還可以,最開始只支持靜態打包不是很喜歡。

環境受限、性能要求高的時候,還是要用 C.
PC 上可用 python, 沒有動力讓我學 golang.

mlhorizon 发表于 2019-8-1 11:33:36

slzm40 发表于 2019-8-1 11:18
我代码只实现逻辑。。 web用的是restful思想,典型的mvc
第三方可以看下awesome-go,目前是能用标准库就 ...

modbus,MQTT这些,有成熟的库推荐吗?

slzm40 发表于 2019-8-1 11:42:32

mlhorizon 发表于 2019-8-1 11:33
modbus,MQTT这些,有成熟的库推荐吗?

MQTT 官方库我在用eclipsepaho.mqtt.golang ,modbus可以说没有成熟,github有一个星数很高的,人家不推荐生产环境使用,所以我没用,我自己参考它,手写了一个,并实现了tcpserver端

lee4diy 发表于 2019-8-1 11:57:14

golang 玩了4年了~比c开发效率高 性能上差不多

nanfang2000 发表于 2019-8-1 12:08:17

dukelec 发表于 2019-8-1 11:23
對 go 印象還可以,最開始只支持靜態打包不是很喜歡。

環境受限、性能要求高的時候,還是要用 C.


同感,PC上开发用Python效率够高了而嵌入式我用micropython。关注go语言也蛮久了,目前还没有需要切go语言的需要。从个人喜好来说,不太喜欢go的语法以及这种强类型语言

FireBrain 发表于 2019-8-1 13:03:33

dukelec 发表于 2019-8-1 11:23
對 go 印象還可以,最開始只支持靜態打包不是很喜歡。

環境受限、性能要求高的時候,還是要用 C.


我不是某一种语言的宗教式的崇拜,我不会评论语言的好坏,任何一种语言我都会尝试,每种语言都有自己的特点和编程思维,接收了一种语言就会打开一种思考问题的方式。

dukelec 发表于 2019-8-1 13:25:46

FireBrain 发表于 2019-8-1 13:03
我不是某一种语言的宗教式的崇拜,我不会评论语言的好坏,任何一种语言我都会尝试,每种语言都有自己的特 ...

同類語言思考方式區別不大,你可以試試 haskell,可能區別稍微大一些。年輕的時候我也喜歡嘗試新東東,現在年紀大了,沒那麼多精力了。

目前我常用語言:verilog, C, shell script, python, javascript.
(C++ 都被我棄了;之前還想過用 javascript 代替 python,最終放棄。這個 list 很難再增加了。)

mlhorizon 发表于 2019-8-1 15:00:49

slzm40 发表于 2019-8-1 11:42
MQTT 官方库我在用eclipsepaho.mqtt.golang ,modbus可以说没有成熟,github有一个星数很高的,人家不 ...

大侠干脆开源一个ModBus库呗。

我是一个大白菜 发表于 2019-8-1 15:12:20

slzm40 发表于 2019-8-1 08:56
你说的这个是个web服务框架,我说的是个开发语言。。。

哦,好的。

迅得电子 发表于 2019-8-1 15:13:45

一个星期入门?

slzm40 发表于 2019-8-1 23:33:01

迅得电子 发表于 2019-8-1 15:13
一个星期入门?

一个星期真的就入门了, 前题是我当时已经会基本Python,C++知识

slzm40 发表于 2019-8-1 23:33:42

mlhorizon 发表于 2019-8-1 15:00
大侠干脆开源一个ModBus库呗。

我挂github,拿出来怕丢人,所以一般低调点,代码多差只有自己知道就行了

电子小生 发表于 2019-8-2 16:26:21

slzm40 发表于 2019-8-1 23:33
我挂github,拿出来怕丢人,所以一般低调点,代码多差只有自己知道就行了 ...

golang是用来开发什么上面的项目的。linux系统上的?普通单片机应该用不了吧

lantian0099 发表于 2019-10-1 23:48:39

感谢分享,也关注学习下{:biggrin:}

gaoxinjun2001 发表于 2019-10-2 07:52:03

不错的东东!赞一个!

gwj221 发表于 2019-10-2 08:12:12

golang如何像c#做代界面的上位机

cnsyk 发表于 2019-10-2 08:50:07

学习新语言,谢谢分享

yj_yulin 发表于 2019-10-2 09:48:48

gopher握个手

thorn 发表于 2019-10-2 11:06:22

go很有特点 我喜欢这种风格
不顾上了岁数 学起来有些慢

cjp88811283 发表于 2019-10-2 11:38:39

谢谢分享,谢谢分享

mikeliujia 发表于 2019-10-4 14:19:31

谢谢楼主分享

VAN 发表于 2019-11-22 23:36:59

gwj221 发表于 2019-10-2 08:12
golang如何像c#做代界面的上位机

golang不适合做带界面的程序,可以用内置webserver做

VAN 发表于 2019-11-22 23:37:53

slzm40 发表于 2019-8-1 11:18
我代码只实现逻辑。。 web用的是restful思想,典型的mvc
第三方可以看下awesome-go,目前是能用标准库就 ...

大神github已加星

avr-arm 发表于 2019-11-22 23:44:11

前后好几个客户在7688上用golang做产品,稳定性和RAM占用非常屌。

justdomyself 发表于 2019-11-23 15:42:58

go适合做哪些场景的开发?嵌入式?服务器?

slzm40 发表于 2019-11-25 09:05:58

justdomyself 发表于 2019-11-23 15:42
go适合做哪些场景的开发?嵌入式?服务器?

目前主要在容器云,区块链应用比较广. 场景多了, 跨平台编译,想用哪就哪,只要资源够.目前我用在嵌入式和服务器

slzm40 发表于 2019-11-25 09:13:53

avr-arm 发表于 2019-11-22 23:44
前后好几个客户在7688上用golang做产品,稳定性和RAM占用非常屌。

很好奇哪些公司在用7688,还用golang,我正好也在用. 我看你是widora,不知道你的产品7688模块,有解决openwrt 32M rom的reboot软复位问题? 我买的几个都没修正这个,自己改要改好多. 目前程序9.6M, 内存稳定占10M.不错的话,买来玩玩

avr-arm 发表于 2019-11-25 10:10:17

本帖最后由 avr-arm 于 2019-11-25 10:12 编辑

slzm40 发表于 2019-11-25 09:13
很好奇哪些公司在用7688,还用golang,我正好也在用. 我看你是widora,不知道你的产品7688模块,有解决openwr ...

32MB时,软复位硬复位问题都早已解决。
当FLASH是3B状态下,软复位是在驱动底层添加了flash模式恢复函数即可解决,但这种3B模式我们已经废弃。
目前我们这边出货的32MB配置flash均为4B模式,也就是压根没有复位问题。
目前做网关的比较多,比较来比较去,家庭网关,7688或许是最佳方案。

slzm40 发表于 2019-11-25 15:12:22

avr-arm 发表于 2019-11-25 10:10
32MB时,软复位硬复位问题都早已解决。
当FLASH是3B状态下,软复位是在驱动底层添加了flash模式恢复函数 ...

收藏了,当时这个可把我整死了,不懂驱动啊. 有机会能用上,虽然现在做嵌入式上的网关比较少.

Jacky.Qiu 发表于 2019-11-25 15:17:15

golang入门资料全集

Baldwin 发表于 2019-11-25 20:36:47

slzm40 发表于 2019-7-31 23:26
再传两本,如果迅速的话。一周入门,一个月就可以上手项目了,类c语法。
我的程序用了哪些涉及的库, beego...

楼主已经用go开发采集器了吗?是在什么嵌入式平台上做的呢?我们最近也想做一款采集器,arm9架构,64MRam,256MFlash,不知道资源是否能满足

wxws 发表于 2019-11-26 07:11:12

我现在很多小活就用个安卓盒敢刷成 linux跑 golang程序。当然其实 golang的程序也能直接跑在安卓下,但需做个启动器

FireBrain 发表于 2019-11-26 07:58:01

Baldwin 发表于 2019-11-25 20:36
楼主已经用go开发采集器了吗?是在什么嵌入式平台上做的呢?我们最近也想做一款采集器,arm9架构,64MRam ...

这配置刚刚的,没问题,我用36块的荔枝派跑过go程序,只有16m的flash和32的ram

slzm40 发表于 2019-11-26 09:18:42

本帖最后由 slzm40 于 2019-11-26 09:20 编辑

Baldwin 发表于 2019-11-25 20:36
楼主已经用go开发采集器了吗?是在什么嵌入式平台上做的呢?我们最近也想做一款采集器,arm9架构,64MRam ...

完全可以的.我目前资源是双64M,arm5一款300M主频的linux平台, 程序大小是9.7M,运行内存是10M左右. 只要我不采用上传文件方式更新程序. 内存不会飚升.
升级程序这个我是用bz2压缩, 但是更新程序时会飚到40M, 所以这个没去解决. 刚好够用. 反正更新程序都需要重启一下.

xuwuhan 发表于 2019-11-26 09:50:03

感谢分享,学习,学习。

hyghyg1234 发表于 2019-11-26 10:49:07

楼主有没有beego方面的资料。

slzm40 发表于 2019-11-26 14:12:19

本帖最后由 slzm40 于 2019-11-26 14:13 编辑

hyghyg1234 发表于 2019-11-26 10:49
楼主有没有beego方面的资料。

beego官方中文的,已经非常全了,而且很友好.....
我现在已经不用beego,服务端用gin, 嵌入式用chi 这两个web框架,前面那个嵌入了参数校验和友好的中间件,后面那个兼容官方库但支持路由,且编译尺寸比gin和beego小的多.

kinsno 发表于 2019-11-26 15:19:51

slzm40 发表于 2019-8-1 08:56
你说的这个是个web服务框架,我说的是个开发语言。。。

我能偷偷地问一句,学会golang,作为奔四的小老头,还能转型不?


hyghyg1234 发表于 2019-11-26 15:24:18

slzm40 发表于 2019-11-26 14:12
beego官方中文的,已经非常全了,而且很友好.....
我现在已经不用beego,服务端用gin, 嵌入式用chi 这两个 ...

我还没入门,先用beego来学习下做个web服务器。

slzm40 发表于 2019-11-26 17:09:28

kinsno 发表于 2019-11-26 15:19
我能偷偷地问一句,学会golang,作为奔四的小老头,还能转型不?

我35了...去年年底学的

lishunfu 发表于 2019-11-26 19:28:09

感谢楼主分享。

kinsno 发表于 2019-11-26 21:36:24

slzm40 发表于 2019-11-26 17:09
我35了...去年年底学的

同龄人啊,
请问你现在从事的,也是GALONG这个工作吗,人到中年还能转到IT这个行业,有人要?工资待遇几何啊?哈哈。。。

slzm40 发表于 2019-11-26 21:47:32

kinsno 发表于 2019-11-26 21:36
同龄人啊,
请问你现在从事的,也是GALONG这个工作吗,人到中年还能转到IT这个行业,有人要?工资待遇 ...

以前做工业网关和采集器,用c,为了快速开发,选了golang,现在是物联网,做nbiot终端对接阿里云,公司api服务端我用golang写的. 用的docker布署. 一半写c一半写golang吧,最近想让头招个写终端的,我专职写服务吧,哈哈,慢慢想向管理转.
学习golang,python什么的,这个只是纯爱好,有机会用上就用上呗.


zzz1367 发表于 2020-2-17 15:30:40

顶起来。。

lce 发表于 2020-2-17 15:37:47

顶起来。。

longsky1985 发表于 2020-2-20 13:27:36

进来学习


jxn98310 发表于 2020-2-20 14:20:01

谢谢分享!!

Links 发表于 2022-6-9 15:01:25

正好需要,谢谢分享

xuekcd 发表于 2022-6-9 16:02:56

哇,又多了一条谋生路,谢谢分享!
页: [1]
查看完整版本: golang入门资料全集