V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  thevita  ›  全部回复第 8 页 / 共 11 页
回复总数  216
1  2  3  4  5  6  7  8  9  10 ... 11  
2023-01-25 14:33:02 +08:00
回复了 raysaii 创建的主题 程序员 这个年过的,真不舒服
不说不就行了,我就重来不说工资,问就 5000
问工作就失业了
2023-01-15 20:32:40 +08:00
回复了 Deplay 创建的主题 Windows 巨硬,我真服了你
小问题会源源不断的,毕竟“敏捷”了嘛,,

我现在用 win10 还得时不时 restart 下 explorer 呢,不然卡的不行
没这么复杂,也没有谁正确一说,说到底取决于你要传递给调用者的 “语意”
如果你的 API 是标准的 rest ,即 对 “资源” 的 curd ,那么这个时候是能跟 rest 的语意完全匹配的(其实大部分时候都是这样的 api )

但事上总还是有一些再这之外的复杂一点的逻辑, 要么就 自己在业务模型上封装各种错误,要么就全局封装一个,我理解这是一种在 rest 之上的具有业务语意的扩展而已

---


@swulling
我感觉....,上一个应用我就把服务的错误和资源相关的放 http status ,把 某些业务错误 放 body 了,,这样应用可依据具体情况决定是否处理,怎么处理,当然本身也不一样,前端应用业务逻辑也很重的原因
比较适合些 PHP
----
没有看不起 PHP 的意思,PHP 是最好的语言
2022-04-02 14:11:32 +08:00
回复了 2696284032 创建的主题 Go 编程语言 Go 语言从入门到放弃
放弃就不要发出来了!!
2022-03-24 15:46:53 +08:00
回复了 magic3584 创建的主题 程序员 到底应该怎么去架构?
@magic3584 没关系,我也工作马上八年了
仅仅是个人最近的感悟
---
不知道你有不有这样的体验:突然某一瞬间,你现实面临的问题 /状况 和以前看的书能对应起来了,当时看不懂的一瞬间豁然开朗了,

认知上有关 信息带宽 的概念,一个人接受新信息输入是与自己当前的认知状态有关的,只能高效的接受 信息密度在一定一定范围 /一定领域 内的知识,这就是为什么有的书看起来那么累的原因

适当选择相对高于自己水平(这个水平没有褒贬之分,抱歉我没想到合适的词)的书,让自己处在带宽相对搞的状态,有助于维持自己持续性的学习能力

对于看起来吃力的东西,也不用因为看不懂就失去信心,妄自菲薄,比如你一段时间回来看,相信你就回有更深的体会。

当然对于技术类的内容,我还是建议应该适当多 push 一下自己。
2022-03-23 18:50:03 +08:00
回复了 magic3584 创建的主题 程序员 到底应该怎么去架构?
这种情况就是 代码写得太少,理论看得太多
---
看不懂 /难理解的时候 跳过就行了,该懂的时候自然就懂了
2022-03-23 18:37:00 +08:00
回复了 kaiger 创建的主题 Linux 国内外流量分流的解决方案(系统级别)
@thevita 不过 如果要这样的话,干嘛用 ipset 呢,,23333
2022-03-23 18:35:14 +08:00
回复了 kaiger 创建的主题 Linux 国内外流量分流的解决方案(系统级别)
context: OP 明显是想用 这个 PandaVPN ,刚去看了下这个东西的文档,应该有提供 OpenVPN 模式,不过这时候会全流量走 vpn, OP 可以自己 通过 调路由表+iptables 的方式分下流,应该可以?
---
如果还是你自己写的方案的话,你现在缺的是一个 东西 帮你把 packet 解析 并发送给代理的角色,
可行的方案可以用 clash 大概如下:

1. clash 的作者提供一个不开源的版本 叫 clash premium, 包含一些高级功能,提供 TUN 模式来转发流量
2. 用这个 TUN 模式, 代理上游设置成 PandaVPN 的代理端口, 然后你的 iptables 规则把流量转发到 clash 加的 tun interface 上去(应该叫 utun 之类的)
2022-03-23 16:34:46 +08:00
回复了 kaiger 创建的主题 Linux 国内外流量分流的解决方案(系统级别)
如果如你所说, 是用 SwitchyOmega 的话, 本地监听的 8080 端口应该是个 http/socks5 的代理服务, 直接让 iptables 把 packet 扔过去是用不了的,请确认下

