c嵌入式軟件開發(fā),現(xiàn)在相比以前方便多了,當(dāng)你要實(shí)現(xiàn)一個項(xiàng)目需求,勤快一點(diǎn)基本上在網(wǎng)絡(luò)上都能找到對應(yīng)的資料,自己拿來修修改改也基本上能夠?qū)崿F(xiàn)大體的功能。
這或許就是開源的力量能夠幫助很多開發(fā)者快速的進(jìn)行現(xiàn)有軟件資源的整合而為之所用,但這些軟件和資源也存在優(yōu)劣,一方面就是有開發(fā)者足夠的能力把握這些軟件,另一方面就是選擇更加靠譜的開源組件來使用。
英文文章中描述了5點(diǎn)關(guān)于嵌入式開源軟件的使用建議,這幾點(diǎn)我相信是大部分嵌入式開發(fā)者都要考慮的,這里分享給大家:
正文(譯文):
開源軟件無處不在,有潛力幫助企業(yè)加快開發(fā)和提高軟件質(zhì)量。但如果不謹(jǐn)慎行事,它們可能是一個挑戰(zhàn)。
下面是五個成功利用開源軟件的最佳實(shí)踐。
1、使用抽象層解決依賴關(guān)系
筆者審閱代碼庫時發(fā)現(xiàn)的一個常見問題是,開發(fā)人員將應(yīng)用程序代碼與使用的軟件庫緊耦合。
例如,如果一個開發(fā)人員正在使用FreeRTOS,那么應(yīng)用程序代碼調(diào)用特定于FreeRTOS API的方法是,如果開發(fā)人員決定更改RTOS,則必須重寫大量代碼來替換所有這些RTOS調(diào)用。
你可能會認(rèn)為更改庫是很少見的,但你會驚訝,經(jīng)常是團(tuán)隊(duì)開始使用某個操作系統(tǒng)、庫或組件后,而當(dāng)他們決定需要進(jìn)行更改時,卻不得不返回并重寫代碼。
當(dāng)團(tuán)隊(duì)選擇一個開源組件,甚至是商業(yè)組件時,他們應(yīng)該做的第一件事就是創(chuàng)建一個與該組件交互的抽象層。以RTOS為例,一個團(tuán)隊(duì)?wèi)?yīng)該使用OS抽象層OSAL(它允許他們使用獨(dú)立于OS的API編寫應(yīng)用程序代碼)。
如果操作系統(tǒng)發(fā)生變化,應(yīng)用程序不會在意,因?yàn)樗谠L問一個抽象層,軟件更改可能只需要幾分鐘而不是幾天。
2、盡可能利用集成軟件
大多數(shù)開源軟件都是在自己的沙盒中編寫的,而沒有考慮到它可能需要與之交互的其他組件。組件通常使用不同的編碼標(biāo)準(zhǔn)、樣式、測試程度等編寫。
當(dāng)你開始將多個設(shè)計為不能相互協(xié)作的開源組件組合在一起時,可能會導(dǎo)致長時間的調(diào)試、頭疼和錯過最后期限。所以,盡可能選擇已經(jīng)集成并測試在一起的組件。
一個很好的例子是使用Amazon FreeRTOS連接AWS。FreeRTOS已經(jīng)與連接到云所需的附加連接庫進(jìn)行了集成和測試,因此不要選擇其他庫,除非它也經(jīng)過測試和集成。另一個例子是許多微控制器制造商生產(chǎn)的代碼生成器工具。
這些工具通常已經(jīng)集成了驅(qū)動程序軟件組件、RTOS、文件系統(tǒng)、USB和其他一些組件。它們已經(jīng)被證明可以協(xié)同工作,可以節(jié)省時間和金錢。
3、軟件審核與質(zhì)量分析
有很多優(yōu)秀的開源軟件,也有很多不太好的軟件。在開發(fā)人員決定在項(xiàng)目中使用開源組件之前,他們需要確保他對軟件進(jìn)行盡職調(diào)查,或者雇傭別人做這件事。這包括花時間審核組件并執(zhí)行質(zhì)量分析。
在開始使用開源組件時,至少應(yīng)檢查源代碼的以下方面:使用圈復(fù)雜度度量的復(fù)雜性、從功能上確保其滿足業(yè)務(wù)需求和目標(biāo)、遵守最佳實(shí)踐和編碼標(biāo)準(zhǔn)(根據(jù)需要)、處理錯誤的能力、可測試性。
這至少可以幫助開發(fā)人員了解他們正在使用什么,以及潛在的問題和陷阱。
4、從活躍設(shè)計中選擇軟件
通過快速的網(wǎng)絡(luò)搜索或?yàn)g覽github來找到解決問題的軟件組件總是很誘人的。在選擇一個開源組件時,確保其有一個活躍的社區(qū)是非常重要的。
這包括,在論壇上提問會得到快速的響應(yīng),新版本會定期發(fā)布,軟件也會隨著新功能的增加而不斷改進(jìn)。
選擇一個不活躍的社區(qū)的組件會導(dǎo)致開發(fā)人員被迫自己解決問題,或者更糟的是,不得不維護(hù)組件。
5、由律師審查許可證
開源軟件許可可能很復(fù)雜。有十幾種不同的許可方案,對用戶提出了不同的要求。
在某些情況下,開發(fā)人員可以使用他們認(rèn)為合適的開源軟件。在其他一些情況下,可以使用該軟件,但任何其他軟件也必須是開源的。
雖然這些許可證在最近幾年變得更加容易理解,但是產(chǎn)品開發(fā)人員正在經(jīng)營一項(xiàng)業(yè)務(wù),因此有必要聘請一名律師來審查軟件許可。
這是一項(xiàng)額外的開支,但這是成本的一部分,從長遠(yuǎn)來看可以節(jié)省開支。
6、最后
適當(dāng)?shù)乩瞄_源軟件可以使開發(fā)團(tuán)隊(duì)受益匪淺。然而,為了成功,開發(fā)人員需要確保明智地選擇開源組件。這包括抽象出組件,以確保其應(yīng)用程序保持靈活性和可維護(hù)性。
還需要仔細(xì)檢查開源軟件,以確保滿足質(zhì)量和一般要求。
遵循這些最佳實(shí)踐可以幫助團(tuán)隊(duì)避免陷入導(dǎo)致產(chǎn)品延遲、解決方案架構(gòu)不良的解決方案、質(zhì)量問題以及產(chǎn)品開發(fā)過程中經(jīng)常出現(xiàn)的許多其他問題的泥潭。
審核編輯:彭菁
-
嵌入式
+關(guān)注
關(guān)注
5124文章
19433瀏覽量
312921 -
開源軟件
+關(guān)注
關(guān)注
0文章
212瀏覽量
16142 -
軟件
+關(guān)注
關(guān)注
69文章
5089瀏覽量
88753 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3316瀏覽量
58518
發(fā)布評論請先 登錄
相關(guān)推薦
變量聲明最佳實(shí)踐?
虛幻引擎的紋理最佳實(shí)踐
利用Mycat實(shí)現(xiàn)MySQL讀寫分離、分庫分表最佳實(shí)踐

五個成功利用開源軟件的最佳實(shí)踐
利用開源軟件成功的五個實(shí)踐
彌合風(fēng)險缺口 筑牢共享安全|2023開放原子全球開源峰會開源安全技術(shù)與實(shí)踐分論壇成功舉辦
安全軟件開發(fā)的最佳實(shí)踐

SAN設(shè)計和最佳實(shí)踐指南

Windows 10遷移的最佳實(shí)踐

活動回顧 艾體寶 開源軟件供應(yīng)鏈安全的最佳實(shí)踐 線下研討會圓滿落幕!

評論