V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  GiantHard  ›  全部回复第 4 页 / 共 20 页
回复总数  391
1  2  3  4  5  6  7  8  9  10 ... 20  
2023-08-04 10:18:27 +08:00
回复了 GiantHard 创建的主题 前端开发 给大代码库的类型检查提提速
@MinonHeart #4

> 两边都是通过 cache 提速的,另外 TPR 的项目依赖需要手动编写( tsconfig.json ),和 package.deps 重复了,维护不会很麻烦吗?(有看过一些同步的工具,但是还是挺麻烦的)

在我的项目中,维护 tsconfig.json 的 reference 用的是自己开发的工具 https://github.com/ZeekoZhu/js-prelude/blob/main/packages/ts-sync-ref/README.md ,把这个包装成 nx executor 后,就方便很多了。

> js 和 ts 混合项目,TPR 怎么处理?

TPR 只是用来加速 tsc 而已,tsc 查找类型定义的方式可以通过给 tsc -b/-p 命令加上 --traceResolution 来 debug 。你的这种做法看起来也没啥问题。另一种做法是通过 package.types 字段指定 .d.ts 文件。

> TPR 项目中有引用图片/SVG 等这些二进制资源怎么处理?

我把 tsc 当作 type checker 用的,生成 js (包括 copy assets )用的是 vite ,跟 tsc 没有任何关系。另外,build mode 提升构建速度的方式是复用类型定义,也跟二进制文件没有关系。

> TPR 在 watch 和 build 上有很大的优势吗?

这里我引用一下 TypeScript 的文档:

> By separating into multiple projects, you can greatly improve the speed of typechecking and compiling, reduce memory usage when using an editor, and improve enforcement of the logical groupings of your program.

如文档所述,启用 Project Reference 后,tsc 跟 tsserver(language server) 都会变得更加高效。我实际测试下来,类型检查速度能提速不少;编辑器的话,我平常用 WebStorm ,这个 IDE 根本不用 lsp ,所以没有感觉到内存占用的减少。
2023-08-03 17:34:23 +08:00
回复了 GiantHard 创建的主题 前端开发 给大代码库的类型检查提提速
@MinonHeart #2

> TPR 中不同项目导出同名类型会导致类型错误

没法复现你说的这个问题,https://i.imgur.com/PvW0haX.png

讲道理不同模块下出现同名类型的情况很常见,只要同一模块下的类型名称不重复即可

> Nx 管理工具和 TPR 感觉功能重叠了,同时使用导致项目结果太复杂了

确实这俩都支持增量构建,但是 nx 的适用性更加广泛。我自己的使用中,tsc 负责把代码编译成 d.ts ,nx 负责缓存各种构建产物( tsc, vite, webpack, svgr 等等),所以从定位上,nx 是个构建工具,而 TPR 只是用来给 tsc 加速而已,类似的,vite, webpack 之类的也有构建缓存功能,但是使用这些工具跟 nx 并不冲突。

