自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用開(kāi)源軟件的五個(gè)優(yōu)秀實(shí)踐

開(kāi)源
開(kāi)源軟件無(wú)處不在,可以幫助企業(yè)加速開(kāi)發(fā)和提高軟件質(zhì)量,但是實(shí)現(xiàn)過(guò)程可能具有挑戰(zhàn)性。以下是嵌入式開(kāi)發(fā)人員成功利用開(kāi)源軟件的五個(gè)最佳實(shí)踐。

優(yōu)秀實(shí)踐 #1 – 使用抽象層移除依賴項(xiàng)

審查代碼庫(kù)的常見(jiàn)問(wèn)題之一是開(kāi)發(fā)人員將他們的應(yīng)用程序代碼與他們使用的軟件庫(kù)緊密結(jié)合在一起。例如,如果開(kāi)發(fā)人員正在使用 FreeRTOS,他們的應(yīng)用程序代碼會(huì)調(diào)用特定于 FreeRTOS API 的方式,如果開(kāi)發(fā)人員決定更改他們的 RTOS,他們將不得不重寫大量代碼來(lái)替換所有這些 RTOS來(lái)電。你可能會(huì)認(rèn)為更改庫(kù)很少見(jiàn),但你會(huì)驚訝于團(tuán)隊(duì)經(jīng)常使用一個(gè)操作系統(tǒng)、庫(kù)或組件開(kāi)始一條路徑,只是在他們決定需要進(jìn)行更改時(shí)才不得不返回并重寫代碼。

團(tuán)隊(duì)在選擇開(kāi)源組件甚至商業(yè)組件時(shí)應(yīng)該做的第一件事是創(chuàng)建一個(gè)抽象層來(lái)與該組件進(jìn)行交互。以 RTOS 為例,團(tuán)隊(duì)將使用 OS 抽象層 OSAL,這將允許他們使用獨(dú)立于 OS 的 API 編寫應(yīng)用程序代碼。如果操作系統(tǒng)發(fā)生變化,應(yīng)用程序并不關(guān)心,因?yàn)樗谠L問(wèn)一個(gè)抽象層,而軟件更改可能需要幾分鐘而不是幾天。

優(yōu)秀實(shí)踐 #2 – 盡可能利用集成軟件

大多數(shù)開(kāi)源軟件都是在自己的沙箱中編寫的,沒(méi)有過(guò)多考慮可能需要與之交互的其他組件。組件通常使用不同的編碼標(biāo)準(zhǔn)、風(fēng)格、測(cè)試程度等來(lái)編寫。如果嵌入式開(kāi)發(fā)人員開(kāi)始將多個(gè)并非旨在相互協(xié)作的開(kāi)源組件組合在一起時(shí),可能會(huì)導(dǎo)致長(zhǎng)時(shí)間的調(diào)試會(huì)話和錯(cuò)過(guò)最后期限,盡可能選擇已經(jīng)集成和測(cè)試的組件。

一個(gè)很好的例子是使用 Amazon FreeRTOS 連接到 AWS。FreeRTOS 已經(jīng)與連接到云所需的其他連接庫(kù)進(jìn)行了集成和測(cè)試,因此不要選擇其他庫(kù),除非它也已經(jīng)過(guò)測(cè)試和集成。另一個(gè)例子是許多微控制器制造商生產(chǎn)的代碼生成器工具。這些工具通常已經(jīng)集成了驅(qū)動(dòng)軟件組件、RTOS、文件系統(tǒng)、USB 和其他幾個(gè)組件。它們已經(jīng)被證明可以一起工作,因此如果可以利用它們,它將節(jié)省時(shí)間和金錢。

優(yōu)秀實(shí)踐#3——執(zhí)行軟件審計(jì)和質(zhì)量分析

有很多很棒的開(kāi)源軟件和很多不太好的軟件,在開(kāi)發(fā)人員決定在他們的項(xiàng)目中使用開(kāi)源組件之前,他們需要確保他們花時(shí)間對(duì)軟件進(jìn)行盡職調(diào)查,這涉及花時(shí)間審核組件并執(zhí)行質(zhì)量分析,質(zhì)量往往在旁觀者的眼中。

至少,在開(kāi)始使用開(kāi)源組件時(shí),應(yīng)審查源代碼:

  • 使用圈復(fù)雜度測(cè)量的復(fù)雜度
  • 在功能上確保它滿足業(yè)務(wù)需求和目標(biāo)
  • 遵守最佳實(shí)踐和編碼標(biāo)準(zhǔn)(根據(jù)需要)
  • 處理錯(cuò)誤的能力
  • 可測(cè)試性

