V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  akaHenry  ›  全部回复第 11 页 / 共 17 页
回复总数  329
1 ... 3  4  5  6  7  8  9  10  11  12 ... 17  
2022-06-14 03:04:31 +08:00
回复了 thewiredguy 创建的主题 Go 编程语言 我怎么觉得 Java 的 JNI 比 Go 的 CGO 要好呢?
> 挑选最合适项目的方案,而不是强行套方案,最终不符合预期的时候骂骂咧咧。

上面某楼, 讲这种没卵用的废话.

1. 你没有使用过一个方案. 怎么知道好不好, 合适不合适? 不实践, 就知道是不是强行套方案? 你开天眼了? 云玩家?
2. 使用过, 很臭. 不能说? 不能排雷? 让更多人避坑?
3. 说它臭, 就是骂骂咧咧? 没有银弹, 就你懂?
4. 合着, 实践过, 被坑过. 再推荐给别人踩坑, 是什么形态?

这种看似"理中客", 最好笑.

你用, 我推荐.
我用, 我不用.

我本来懒得喷.

看还有人看不懂上下文. 明确一下吧.

而且, 我列了大量资料, 不去看. 不去对比各种语言的方案进展.

喜欢用 cgo, 你就多用啊. 我又不是写给你的.
2022-06-14 02:53:04 +08:00
回复了 thewiredguy 创建的主题 Go 编程语言 我怎么觉得 Java 的 JNI 比 Go 的 CGO 要好呢?
@hhaobao 我说的钢筋, 不是说你.

只是回复你上面的疑问, 顺便提了一下, 没有开新回复.

看你这个反应.

我觉得我贴的内容多余. 免回.
2022-06-13 23:24:17 +08:00
回复了 ElCorazon 创建的主题 互联网 老罗要 AR 创业了
感谢分享. 这篇专访. 老罗很真诚.