最后,往一个项目中引用的工具越多,项目都会变得越复杂,比如很多人吐槽的新建一个前端项目模板,页面代码没几行,净是 .xxxrc 。我觉得这类问题目前看来是无解的,这是为了提高开发体验做的牺牲。不过,我觉得引入 nx 能够缓解手动维护这些配置文件的繁琐,靠官方、社区维护的插件,已经能够在创建项目、升级依赖的过程中简化很多操作了。
2023-07-31 11:33:57 +08:00
回复了 vincent7245 创建的主题 程序员 请教下前端和全栈的同学
界面丑跟前端技术无关,主要是设计功力不足。所以我建议楼主看看这本书 https://www.refactoringui.com ,本书的作者同时也是当下流行的前端技术框架 tailwind css 的作者,这本书提供了对于程序员而言很实在的技巧,旨在教你如何在没有设计师的帮助下,设计出美观的网页
2023-07-31 11:27:03 +08:00
回复了 donggua997 创建的主题 程序员 有没有前后端联调的高效解决办法
准备一个测试环境,前后端写好了代码就往测试部署,这样两边谁也不耽搁谁
2023-07-30 16:22:44 +08:00
回复了 GiantHard 创建的主题 前端开发 给大代码库的类型检查提提速
如果各位有兴趣的话,也欢迎在评论区分享你的项目中执行类型检查的方案。
2023-07-28 15:26:33 +08:00
回复了 RageBubble 创建的主题 程序员 最近使用 jetbrain gateway 远程开发的个人体验
我现在用 lsyncd 远程开发,代码 clone 到自己电脑,然后用 lsyncd 同步到 Server ,webpack dev server 之类的都在 Server 上运行,这样可以减少自己电脑的内存消耗,而且不会降低开发体验。
2023-07-28 13:54:33 +08:00
回复了 RageBubble 创建的主题 程序员 最近使用 jetbrain gateway 远程开发的个人体验
@daliusu #22 试试 2023.2 呢,现在支持 LSP 了,应该就有 volar 的智能补全了
2023-07-28 10:31:09 +08:00
回复了 289396212 创建的主题 程序员 写 c#如何把 vscode 配置得跟 rider 一样,用起来方便一点
轻量与功能丰富不可兼得
2023-07-07 20:19:27 +08:00
回复了 123go 创建的主题 程序员 分享一下我自用多年的全局键盘换键方案
我也蹭楼分享一下我的键盘设置,不过我主要在 Linux 下使用 https://zeeko.dev/2022/11/free-ergonomic-keyboard/
2023-07-05 17:15:46 +08:00
回复了 simman 创建的主题 程序员 如何解决 Dart 解析大 Json 文件慢
@serco #30
说得对,crate json 要比 serde_json 快一倍( AMD Ryzen 7 5800U )

```rs
// build with cargo build -r
use std::fs::File;
use std::io::{Read};

use serde_json::Value;
use json;

fn parse_json(contents: &Vec<u8>) {
let now = std::time::Instant::now();
let _: Value = serde_json::from_slice(&contents).unwrap();
let elapsed = now.elapsed();
println!("serde_json: {:?}", elapsed);
}

fn parse_json2(contents: &str) {
let now = std::time::Instant::now();
let _ = json::parse(&contents).unwrap();
let elapsed = now.elapsed();
println!("json: {:?}", elapsed);
}

fn main() {
let contents = {
let mut vec = Vec::new();
// https://github.com/json-iterator/test-data/blob/master/large-file.json
File::open("large-file.json").unwrap().read_to_end(&mut vec).unwrap();
vec
};
for _ in 0..10 {
parse_json(&contents);
}
for _ in 0..10 {
// create json str from contents
let contents = String::from_utf8(contents.clone()).unwrap();
parse_json2(&contents);
}
}

```

```
serde_json: 182.566705ms
serde_json: 157.330185ms
serde_json: 151.551179ms
serde_json: 150.997928ms
serde_json: 158.290287ms
serde_json: 151.983899ms
serde_json: 152.493476ms
serde_json: 150.337436ms
serde_json: 151.174303ms
serde_json: 150.424319ms
json: 71.080736ms
json: 73.125015ms
json: 80.531158ms
json: 82.744729ms
json: 79.73645ms
json: 80.040878ms
json: 80.30521ms
json: 79.455428ms
json: 79.702968ms
json: 72.22127ms

________________________________________________________
Executed in 2.42 secs fish external
usr time 2.36 secs 0.00 micros 2.36 secs
sys time 0.06 secs 464.00 micros 0.06 secs
```

当然,你换个编程语言也可以比 serde_json 更快

```fs
/// build with dotnet build -c Release
open System.IO
open System.Text.Json
open System.Diagnostics

let json = File.ReadAllText("large-file.json")

for i in 1..10 do
let sw = Stopwatch.StartNew()
let jsonDocument = JsonDocument.Parse(json)
sw.Stop()
// print in ms
printfn "Elapsed: %dms" sw.ElapsedMilliseconds

printf "Done"
```

