精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一次炫技差點引發的慘案

開發 前端
假使我們當時的技術人員統一在工程中都用 OC,而不是用 Swift 來寫代碼,那壓根就不會出現這樣的問題,如果一定要用 Swift,至少要等到 ABI 穩定之后再用

大家好,我是坤哥

今天和大家探討一個話題:技術的穩定性到底有多重要。

上周用三天的時間把原本預計至少一周才能改造完成的 iOS 項目在最新的 Xcode 15(iOS 開發 IDE)上成功跑起來了!

其實說實話這個 iOS 項目用兩周的時間在 Xcode 15 上能不能跑起來我心里都沒底,好在結果是好的。

這個項目過去四年了,是我司的主要盈利產品(返利 app),不過技術棧還比較陳舊,一些依賴用的 swift 3.0 寫的(最新的 swift 版本是 5.5),在最新的 Xcode 15 上跑不起來,也就無法打包,那還了得,萬一碰到什么 bug 無法打包解決問題可就大了。

其實五一前兩周我們在迭代開發產品時就發現 4.29 日之后必須用 Xcode 15 打包,還好提前一周我們發現了這個問題,這樣可以先降級到 Xcode 14 來開發打包,迭代的功能也順利上線了。

但是 app 不能在 Xcode 15 上啟動打包的問題終究是要解決的,于是五一回來之后我又馬不停蹄地迭代這個 APP,以讓它能在 Xcode 15 上跑起來,好在運氣比較好,經過一番魔改(之后會提到)終于跑起來了。

四年對一個項目其實說長也長,說短也短,理論上像 Java 開發的項目,由于 JDK 通常設計為向后兼容的(兼容老版本),老項目通常能跑起來,為啥我們的這個 iOS 項目會有這樣在最新版 Xcode 15 上跑不起來的問題呢。

主要原因其實是因為這個項目的 Pod(iOS 項目中的 Pod 類似 Java 中 Maven 管理的第三方依賴庫)不少是由 Swift 開發(蘋果 2014 年推出的編程語言),這些 Pod 庫中有不少引用 OC(Objective-C,蘋果系之前的主流開發語言)的代碼。

在之前的 Xcode 中,工程是可以跑起來的,但是最新的 Xcode 15 對編譯器等做了大量的的修改導致這些 Pod 都無法編譯通過了,然后就跑不起來了,試了網上各種方法都不行。

這事其實很要命,試想如果發現線上有個 bug 需要緊急修復(比如無法提現),然后你的 app 卻無法打包導致短時間內無法修復,很可能導致用戶流失,業務停滯甚至公司倒閉的嚴重后果。

假使我們當時的技術人員統一在工程中都用 OC,而不是用 Swift 來寫代碼,那壓根就不會出現這樣的問題,如果一定要用 Swift,至少要等到 ABI 穩定之后再用。

「這里簡單解釋一下什么是 ABI 穩定:想象一下,有一座橋,這座橋連接了兩座島嶼:一個島是 Swift 語言自身,另一個島則是操作系統,比如 macOS 或 iOS。這座橋就像是一個協議,確保兩邊可以互相理解和交流。在軟件的世界里,這座橋就是“應用程序二進制接口”(Application Binary Interface,簡稱 ABI)。

Swift 的 ABI 穩定性可以比作這座橋的結構變得堅固且不再改變。初期,Swift 還在不斷發展,這座橋每隔一段時間就需要重建一次,這意味著開發者如果使用了新版本的 Swift,他們可能需要重新編譯他們的應用程序,以確保它能在新橋上運行。」

Swift 作為一種新技術,其實還是存在不少坑的,手淘也是在 ABI 穩定后才開始在項目中引入 Swift 的,這就好比 JDK 22 出來了,但國內大部分還是使用的 Java 8。

為什么會出現這種「你升任你升,我用 Java 8」的場景呢,還不是出于穩定性考慮。

任何新技術的引入都要考慮以下幾個因素:

  1. 新技術對開發效率/程序性能的提升是否顯著
  2. 對此新技術熟悉的人是否足夠多(人員足夠多意味著方便交接,方便定位問題,方便開發功能)
  3. 新技術從短期或長期來看對業務是否穩定