至少,這將幫助嵌入式開(kāi)發(fā)人員了解他們正在使用什么,以及潛在的問(wèn)題和陷阱。

優(yōu)秀實(shí)踐#4 – 讓律師審查許可證

開(kāi)源軟件許可可能難以駕馭,有十幾種不同的許可方案,它們對(duì)用戶提出了不同的要求。在某些情況下,開(kāi)發(fā)人員可以按照他們認(rèn)為合適的方式使用開(kāi)源軟件。在其他情況下,可以使用該軟件,但任何其他軟件也必須是開(kāi)源的,這意味著它可能需要發(fā)布產(chǎn)品的秘方,這可能會(huì)損害他們的競(jìng)爭(zhēng)市場(chǎng)優(yōu)勢(shì)。

盡管近年來(lái)這些許可證變得更加易于理解,但產(chǎn)品開(kāi)發(fā)人員正在開(kāi)展業(yè)務(wù),因此必須聘請(qǐng)律師來(lái)審查軟件許可證,以確保一切正常。會(huì)有額外的費(fèi)用,但它是經(jīng)商成本的一部分,如果發(fā)生錯(cuò)誤,從長(zhǎng)遠(yuǎn)來(lái)看可以節(jié)省資金。

優(yōu)秀實(shí)踐 #5 – 從活躍的社區(qū)中選擇軟件

快速進(jìn)行網(wǎng)絡(luò)搜索或仔細(xì)閱讀 github 以找到解決問(wèn)題的軟件組件總是很誘人。嵌入式開(kāi)發(fā)人員在選擇開(kāi)源組件時(shí),確保該組件具有活躍的社區(qū)非常重要。

例如,使用 FreeRTOS 的開(kāi)發(fā)人員知道他們可以上論壇、提出問(wèn)題,并且通常會(huì)得到快速響應(yīng)。新版本會(huì)定期發(fā)布,并且軟件始終會(huì)隨著新功能的添加而不斷改進(jìn)。選擇具有不活躍社區(qū)的組件可能會(huì)導(dǎo)致開(kāi)發(fā)人員獨(dú)自一人,被迫自己找出問(wèn)題,或者更糟糕的是,不得不維護(hù)該組件。

結(jié)論

正確利用開(kāi)源軟件可以極大地使開(kāi)發(fā)團(tuán)隊(duì)受益。然而,為了取得成功,開(kāi)發(fā)人員需要確保他們明智地選擇他們的開(kāi)源組件,這包括抽象出組件以確保其應(yīng)用程序保持靈活和可維護(hù)。它還需要仔細(xì)審查開(kāi)源軟件,假設(shè)它不是 Linux,以確保在提交組件之前滿足質(zhì)量和一般要求。

遵循這些最佳實(shí)踐可以幫助嵌入式開(kāi)發(fā)團(tuán)隊(duì)避免導(dǎo)致產(chǎn)品延遲、架構(gòu)不佳的解決方案、質(zhì)量問(wèn)題以及產(chǎn)品開(kāi)發(fā)過(guò)程中經(jīng)常出現(xiàn)的許多其他問(wèn)題的泥潭。


責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2023-04-20 11:59:03

開(kāi)源PatternFly

2024-06-12 13:57:00

2023-08-10 17:40:33

人工智能

2022-10-10 14:53:00

云安全云計(jì)算云平臺(tái)

2021-06-25 14:50:21

DevSecOps安全 DevOps

2023-07-03 12:09:38

云日志云服務(wù)

2023-10-26 12:10:54

2023-04-14 08:10:59

asyncawait

2023-05-16 15:27:31

2024-01-04 16:21:37

數(shù)字孿生供應(yīng)鏈IT價(jià)值

2024-07-05 13:59:26

2023-10-10 10:57:12

JavaScript代碼優(yōu)化

2022-01-07 08:00:00

Node.js開(kāi)發(fā)Web

2024-06-14 15:18:39

2022-05-13 14:28:03

云原生權(quán)限云原生

2021-05-31 09:48:24

網(wǎng)絡(luò)釣魚(yú)滲透測(cè)試網(wǎng)絡(luò)安全

2022-03-15 13:09:21

零信任零信任網(wǎng)絡(luò)訪問(wèn)

2021-12-04 23:10:02

Java代碼開(kāi)發(fā)

2020-09-10 10:16:09

開(kāi)源代碼安全性漏洞惡意組件

2013-04-22 14:27:39

開(kāi)源系統(tǒng)恢復(fù)軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)