V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kuanat  ›  全部回复第 4 页 / 共 16 页
回复总数  315
1  2  3  4  5  6  7  8  9  10 ... 16  
作为吃瓜群众我不理解的是 reactjs 的作者竟然认为,在控制流中使用嵌套三元操作是合理且应当大力推广的。
@wzy44944 #14

golang, 开发效率低执行效率高的语言? https://v2ex.com/t/1101972
Serverless 的优点是在 free tier 也就是用量很少的情况下省钱。再就是独立模块开发比较快。

我司之前有个图像分析的工作流尝试通过 cf ,即使是 paid plan 可用性也不是太好,如果换算成 sla 大概在 99.5% 左右吧,队列中的任务经常三五分钟的重试。

不过瑕不掩瑜,特别是随着 cf 支持 js 之外的语言,我个人很多自动化项目都上了 cf 。我尝试过好几个 serverless 平台,cf 还是更懂开发者的。
155 天前
回复了 kuanat 创建的主题 Go 编程语言 基于 Go 语言谈软件开发效率
@lesismal #11

你说得非常对,我想了一下,还是 goroutine 更重要一些。

如果拿 js 来做对比的话,很明显 js 努力的方向一直是用同步的方式写异步逻辑,经过了 promise 到 async/await 的迭代,但 go 这边就很符合直觉。

另外性能在绝大部分场景不那么重要,可读性、效率和性能之间找个平衡点更重要。现在不是单体应用硬怼 c10k 的时代了。
155 天前
回复了 kuanat 创建的主题 Go 编程语言 基于 Go 语言谈软件开发效率
@pursuer #7

这个讨论有点偏题了,我想表达的是浏览器相对于整个软件开发领域占比是有限的,这个数据无法支撑你得出“除 c 和 rust 之外被 js 占据”这样的结论。

我把这个帖子发在 go 而不是程序员节点,目的也是真正讨论工程化和生产力的问题。隔壁帖子的争论 xx 语言的 yy 不好,是建立在真的要把 xx 语言用在所有场景这样一个隐含前提下的。然而现实的人类并不会拿一把锤子就把万物当作钉子。

所以我不认为某种语言一统天下是个好事,这不符合我的技术哲学认知。
155 天前
回复了 kuanat 创建的主题 Go 编程语言 基于 Go 语言谈软件开发效率
@tonyjia87 #6

对于编程语言来说,资本介入是好事。放在 1990 年可能还好,放到 2025 ,没有靠山的编程语言是没有生命力的。
155 天前
回复了 kuanat 创建的主题 Go 编程语言 基于 Go 语言谈软件开发效率
@ninjashixuan #2

这里可能涉及到编程语言的设计哲学,即要在多大程度上暴露或者封装操作系统的抽象。

在 go 看来,内核 fd 是没有抽象过的 Reader Writer Closer 有用的,这种用接口的实现方式是对“万物皆文件”非常好的诠释。

同理,socket 相关的抽象也是一样。我个人认为这些都是有意的设计,最初就把跨平台作为目标之一,官方库就对如何封装如何抽象,实现哪些功能做了规划。

所以很多人说 go 的设计定位是 better c ,但我认为这不是重点,语言层面做个 better c 不难,其他语言一样做得很好。像 c 一样把操作系统底层完全暴露出来是没用的,go 优于 c 同时抢占了部分 c 的市场的原因是它解决了 c 工程化的很多问题。
155 天前
回复了 kuanat 创建的主题 Go 编程语言 基于 Go 语言谈软件开发效率
@pursuer #1

编译速度说的是和编译类型的语言比,而且即使和 vm+jit 类型相比也是快的。

JS 的整个生态都建立浏览器之上,能力的边界取决于浏览器实现了多少对操作系统的封装。

如果一定要拿出数据作证的话,js 的份额一直就是在浏览器这个笼子里,别的进不来它也出不去。
关于 Go 日志的话题之前也有过几个帖子,可以参考一下,恰好我在那几个帖子里也有论述一些观点做法。

如何更好的打印日志 https://v2ex.com/t/1043663
golang 日志记录 https://v2ex.com/t/1038327
Golang 中的 Context 为什么只有上文没有下文?一般如何传递下文? https://v2ex.com/t/1012453


回到这个帖子的重点,关于“定位代码出错位置”这个需求,需要先明确调用栈的定义。除了代码层面的 call stack ,业务逻辑上 trace 也可以叫作调用栈。

从 OP 的描述来看,主要矛盾是业务流程上比较长,日志中间件的报错不足以定位特定模块代码层面 call stack 的问题。

我在上面引用的第一个帖子里提到过一些笼统的解决思路。

帖子里我提到的 debug/release 双版本具体实现是用 build tags 做一个开关,release 版本没有任何额外输出,debug 版本会输出 code path 的相关信息。或者理解成单元测试 coverage 的做法。这样不仅可以知道当前模块的输入、输出,也知道具体代码的分支路径。

这个做法给我节省了大量 debug 的时间,之前经常需要单步看执行逻辑,现在基本上看下分支流程就能大致定位问题了。并不是一定要通过反射或者什么方式获得出错的代码行才叫定位。
关于 Go 日志的话题之前也有过几个帖子,可以参考一下,恰好我在那几个帖子里也有论述一些观点做法。

如何更好的打印日志 https://v2ex.com/t/1043663
162 天前
回复了 chengrui0428 创建的主题 Linux mexport:多节点环境变量声明工具
REPL 或者 shell 首先是编程语言,然后才有变量,所以声明或者导出变量是个 built-in 的功能。

