V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  dragondove  ›  全部回复第 1 页 / 共 7 页
回复总数  139
1  2  3  4  5  6  7  
14 小时 33 分钟前
回复了 96356 创建的主题 Linux 用 Linux 办公 4 年了,不方便的点在于回家得用 windows
@96356 Linux 通过 proton 运行游戏方面可以查询 protondb 查看兼容情况,比如你说的地平线 5 可以看这个页面
https://www.protondb.com/app/1551360
@layxy 仓颉 beta 版本已经开放有一段时间了 https://cangjie-lang.cn/download 可以直接下载,感觉有些特性应该还需要砍一下,优化一下,反正还不是最终版。然后运行时的性能也没白皮书说的那么好,gc 性能很差。然后我不知道怎么才能把运行时静态链接进去,按照文档怎么尝试命令都不行,估计是测试版还有问题。
初学的难主要还是缺乏可视化的手段吧,还有一个是用递归模拟迭代的多参数混乱。可以看下类似 https://dmytrobaida.github.io/recursion-viewer/ 的工具,然后自己写的时候可以打印点日志,打印的方式是递归方法入口先打印 indent (比如说是 2 个空格)* 递归深度(递归深度作为参数传入)然后方法名加各个参数信息。打印内容可能是类似下面这样
```
|fib(5)
| |fib(4)
| | |fib(3)
| | | |fib(2)
| | | |2
| | | |fib(1)
| | | |1
| | |3
| | |fib(2)
| | |2
| |5
| |fib(3)
| | |fib(2)
| | |2
| | |fib(1)
| | |1
| |3
|8
```
这个的源码大概是这样:
```scala
def fib(n: Int, depth: Int = 0): Int =
println(s"""${"| " * depth}|fib($n)""")
if n <= 2 then
println(s"""${"| " * depth}|$n""")
n
else
val r = fib(n - 1, depth + 1) + fib(n - 2, depth + 1)
println(s"""${"| " * depth}|$r""")
r

val res = fib(5)
```

当然,你也可以想办法把这个功能做成装饰器
7 天前
回复了 Renco 创建的主题 Java 请教一下关于 Java 泛型的问题。
@yazinnnn0 根据返回类型实际上是放弃类型安全,不过可以通过其他方式补全(比如楼主用的 Class<T>的方式,但是 Class<T> 存在 T 不能有泛型的限制,都是历史债,建议是自己定义一个 TypeInfo 之类的类型来使用),下面的例子是 java 中根据返回类型推断泛型的例子,java 在这方面不存在你说的问题。

```java
public class Main {
static Object o = new Object();
@SuppressWarnings("unchecked")
static <T> T get() {
return (T) o;
}
public static void main(String[] args) {
String x = get();
}
}
```
@cnt2ex 你应该和 windows 比,linux 有 bwrap 隔离,起码可以做到不让它读取你的硬盘,只是易用性上还不太行。windows 有沙箱,但是大部分人也不会用,易用性也存在问题。linux 相对来说比 win 还好点
48 天前
回复了 banlifeather4 创建的主题 浏览器 我为什么选择 edge,而不用 chrome
已经换到 zen browser 了,有些功能还不够完善,但是使用体验已经很棒了(和 floorp 接近,floorp 毕竟这么多年了,更完善)。你说的这些功能应该都有对应的插件实现。
56 天前
回复了 passive 创建的主题 Windows 谁能举个例子, Win11 究竟哪儿不好用了?
win 本身有些功能不好用,配合一些软件之后还可以。

shell 来说,换成 nushell ,装上 scoop 作为包管理,uutils-coreutils 作为 gnu coreutils 替代品就舒服多了

窗口管理上有个问题是移动窗口、更改窗口大小需要找到可以拖动的点,有的时候会因为奇怪的情况导致你点击不到拖动窗口的点,使用 altsnap 软件可以让你按住 alt 键或者 win 键点击窗口任意位置拖动或者改变大小,只不过存在一些小 bug ,希望 windows 能自带这种功能(在 Linux 上几乎所有 wm ,以及 kde/gnome 都支持该功能)

资源管理器 win11 确实改善了不少,总算有多 tab 了,预览、批量重命名通过和 powertoys 联合也还不错。不过相比我在 kde 上用的 dolphin 还是不够强,dolphin 有多栏展示,树形结构展示,filelight 当前目录大小占用情况统计分析,和 konsole 终端所处目录自动联动等易用功能。

然后还有一些历史遗留问题,比如路径长度问题,我每次在 win11 上创建 dev drive 然后把 gradle 目录迁移过去都会报错(路径名过长)。还有命令行长度问题,如果用 idea 写过 java 项目应该都有遇到过 command line too long 的错误,根据网上的教程修改注册表什么的也没成功解决,idea 上有通过改为启动 jar 来启动来解决这个问题。

