请教各位大佬,如果每人一句关于 Go 工程(不局限于 Web 或者基架项目)开发的经验,会是什么?
1
yeelooyeeuu 1 天前
简单搞过一个项目,go 用起来似乎不错
|
2
sunny352787 1 天前
别搞太抽象,当 C 写
|
3
wangritian 1 天前 不要写成 java
|
4
wakarimasen 1 天前
泛型出现之前你可能需要熟练掌握编辑器快捷键,同时生成所有整数类型的比大小函数。
|
5
wogogoing PRO 尽可能不要忽略错误;组合机制很棒,好好利用起来。
|
6
lervard358 1 天前
@wakarimasen go 已经有支持泛型了
|
7
chengrui0428 1 天前
一个文件里,只使用一次 var 和 type 关键字
|
8
w568w 1 天前
业务逻辑不要害怕造轮子,协议标准不要自己造轮子
开始开发前约定好规范,如「逻辑上可空的变量用 nil pointer 还是空值表示」「可选参数配置用 option pattern 还是 builder pattern 还是生成重载函数」 Be stupid ,不要耍聪明省代码行数而写出费解的代码。Go 很冗长并且它就该冗长,冗长比晦涩好 |
9
povsister 1 天前
调用任何非标准库的函数前点进去看一眼实现,别盲目相信注释
|
10
iseki 1 天前
可以积极借鉴其它语言的标准库设计,特别是那些有丰富标准库经验的。
|
11
5261 1 天前
@wangritian 哎,Java 开发写 go 项目,写着写着就变成 Java 结构和思想了,现在 go 项目中都加入了自动注入的概念了
|
12
MIUIOS 17 小时 43 分钟前
@5261 说明你完全没理解编程原理,自动注入和依赖反转从来不是 java 和 spring 的专属,这是概念级别的东西,不是语言层面的,是实际业务中繁衍出来的。
|
14
suyuyu 17 小时 8 分钟前
@wangritian 晚了 😭
|
15
nanwangnongfu 16 小时 24 分钟前
每个 goroutine 都 defer recover
|
16
brookegas 16 小时 23 分钟前
开始用 Go 前,先清空 Java/Spring 的那一套便便思维💩
|
17
hamwong 16 小时 3 分钟前
有没有 web 后端最佳实践,自己写还是 java 思维
|
19
Desdemor 15 小时 17 分钟前
在对接接口需要加签验签频繁使用 json 序列化和反序列化的时候,浮点型尽量改为字符串。
|
21
cmos 15 小时 8 分钟前
golang 的核心是让一万个人都能写出一模一样的代码
|
22
asui 15 小时 4 分钟前
走?
|
23
Hopetree 15 小时 1 分钟前
主用 Python 的运维,Go 写命令行工具贼爽,监控插件也很爽
|
24
bbao 14 小时 49 分钟前
不要过度设计,我们本没有多数据源设计,我们的一个大数据转后端的工程师,兼容了各大数据库,以及本可以渠道用户独立表+主表映射就可以,设计成了多库~~ 脑壳疼,那代码设计写的,一行都不想看。
|
27
strobber16 14 小时 42 分钟前
我要学 rust
|
28
baiic 14 小时 33 分钟前
写的业务多了,自然就会变成 java ,不要一味的贬低 java
|
29
yifeng33 13 小时 50 分钟前
我要学 rust
|
30
midsolo 13 小时 46 分钟前
@bbao 说起过度设计,那我得展示一下了。
多渠道的接入,建个 mapping 主表,然后每个渠道映射一张表就行了。 但我司只会 Java 的架构师嫌我们设计的过于简单,只能自己出手了,各种高层次抽像,各种设计模式,好好的把个 Go 写的项目设计成了 Java 味儿。 现在每个渠道建一个库,说是为了后续的扩展,提前做数据隔离,代码实现上写了 proxy 层、route 层、dispatch 层...... |
31
CoderGeek 13 小时 25 分钟前 规范好你的方法,区分好 “指针和引用” 我觉得很重要
|
32
bwangel 12 小时 54 分钟前 1. 多人团队中,别使用 go 启动 goroutine ,封装一个 Go 函数,在里面捕获 panic
2. golang 中没有 thread local ,一个链路上传递数据,就使用 ctx ,千万不要整花活,https://github.com/timandy/routine 。性能会有问题,而且和很多三方库也兼容不了。 3. 建议每个函数都加上 ctx 参数和 error 返回值,后面总会用到的 |
33
gaffeyQiu 12 小时 18 分钟前
提前做好分层设计, 避免做到一半发现循环依赖了
|
34
shinonome 12 小时 8 分钟前 到现在我都不知道 Ctx 用来传什么
写的一个后端项目,感觉只用来停止 |
35
Huelse 12 小时 3 分钟前
怎么简单怎么来,不要想着一个东西实现复杂需求
|
38
nextvay 6 小时 25 分钟前
别用面向对象的写法,new 一个 service ,然后初始化一坨。写 function 就好
|
39
nextvay 6 小时 21 分钟前
@shinonome 先加上。我们这原来是单租户,后来多租户,不同的数据库实例。没有这个 ctx ,需要先把传参都改造了,然后再改造多租户问题。 可以往 ctx 塞租户信息
|
41
karashoukpan OP @wakarimasen 哈哈 go 已经有范型了,并且标准库有了 int64 的 min 和 max 可以像 append 一样用 min 和 max
|
42
karashoukpan OP @bbao 我觉得任何时候过渡设计都会导致灾难发生,像 Knuth's optimization principle 一样
|
43
karashoukpan OP @w568w 学到了,我想可以在加一条,如果用 int 表示系统里面的状态,最好不要从 1 开始(或许可以延伸下,不要使用单位零值作为标志位,例如 0 和 false )
这在数据库字段更新的时候得单独更新,gorm 的 Update 函数 |
44
liangmeike 4 小时 53 分钟前
@gaffeyQiu 雷哥?
|
45
karashoukpan OP @shinonome 可以参考下 kratos 的 ctx 用法
|
46
geminikingfall 4 小时 46 分钟前
@shinonome 感觉同样,这玩意,除了做链路追踪外,没见过做其他用的。
|
47
lance6716 4 小时 33 分钟前 via Android
记得打开 net/pprof
|
48
Aprdec 4 小时 28 分钟前
goframe 这框架好吗?看了文档直接看懵了,太多层了吧
|