精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产成人亚洲精品自产在线| 中文字幕精品一区二区三区在线| 日韩永久免费视频| 久久狠狠婷婷| 色偷偷88888欧美精品久久久| 想看黄色一级片| 嗯啊主人调教在线播放视频 | 一本大道av伊人久久综合| 青青影院一区二区三区四区| 国产精品久久久久久免费| 在线成人黄色| 色系列之999| 日本护士做爰视频| 伊人久久大香| 色综合久久中文字幕综合网| 免费看污污视频| 毛片在线能看| 成人午夜视频在线观看| 国产精品视频一| 亚洲免费激情视频| 亚洲v在线看| 亚洲欧洲视频在线| 又黄又色的网站| 青娱乐极品盛宴一区二区| 午夜欧美大尺度福利影院在线看| 一区不卡视频| 免费一级在线观看| 国产成人综合自拍| 国产美女精品视频| 秋霞精品一区二区三区| 在线不卡欧美| 久热99视频在线观看| 久久国产柳州莫菁门| 精品午夜电影| 欧美mv和日韩mv国产网站| 污污视频网站在线| 久久91视频| 在线观看日韩精品| 久久久久久久中文| 美女91在线| 亚洲女同一区二区| 日产国产精品精品a∨| 亚洲av成人无码久久精品老人 | 亚洲av综合一区二区| 国产精品视频3p| 精品精品欲导航| 亚洲天堂小视频| 国产精品国产三级在线观看| 欧美日韩一区二区在线观看视频 | 亚洲美女性视频| 亚洲国产精品无码久久久久高潮 | 亚洲欧美日韩第一区| 日韩av无码一区二区三区不卡| 9l视频自拍九色9l视频成人| 欧美zozozo| youjizz.com日本| 亚洲视频一起| 精品国产麻豆免费人成网站| 免费啪视频在线观看| 中文字幕日韩在线| 亚洲白虎美女被爆操| 好男人香蕉影院| 台湾色综合娱乐中文网| 亚洲欧美视频在线| 天天干天天操天天拍| 99久久夜色精品国产亚洲96| 久久成人免费视频| 国产精品成人网站| 国产精品亚洲欧美| 国产精品久久久久久亚洲影视| 69xxxx国产| 精品亚洲国内自在自线福利| 2014亚洲精品| 日韩一卡二卡在线| 国产午夜精品久久久久久久 | 免费黄色网址在线观看| 亚洲婷婷综合久久一本伊一区| 99re99热| 9999精品成人免费毛片在线看| 欧美日韩在线视频首页| 欧美伦理片在线看| 国产激情综合| 亚洲国产日韩欧美综合久久| 特级西西www444人体聚色| 久久中文亚洲字幕| 国内精品久久久久久影视8| 99久久精品国产亚洲| 日本视频中文字幕一区二区三区| 成人xxxx视频| 亚洲aⅴ在线观看| 中文字幕 久热精品 视频在线 | 美国黑人一级大黄| 欧美一区高清| 日韩av黄色在线观看| 91精品视频免费在线观看| 成人午夜视频在线观看| 亚洲高清乱码| 啊啊啊久久久| 欧美人狂配大交3d怪物一区 | 亚洲国产精品成人综合色在线婷婷 | 日本高清视频免费看| 欧美经典三级视频一区二区三区| 天堂а√在线中文在线| 亚洲风情在线资源| 91精品麻豆日日躁夜夜躁| 黄色片视频免费观看| 天天影视综合| 5278欧美一区二区三区| 国产精品九九九九| 久久久久88色偷偷免费| 六月婷婷激情综合| 成人av色网站| 亚洲另类图片色| 九九热精品在线观看| 日韩电影免费在线观看网站| 国产精品一国产精品最新章节| 香蕉视频在线免费看| 日韩欧美亚洲成人| 日本不卡视频一区| 亚洲精品国产成人影院| 国产精品福利片| 污污网站免费在线观看| 亚洲免费av网站| 亚洲欧美激情网| 同性恋视频一区| 久久免费视频观看| av加勒比在线| 自拍偷拍国产精品| 美女少妇一区二区| 精品国产91| 日本国产欧美一区二区三区| 欧美一级淫片免费视频魅影视频| 亚洲柠檬福利资源导航| 国产精品自拍视频在线| jizzjizz欧美69巨大| 国产精品99久久久久久人| 无码精品人妻一区二区| 亚洲电影在线播放| 国产伦理在线观看| 欧美日韩一视频区二区| 亚洲一区国产精品| gogo在线观看| 制服丝袜激情欧洲亚洲| 中国一级片在线观看| 精品中文字幕一区二区小辣椒| 亚洲成人一区二区三区| 亚洲成人av观看| 一区二区三区 在线观看视| 激情五月婷婷网| 国产欧美1区2区3区| 日韩福利视频在线| 欧美日韩高清| 国产免费一区二区三区在线能观看 | 国产成人一二三区| 2020最新国产精品| 国模精品系列视频| 午夜黄色小视频| 欧美日韩国产一区中文午夜| 黄色短视频在线观看| 久久福利影视| 日韩欧美精品久久| 欧美xxxx性| 美女精品视频一区| 亚洲第一精品网站| 欧美日韩国产一区二区| 91网站免费视频| 蜜桃一区二区三区在线| 色撸撸在线观看| 天堂va欧美ⅴa亚洲va一国产| 久久久久久av| 欧美精品a∨在线观看不卡| 在线观看日韩精品| 美女福利视频在线观看| 99久久婷婷国产综合精品| 国产精品涩涩涩视频网站| 日韩午夜电影网| 97人人模人人爽视频一区二区| 四虎影视国产在线视频| 日韩精品在线影院| 中文字幕码精品视频网站| 亚洲色图第一区| 先锋资源av在线| 日本不卡视频一二三区| 国产91porn| 亚洲免费福利一区| 国产人妖伪娘一区91| 欧美高清另类hdvideosexjaⅴ| 亚洲激情在线观看视频免费| 中文字幕乱码中文字幕| 亚洲国产中文字幕在线视频综合 | 亚洲av无码乱码国产精品久久| 欧美日韩色婷婷| 日日操免费视频| 成人免费av在线| 91高清国产视频| 中文在线一区| 国产四区在线观看| 亚洲va久久| 亚洲aa在线观看| 欧美特黄aaaaaaaa大片| 欧美成人性色生活仑片| 噜噜噜在线观看播放视频| 日韩视频在线永久播放| 国产字幕在线观看| 亚洲国产精品久久艾草纯爱| 黄色一级片一级片| 972aa.com艺术欧美| 精品国产鲁一鲁一区二区三区| 亚洲一区二区毛片| 日韩精品久久一区二区| 狠狠做六月爱婷婷综合aⅴ| 国产精品乱码视频| 深夜福利亚洲| 国产99视频在线观看| 欧美韩日亚洲| 久久国产精品影视| 超碰在线国产| 亚洲欧美日韩国产中文| 人妻中文字幕一区| 日韩欧美在线观看一区二区三区| 中文字幕免费视频观看| 欧美日韩国产一区二区三区| 久久久一二三区| 最新国产精品久久精品| 四虎成人免费影院| 久久中文娱乐网| 无码人妻精品一区二区三区温州| 国产成人aaaa| 中文字幕55页| 国产综合一区二区| 在线观看日本一区二区| 葵司免费一区二区三区四区五区| 欧美二区在线视频| 中文在线一区| 国产乱子伦农村叉叉叉| 亚洲国产日本| 成熟丰满熟妇高潮xxxxx视频| 欧美激情日韩| 毛片在线视频观看| 午夜电影亚洲| 国产一二三区在线播放| 欧美日韩综合| 老司机激情视频| 欧美伊人影院| 男人的天堂视频在线| 午夜日韩在线| 国产乱子伦精品视频| 欧美日本三区| 韩国无码av片在线观看网站| 欧美在线免费一级片| 久久免费一级片| 欧美日韩1080p| 欧美黄色免费网址| 亚洲高清网站| 国产亚洲综合视频| 石原莉奈一区二区三区在线观看| 国产v亚洲v天堂无码久久久| 日本欧美久久久久免费播放网| 日韩精品你懂的| 韩国毛片一区二区三区| 一个人看的视频www| 成人免费视频播放| 中文字幕5566| 国产精品久久久久婷婷| 91人妻一区二区三区蜜臀| 亚洲综合视频网| 日韩欧美三级视频| 在线亚洲精品福利网址导航| 97超碰中文字幕| 日韩一区二区三区精品视频 | 99re这里只有精品视频首页| 污污内射在线观看一区二区少妇| 久久久精品tv| 午夜影院黄色片| 亚洲男人的天堂av| 久久夜色精品亚洲| 欧美色精品在线视频| 国产成人麻豆精品午夜在线| 亚洲激情第一页| 中文字幕在线观看日本| 欧美国产精品va在线观看| 日韩伦理在线| 成人xxxx视频| 欧美交a欧美精品喷水| 色中色综合成人| 国内精品久久久久久久影视蜜臀| 免费观看成人网| 国产一区二区三区四区在线观看| 波多野结衣加勒比| 中文字幕一区视频| 亚洲精品1区2区3区| 欧美日韩电影一区| 亚洲 另类 春色 国产| 日韩在线观看高清| 深夜在线视频| 亚洲一区二区三区xxx视频| 色老板在线视频一区二区| 热这里只有精品| 久久综合五月| 久久精品aⅴ无码中文字字幕重口| 国产亚洲欧美一区在线观看| 久久久久成人网站| 欧美亚洲高清一区二区三区不卡| 欧美一区二区黄片| xxxx欧美18另类的高清| 成人影院入口| 高清av免费一区中文字幕| 欧洲杯半决赛直播| 玩弄中年熟妇正在播放| 国产最新精品免费| 日韩黄色中文字幕| 欧美午夜久久久| 噜噜噜久久,亚洲精品国产品| 日日摸夜夜添一区| 国模冰冰炮一区二区| 99热国产免费| 亚洲情侣在线| 天天综合网日韩| 久久久www成人免费无遮挡大片| 久久久综合久久| 欧美高清视频不卡网| 深夜福利视频在线免费观看| 九色精品免费永久在线| 欧美视频免费看| 欧美妇女性影城| 波霸ol色综合久久| 无套内谢大学处破女www小说| 91看片淫黄大片一级| 深夜福利影院在线观看| 欧美精品v国产精品v日韩精品| 成年人视频在线免费观看| 情事1991在线| 亚洲va久久久噜噜噜久久| 国产午夜福利在线播放| 成人午夜av影视| 久久久久人妻一区精品色欧美| 91麻豆精品国产| 日韩av片免费在线观看| 极品视频在线| 国产精品香蕉视屏| 欧美三级网页| 无码人妻丰满熟妇区毛片蜜桃精品| 最新国产成人在线观看| 国产又粗又猛又爽又黄的| 日韩中文字幕视频| 视频欧美精品| 青青草影院在线观看| 国内精品久久久久影院一蜜桃| 特黄一区二区三区| 欧美精品丝袜久久久中文字幕| 日本欧美在线视频免费观看| 91精品国产综合久久久久久蜜臀| 欧美xxav| 午夜福利123| 亚洲午夜视频在线观看| 日韩在线观看视频网站| 欧美有码在线观看视频| 国产精品日韩精品中文字幕| 亚洲国产精品三区| 中文字幕一区二区三区四区不卡| 亚洲午夜精品久久久| 欧美xxxx做受欧美| 激情小说亚洲色图| 国产l精品国产亚洲区久久| 久久人人超碰精品| 中文字幕av无码一区二区三区| 久久国产一区二区三区| 美女久久精品| 女人天堂av手机在线| 国产午夜亚洲精品不卡| 国产欧美熟妇另类久久久| 欧美国产日韩精品| 午夜a一级毛片亚洲欧洲| 国产高潮免费视频| 亚洲激情图片qvod| 亚洲人妻一区二区| 国产欧美亚洲视频| 精品成人久久| 国产一级久久久久毛片精品| 91麻豆精品国产91久久久久久久久| 女同视频在线观看| 欧美一区二区在线| 国产在线一区二区综合免费视频| 国产性一乱一性一伧一色| 亚洲欧美日韩高清| 日韩免费精品| 女性隐私黄www网站视频| 综合久久给合久久狠狠狠97色| 无码国产色欲xxxx视频| 国产区精品视频| av不卡在线看| 国产一区二区精彩视频| 亚洲国产精品久久久| 精品福利在线| 黄色片网址在线观看| 中文字幕人成不卡一区| 五月婷婷六月丁香综合| 成人在线免费观看视视频| 在线视频精品| 成人在线观看免费完整|