一般我們考慮的重要性按上面三點是依次遞減,但實際上第三點可能反而是最重要的。

其實我們這個項目雖然還未等 ABI 穩定就引入了 Swift,但當時公司的發展如日中天,有幾十號 iOS,也有好幾位 iOS 架構師,所以工程一旦有啥技術問題,基本也能輕易解決。

但后來公司業務急轉直下,iOS 團隊被裁或離職導致一個不剩,后來公司徹底轉型,干掉了所有的技術,你沒看錯,iOS 開發全都沒了(你說這種情況誰能想到)。

那這時之前在項目中引入的 Swift 就成為了一顆隨時會引爆的定時炸彈,后患無窮。

所以現在回頭看,Swift 如果未在 ABI 穩定前被引入,一直用的 OC,那壓根不會有這樣的問題。

之前有人吐嘈銀行技術棧太過陳舊,如相比于互聯網普遍采用的 JSON, 銀行的數據格式大都是萬能不變的 XML 等。

其實對于銀行來說可以理解,畢竟是金融,要以穩定為主,重構幾下代碼是好看了,但由于歷史遺留問題可能會有技術債,一不小心出現問題如金額對不了的問題就悲劇了,所以真的別炫技術,技術這東西夠用就行!

最后,問題已經出現了,抱怨解決不了問題,那我們該如何解決呢?

這里我想簡單介紹一下我是如何修改以讓老項目在 Xcode 15 上跑起來的。

其實運行一個項目與大家熟悉一個項目或者說業務的思路都是相通的,抓大放小, 抓主線,跑通主流程,細枝末節之后再看。

老項目無法在最新的 Xcode 15 上跑主要原因是 Pod 中的 Swift 引用了 OC 中的類,那我可以先注釋這些邏輯,等跑通后再看看怎么優化。

再比如有個防反編譯的第三方庫,發現它的存在也會導致項目無法啟動,怎么也繞不過去,于是直接把它干掉,安全,相比于 app 不能啟動這事不是那么重要,這問題可以等 app 跑起來后再想辦法補。

碰到難題,不要想著硬碰硬,可以繞過去的,千萬不要在細枝末節上死磕,撿了芝麻,丟了西瓜。

此外碰到問題千萬不要慌,要冷靜分析,比如項目在 Xcode 15 跑起來后,我發現幾個 weex(一種跨平臺框架)頁面的展示有些錯亂,如下:

圖片圖片

看到這個頁面第一眼我想的是得用 H5 來重構了,但用 H5 重構,工作量比較大,有沒其他的方法?

我發現這個頁面其實并不是每個 UI 都是錯亂的,只是少數幾個 UI 的渲染有問題,那就可以分析一下這幾個出問題的 UI 和其他正常顯示的 UI 在 weex 的寫法有哪些區別,于是經過分析發現是三元運算符還有 text 的寫法有區別,經過改造,問題就解決了,相比于使用 H5 來重構的時間,這點時間幾乎可以忽略不計。

責任編輯:武曉燕 來源: 坤哥漫談IT
相關推薦

2021-11-01 17:29:02

Windows系統Fork

2017-08-24 17:37:18

DNS緩存分析

2017-09-01 09:17:51

DNS緩存慘案

2025-07-21 06:30:00

2018-12-27 09:09:35

2023-07-13 09:12:37

CNCF項目云原生

2019-11-04 10:37:53

MongoDB宕機日志

2017-08-22 15:58:56

2021-11-22 08:33:27

微信聊天離婚

2021-03-17 00:17:16

命令應急響應

2022-11-29 21:26:26

跨域配置

2019-09-10 10:31:10

JVM排查解決

2013-03-22 10:53:42

PyConPython

2021-07-24 13:11:19

Redis數據技術

2011-04-27 10:02:54

兼容墨盒用戶體驗

2020-01-06 09:43:14

賠償TSB遷移

2018-07-16 22:29:29

代碼迭代質量

2019-01-16 09:20:42

架構設計JVM FullGC宕機事故

2020-09-23 09:27:13

代碼試用期機器

2010-02-25 15:22:02

點贊
收藏

51CTO技術棧公眾號

