搜索
bottom↓
回复: 79

golang入门资料全集

  [复制链接]
(53602876)

出0入0汤圆

发表于 2019-7-31 23:17:12 | 显示全部楼层 |阅读模式
    今年技术选型在golang和python中选中的golang,开发真的是太迅速了,目前web小程序,耗10Mrom,10Mram,arm板Linux上开发,方便的都快放弃c了。
供参考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(53602294)

出0入0汤圆

 楼主| 发表于 2019-7-31 23:26:54 | 显示全部楼层
本帖最后由 slzm40 于 2019-8-1 08:54 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(46386890)

出0入0汤圆

 楼主| 发表于 2019-10-23 11:43:38 | 显示全部楼层
欢迎大家来本人github支持: https://github.com/thinkgos
(53602155)

出0入0汤圆

发表于 2019-7-31 23:29:13 来自手机 | 显示全部楼层
已下载,慢慢看,谢谢分享
(53600798)

出0入0汤圆

发表于 2019-7-31 23:51:50 来自手机 | 显示全部楼层
感谢楼主分享
(53600627)

出0入0汤圆

发表于 2019-7-31 23:54:41 | 显示全部楼层
感谢楼主分享
(53600587)

出0入0汤圆

发表于 2019-7-31 23:55:21 | 显示全部楼层
感谢楼主分享
(53596602)

出0入0汤圆

发表于 2019-8-1 01:01:46 来自手机 | 显示全部楼层
发现一个明智的朋友,go进军嵌入式指日可待
(53594872)

出0入88汤圆

发表于 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。
(53571925)

出0入20汤圆

发表于 2019-8-1 07:53:03 | 显示全部楼层
我也对比了一下,感觉go更好用一些,正在学习……
(53571907)

出0入0汤圆

发表于 2019-8-1 07:53:21 | 显示全部楼层
有空研究下,多谢分享
(53570227)

出0入0汤圆

发表于 2019-8-1 08:21:21 来自手机 | 显示全部楼层
学习学习。
(53570120)

出0入0汤圆

发表于 2019-8-1 08:23:08 | 显示全部楼层
感谢分享!
(53570012)

出0入0汤圆

发表于 2019-8-1 08:24:56 来自手机 | 显示全部楼层
感谢分享。
(53569882)

出0入0汤圆

发表于 2019-8-1 08:27:06 来自手机 | 显示全部楼层
感谢分享
(53569835)

出0入0汤圆

发表于 2019-8-1 08:27:53 来自手机 | 显示全部楼层
mark, 收藏,多谢了
(53569666)

出0入0汤圆

发表于 2019-8-1 08:30:42 | 显示全部楼层
感谢楼主分享。
(53569493)

出0入50汤圆

发表于 2019-8-1 08:33:35 来自手机 | 显示全部楼层
web小程序是什么,是做一个web服务器吗
(53568923)

出0入0汤圆

发表于 2019-8-1 08:43:05 | 显示全部楼层
谢谢楼主分享,楼主知道个goAhead和这个有什么区别吗
(53568422)

出0入0汤圆

 楼主| 发表于 2019-8-1 08:51:26 | 显示全部楼层
dukelec 发表于 2019-8-1 01:30
10Mrom,10Mram 已經很大了,比標準 python 還大,更不用說 micropython (用 buildroot 測試)

占資源只 ...

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

出0入0汤圆

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

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

出0入0汤圆

发表于 2019-8-1 09:00:56 | 显示全部楼层

感谢分享。
(53567599)

出0入0汤圆

 楼主| 发表于 2019-8-1 09:05:09 | 显示全部楼层
FireBrain 发表于 2019-8-1 01:01
发现一个明智的朋友,go进军嵌入式指日可待

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

出135入180汤圆

发表于 2019-8-1 09:05:18 | 显示全部楼层
dukelec 发表于 2019-8-1 01:30
10Mrom,10Mram 已經很大了,比標準 python 還大,更不用說 micropython (用 buildroot 測試)

占資源只 ...

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

出0入0汤圆

发表于 2019-8-1 09:21:45 | 显示全部楼层
多谢分享,好资料,收下了~
(53566552)

