长期维护的项目,用跨端做真的越来越恶心了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
FreshOldMan
V2EX    程序员

长期维护的项目,用跨端做真的越来越恶心了

  •  
  •   FreshOldMan 4 天前 4817 次点击
    1. 经常性碰到 老旧 的跨端包,不更新了,然后自己 fork 改 bug

    2. ts js 写业务代码,碰到特定端的问题,现在特么又 iOS 安卓 鸿蒙 三端,贼恶心,很少有同事能同时改四种代码。沟通成本费劲(不是安卓的 bug xxx,现在适配不了 xxxx)

    3. 性能瓶颈随着系统版本升级越来越差(iOS 手机系统年年更新),但是因为成本考虑,项目 App 并不会年年升级最新的框架

    23 条回复    2025-12-22 17:12:34 +08:00
    NewYear
        1
    NewYear  
       4 天前
    是的,像我的 wordpress ,十多年,一些插件没人维护了,就要自己去更新软件代码、语法( php 不断在抛弃旧函数,旧语法)。。

    反而是 wordpress 提供的函数,稳如老狗,已经宣布废弃 15 年以上,还没从项目里面删除,兼容性超级好。

    所以我都在想,是不是以后开发东西,一定要用一直维护的第三方类库,但是想想,人家也会各种意外原因不更新,难难难。。。。维持旧版本,光是漏洞就是大问题。。。。而那些已经用上的功能又没什么好突破的,要不然还有修改的动机,现在动机都木有。。。。所以维护工作就变得头大了。

    在公司里,这种维护兼容、提升版本等等,都获得不了实际利益,也让人没有动力去搞。
    picwand
        2
    picwand  
       4 天前
    @NewYear 最优解法是减少依赖,很多库是以前自己写嫌麻烦,有 AI 以后这些麻烦都是交给 AI 去写了。
    BeiChuanAlex
        3
    BeiChuanAlex  
       4 天前
    最优解是 0 依赖
    hugebug
        4
    hugebug  
       4 天前
    跨端平台的 sdk 也要跟着一起更新啊
    crysislinux
        5
    crysislinux  
       4 天前 via Android
    native 的项目久了也得动大刀子。
    v2AKS
        6
    v2AKS  
       4 天前   4
    跨端的终点是原生
    qsnow6
        7
    qsnow6  
       4 天前
    Django 的 API 也是,20 年前跟现在的没什么区别,稳如老狗
    @NewYear
    tanranran
        8
    tanranran  
       4 天前
    嘿嘿,你以为原生就没这个问题了?你试试接手老旧的 Android/iOS 项目试试
    gogozs
        9
    gogozs  
       3 天前
    长期维护就要减少第三方依赖
    ZGame
        10
    ZGame  
       3 天前
    你这个是兼容的问题。 不见得原生就会好 。 现代跨平台框架应该要注意隔离 ui 和 平台硬件相关接口吧,类似做桥接? 另外听说 uniapp 很恶心 实际我也没用过
    94
        11
    94  
       3 天前
    跨端框架看上去方便了,但只是把原本三个人的活变成一个人来干而已,前期低成本快速试错是可以的。
    想要长期有好的用户体验和好的开发体验,最终就是拆回原来的多个独立 App 项目来干。

    除非以后有一个大一统的客户端,不然怎么样都没办法避免需要多个平台开发的踩坑经验。一个开发 + AI 辅助,能干是能干,但是干不好。
    FreshOldMan
        12
    FreshOldMan  
    OP
       3 天前
    @ZGame #10 移动端更新快,没有人专门给做什么一直维护更新的硬件接口,时间久了就烂了,尤其是中小公司
    cvooc
        13
    cvooc  
       3 天前
    写跨端完全不碰原生是不可能的,从技术角度来讲,跨端的学习性价比很高.你可以由此延伸向各个方向进阶.
    老库不更新了这种属于兼容性问题,实际上真不见得换原生会更好,反而跨端可以最大程度减小你遇到此类情况的频率.

    另外如果你司让你做跨端, 又让你学原生,但同时待遇没有提升活还变多了的话. 我建议跑路,我真建议跑路找家识货的公司.
    bojue
        14
    bojue  
       3 天前
    @picwand 我们也是减少外部依赖库,长期收益看很划算
    FreshOldMan
        15
    FreshOldMan  
    OP
       3 天前
    @cvooc #13 现在学 三个原生端, 这还有啥意思, 光各个平台的特性都学不完,都学个皮毛,三系统年年更新
    FreshOldMan
        16
    FreshOldMan  
    OP
       3 天前
    @cvooc #13 进阶啊,我原生和 js ts 都写,进阶就是 各个客户端都拿 js 糊,封个 UI ,用 js 调用硬件接口,pc 这种不经常更新的还好,移动端这种是真不行,用户用的多,体验要求高
    webszy
        17
    webszy  
       3 天前
    @tanranran 这是实话,就一个 swift 和 swift ui 就能把你整死
    ZGame
        18
    ZGame  
       3 天前
    @FreshOldMan #12 我的意思是 桥接层的工作省不了的吧。 跨平台应该关系的是 ui
    linhongye
        19
    linhongye  
       3 天前
    我的经验是每个端的前端都各自实现一遍...
    整体花的时间可能比跨平台更好, 而且更漂亮/性能更好
    faimin
        20
    faimin  
       3 天前
    这是一个普遍性问题,开发这行的职业生涯本来就短,很多中途不是转行就是下岗。遇到问题只能硬着头皮上。不过现在赶上 AI 时代,可以让 AI 帮你解决一部分问题。
    ffxxzz
        21
    ffxxzz  
       3 天前
    具体是指的什么呢? flutter 、ReactNative 、weex 、Lynx 、还是 kmp 呢
    ffxxzz
        22
    ffxxzz  
       3 天前
    @FreshOldMan 系统更新和你学习没有啥特别的关联吧,更新只是有哪些新特性,api 更新了,整体的架构和机制 肯定会有往前兼容的
    skallz
        23
    skallz  
       3 天前
    反正如果老板不招原生的话,我都是直接建议做 webview 套壳,反正稍微优化一下也能用,绝大部分功能 webview 也能实现,坚决不用跨端编译的框架,除非老板招原生
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     892 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 21:25 PVG 05:25 LAX 13:25 JFK 16:25
    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