在线观看av大片| 精品亚洲aⅴ无码一区二区三区| 波多野结衣中文在线| 亚洲黄色精品视频| 成人在线视频国产| 五月天久久比比资源色| 亚洲国产一区二区三区在线| av综合在线观看| 久久久久国产精品午夜一区| 久热精品视频在线观看| 手机av免费看| 亚洲网一区二区三区| 色视频欧美一区二区三区| 300部国产真实乱| 日本不卡视频一区二区| 国产精品中文字幕日韩精品| 国产精品极品美女粉嫩高清在线| 国产精选第一页| 日韩精品一区二区三区免费观看| 337p日本欧洲亚洲大胆精品| 超碰成人在线播放| 免费毛片在线看片免费丝瓜视频| 中文乱码免费一区二区| 精品无码久久久久久久动漫| a级片免费观看| 久久国内精品视频| 国产精品久久久久久av福利| 99精品视频99| 黄色精品一区| 久久综合久久八八| 黄色片网站免费| 亚洲另类av| 亚洲国产美女久久久久| 乳色吐息在线观看| 91精品一久久香蕉国产线看观看| 在线观看www91| 能在线观看的av| 多野结衣av一区| 亚洲444eee在线观看| 久久观看最新视频| 黄a在线观看| 中文字幕一区二区视频| 亚洲欧洲一区二区在线观看| 成人18在线| 国产欧美日韩麻豆91| 欧美日本韩国一区二区三区| 四虎影视在线观看2413| 99久久免费国产| 高清国产午夜精品久久久久久| 国产亚洲一区二区在线| 9.1成人看片免费版| 亚洲成在人线免费观看| 亚洲欧美国产一区二区三区| 久久久久久久久久久久久久久| 日韩有码中文字幕在线| 日韩精品一二三四区| 国内精品久久99人妻无码| 天天躁日日躁狠狠躁欧美巨大小说| 日韩高清a**址| 黄色工厂在线观看| 国产99精品一区| 中文字幕精品网| 日本黄色录像视频| 在线观看国产精品入口| 欧美激情精品久久久久久免费印度| 久久精品人妻一区二区三区| 一本久道综合久久精品| 日本电影亚洲天堂| 久久精品国产亚洲av麻豆蜜芽| 麻豆成人久久精品二区三区红| 成人免费激情视频| 国产女同91疯狂高潮互磨| 高清国产一区二区三区| 久久人人九九| av在线电影网| 樱桃国产成人精品视频| 欧美三级在线观看视频| 欧洲一级精品| 日韩手机在线导航| 中文精品在线观看| 久久亚洲精品中文字幕蜜潮电影| 九九精品在线视频| 国产精品视频免费播放| 麻豆91在线播放免费| 97视频中文字幕| 欧洲一级在线观看| 亚洲六月丁香色婷婷综合久久| 2018国产在线| 国产成人福利夜色影视| 亚洲成色999久久网站| 免费看91的网站| 黄色欧美日韩| 国产欧美一区二区三区在线| 人妻一区二区三区| 国产精品狼人久久影院观看方式| 黄色三级中文字幕| 妺妺窝人体色www在线下载| 性欧美videoshd高清| 天天免费综合色| 成年人三级黄色片| 天天躁日日躁狠狠躁欧美| 精品国产一区二区三区四区在线观看 | 国产精品va在线观看无码| 成人亚洲欧美| 精品国产免费久久| 精品少妇一区二区三区密爱| 国产欧美日韩一级| 亚洲自拍欧美色图| youjizz在线播放| 亚洲成av人片一区二区梦乃| 亚洲小视频网站| 国产一区二区三区四区大秀| 欧美激情视频网| 96日本xxxxxⅹxxx17| 久久久久久久久免费| 69sex久久精品国产麻豆| 日韩有码欧美| 在线精品国产欧美| 丁香社区五月天| 97se亚洲国产综合自在线 | 日本不卡一区视频| 免费在线日韩av| 国产免费一区| 蜜臀av国内免费精品久久久夜夜| 视频成人永久免费视频| 日韩你懂的在线观看| 在线观看日本黄色| 日韩国产欧美在线播放| 久久综合一区二区三区| 深夜在线视频| 亚洲国产精品99久久| 久久黄色小视频| 国产精品夜夜嗨| 男插女免费视频| 在线欧美激情| 精品国产一区二区三区久久| 91午夜交换视频| 国产精品蜜臀av| 亚洲精品性视频| 四虎成人av| 国产在线精品播放| 久草免费在线| 91精品国产黑色紧身裤美女| √天堂中文官网8在线| 极品销魂美女一区二区三区| 中文视频一区视频二区视频三区| 日韩国产大片| www.久久久久久.com| 国产精品欧美激情在线| 亚洲欧美欧美一区二区三区| 特黄特黄一级片| 欧美午夜一区二区福利视频| 国产精品99久久久久久久| 成人黄色动漫| 欧美调教网站| 亚洲国产精品悠悠久久琪琪| 五月婷婷激情网| 久久亚洲综合色| 欧美精品成人网| 欧美激情电影| 99国产高清| 日本在线播放一二三区| 亚洲欧美日韩精品| 中文字幕永久在线视频| 亚洲天堂久久久久久久| 蜜桃视频无码区在线观看| 一区福利视频| 欧美aaaaa喷水| 成人深夜福利| 欧美成人免费大片| 天天干,夜夜操| 欧美在线观看18| www.超碰在线观看| 成人精品gif动图一区| 免费日韩视频在线观看| 久久精品国产68国产精品亚洲| 91在线视频导航| 国产亚av手机在线观看| 亚洲片在线资源| 国产免费一区二区三区最新不卡| 午夜精品久久久久久久久| 非洲一级黄色片| 国产美女娇喘av呻吟久久| 亚洲人成无码网站久久99热国产| 国产欧美日韩一区二区三区四区| 亚洲在线第一页| 黄视频网站在线观看| 色av吧综合网| 无码国产伦一区二区三区视频| 欧美丝袜丝交足nylons图片| 久久亚洲成人av| 欧美激情一区二区三区| zjzjzjzjzj亚洲女人| 色呦呦在线播放| 久久综合九色综合欧美就去吻| 成年人在线观看视频免费| 欧美三级网页| 色婷婷精品国产一区二区三区| 97久久综合区小说区图片区| 国产精品第2页| 97在线视频免费观看完整版| 久久久999国产精品| 精品影院一区| 亚洲第一av网站| 国产免费不卡av| 色狠狠综合天天综合综合| 欧美精品一级片| 国产精品伦一区二区三级视频| 亚洲av成人片色在线观看高潮| 精品系列免费在线观看| 凹凸日日摸日日碰夜夜爽1| 国内精品福利| 男女啪啪的视频| 日韩欧美大片| 欧美日韩一区二区三区在线视频| 成人自拍在线| 91沈先生在线观看| 美女色狠狠久久| 欧美整片在线观看| 国产丝袜在线观看视频| 美女av一区二区| 日本视频在线免费观看| 国产亚洲在线播放| 嫩草研究院在线| 亚洲成人精品av| 午夜精品久久久久久久爽| 欧美一区二区三区日韩| 夜夜狠狠擅视频| 欧美日韩一区高清| 无码一区二区三区| 欧洲在线/亚洲| 男人天堂av在线播放| 日韩欧美黄色动漫| 国产99久久久| 欧美午夜无遮挡| 国产精品100| 天天影视色香欲综合网老头| 日韩av在线电影| 夜夜夜精品看看| 国产一级一级片| 亚洲综合色网站| 精品无码一区二区三区电影桃花| 亚洲一区二区欧美| 国产午夜小视频| 精品久久久久久中文字幕一区奶水 | 欧美一区二区公司| 欧美精品一区二区三区一线天视频 | 久久精品99国产国产精| 可以看污的网站| 日本网站在线免费观看| 国产精品视频线看| 三级黄色片在线观看| 亚洲视频精选在线| 男女羞羞免费视频| 亚洲一区二区四区蜜桃| 国产成人精品a视频一区| 欧美性jizz18性欧美| 精产国品一区二区| 欧美日韩黄色一区二区| 国产露脸国语对白在线| 精品免费国产二区三区| 婷婷av一区二区三区| 亚洲美女av在线播放| aaa日本高清在线播放免费观看| 日韩中文理论片| 麻豆蜜桃在线| 日本一区二区三区在线播放 | 国产一区二区三区四区老人| 九九爱精品视频| 久久午夜精品| 性鲍视频在线观看| 成人av网站在线观看| 亚洲精品色午夜无码专区日韩| 国产精品区一区二区三区| 成人免费视频网站入口::| 五月激情六月综合| 伊人久久亚洲综合| 亚洲第一av在线| 91这里只有精品| 久久久久久网站| 向日葵视频成人app网址| 亚洲va码欧洲m码| 性欧美xxxx免费岛国不卡电影| 亚洲mv在线看| 亚洲高清资源| 性生交免费视频| 国产超碰在线一区| 九九热免费在线| 亚洲成av人片在www色猫咪| 亚洲图片小说视频| 亚洲精品国产精品国自产观看浪潮| 成人在线观看免费| 97人人做人人爱| 国产成人视屏| 日韩在线电影一区| 国产精品地址| 色婷婷一区二区三区av免费看| 91一区二区三区在线播放| 日本一级特级毛片视频| 一本大道久久a久久综合| 亚洲AV无码乱码国产精品牛牛| 一色桃子一区二区| sm捆绑调教国产免费网站在线观看| 国产美女久久久| 婷婷成人综合| a级黄色小视频| 黄色资源网久久资源365| 久久精品老司机| 亚洲国产欧美在线| 国产精品亚洲lv粉色| 亚洲视频在线观看视频| www.综合| http;//www.99re视频| 久久视频国产| 欧美精品久久久久久久久久| 波多野结衣高清视频| 欧美不卡一二三| 成人在线播放免费观看| 国产精品男女猛烈高潮激情| 久久av电影| 国产亚洲欧美在线视频| 成人动漫视频在线| 青娱乐国产在线| 日韩免费一区二区| 超碰公开在线| 91日本在线观看| 99re久久最新地址获取| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 免费黄色在线播放| 中文字幕一区二区三区不卡| 中文字幕在线观看1| 一区二区三区回区在观看免费视频| 亚洲精品国产精品国产| 久久riav| 噜噜爱69成人精品| 中文字幕人妻一区二区| 欧美性xxxx18| 欧美zzoo| 国产精品1区2区在线观看 | 亚洲欧美另类中文字幕| 亚洲一二三四| 日本免费一区二区三区| 久久久夜夜夜| av网站免费在线看| 欧美亚洲丝袜传媒另类| 成人性生交大片免费看午夜| 国产精品人成电影在线观看| 色999日韩| 加勒比av中文字幕| 亚洲精品视频一区二区| 草草视频在线播放| 国内精品久久久久| 校园春色另类视频| 亚洲天堂网一区| 最新日韩av在线| www.久久色| 2018日韩中文字幕| 欧洲杯半决赛直播| 日本中文字幕二区| 亚洲一卡二卡三卡四卡五卡| 五月婷婷久久久| 国产国产精品人在线视| 欧美va久久久噜噜噜久久| 黑人巨大猛交丰满少妇| 亚洲va韩国va欧美va| 国产视频二区在线观看| 国产欧美 在线欧美| 国产一区日韩一区| 瑟瑟视频在线观看| 欧美久久久影院| 波多野结衣中文字幕久久| 欧美午夜精品久久久久久蜜| 久久成人av少妇免费| 久久精品视频久久| 亚洲视频在线视频| 国产精品久久久久久久久久辛辛| 成年女人18级毛片毛片免费 | 日韩高清专区| 国产在线视频一区二区三区| 日韩 欧美 亚洲| 一区二区亚洲欧洲国产日韩| 永久免费精品视频| 成人在线观看a| 亚洲精品国产精品乱码不99| 国产 中文 字幕 日韩 在线| 亚洲人人精品| 久久国产柳州莫菁门| 日韩一区二区三区四区五区六区| 亚洲一级少妇| 路边理发店露脸熟妇泻火| 91女人视频在线观看| 97人妻精品一区二区三区| 97免费视频在线播放| 天天综合网91| 中文字幕国产综合| 欧美大片在线观看一区二区| 黑人一区二区三区| 久久久999免费视频| 亚洲激情在线播放| fc2在线中文字幕|