cshop是什么开发语言_客户端产品一般是用什么编程语言写的?

我们现在的方案是这样的,用Rust来写业务逻辑,用Neon来做中间连接,用Electron来做UI层。

用Rust来写逻辑虽然一开始入门的门槛高了一点点,但是上手之后比Cpp还是有优势的。用neon来连接rust和node真的是完美。就是要写一层转换在里面。

Electron已经满足了PC端的大部分系统,如果是必须支持手机Pad之类的移动端的话,就换用QT的QML来做UI层。

至少到目前为止我们还没有太高的显示性能要求(游戏客户端那种性能要求)。

Electron的优势是可以用HTML/CSS来写界面,前面方案做完了业务逻辑写好了,就可以请UI姐姐来帮我们美美的设计一下了。还可以请我们的前端小妹妹来轻松的帮忙写界面。

Electron 1.7 的chrome版本是58,已经默认开启WebAssembly,这个还是比较有想象力的。

构建、打包啥的都是现成的套路。

最后package直接用electron-forge 。

至于兼容老旧操作系统的事情,我们现在不是太考虑的。

讲起来都容易,背后其实都是血泪。。。

-----------------

交代一下背景和需求。

我们之前的客户端都是Windows版的,N年之前写的,没有跨平台编译能力那种。

现在几乎是从零开始,要做一个Windows和Mac要保证能用,Linux主流版本要能用的客户端。

所以我们选方案可以选比较新的,没有历史负担的东西。而且我们是小团队,除了钱和时间,可以没有太多其他顾虑的去做方案。这也是不选C/Cpp的原因。

我们大多数公司有Web开发的能力,但是不一定有native UI开发的能力;我们很多程序员哥哥会写webservice那样的业务逻辑,但是不一定能很快上手nativeUI那样的开发模式。

所以Electron的一个优势是利用上了原有的Web能力,重点是做了一下资源整合,仍然可以套用原来的Web开发模式,只是把原来的数据交互由HTTP通道替换成JavaScript和native对象交换(这一部分稍微有点坑,不过直接用JSON做数据交换就好了,损失一丁丁点的性能)。

为什么不做纯粹的Web项目呢?

需求使然,要从客户端去做一些事情。

由于正常浏览器安全策略的限制,浏览器是不能方便的访问文件系统,底层接口等。而且让客户更新浏览器到最新版本或者指定客户用某个版本的浏览器?还是想办法让他们装个RePackage的Electron吧!

为什么不用Nodejs写业务逻辑,而要选择Rust?

选Rust除了是因为不想写C/Cpp之外。

因为Rust是编译型的语言,编译之后一般人是看不到代码指令的。而Nodejs始终是个脚本,混淆了还是个脚本,用个文本编辑器就可以猜代码来了。

Nodejs也像Python一样可以编译成二进制的东西发布,想想算了吧,我还是写Rust去吧 。

不直接用Nodejs的另一个原因,node_modules是个天坑,会把应用体积变得巨大。

QT做为备选方案,在要支持Electron不支持的地方用。现在看样子是暂时用不上了。

游戏客户端那样性能要求严苛,还有很多直接gpu操作的,需要一个大型团队来完成的。几乎是没办法这样来选型和研究的了。

-----

Mac下打包的目录截图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值