历史遗留还有一个老问题,GBK 的问题,其他系统都基本统一用 utf-8 了,不太会遇到编码问题。但是如果你碰到 win 和 mac/linux 互传 zip 文件,很可能会遇到中文乱码的问题。( zip 虽然有 utf-8 标志位支持,但是很多压缩、解压软件没直接支持,及时使用 7z 来压缩也需要填写压缩命令参数 cu=on )
56 天前
回复了 atonganan 创建的主题 程序员 请问现在有啥工具可以替代 postman 吗
vscode 的插件 httpyac ,只是写 js 生成变量在请求前自动调用,对于有签名的请求非常方便
@billccn 没明白是指哪几个特性,在其他语言里等价的概念是什么
91 天前
回复了 Ayanokouji 创建的主题 程序员 JDK 23 发布了
@jorneyr preview 特性,本来就没保证一定是这样的
91 天前
回复了 Ayanokouji 创建的主题 程序员 JDK 23 发布了
感觉改变不大,大部分都是预览特性,zgc 大部分情况表现不如 g1 ,该用 g1 还是用 g1 。markdown 这个感觉是追潮流了,python 的文档之前就支持了 markdown ,不过我个人觉得不是很必要。现在就想着字符串模板什么时候重新设计好,希望不会比 jdk21 上的预览版本差多少。
运算符重载有个好处是可以利用运算符的优先级减少括号层数而使代码变得易读。例如创建 sql 的 dsl 时,如果使用 where ((a add b) eq c) and (d eq e) 对比 where a + b == c && d == e 来说,后者更易读
完全替代不太可能,人家靠这个吃饭的,在这方面是领先的。
块代码替代的补全方式是有替代品的,叫 supermaven ,免费版我感觉够用(没有聊天功能),而且 supermaven 的补全速度非常快。
一开始可能有点不习惯它这种替换式的补全,可以考虑添加额外的快捷键,用过一段时间后应该会觉得很爽。我自己用了两周了,感觉比 copilot 舒服很多
@dudubaba idea 写 js 挺好用的,全栈开发时使用同一种工具也更方便,即使对于 js ,idea 的补全,跳转搜索支持还是做的比 vsc 好
154 天前
回复了 javak 创建的主题 Java Java hello world 确实就要占用 30M
再补充一点,hello world 这种特别小的项目,openj9 的内存占用反而比 hotspot 高,尝试过设置 -Xmx ,openJ9 能设置的 Xmx 能更小(可以设置到 -Xmx1m ,而 hotspot 我这设置成-Xmx3m 就会报错),不过貌似是因为它本身虚拟机的 footprint 更大,所以总内存占用还是 hotspot 小点
154 天前
回复了 javak 创建的主题 Java Java hello world 确实就要占用 30M
@smallboy19991231 在我的 64 位设备上,类似的 C 代码,通过 gcc -O2 编译,大概是 120k 的内存占用
154 天前
回复了 javak 创建的主题 Java Java hello world 确实就要占用 30M
这个总结有点草率,同样的代码,通过 graalvm native-image 编译后,占用内存 7M
非 aot 情况下有没有救的问题,还得看后续 valhalla 项目能优化多少东西
然后还有一个点是对于服务端应用,dump 内存一般都会发现真正占用内存的是字符串,而 java 中的字符串类型已经是比较优化的了(高版本使用 byte 数组存储,而且 JVM 本身支持共享相同字符串的启动选项,只不过默认不启用,因为影响性能),所以其实就服务端场景而言,不用 java 用其他语言也不太能降低内存占用。当然,如果是说 spring boot 内存占用高,是因为它本身就比较重,换成 vert.x/helidon se 之类的轻量级框架就好了,而且他们还都是 AOT 友好的框架。
154 天前
回复了 javak 创建的主题 Java Java hello world 确实就要占用 30M
@oyps 是的,是 java 11 的功能了,然后 java 22 又增强了可以多文件不编译直接运行。对应 JEP 在这里 https://openjdk.org/jeps/458
177 天前
回复了 baoshu 创建的主题 Linux 有没有适合开发者的 Linux 系统
@w568w 微软也没有为家庭版 windows 用户的体验负责,这么多年了,应用商店还是那样,winget 的体验不如开源的 scoop ,更好的开发者体验需要购买专业版
使用 SUPER + 数字键 切换 workspace ,每个 workspace 最多同时开 3 个应用,切换使用 alt + tab ,几乎用不到任务栏来切换应用的。(我个人习惯是固定 workspace 和属于这个 workspace 的常用软件,例如 workspace1 主要放终端和编辑器,workspace2 主要放浏览器)
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1052 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 19:07 · PVG 03:07 · LAX 11:07 · JFK 14:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.