V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  eudore  ›  全部回复第 6 页 / 共 8 页
回复总数  154
1  2  3  4  5  6  7  8  
2020-12-04 09:18:09 +08:00
回复了 monkeyWie 创建的主题 职场话题 突然有点迷茫,关于学历的问题
6 年 java 真水
博客翻了三页没有有深度的文章,https 里面`POST http://www.baidu.com HTTP/1.1`这个请求我就很好奇怎么来的。tls 层不会影响内容,这个请求只有 http 隧道代理才会有,抄错了吧?。
https://github.com/proxyee-down-org/proxyee-down 连个 ui 都没有,我 Motrix 第一个不服。
https://github.com/monkeyWie/gopeed-core 代码量 3k 文件行不到,issue19 个,除了热门领域很难到 2.4k 。
2020-12-02 14:04:24 +08:00
回复了 HaroldChen 创建的主题 Go 编程语言 2020 年末了,目前的 Go web 框架怎么选?
@jmyz0455 我看见了,觉得二选一这样简单问题没必要回复你,你自己随意拉都差不多,goweb 这坑又不深,学好 nethttp 就啥都不怕。
2020-12-02 14:02:10 +08:00
回复了 HaroldChen 创建的主题 Go 编程语言 2020 年末了,目前的 Go web 框架怎么选?
@kevinwan 微服务玩了不深,没法能力评测 gozero,jaeger 、consul 、prometheus 我也才基本使用,http 我是都看过了也都写过了。
2020-12-02 13:58:43 +08:00
回复了 HaroldChen 创建的主题 Go 编程语言 2020 年末了,目前的 Go web 框架怎么选?
@Hanggi
1 、context 和 gin.context 不能 go,context 会错误释放,gin.context 这样的都会出并发问题,的这点我清楚,fiber 里面就有这样错误(没单元测试测),context 我会作为业务的 ctx 使用,例如 sql.DB 操作使用 http 创建的 ctx 作为参数使用。
2 、扩展我们可能说的不是一个维度,扩展一是闭包所有框架都可以使用,但是要手动去闭包,扩展二是对象装饰(我好像没有场景);无入侵添加额外函数我自己低性能损耗(框架部分 1%不到)也实现了,另外我没有其他语言的习惯,在使用 go 之前就轻度使用过 django 实现不到 10 个 api 。
3 、httprouter 缺陷没有方法无入侵解决,结构体定义死了,只能重新实现。
2020-12-02 11:13:48 +08:00
回复了 HaroldChen 创建的主题 Go 编程语言 2020 年末了,目前的 Go web 框架怎么选?
内置 Logger 不需要在调用一个方法后手动输出 err,如果有错误内置 Logger 会自动输出,debug 时也不会忽略掉错误。例如 session.Store 方法就返回了一个 err,如果有内置 Logger 就会自动打印,debug 时一眼就看出来了。
2020-12-02 11:10:48 +08:00
回复了 HaroldChen 创建的主题 Go 编程语言 2020 年末了,目前的 Go web 框架怎么选?
@jmyz0455 echo gin 是差不多,但是我根喜欢 echo,1 、内存 Logger 不需要调用一个方法后收到输出 err,如果有错误内置 err 会自动输出。2 、echo.Context 是一个接口,可以自己去 Warp 定义其他行为 3 、echo 的路由器比 gin 使用的 httprouter 更强,性能差不多在一个级别内,但是 echo 实现了路由优先级。
2020-12-02 09:40:28 +08:00
回复了 HaroldChen 创建的主题 Go 编程语言 2020 年末了,目前的 Go web 框架怎么选?
@ohoh 我写了顺序级别 就按顺序推荐吧。
2020-12-02 09:04:09 +08:00
回复了 HaroldChen 创建的主题 Go 编程语言 2020 年末了,目前的 Go web 框架怎么选?
给大家转发下我在 learnku 上写的答案,安利 fiber 的都辣鸡。

自己阅读过 echo gin http.Server 全部、beego 大部分、iris 少量代码,
net/http 体系下 echo > gin > beego > net/http > iris 、goframe 、fiber,下面列出我自己看到的一些不足,不推荐 fasthttp 原因生态相对弱,仅支持 http/1.1 。

echo 中间件闭包消耗大量资源(每一个中间件的成本与其他框架不成比例),router any 方法不具有优先级。单元测试:84%

gin Context 不合理的实现 context.Context 接口(尝试性传递 ctx 会出未知问题),Context 非接口无法扩展,没有内置 Logger 无法自动输出 err (所有 err 必须处理,否在运行出现了 err 自己都不知道),validator 注册不合理( v8 、v9 、v10 可能注册到不同版本里面去了),不支持路由优先级和 any 方法优先级(从 httprouter 继承的问题)。单元测试:98%

beego 程序是单例,代码复杂度过高一个核心方法 200+行( ServeHTTP 方法),内置对象太多导致框架过重无法扩展(内置嵌入了 csrf 、session 等功能但并不需要),体系相对成熟。单元测试:无公开数据

