V2EX sc3263 的所有回复 第 1 页 / 共 7 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    sc3263    全部回复第 1 页 / 共 7 页
回复总数  131
1  2  3  4  5  6  7  
2024-02-04 23:39:56 +08:00
回复了 justdoit123 创建的主题 DevOps 大家的 CI 都是怎么搭建的?
@FlytoSirius 前几天刚把 CI 从 Jenkins 迁移到 Gitlab Pipeline 上。迁移的时候做了亿点点改造,改完之后基本和你说的一样,CI 仅负责基本调用,主要逻辑都在 Python 中实现。
Gitlab Pipeline 被触发后,设置一系列的环境变量,调用 Python 脚本。在 Python 脚本里做真正的工作:解析环境变量,编译,跑单测、归档啥的。
这样本地开发调试脚本也方便,后续迁移 CI 平台也更容易。
2021-07-11 23:32:53 +08:00
回复了 ranxx 创建的主题 职场话题 那些让你用微信 QQ 面试的公司,建议都别去了
想起了去某个厂面试的经历。前几轮面试都是牛客网。最后 HR 面的时候,非得用自家公司的会议 app 。结果我登陆上去了,HR 半天没登录上,最后在微信完成了视频面试。
以及。。。似乎漏掉了用钉钉面试的公司。。。
2021-02-03 14:40:45 +08:00
回复了 James369 创建的主题 程序员 跨平台技术哪家强?
主要做桌面端。用过 Qt5 、PyQt5 、Electron 、原生,调研过 Flutter 。

Qt5 性能接近原生,上手后开发速度其实很快的。QML 其实很不错,但是学的人用的人都太少,很多坑只能自己填。对各平台下的特性支持的一般,需要自己封装。如果用到了 Qt Web Engine,可能会遇到显卡兼容性相关的问题。
PyQt5 开发速度极快,但 PyInstaller 打包时不时的会出点幺儿子。以及 Python 本身的性能瓶颈,同样的动画效果,C++实现好不费力,Python 实现能跑满单个核心。
Electron 开发速度快,各平台下的特性支持全,开发到打包到分发到异常收集,都有完善的解决方案。社区活跃度很高,有啥需求 /bug,很快就能处理。唯一的缺点大概就是体积占用大,运行效率稍微低一点了。
Flutter 桌面端目前还是玩具,不建议自己去踩坑。

