V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  w568w  ›  全部回复第 1 页 / 共 42 页
回复总数  835
1  2  3  4  5  6  7  8  9  10 ... 42  
22 小时 36 分钟前
回复了 karashoukpan 创建的主题 Go 编程语言 关于 Go 的工程经验
业务逻辑不要害怕造轮子,协议标准不要自己造轮子

开始开发前约定好规范,如「逻辑上可空的变量用 nil pointer 还是空值表示」「可选参数配置用 option pattern 还是 builder pattern 还是生成重载函数」

Be stupid ,不要耍聪明省代码行数而写出费解的代码。Go 很冗长并且它就该冗长,冗长比晦涩好
@PrinceofInj 哈哈,我也差不多。之前对 rime 的印象一直就是手摇拖拉机,干啥都行等于干啥都不行,事事都要自己写代码配置,配来配去折腾一两个礼拜还不如 Windows 上微软输入法开箱即用的体验。Fcitx5 Pinyin 就更简陋了,而且不知为何从输入到显示候选总是慢一拍。

后面直接用了万象,第一次感觉 Rime 还能这么简单好用。

> 感觉万象主要还是在调整词库,ngram 的语法库似乎并没有感觉有太明显的作用

确实。不过总体来说万象的输入舒适感虽然和搜狗输入法这种依赖云端的还不能比,但肯定是本地输入法里最强的一档了。
大厂的方案我不清楚,但确实见过一个开源实现 mvisor: https://github.com/tenclass/mvisor-win-vgpu-driver
AI 训练,开源,拼音,我看标题都以为这是 万象拼音 的推广贴了

不过万象拼音确实不错,可以看看: https://github.com/amzxyz/rime_wanxiang/

它本身是在语料库上训练了 ngram 预测器,算是有 AI 加成。实际输入的体验也不错。我自己已经用了几个月了,对长难句的支持很好

(注:非广,也不认识作者,甚至都没加官方群)
怀念的不是当时的系统,而是当时的软硬件生态。随便拉出几个当年的软件和今天的软件一对比,就看出差别来了
好奇《天国:拯救 2 》为啥一直不温不火?因为是续作?名字起得太小众?游戏节奏太慢热?

我自己没空玩但我看朋友玩了,不管是游戏自由度、世界观和文案文本量、配音工作量,还是开放世界建模和渲染水平,应该都是业界顶尖的水平。

我今年玩了《丝之歌》和《双影奇境》,云了《 33 号远征队》。说实话我大力支持《丝之歌》拿最佳独立游戏,《 33 号远征队》玩法创意不错,但前面这几部的制作水平应该还没法和《天国:拯救 2 》扳手腕……
9 天前
回复了 lihua 创建的主题 分享发现 安卓千元机让人刮目相看
不错,我今年也给家里人(包括我自己)换成 iQOO 全家桶了,顺便开了 vivo 家庭会员,可以共享云盘空间。体验很不错
一直觉得手机护眼是个伪需求。

看了一下 OP 之前的帖子,主要是要阅读吧。为什么不直接买墨水屏的电纸书或手机呢?
12 天前
回复了 zcion 创建的主题 C++ [求助] Linux 有什么好的引入 c++ 第三方库的方案
(我主要写 C ,没写过 C++,所以下面一部分说法可能不准确。)

这个问题其实有系统级和语言级的两层,一是 Linux 对 C/C++ 依赖的管理没有明确的定义,各个发行版自立山头;二是 C/C++ 的包管理本身确实很乱。

1. 对于前者,可以认为在依赖管理这件事上,Linux 没有规定什么做法是标准的,所以「每个系的发行版都是完全独立的体系」,不应该像 Windows 7/8/10/11 那样当成同一血脉的系统来看待。

尽管大家可以找出一些最大公约数(比如大多遵循 FHS 、使用 pkg-config 和 gcc ),但在实现上会有非常多细微的差别。大部分差别在开发过程中可以消解掉(例如使用 CMake 的 find_library/package 过程)但不是全部,而在打包和分发过程中则完全需要各个区别对待(比如 Debian 系、Gentoo 系和 Redhat 系,在分割软件包的粒度和指定依赖的方式上,做法都完全不同)。

此外,Linux 本身又是极度依赖 source-driven 的,需要时刻考虑用户利用现有环境进行开发的可能性。这就是为什么 Linux 下很难有 vcpkg 这样一个独立的、和系统无关的 C/C++ 包管理器。或者说即使有了,也不会好用,因为你最终还是要为每个发行版、编译器和依赖组合付出额外的成本去适配。

2. 对于后者,你的例子其实就是很好的典型。「通过 pacman 下载的 boost 似乎没有提供 .pc 文件」,是因为 boost 这个库本身只提供了 CMake 模块。你用 pacman -Ql boost 就能看到,boost 提供的是 /usr/lib/cmake/Boost-xxx/BoostConfig.cmake 配置文件,而不是 pkg-config 文件。

这种四世同堂的局面很多,不是每个包都会提供 pkg-config 来兜底(从功能性上来说,CMake Modules 无疑是更先进的)。这其实也是生态碎片化的体现:开发中的选择一旦多起来,开源作者都会习惯性选择自己最习惯的,而不是兼容性最好的。你问「有没有办法用统一的方式导入」,其实就和前端问「有没有办法在我的 React 项目里导入其他 UI 框架的控件」是一样的。当然这边的问题至少理论上是 solvable 的。

----


所以我能给的建议是什么呢?

1. 如果你专为某个发行版开发程序:完全本土化。使用那个发行版和系统包管理器,完全遵循那个发行版的逻辑。系统提供什么就使用什么方式引入;

