官术网_书友最值得收藏!

1.4.3 開發(fā)者面臨的挑戰(zhàn)

龐大的開發(fā)者群體是軟件生態(tài)繁榮的基礎(chǔ),操作系統(tǒng)的設(shè)計必須了解開發(fā)者面臨的挑戰(zhàn),并能夠在系統(tǒng)層面上重點幫助開發(fā)者應(yīng)對挑戰(zhàn)。

相關(guān)調(diào)研數(shù)據(jù)顯示,在移動終端開發(fā)者中,63%的開發(fā)者反饋他們開發(fā)一個應(yīng)用需要適配多個操作系統(tǒng)。雖然當(dāng)前有多款支持跨平臺的開發(fā)框架,如Web開發(fā)框架和Flutter開發(fā)框架等,但對于一些較復(fù)雜的應(yīng)用程序,開發(fā)者仍需要針對不同的操作系統(tǒng)分別進(jìn)行開發(fā),這是開發(fā)者面臨的最大挑戰(zhàn)。不同的操作系統(tǒng)對外提供的平臺API能力范圍也不盡相同,通過跨平臺的開發(fā)框架很難解決由操作系統(tǒng)本身差異導(dǎo)致的各種深層次問題。在當(dāng)前IoT領(lǐng)域,操作系統(tǒng)種類繁多,百花齊放,給設(shè)備開發(fā)者帶來便利,同時也給應(yīng)用開發(fā)者帶來了適配更多操作系統(tǒng)的繁重工作量。

排在第二位的挑戰(zhàn)是開發(fā)者必須面對類型眾多的智能設(shè)備。即使這些設(shè)備使用同一個操作系統(tǒng),應(yīng)用開發(fā)者也不得不針對不同類型的設(shè)備開發(fā)不同的應(yīng)用,以提供更好的業(yè)務(wù)體驗。譬如,不同設(shè)備屏幕大小不同、分辨率也不同,如何為這些設(shè)備設(shè)計更好的UI(User Interface,用戶界面)?一種常見的做法是為不同的設(shè)備設(shè)計不同的布局和資源,開發(fā)者會將大量精力耗費在UI的設(shè)計和調(diào)整上。另外,這些設(shè)備能夠提供的交互方式也千差萬別,有的提供觸控交互,有的提供鍵盤和鼠標(biāo)交互,有的提供遙控器交互,開發(fā)者需要針對這些不同的交互方式開發(fā)不同的業(yè)務(wù)處理邏輯。

調(diào)研數(shù)據(jù)同時顯示,大多數(shù)應(yīng)用使用了多語言的混合開發(fā)模式。這需要開發(fā)者掌握多門開發(fā)語言,對大多數(shù)開發(fā)者而言,這是一項較高的要求。熟練掌握一門開發(fā)語言需要花費大量的學(xué)習(xí)成本,開發(fā)者不但要熟悉開發(fā)語言的語法知識,還要通過不斷實踐來掌握該語言常用的開發(fā)模式。另外,開發(fā)者還需要能夠熟練使用該語言配套的工具鏈,對常用的第三方庫也要有足夠的了解。還有一點需要指出,開發(fā)語言版本的升級迭代也給開發(fā)者帶來了更多的學(xué)習(xí)成本。

另外,適配不同的操作系統(tǒng)、適配不同的設(shè)備、使用多種語言開發(fā),必然導(dǎo)致代碼庫的維護(hù)更加復(fù)雜。許多開發(fā)者將大量精力投入架構(gòu)優(yōu)化,希望通過一個架構(gòu)支持不同的操作系統(tǒng)和不同的設(shè)備。一種常見的思路是提取更多的公共組件,這些公共組件通常進(jìn)行了跨平臺的設(shè)計,對于無法跨平臺的組件,采用分別實現(xiàn)的方式。多組件不僅帶來了維護(hù)成本的提高,也帶來了功能的不一致性和接口兼容性等方面的技術(shù)問題。

主站蜘蛛池模板: 连州市| 宜州市| 宁都县| 桑植县| 普陀区| 石林| 龙州县| 南涧| 邯郸市| 牡丹江市| 遵义县| 和田市| 明光市| 尼玛县| 苏尼特左旗| 衡阳市| 哈巴河县| 宁阳县| 读书| 桐庐县| 耒阳市| 周口市| 上高县| 青州市| 青海省| 元江| 桃园县| 乌拉特前旗| 石台县| 肇东市| 兰溪市| 双江| 黑水县| 苍梧县| 新野县| 邢台市| 邵阳市| 北京市| 武定县| 屯门区| 长乐市|