心中最理想的跨平台方案:核心业务逻辑用 C/C++实现。在各平台下用原生语言去实现界面交互和使用系统特性。但绝大部分场景下,不需要这么重的方案。
确定下公司当下是否真的需要跨平台方案,是否真的需要移动端和桌面端使用同一套方案。目前并没有哪套框架能够完美通吃桌面端和移动端。各个框架依然需要针对各个端进行适配开发。实际工作量并不比单独维护要小,甚至难度会更高。
快速出产品的话,桌面端除非有历史经验 /包袱,否则建议无脑 Electron 。移动端没有上线的项目,没有发言权。
凑合,月光,刚好够用。
2020-12-17 11:57:13 +08:00
回复了 whatever93 创建的主题 生活 请问大家:夫妻一起存的钱,放在哪里?
wps/onedrive 上建个协作的表格,两个人把收入和支出都记录一下。月度年度做下汇总,看看哪块儿支出多,账上的钱和实际账户余额对不对的上。至于钱放哪边,我倾向于是谁更会管钱就交给谁。我家是放我媳妇那儿,让她买买基金啊理财产品啥的,不看收益多少,只求钱不莫名其妙的消失。
我和我媳妇已经这么实践了三年了。弊端大约是,媳妇会通过账单发现我偷偷喝奶茶不带她
2020-11-30 21:15:17 +08:00
回复了 IssacTomatoTan 创建的主题 程序员 流量计费实现思路
用户想要使用服务(打电话 /流量传输等),提供实际服务的设备,在提供服务前,向计费系统发起鉴权请求。
计费系统根据用户权限、套餐、余额等信息,返回一个配额,告诉设备,可以先提供多少分钟通话时间 /多少兆的传输流量等。如果这些配额被用完后,用户还在使用服务,设备再重新发请求。
用户停止使用服务后,设备再告诉计费系统,最后一个配额用了多少。
中间如果遇到余额不足之类的情况,就直接返回鉴权失败。让设备终止服务。
大概的实现方式就是这样,实际的鉴权请求不会很大的。
2020-07-30 10:37:50 +08:00
回复了 opai1995 创建的主题 问与答 ubuntu 下 qt 与 web 交互问题
看着像是安装或者编译 Qt 的时候,少了 webenginewidgets 的那部分。
2020-07-14 19:50:29 +08:00
回复了 imn1 创建的主题 Python 对整个目录树内文件改名思路是怎样的?
os.walk 函数,topdown 参数设置为 False,就会从下往上遍历。
然后直接匹配文件 /目录名称,重命名就行了。
@TomeWong Electron 应该是主进程和渲染进程吧,之间用 IPC 通讯。
我们的客户端也是 Electron 实现的,计算 sha1 和上传都是放在 addon 里用 C 实现的。
这种 CPU 密集任务还是不要为难 js 了。
计算和上传的逻辑放到独立的子进程中去。
或者写个 addon,在 addon 中新建线程进行处理。
2020-03-26 23:35:12 +08:00
回复了 nyanyh 创建的主题 程序员 电脑里的 Chromium/CEF/Electron 越来越多了
@nyanyh 虽然说都是基于 Chromium 内核,但 CEF 和 Electron 的上层封装完全不一样,无法复用。
即使使用同样的库,为了实现特殊需求,各家公司也会基于官方版本做一些小改动。比如说 Steam 用的 CEF,其实是自己定制的版本。不同的定制化版本之间也无法复用。
就算大家用的都是官方版本,但各家使用的 runtime 版本也不会一致。对于这种每一两周就会出更新一个稳定版的框架,要求开发商去适配自家的软件在各个版本的 runtime 下都能稳定运行是不现实的。甚至保证能在 runtime 最新版本下稳定运行这件事,都是很奢侈的。
最有可能实现的复用方案,就是楼上提到的 Microsoft Visual C++ Redistributable 那种,各个版本的 runtime 都来一份。然后期待某两个开发商的软件,用的 runtime 是同一个版本,能省下小几百兆的硬盘空间。
2020-03-20 11:08:44 +08:00
回复了 chenexe 创建的主题 程序员 大家好 想问下 py 处理长路径该怎么做
@xiri 那个貌似需要 win10 1607 及之后的系统,配合 Python 3.6 及之后的版本,才能正常处理。
2020-03-20 11:00:09 +08:00
回复了 chenexe 创建的主题 程序员 大家好 想问下 py 处理长路径该怎么做
这个应该是 windows 下特有情况。相关解释可以看一下
https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation
你也可以看一下
https://qdebug.com/2019/07/31/Python3%E5%9C%A8Windows%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%AF%B9%E9%95%BF%E8%B7%AF%E5%BE%84%E7%9A%84%E6%94%AF%E6%8C%81/
之前我整理的一个文章。
想快速解决的话,可以试试把路径处理一下,所有的‘/’替换为 r‘\’,再在最前面加上 r‘\\?\’,作为新的路径,传入函数。
2020-03-06 14:47:26 +08:00
回复了 Marven 创建的主题 问与答 前端事情少,领导让转 c++
界面迁移到 Qt 上做,是因为底层调用的库是用 C 封装的,用 Qt 调用起来会更方便?还是别的什么原因?
给个思路供参考哈。
楼主可以考虑 C++甚至 C 入个门,然后看一下 Node js addon 相关的开发文档。
后续如果还留在公司,可以把公司的 C 库封装成 addon,在 electron 中调用。
如果换工作,简历上的经历也是连续且逐步深入的。
@sc3263 试一下 Qt5 里新的信号槽连接方式呗。那个会有编译期的类型检查。
以及。。。2020 年了
QObject::connect(
this, SIGNAL(tunnel::add_item_into_table_signal(std::string, std::string, std::string)),
this, SLOT(tunnel::add_item_into_table(std::string, std::string, std::string))
);

去掉这边的 tunnel::
如果还不行的话,调试模式启动,看看 Qt 本身有没有输出类似
QObject::connect: No such signal A::add_item_into_table_signal(std::string, std::string, std::string) in xxx.cpp
的日志
2020-01-17 18:20:56 +08:00
回复了 hua123s 创建的主题 问与答 C++ 动态调用库问题, node.js 调用
@hua123s 可以按照
https://github.com/nodejs/node-addon-api/blob/master/doc/object_wrap.md
里提到的,定义一个继承自 Napi::ObjectWrap 的包装类,在里面实现 C++的代码。
我是直接在包装类对象里存 C++对象的指针。构造时新建 C++对象,析构时删除,再添加需要暴露给 JS 的成员函数,在里面调用 C++的对象对应的方法。
hmmmmmmmm
基本上就是你说的,属性一一对应写映射。
1  2  3  4  5  6  7  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5442 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 32ms UTC 06:04 PVG 14:04 LAX 23:04 JFK 02:04
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86