出10入0汤圆

发表于 2019-8-1 09:22:36 | 显示全部楼层
这个可以了解一下
(53564868)

出0入0汤圆

发表于 2019-8-1 09:50:40 | 显示全部楼层
golang有个特别好的地方就是只依赖glibc
(53562605)

出0入0汤圆

发表于 2019-8-1 10:28:23 | 显示全部楼层
感谢楼主分享,抽空了解一下。
(53562537)

出0入0汤圆

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

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

出0入0汤圆

发表于 2019-8-1 10:57:45 | 显示全部楼层
dukelec 发表于 2019-8-1 01:30
10Mrom,10Mram 已經很大了,比標準 python 還大,更不用說 micropython (用 buildroot 測試)

占資源只 ...

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

出0入0汤圆

 楼主| 发表于 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
(53559301)

出0入88汤圆

发表于 2019-8-1 11:23:27 | 显示全部楼层
FireBrain 发表于 2019-8-1 10:57
只是为了加载速度错失学习一门优秀的语言,惋惜

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

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

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 2019-8-1 11:42:32 | 显示全部楼层
mlhorizon 发表于 2019-8-1 11:33
modbus,MQTT这些,有成熟的库推荐吗?

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

出0入14汤圆

发表于 2019-8-1 11:57:14 | 显示全部楼层
golang 玩了4年了~  比c开发效率高 性能上差不多
(53556611)

出0入0汤圆

发表于 2019-8-1 12:08:17 来自手机 | 显示全部楼层
dukelec 发表于 2019-8-1 11:23
對 go 印象還可以,最開始只支持靜態打包不是很喜歡。

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

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

出0入0汤圆

发表于 2019-8-1 13:03:33 | 显示全部楼层
dukelec 发表于 2019-8-1 11:23
對 go 印象還可以,最開始只支持靜態打包不是很喜歡。

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

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

出0入88汤圆

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

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

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

出0入0汤圆

发表于 2019-8-1 15:00:49 | 显示全部楼层
slzm40 发表于 2019-8-1 11:42
MQTT 官方库我在用eclipse  paho.mqtt.golang ,modbus可以说没有成熟,github有一个星数很高的,人家不 ...

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

出0入0汤圆

发表于 2019-8-1 15:12:20 | 显示全部楼层
slzm40 发表于 2019-8-1 08:56
你说的这个是个web服务框架,我说的是个开发语言。。。

哦,好的。
(53545483)

出0入0汤圆

发表于 2019-8-1 15:13:45 | 显示全部楼层
一个星期入门?
(53515527)

出0入0汤圆

 楼主| 发表于 2019-8-1 23:33:01 | 显示全部楼层

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

出0入0汤圆

 楼主| 发表于 2019-8-1 23:33:42 | 显示全部楼层
mlhorizon 发表于 2019-8-1 15:00
大侠干脆开源一个ModBus库呗。

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

出0入0汤圆

发表于 2019-8-2 16:26:21 | 显示全部楼层
slzm40 发表于 2019-8-1 23:33
我挂github,拿出来怕丢人,所以一般低调点,代码多差只有自己知道就行了 ...

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

出0入0汤圆

发表于 2019-10-1 23:48:39 | 显示全部楼层
感谢分享,也关注学习下
(48215185)

出0入0汤圆

发表于 2019-10-2 07:52:03 | 显示全部楼层
不错的东东!赞一个!
(48213976)

出0入4汤圆

发表于 2019-10-2 08:12:12 来自手机 | 显示全部楼层
golang如何像c#做代界面的上位机
(48211701)

出0入4汤圆

发表于 2019-10-2 08:50:07 | 显示全部楼层
学习新语言,谢谢分享
(48208180)

出0入0汤圆

发表于 2019-10-2 09:48:48 | 显示全部楼层
gopher握个手
(48203526)

出0入0汤圆

发表于 2019-10-2 11:06:22 | 显示全部楼层
go很有特点 我喜欢这种风格
不顾上了岁数 学起来有些慢
(48201589)

出0入0汤圆