```
Elapsed: 185ms
Elapsed: 74ms
Elapsed: 73ms
Elapsed: 70ms
Elapsed: 75ms
Elapsed: 74ms
Elapsed: 67ms
Elapsed: 69ms
Elapsed: 73ms
Elapsed: 73ms
Done
________________________________________________________
Executed in 963.57 millis fish external
usr time 881.76 millis 0.00 micros 881.76 millis
sys time 86.87 millis 387.00 micros 86.48 millis
```
2023-07-04 10:33:49 +08:00
回复了 aim467 创建的主题 程序员 哪种语言编写的程序转成可执行文件比较方便(exe / binary file) ?
用最熟悉顺手的编程语言就好了,先把工具写出来,再考虑优化。
2023-07-03 17:16:21 +08:00
回复了 Serino 创建的主题 Linux Linux 下对于多屏不同 UI 缩放有好的解决方案吗?
https://i.imgur.com/jjNYfBH.png

Wayland +KDE 可以,但是存在一些不是特别影响使用的问题
2023-07-03 10:45:22 +08:00
回复了 yaott2020 创建的主题 Linux 请诸位 Linux 用户泼醒我
你能说出 Windows 有哪些影响你使用的痛点吗?如果不能,为啥要换成 Linux ?
另外, 还不支持在输入框使用 fcitx5 输入法
Linux Wayland hidpi 缩放有问题,没有跟随系统设置缩放。

https://i.imgur.com/HiPaISw.png
2023-05-18 11:08:31 +08:00
回复了 idblife 创建的主题 Linux sway 4k 分辨率下 pycharm 字体模糊,是需要设置字体吗?
不是字体的原因,是 JetBrains 家的 IDE 还不支持原生的 wayland ,sway 会强制缩放应用界面,得到的效果就是界面模糊。印象中有一个对 sway 的 patch ,可以支持 XWayland 自行缩放。
2023-05-07 00:50:20 +08:00
回复了 jurassic2long 创建的主题 生活 1 万块钱怎么快乐起来?
去深圳街头,把一万块钱分享给你认为有需要的人,这就叫做,助人为乐
2023-04-20 15:40:48 +08:00
回复了 szsaxc 创建的主题 成都 五一去成都了,求吃住行推荐
https://twitter.com/Vincent_Song/status/1648633093614604289 成都最近导游都不够用了,我大概能想象到你五一到成都的场面 2333 。 不过你可以试试反向操作,住打工人上班位置附近(天府 1-5 街,天府大道,剑南大道),假期人流会比较少,地铁交通方便,餐饮也多。
2023-04-20 11:09:33 +08:00
回复了 iorilu 创建的主题 程序员 现在还有多少开发觉得一定要用 mac 的
预算有限的话,当然买配置高的,预算充足的话为什么还要做选择呢?
2023-04-10 10:48:22 +08:00
回复了 mark4zhao 创建的主题 程序员 Rime 输入法真是简洁啊。
桌面上我用的声笔双拼,编码风格类似自然码,这个输入法最大的特点就是,重码率低,支持自动上屏,编码好记、好推导,我从微软双拼转过来,上手很快。

「你们试着了解一下形码啊,它那么的努力。」
「 nimfsizelcjxyixwxymava,taonamed_nuli 」

输入效率的话,对我个人而言,跟搜狗双拼+云拼音输入效率差不多(跟打每分钟 60 字),但是使用声笔双拼会让我的心态更好,因为重码率低,很少需要翻找候选词,不容易烦躁。

---

手机上用的 Gboard 九宫格,主要是我手指太粗了,用 26 键的声笔双拼很容易误触
1  2  3  4  5  6  7  8  9  10 ... 20  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1020 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 23:07 · PVG 07:07 · LAX 16:07 · JFK 19:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.