V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Austaras  ›  全部回复第 3 页 / 共 11 页
回复总数  203
1  2  3  4  5  6  7  8  9  10 ... 11  
2021-12-16 11:56:42 +08:00
回复了 rophie123 创建的主题 Node.js nodejs 前后端一把梭的优势在哪?
如果真的爱玩新技术,可以尝试一下 fsharp 全栈。。。甚至有 ssr
2021-12-14 21:57:53 +08:00
回复了 WadeLaunch 创建的主题 程序员 一个后端程序员对前端技术的彩虹屁
@murmur 那你去写 _jsx/createElement 啊谁拦着你了。。。
2021-12-13 15:15:29 +08:00
回复了 WadeLaunch 创建的主题 程序员 一个后端程序员对前端技术的彩虹屁
@murmur js 里哪来的 class 给你用啊,谁告诉你 jsx 是 html 的
2021-12-08 17:08:57 +08:00
回复了 aikilan 创建的主题 程序员 JS 如何复制一个函数?
@Austaras 我错了但我没说
2021-12-08 17:01:40 +08:00
回复了 aikilan 创建的主题 程序员 JS 如何复制一个函数?
楼上都在说啥呢 Object.assign 就行了
2021-11-09 18:01:32 +08:00
回复了 sky96111 创建的主题 Linux Gnome 是如何在 Xwayland 不支持缩放的情况下实现缩放的?
并不能,Gnome 在 XWayland 下分数缩放依然会糊
@aegisho 邮件已发
lz 问一下贵司还招人吗
2021-08-12 11:54:04 +08:00
回复了 huangmingyou 创建的主题 Linux 两次从 Linux 逃离到 os x 又逃回来的感受
@pisc Linux 上的各家 DE 对分数缩放的支持都很差
2021-07-28 21:01:23 +08:00
回复了 Smash 创建的主题 程序员 写过过 Angular 和 Vue 后,才发现 React router dom 真的不行.
别听楼上讲代数效应的瞎吹,都是扯淡的

react-router 的问题不是在于维护者跑路了吗? beta 都 beta 一年了还一大堆 bug,准备什么时候 release 啊?
@wutiantong pattern match 的优越性是老生常谈了,各路 fp 语言都分别论证过一遍的东西,随手举几个例子
···
fn foobar(n: u8) -> String {
(match (n % 3, n% 5) {
(0, 0) => "foobar",
(0, _) => "foo",
(_, 0) => "bar",
(_, _) => ""
}).into()
}

struct List<T> {
value: T,
next: Option<Box<T>>
}

fn len<T>(list: List<T>) -> usize {
1 + match list {
List { value: Some(list), ...} -> len(list) ,
List { value: None, ...} -> 0
}
}
···
复杂的例子里最好的例子大概是 ast,比如
···
let persistent_id = match &mut item {
// function Foo() {}
ModuleItem::Stmt(Stmt::Decl(Decl::Fn(FnDecl { ident, .. }))) => {
if let Some(hook) = handle_map.remove(&ident) {
hook_reg.push((ident.clone(), hook));
}
get_persistent_id(ident)
}

// export function Foo() {}
ModuleItem::ModuleDecl(ModuleDecl::ExportDecl(ExportDecl {
decl: Decl::Fn(FnDecl { ident, .. }),
..
})) => {
if let Some(hook) = handle_map.remove(&ident) {
hook_reg.push((ident.clone(), hook));
}
get_persistent_id(ident)
}

// export default function Foo() {}
ModuleItem::ModuleDecl(ModuleDecl::ExportDefaultDecl(ExportDefaultDecl {
decl:
DefaultDecl::Fn(FnExpr {
// We don't currently handle anonymous default exports.
ident: Some(ident),
..
}),
..
})) => {
if let Some(hook) = handle_map.remove(&ident) {
hook_reg.push((ident.clone(), hook));
};
get_persistent_id(ident)
}

// const Foo = () => {}
// export const Foo = () => {}
ModuleItem::Stmt(Stmt::Decl(Decl::Var(var_decl)))
| ModuleItem::ModuleDecl(ModuleDecl::ExportDecl(ExportDecl {
decl: Decl::Var(var_decl),
..
})) => {
···
至于生命周期的例子,不好意思,cpp 只要愿意永远可以怼裸指针,而且 rust 里需要手动标记的地方也是越来越少,所以很难搞出一个具体的例子,不过你可以看看 rust 里的 COW 是怎么做的
@wangxn 超越的地方就是不需要线程共享的时候可以不用这个改用 Rc 啊,而且 rust 能保证 Rc 被共享的时候会编译出错
@wangxn 是可以,有两个 auto trait send 和 sync,快来学吧 233
@wangxn 那你要怎么知道这个东西不会被多线程共享呢?不好意思 cpp 没有这样的能力,只好全部上 Arc
哦,std variant 果然也没有 niche 优化,这可真 zero cost
2021-07-19 14:55:13 +08:00
回复了 kebyn 创建的主题 Node.js callback 和 promise 性能差距疑问
@myqoo 你等于在问
```
async function foo() {}

await foo()
```
不是即时执行的,这就是 js 把 async 和 promise 绑定带来的问题,一个 async 函数,无论怎样返回的东西都是一个 promise,所以一定要在下一个 microtask 里执行
@wutiantong  你都封装成智能指针了那哪里的 zero cost 呢?固然 rust 这边可以全部 Arc (不多线程共享的可以用 Rc,这点上成本比 cpp 的 shared_pointer 还要低),但性能损失呢?
@wutiantong  首先 adt 起码对应 std::variant 和 std::tuple,你可以看看 cpp 里的实现是多扭曲,而且 cpp 里也并没有相应的基础设施,随便多嵌套几层就等着爆炸吧

feature 并不是越多越好,恰恰相反,需要仔细斟酌加什么不加什么,衡量收益和代价,而在这点上 cpp 可以说是灾难性的失败
1  2  3  4  5  6  7  8  9  10 ... 11  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   748 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 20:52 · PVG 04:52 · LAX 13:52 · JFK 16:52
Developed with CodeLauncher
♥ Do have faith in what you're doing.