过去我也嘲讽他做手机. (从他第一天做, 就不看好. 无知无畏...

以后, 不会嘲讽他了.

> 对他改观的原因是: 他欠了 6 个亿, 没跑. 并靠直播带货, 把账还了.

在这个信用严重缺失, 老赖遍地爬的国家.

一个守信用的人, 值得尊敬.
一个成功还了 6 个亿的人, 很难得.

经过这个挫折, 他应该成长很多.

祝他新的创业, 能够成功.
2022-06-13 22:35:22 +08:00
回复了 thewiredguy 创建的主题 Go 编程语言 我怎么觉得 Java 的 JNI 比 Go 的 CGO 要好呢?
至于 Python 的 FFI + C ABI 非常成熟. (毕竟 Python 性能优化靠 C)

社区实践了几百年了. Python 社区基础库, 基本都是 C 实现.
我是懒得贴了. 没有讨论必要.
2022-06-13 22:31:54 +08:00
回复了 thewiredguy 创建的主题 Go 编程语言 我怎么觉得 Java 的 JNI 比 Go 的 CGO 要好呢?
我上面贴的 2 篇博客, 都不看的?

github.com/hhstore/blog/issues/242
github.com/hhstore/blog/issues/355


> rust + ffi + flutter 实践案例:

- https://github.com/AppFlowy-IO/AppFlowy
- 这个项目, UI 层使用 flutter, core lib 层使用 rust.
- 是非常现代的设计方案.


> FFI 库( rust + dart):

https://github.com/fzyzcjy/flutter_rust_bridge
https://github.com/rust-lang/rust-bindgen
https://github.com/google/autocxx
https://github.com/rust-qt/ritual
https://github.com/eqrion/cbindgen
https://github.com/getditto/safer_ffi


https://github.com/shekohex/flutterust
https://github.com/sunshine-protocol/dart-bindgen
https://github.com/brickpop/flutter-rust-ffi
https://github.com/TimNN/cargo-lipo
https://github.com/bbqsrc/cargo-ndk

https://github.com/dart-lang/ffigen


跨平台场景, 要注意其他语言的 FFI 基础设施建设(易用性 /成熟度). Go 完全没有可比性.

现在贴内容, 都要投喂到这种程度, 才看吗?
如果看了我上面 2 篇博客. 还要坚持用 cgo 的. 那.... 你开心就好.
2022-06-13 22:15:58 +08:00
回复了 thewiredguy 创建的主题 Go 编程语言 我怎么觉得 Java 的 JNI 比 Go 的 CGO 要好呢?
https://github.com/trustwallet/wallet-core

这个 c++ 项目, 实现了跨语言 binding 到多个平台 iOS, Android(通过 jni).

core lib 层跨平台场景, 选项只有 rust/c/c++. 不要走邪路.
2022-06-13 22:12:14 +08:00
回复了 thewiredguy 创建的主题 Go 编程语言 我怎么觉得 Java 的 JNI 比 Go 的 CGO 要好呢?
@hhaobao

我贴给你的 FFI 相关博客, 就是 rust 和 dart 通过 C ABI 跨语言通信啊? 怀疑你有没有认真看?

至于 Python 调用 C. 这完全不用讨论.
Python 社区, 大量的包, 都是 C 实现, 然后 binding 给 Python 使用.
这是 Python 性能优化的基本手段.

> 关于 FFI / C ABI 跨语言通信. 是双向的. ( C ABI 是桥)

上面很多讨论, 都假定是 Go 通过 cgo 来调用 C 代码. (注意, 还有反过来的场景)

rust/c/c++ 的 FFI 都是双向通信能力优秀.

说 CGo 是半残, 就是尽量不要用.

没有什么方案设计, 是非它不行的, 缺它不可.
没有什么方案设计, 是非它不行的, 缺它不可.
没有什么方案设计, 是非它不行的, 缺它不可.

非喜欢抬杠的, 你喜欢, 你就多用, 每个项目都用.
@janxin

https://github.com/m3o/platform

这个项目有写大量的 pulumi 脚本. 可以参考. 😄
2022-06-13 11:03:43 +08:00
回复了 1217950746 创建的主题 程序员 从头开发一个多平台应用,大家会考虑哪种技术栈?
@1217950746

关于 Flutter 和 Rust 学习. 可以看我的博客.

https://github.com/hhstore/blog/labels/Rust
https://github.com/hhstore/blog/labels/Flutter

Good luck. 😄
2022-06-13 11:01:16 +08:00
回复了 thewiredguy 创建的主题 Go 编程语言 我怎么觉得 Java 的 JNI 比 Go 的 CGO 要好呢?
@hhaobao


https://cloud.tencent.com/developer/article/1650525
https://dave.cheney.net/2016/01/18/cgo-is-not-go
https://relistan.com/cgo-when-and-when-not-to-use-it


看这些讨论吧.

除了极端场景, 只有 c/c++ 的库, 需要 binding 给 go 使用. 才用 cgo. 而这个代价, 可能非常高.

即使要用, 请隔离在小服务内. 然后 RPC 暴露给其他服务. 不要污染整个大项目.

这是坨💩. 谁用谁知道.
2022-06-13 10:50:35 +08:00
回复了 LoremIpSum 创建的主题 Go 编程语言 关于如何在 Golang 中实现抽象类
理性状态: 接口设计(interface) 和 数据(data), 应该是正交的.

推荐读 go-micro 这个项目源码来学习如何写 go + 设计大型框架系统.

go-micro 的代码写的非常非常漂亮.
2022-06-13 10:47:55 +08:00
回复了 LoremIpSum 创建的主题 Go 编程语言 关于如何在 Golang 中实现抽象类
多说一句. Go 和 Rust 等更现代的语言设计, 都是重视 组合 /嵌套 > 类继承.

Go 的 接口(interface) 设计, 都是 `组合` 的方式来扩展功能.

不要被 `类继承` 束缚思维. `类继承`, 是糟糕的东西.

不要总是想定义很大的类 struct (数据+方法过多).

尽量切分小类. 标准化操作 = 抽象接口方法(interface).

另外, go struct{}, 可以作为命名空间 namespace 使用 = 裸类(没数据, 只有方法).

小模块, 搭积木, 自由组合. 可以写出非常干净 /清晰的代码.
2022-06-13 10:34:55 +08:00
回复了 thewiredguy 创建的主题 Go 编程语言 我怎么觉得 Java 的 JNI 比 Go 的 CGO 要好呢?
@cxytz01

github.com/hhstore/blog/issues/242
github.com/hhstore/blog/issues/355

可以参考我这 2 篇博客, 关于 FFI 的内容.

https://en.wikipedia.org/wiki/Foreign_function_interface


FFI 是通用的跨语言调用规范. 主流语言基本都兼容 C ABI.

所以, 都可以通过 C ABI 方式来跨语言通信.
@janxin

不确定你具体指的是什么?

K8S 集群部署 /调度吗?

可以 Task + Pulumi or Terraform 的方式来远程操作集群.(还是在本地)

Pulumi/Terraform 非常强大. 这样你就可以把所有的脚本, 都通过 Git 管理.

Task 注入环境变量非常方便. 和这 2 者, 无缝衔接.
2022-06-13 10:24:36 +08:00
回复了 thewiredguy 创建的主题 Go 编程语言 我怎么觉得 Java 的 JNI 比 Go 的 CGO 要好呢?
@nmap


1. 如果是 Server 端, 可以通过 微服务 RPC(如 gRPC) / Restful API / Websoket 方式来调用. 避免侵入性. 把 C++ 改造成一个独立的服务. 暴露 RPC/Rest API 给 Go 调用. 即可以绕过 cgo.
2. 如果是 client 端, 如果用 Go 写 Client, 这本身已经是邪路. 那只能 cgo. 当然, 如果是 Desktop 桌面版的 app. 也可以同上, 把 桌面版 app 改造成 client/server 模型, 中间变成 proxy, 依然可以走 RPC/Rest API 方式调用.
2022-06-13 06:37:51 +08:00
回复了 echojoy 创建的主题 Rust 有没有大佬理下 Rust 学习路线或者思路
github.com/hhstore/blog/labels/Rust

另外, 我的博客, 也有很多篇是 Rust 的. 也可以看看.
2022-06-13 06:35:39 +08:00
回复了 echojoy 创建的主题 Rust 有没有大佬理下 Rust 学习路线或者思路
github.com/better-rs/learn-rs

github.com/better-rs/annotated-rs

是这 2 个项目. v2 不让贴链接(嫌我链接贴多了)
2022-06-13 06:34:24 +08:00
回复了 echojoy 创建的主题 Rust 有没有大佬理下 Rust 学习路线或者思路
自荐:

https://v2ex.com/t/853595#r_11761758


1. 项目 1, 是我学习 rust 过程中写的一些代码. 可以看看.
2. 项目 2, 是源码注解. (我挑选几个热门 rust 项目注解)

> 包括:

1. 一些 rust 语法练习.
2. 一组 cli 命令行工具(实用):
ETH 查交易.
某安 持币平均成本计算器.
3. 一个小型 cms. 基于 axum + diesel.
4. rust ffi 实践. binding 一个库给其他语言使用.

> 推荐路线:

1. 先看书. 官方教程 + <深入浅出 Rust>(必读, 非常好). 大概花 1 个月吧.
2. 我上面 repo, 根据官方的例子 rust-by-example 熟悉 rust 语法.
3. 根据自己的兴趣, 尝试使用 rust 写小项目 /工具.


> 交互式 /反馈式学习:

rust 的学习路线很陡, 不要指望一蹴而就.
rust 的语法特性集, 太多. 高阶部分(宏之类, 先跳过).

螺旋上升.

书看不下去, 就看热门项目源码.
热门项目看的觉得自己行了, 就写代码.
代码写不对, 就查文档 /书 /热门项目.

反复循环.

或者从给社区热门项目 /lib, 改 bug 开始.
改的过程, 加深对语法点的理解 /应用.
2022-06-13 03:23:22 +08:00
回复了 louzhumuyou 创建的主题 Rust 推荐哪个库写 rust web 后端代码
axum + diesel.

https://github.com/better-rs/learn-rs/blob/main/crates/rs-cms/readme.md

我这写了个小型 CMS. 还没写完. 做了设计部分. 可以看看.
2022-06-13 03:21:23 +08:00
回复了 overthemoon 创建的主题 Rust 国内现在 rust 都是做什么方向的业务
rust 应用场景:

1. core lib 层: 用于 client 侧, 底层跨平台. 配合 FFI binding 给 flutter/iOS/Android 等使用.
2. core infra 层: 基础中间件. 如 tikv 项目. 分布式数据库中间件.
3. 区块链: substrate, solana 等众多公链项目. rust 大火, 9 成是被区块链带起来的.

这 3 个方向, 都是刚需. rust 的优势明显. (相比 c/c++/go)

而且, 都很赚钱.
1 ... 3  4  5  6  7  8  9  10  11  12 ... 17  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4669 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 01:12 · PVG 09:12 · LAX 17:12 · JFK 20:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.