iris 代码抄袭 篡改 git 历史(抄袭 httprouter 被锤改 git 历史 [https://github.com/avelino/awesome-go/pull/1135]( https://github.com/avelino/awesome-go/pull/1135)) 删除老版本代码( git 历史改了一些版本代码没了,老项目无法编译了),httptest 库测试 iris 会 panic,最新版本 api 设计还是不合理,中间件机制少个 for 导致设计极差不合理,HandleDone 方法画蛇添足使用不便,稳定性差每个大版本 api 全变(都 v12 还不合理怎么会稳定)。单元测试:无公开数据 自己单元测试引入 iris 触发 panic

goframe 以前看到的 gmap 组件的软文(18 年),单线程去对比测试 sync.Map ,得出的比 sync.Map 块一倍性能结果 2020 年看还在,这样低级错误严重怀疑水平,大部分代码是工具相关内容。单元测试: 69%

fiber: 低性能 for 循环路由器,没有单元测试,存在 Race Data 导致的 bug 。

关于性能都差不多的没有可以拉开性能差距的地方,随便学一个源码就可以了,结构都差别的没啥难点,看公司需要使用什么。echo 和 gin 加上依赖一共也都有 100 多 M,学那个框架都避不开 net/http 库,这个才是根本。

------------------------------------------------------------------------------------------------------
路由器实现,也都是渣渣。

httprouter 高性能 不支持路由优先级和 any 方法优先级,代码复杂度太高。

chi 中等性能,支持路由优先级,资源消耗是 httprouter 时间 5 倍、内存 10 倍

mux 非高性能路由器实现(没测试,但是实现方法至少慢 20 倍以上,看别人测试数据是比 httprouter 慢 300 倍),使用链式 api 太繁琐与其他库使用方法差距较大同时不具有明显独特优势。
pyecharts
2020-11-28 12:15:07 +08:00
回复了 TOUJOURSER 创建的主题 Go 编程语言 golang 怎么执行需要输入密码的 shell 命令
两种方法

1 使用 ssh 库 exec 命令去,不用输入密码

2 、exec.Command 设置 Stdin 就可以了。
2020-11-23 17:50:11 +08:00
回复了 shhch 创建的主题 Go 编程语言 golang context 的相关使用
http 的封装下就好,rpc 有全链路日志就是 context 传递
2020-11-22 12:43:12 +08:00
回复了 felix021 创建的主题 程序员 实战: 150 行 Go 实现高性能 socks5 代理
楼主贴个 github 给小弟参考参考啊!
2020-11-22 00:01:05 +08:00
回复了 myevery 创建的主题 程序员 求推荐个网页发帖的富文本编辑器,哪个好用啊!
wangEditor 代码比较简单也原生 js 无依赖
2020-11-20 19:07:02 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 实现一个 http router 库玩玩。。。
@guonaihong 首先高性能路由器使用 radix 和 trie 是标配,没有的就是低性能例如 mux 。

在 httprouter 中如果节点是下面的路由规则越多,他的权重越高,那么这个节点在 childs 里面是顺序考前,这种规则在只访问一次的情况下,静态路由会强变量性能弱。

而 httprouter 代码真心丑,函数复杂的贼高,还要没有匹配优先级。
2020-11-20 14:20:41 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 实现一个 http router 库玩玩。。。
感觉我的比你简单点,我也贴下我的路由器和性能测试,性能是 httprouter 的 70-90%内存更少功能更多,节点匹配顺序测试和 httprouter 不同,mux 这个库感觉性能低,但是没想到性能差几百倍了。

https://github.com/eudore/eudore/blob/master/routerstd.go

https://github.com/eudore/web-framework-benchmark
2020-11-11 13:47:28 +08:00
回复了 ga6840 创建的主题 程序员 来说说自己业余项目的技术栈
OS: 容器 alpine
数据库: Postgresql
前端: Vue(不使用 nodesjs 和 css 库)
后端: GO
后端框架: 造轮子
权限: 造轮子(acl/pbac/rbac 混合)
2020-11-10 08:32:21 +08:00
回复了 HenrikC 创建的主题 程序员 面试的时候怎么判断面试者是不是速成的?
github stackoverflow 等社区账号,时间没法造假。
2020-11-01 13:55:39 +08:00
回复了 veopax 创建的主题 推广 语言种类最全的权限管理系统—Casbin
没 pbac 我最喜欢用策略了,可以自定义随便定义权限。
2020-10-31 09:10:26 +08:00
回复了 vone 创建的主题 程序员 [不懂就问] 为什么有的后端接口会使用二维数组输出表格数据
首先第一层一定是数组[],用于虚拟 dom for 循环数据渲染 ui 。
第二层可以是数组 []也可以是 json {},json 有键值对应,数组可以压缩传输量,序列化性能应该也有提升。
2020-10-31 08:31:16 +08:00
回复了 licoycn 创建的主题 Go 编程语言 初学 Golang 开源:将数据库表转换为 struct,支持多 Tag
高度相似的一堆,以前见过不少。

https://github.com/gohouse/converter
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5348 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 07:07 · PVG 15:07 · LAX 00:07 · JFK 03:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.