如果 PandaVPN 这个 真的是个 vpn 一般会有一个 vif ,你可以通过 iptables 把 packet 扔给对应的 interface
2022-03-23 16:01:42 +08:00
回复了 Trinity888 创建的主题 程序员 大家如何做甲方关系呀?求教
降价
啥额外软件都不用:
A: execute `ssh -N -D 1080 B`
A: another shell execute `pip install <package-name> --proxy '127.0.0.1:1080' `
恭喜你,发明了 360 的核心技术,不过 因为 md5 可以伪造, 所以也许需要一个更好的摘要算法,或者像 360 一样 多个摘要同时用
----
现实中还是没这么简单,要维护这个表,大部分公司都做不到,而且查杀也是多种手段并用
2022-03-02 21:38:57 +08:00
回复了 LxnChan 创建的主题 Linux Ubuntu 如何永久修改 MAC 地址?
永久的话,换网卡
2022-02-25 10:49:04 +08:00
回复了 HanMeiM 创建的主题 程序员 客户端与服务端通信使用 GRPC 有什么劣势吗?
其实如果只是为了解决 "频繁的沟通接口字段细节", 可以一步步来比如
1. protobuf-over-http
2. 用 gRPC-Gateway, grpc 和 rest 共存
2022-02-25 10:41:19 +08:00
回复了 HanMeiM 创建的主题 程序员 客户端与服务端通信使用 GRPC 有什么劣势吗?
1. 最大的劣势就是会不停有人问:"为什么不用 http"
2. 调试确实不方便,工具链+人员培训
2022-02-21 21:46:06 +08:00
回复了 blue7wings 创建的主题 Go 编程语言 Golang 如何使用 struct 泛型?
@janxin

不是的,不是实例化 Stringer 类型

那个 binary 的符号表如下(过滤了下)

Show 对 A B 两个类型有两个实例

[![HvvkV0.jpg]( https://s4.ax1x.com/2022/02/21/HvvkV0.jpg)]( https://imgtu.com/i/HvvkV0)
2022-02-21 21:20:11 +08:00
回复了 blue7wings 创建的主题 Go 编程语言 Golang 如何使用 struct 泛型?
@ZSeptember 测试了下,应该是支持的,只不过很鸡肋,貌似没啥卵用。

```
package main

import (
"fmt"
"runtime"
)

type A struct {
AID string
}

type B struct {
BID string
}

type AB interface {
A | B
}

func Show[val AB](v val) {
pc := make([]uintptr, 10) // at least 1 entry needed
runtime.Callers(0, pc)
f := runtime.FuncForPC(pc[0])
fmt.Printf("%s => %x\n", f.Name(), f.Entry())
fmt.Println(v)
}

func main() {
a := A{AID: "aid"}
b := B{BID: "bid"}
Show(a)
Show(b)
Show(A{AID: "test"})

}

```

=====
main.Show[...] => 108b0a0
{aid}
main.Show[...] => 108b280
{bid}
main.Show[...] => 108b0a0
{test}
=====

如上, A, B 两个类型,展开成了两个,Show 函数, 不过 貌似 v val 在 Show 里面什么都做不了,如果要转型成 A 或者 B 需要用 反射,要这范型何用。

请哪位大佬解惑
2022-02-21 20:10:11 +08:00
回复了 blue7wings 创建的主题 Go 编程语言 Golang 如何使用 struct 泛型?
@janxin

func Show[val AB](v val) {
fmt.Println(v)
}

func main() {
a := A{AID: "aid"}
b := B{BID: "bid"}
Show(a)
Show(b)
}

----
约束应该是可以这么用的

还没认真看过 go 的范型,所以不是很了解

大概逻辑是,范型展开的时候,需要根据具体的 代码(及 调用 Get/Show 的代码)中的类型信息( concrete type )进行约束检查,并展开成 concrete type 的代码, 不能用具体返回值来推断 函数返回类型 不然如下代码应该怎么办呢

----
func FuncA[val AB](yes bool) val {
if yes {
return A{
AID: "aid"
}
} else {
return B{
BID: "bid"
}
}
}
----
我有个前同事的办法:听大悲咒
1  2  3  4  5  6  7  8  9  10 ... 11  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1064 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 22:42 · PVG 06:42 · LAX 14:42 · JFK 17:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.