既然是变量,就有作用域。
171 天前
回复了 hongchangpz1 创建的主题 程序员 高通车机 8295camera 分辨率问题
会不会是对应的接口被拆分了,原本 4lane 变成了 2lane 这样?
我只用 Linux 所以只能提个思路,这个功能在 linux 异常简单。

现代桌面的窗口管理器的渲染逻辑是基本一致的,就是分配给应用程序一个矩形空间,由应用程序决定窗体内部的内容,然后窗口管理器(合成器)负责将其和标题栏部分合成起来。换个说法,标题栏不是应用程序决定的。

为了支持特定形态的窗体,一般桌面的窗口管理器也会提供一个叫 client side decoration 的机制,这样窗体相关的部分也交由应用程序负责。可以参考 https://en.wikipedia.org/wiki/Client-side_decoration

所以要实现这个功能一方面需要窗口管理器支持,另一方面要程序自身去适配 csd 机制。


如果只是单纯实现录屏的时候不含窗体,计算好坐标裁剪一下应该没问题。
不负责任的猜测,可能是百度统计被投毒了,文章截图里的几个受影响站点,外链 js 的交集就是 hm.baidu.com 域名下的 hm.js 文件。
177 天前
回复了 allegory 创建的主题 程序员 DPDK 如何学习才能就职相应的岗位
楼上看 id 就知道靠谱。

网络这个领域一定要先有市场需求才有岗位需求,由于相关技术往往和硬件以及架构强绑定,离开了这个环境这些技术就没有用武之地了。

如果你真的想学,DPDK 建议往 ebpf 方向走,RDMA 往分布式存储方向走。
9950x 是基本频率 4.3 然后 Boost 最高到 5.7 ,如果你能接受降低到 4.3 ,有个简单的方法是用 amd-pstate 调度,在执行特定任务的时候限制在 4.3 ,执行完之后再切换回来。

参考 https://docs.kernel.org/admin-guide/pm/amd-pstate.html

```
To manipulate the boost attribute, users can write a value of 0 to disable the boost or 1 to enable it, for the respective CPU using the sysfs path /sys/devices/system/cpu/cpuX/cpufreq/boost, where X represents the CPU number.
```

我不确定是否能限制到 4.7 ,这要看 amd-pstate 是否支持。一个曲线救国的思路是写个假负载的程序然后绑定到 8~16 个核心上,让 cpu 误认为是全核心任务从而降低频率。

另外现在 amd 的 smp 调度还是有问题的,相关的内核补丁不确定能否赶上 6.12 的合并窗口。这一系列补丁主要是调度让单核心的任务跑在体质最好的核心上的。
179 天前
回复了 moyuman 创建的主题 程序员 最“流畅”的终端模拟器是什么?
@moyuman #13

平滑滚动是靠视觉残留形成的错觉,所以平滑滚动光标很容易做,但是平滑滚动内容本身是很难的。

由于终端里的内容基本不存在关联性,平滑滚动这个事情在不牺牲速度的前提下我个人认为不可行。
179 天前
回复了 moyuman 创建的主题 程序员 最“流畅”的终端模拟器是什么?
@adoal #16

OSC 52 确实是非常好的,终端里也不区分本地和远程。

当然我觉得这事属于历史问题,特别是 linux 环境。clipboard 是个桌面层面的实现,x11/wayland 还不一样,所以 vim 与系统剪贴板的交互是比较低效的 ipc ,而且需要编译期增加支持。理论上如果把 * 寄存器与系统寄存器关联也可以,但 vim 的设计 delete 会和 yank 同样使用 * 寄存器,这就导致按一下 x 也会触发一次 ipc ,一方面造成卡顿,另一方面用户也不想删除的内容进系统剪贴板。
179 天前
回复了 moyuman 创建的主题 程序员 最“流畅”的终端模拟器是什么?
我推荐 foot https://codeberg.org/dnkl/foot 另外这个作者其他项目也都非常好。


设计哲学层面我不是很认可 kitty/alacritty 的路线,恰好这个话题我在之前的讨论 zed 编辑器的帖子里提到过 https://v2ex.com/t/1056672 可以做参考。

foot 的作者也有专门写过文章论述 https://codeberg.org/dnkl/foot/wiki/Performance


除开渲染层面,foot 的作者同时维护 fcft 一个 rasterization 的库,这个库对于字符的处理我认为是目前最好的,foot 的字符显示就是基于 fcft 。

还有 foot 对于 OSC/escape sequence 的支持非常标准化,很方便做定制或者与其他应用交互。
183 天前
回复了 chopin1998519 创建的主题 程序员 调整 bios, chrome 会失去 session
我没有搜到 chromium 关于“机器码”相关的代码,而且常理上这个设计也很不合理。

我更倾向于认为是与 PAM 相关的原因导致的。登录凭证比如 cookies 这些是加密存储的,而 chromium 的加密密钥是存储各个平台的 keyring 的,mac/win/linux 都一样。Linux 环境解锁 keyring 与 PAM 相关,一般是登录桌面的同时解锁。

升级 bios 或者某些行为可能会导致 PAM 策略下 keyring 未能正常解锁。
1  2  3  4  5  6  7  8  9  10 ... 16  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2637 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 13:05 · PVG 21:05 · LAX 06:05 · JFK 09:05
Developed with CodeLauncher
♥ Do have faith in what you're doing.