2. 如果你为所有发行版开发程序:防御性编程,减少假设。同上,但是尽可能不要依赖某些假设(例如「一定有 pkg-config 」)。CMake 的 https://cmake.org/cmake/help/latest/guide/using-dependencies/index.html 介绍了通用的建议,主要是 尽可能使用 find_package 来引入依赖、使用 FetchContent 来从源码编译依赖 及 不要使用 FindPkgConfig 。
纯境内或境外的部分,你怎么折腾都可以。关键是从境内到境外这一步。你用 OpenVPN 、Tailscale 这些常规的、不专为反审查设计的协议,多半是秒封禁的。

目前反审查能力比较强的协议主要是

1. VLESS (内层代理协议)+ REALITY (将 TLS 握手特征伪装成可信网站)+ Vision-XTLS (消除 TLS-in-TLS 特征)
2. VLESS + REALITY + XHTTP (传输协议,将流量上下行分离,包装成 HTTP 上传下载请求)
3. NaïveProxy (直接使用 Chromium 的网络栈来消除指纹特征)

我自己一直用的是 VLESS + REALITY + Vision-XTLS ,没有任何中转,直通境外。已经两年了,依然没有受到封禁或审查。

不过这几种协议都比较小众,目前只有 sing-box 、mihomo 以及各自的自家代理客户端支持。我没用过 Surge 不是很清楚是否能用。除此之外还有一个备选项 Trojan ,大概相当于以上协议的简化版,抗审查能力弱一些,但客户端兼容性更强
12 天前
回复了 qdwang 创建的主题 游戏 请问一下欧卡 2 玩家
欧卡 2 基本是按照真实存在的高速公路路网来建造的。考虑到工作量和游玩体验,城市内部和高速公路应该分别是按照 1:4 (我忘记具体数字了)和 1:15 的比例来设计的。也就是说游戏里高速上开一公里 = 现实中 15 公里。

城市内部简化的多少取决于这个城市的地位和开发商加入区域的时间。

如果城市不太重要(不是首都/重要物流枢纽……),一般就会做得很简陋,甚至有些地方的「城市」会变成只有一两条路的村庄;但各国的首府通常规模会更大,大概相当于现实中一般城镇的大小(肯定不可能做到真实城市那么大)。

另外就是开发商的建模水平也是逐年提升,大体来说越新发布的区域,建模精细度就越高。免费(无 DLC )开放的区域,像是英国,做得最早,还原度也是最烂,能别去就别去。

欧卡 2 主要还是处于给玩家带来一些熟悉感的程度,比如一些重要的城市地标建筑或大型商业中心都会做建模,至少能让你认出这是哪个城市的水平。
14 天前
回复了 ysyah2019 创建的主题 程序员 第一次开源,欢迎大家指正。
不错。但图片占位符有更好的方案: https://github.com/woltapp/blurhash
看了下博客,放弃 Rust 主要是下面几个原因:

1. 任何原生语言(包括 Rust 、C 和 C++)和 Node.js 交互都需要在介面处频繁做序列化/反序列化。在大量数据 I/O 的情况下,多花费的额外时间几乎抵消了原生语言带来的性能增益;

2. 需要维护两套代码,更难吸引外部贡献者、编译工具链更复杂、Debug 定位问题原因更麻烦,且部署也要携带原生二进制,对不同 npm-like 的包管理器( pnpm ,yarn ,bun ,deno……)都需要单独做兼容;

3. I/O 密集的场景,TypeScript 这种有第一方异步运行时支持的语言,反而比 Rust 更有吞吐量优势。

另外「性能提升 3.4x 」的说法,基本可以完全归因于移除了 序列化/反序列化 过程。
另外,看你的写入量也不大,多半是硬盘本身的问题。有质保的话尽快找售后吧
> 网上查到的说由于磁盘上的重要媒体文件发生错误所以自检失败,我想知道是否和我在安装过程中直接对整个硬盘进行分区的操作有关(在分区后有按照教程进行格式化,之前是在磁盘有几百 G 数据的情况下直接分区的)?
> 是否也是和磁盘分区操作有关?

应该没关系,这个问题大多是固件或硬件问题。

> Media and Data Integrity Errors 38228 这个数值是否异常

异常。这个数字只要大于 0 ,就应该视为硬盘报废了。几万非常严重了。建议立刻停止使用、备份重要数据,然后找售后
14 天前
回复了 Tink 创建的主题 Google Antigravity with Gemini 3 Pro 这玩意真的强的可怕
"dependencies": {
"jsnes": "^1.2.1",
...

老哥,这叫直接调库
@jhdxr 没找到回复的对象,才发现早就 block 了。

用不着和这人犯气,纯口嗨的,有 Rust 关键词出现的帖子必来踩一脚,辩不过就玩消失,下个贴子继续骂

关键是骂的有道理( Rust 黑点不少)也就罢了,每次还都是一句话也说不到点上,句句都是南辕北辙的爆典,屁股代替大脑,键盘代替思考了属于是
用 unwrap() 从来都不是问题,问题是如何正确用 unwrap()。

致命性的、不可恢复的、编码性的错误( Error )就应该用 unwrap() 直接抛掉,强制终止运行状态不正常的进程,打印堆栈和 dump 以便后续查证;而一般性的异常( Exception )才应该用 Result 正确 handle 。
试试 EasyTier + KCP ?听说可以代替 UDP 打洞
17 天前
回复了 GallifreyCAR 创建的主题 Android 讲一个你离开苹果生态的原因?
V2EX 经典答非所问,手机话题下永远只讨论 Apple 的好

恩情!
1  2  3  4  5  6  7  8  9  10 ... 42  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3012 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 13:23 · PVG 21:23 · LAX 05:23 · JFK 08:23
♥ Do have faith in what you're doing.