发表于 2019-10-2 11:38:39 | 显示全部楼层
谢谢分享,谢谢分享
(48019137)

出0入0汤圆

发表于 2019-10-4 14:19:31 | 显示全部楼层
谢谢楼主分享
(43752089)

出0入0汤圆

发表于 2019-11-22 23:36:59 来自手机 | 显示全部楼层
gwj221 发表于 2019-10-2 08:12
golang如何像c#做代界面的上位机

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

出0入0汤圆

发表于 2019-11-22 23:37:53 来自手机 | 显示全部楼层
slzm40 发表于 2019-8-1 11:18
我代码只实现逻辑。。 web用的是restful思想,典型的mvc
第三方可以看下awesome-go,目前是能用标准库就 ...

大神github已加星
(43751657)

出0入0汤圆

发表于 2019-11-22 23:44:11 | 显示全部楼层
前后好几个客户在7688上用golang做产品,稳定性和RAM占用非常屌。
(43694130)

出0入8汤圆

发表于 2019-11-23 15:42:58 来自手机 | 显示全部楼层
go适合做哪些场景的开发?  嵌入式?服务器?
(43545150)

出0入0汤圆

 楼主| 发表于 2019-11-25 09:05:58 | 显示全部楼层
justdomyself 发表于 2019-11-23 15:42
go适合做哪些场景的开发?  嵌入式?服务器?

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

出0入0汤圆

 楼主| 发表于 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.  不错的话,买来玩玩
(43541291)

出0入0汤圆

发表于 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或许是最佳方案。
(43523166)

出0入0汤圆

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

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

出0入0汤圆

发表于 2019-11-25 15:17:15 | 显示全部楼层
golang入门资料全集
(43503701)

出0入0汤圆

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

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

出0入8汤圆

发表于 2019-11-26 07:11:12 来自手机 | 显示全部楼层
我现在很多小活就用个安卓盒敢刷成 linux跑 golang程序。当然其实 golang的程序也能直接跑在安卓下,但需做个启动器
(43462827)

出0入0汤圆

发表于 2019-11-26 07:58:01 来自手机 | 显示全部楼层
Baldwin 发表于 2019-11-25 20:36
楼主已经用go开发采集器了吗?是在什么嵌入式平台上做的呢?我们最近也想做一款采集器,arm9架构,64MRam ...

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

出0入0汤圆

 楼主| 发表于 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, 所以这个没去解决. 刚好够用. 反正更新程序都需要重启一下.
(43456105)

出0入0汤圆

发表于 2019-11-26 09:50:03 | 显示全部楼层
感谢分享,学习,学习。
(43452561)

出0入0汤圆

发表于 2019-11-26 10:49:07 | 显示全部楼层
楼主有没有beego方面的资料。
(43440369)

出0入0汤圆

 楼主| 发表于 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小的多.
(43436317)

出0入0汤圆

发表于 2019-11-26 15:19:51 | 显示全部楼层
slzm40 发表于 2019-8-1 08:56
你说的这个是个web服务框架,我说的是个开发语言。。。

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


(43436050)

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 2019-11-26 17:09:28 | 显示全部楼层
kinsno 发表于 2019-11-26 15:19
我能偷偷地问一句,学会golang,作为奔四的小老头,还能转型不?

我35了...去年年底学的
(43421419)

出0入0汤圆

发表于 2019-11-26 19:28:09 | 显示全部楼层
感谢楼主分享。
(43413724)

出0入0汤圆

发表于 2019-11-26 21:36:24 | 显示全部楼层
slzm40 发表于 2019-11-26 17:09
我35了...去年年底学的

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

(43413056)

出0入0汤圆

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

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


(36264468)

出0入0汤圆

发表于 2020-2-17 15:30:40 | 显示全部楼层
顶起来。。
(36264041)

出0入0汤圆

发表于 2020-2-17 15:37:47 | 显示全部楼层
顶起来。。
(36012652)

出0入0汤圆

发表于 2020-2-20 13:27:36 | 显示全部楼层
进来学习


(36009507)

出0入0汤圆

发表于 2020-2-20 14:20:01 | 显示全部楼层
谢谢分享!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-4-12 08:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表