0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享對(duì)OMCI模塊進(jìn)行重構(gòu)時(shí)的實(shí)踐經(jīng)驗(yàn)

工程師鄧生 ? 來(lái)源:博客園 ? 作者:clover_toeic ? 2022-09-15 16:45 ? 次閱讀

本文分享對(duì)該模塊進(jìn)行重構(gòu)時(shí)的實(shí)踐經(jīng)驗(yàn), 具體的重構(gòu)手段可參考《代碼大全2》或《重構(gòu):改善既有代碼的設(shè)計(jì)》,本文不再班門(mén)弄斧,而側(cè)重重構(gòu)時(shí)一些粗淺的“方法論”,旨在提高重構(gòu)效率。

小編未采用重量級(jí)的重構(gòu)工具,僅用到Source Insight的”Smart Rename”功能。也未使用CUnit等單元測(cè)試工具,而是通過(guò)在線調(diào)測(cè)和自動(dòng)化測(cè)試保證代碼的正確性。

一 背景

MDU系列產(chǎn)品從他處接手,OMCI模塊相關(guān)人員含作者在內(nèi)不過(guò)三五人。除新增功能的開(kāi)發(fā)外,大量時(shí)間花費(fèi)在處理遺留故障上。但該模塊代碼龐雜且可讀性差,導(dǎo)致大家僅了解其“大概輪廓”,難以放心地使用和維護(hù)。

此外,忙碌容易使人迷失方向。主要的時(shí)間精力花費(fèi)在故障處理上時(shí),自然無(wú)暇考慮整改代碼,從而陷入四處救火、疲于奔命的尷尬境地。

二 目標(biāo)

重構(gòu)的主要目的在于改善既有代碼的設(shè)計(jì),而不是修改缺陷、新增功能等。

重構(gòu)可以是修改變量名、重新安排目錄這樣簡(jiǎn)單的物理重構(gòu),也可以是抽取子函數(shù)、精簡(jiǎn)冗余設(shè)計(jì)這樣稍許復(fù)雜的邏輯重構(gòu)。但均不改變現(xiàn)有代碼的功能。

重構(gòu)可以將意大利面條式的雜亂代碼整理為千層餅式的整潔代碼。整潔的代碼更加健壯,因其便于建立完善的測(cè)試防護(hù)網(wǎng)。同時(shí),新手老人均可放心地修改。

期望重構(gòu)之后,代碼邏輯一目了然,擴(kuò)展和修改非常方便,出現(xiàn)故障時(shí)能迅速定位和修復(fù)。前人摔跤過(guò)的地方后人不再栽倒,前人思考出的成果后人可直接借用??傊?,高度人性化,極大解放人力和腦力。

最初的想法是,通過(guò)重構(gòu)部分流程和代碼(代碼先行),建立測(cè)試防護(hù)體系,生成階段報(bào)告,展現(xiàn)代碼質(zhì)量(實(shí)例加數(shù)據(jù))和故障收斂曲線。借助這樣的報(bào)告,可望獲得領(lǐng)導(dǎo)層的支持和宣貫,也有利于績(jī)效考核。

三 實(shí)踐

具體實(shí)踐時(shí),作者并未進(jìn)行純粹的“重構(gòu)”,還兼做缺陷修改,并增加自動(dòng)化測(cè)試等輔助功能。原則上,對(duì)既有代碼注重重構(gòu),對(duì)新增代碼注重復(fù)用。

3.1 代碼研讀

OMCI模塊代碼龐雜,分支眾多,上手困難(據(jù)稱(chēng)半年勉強(qiáng)入門(mén),一年才能熟練)。若不能有效掌握現(xiàn)有代碼,后續(xù)難免被迫付出時(shí)間健康而又得不到項(xiàng)目認(rèn)同(事實(shí)上,模塊內(nèi)發(fā)現(xiàn)的遺留故障源源不斷)。反之,若能全面掌握現(xiàn)有代碼,后續(xù)才可能通過(guò)反向工程、系統(tǒng)/代碼恢復(fù)和重構(gòu)等手段,將模塊改造得更易開(kāi)發(fā)和維護(hù),最終解放編碼者自己。

為提高代碼研讀效率,可采用分工閱讀和代碼注釋的方法。

分工閱讀”是指將模塊分為若干塊子功能(如協(xié)議解析、告警、統(tǒng)計(jì)、二層、語(yǔ)音等),組內(nèi)每人負(fù)責(zé)一塊或幾塊,不定期地交流和輪值。

代碼注釋”是指在學(xué)習(xí)代碼過(guò)程中,隨手注釋代碼(大至流程、函數(shù),小至代碼行),功能、意圖、技巧、缺陷、疑問(wèn)等均可(凡經(jīng)過(guò)思考的地方都是可加注釋之處)。其中“疑問(wèn)”既可咨詢(xún)兄弟產(chǎn)品同一模塊的同事再轉(zhuǎn)換為功能或意圖,也可由其他注釋者解答。

這樣做的好處是:避免重復(fù)鉆研;經(jīng)驗(yàn)積累;可供量化。

代碼可取產(chǎn)品最新版本,建立服務(wù)器公共代碼目錄(SVN管理更好)。注釋時(shí)不要覆蓋其他人的注釋即可。

建議注釋統(tǒng)一格式,便于識(shí)別和檢索,形如”//>”。以下示出一個(gè)代碼注釋實(shí)例:

1caseOMCI_ME_ATTRIBUTE_2://Operationalstate
2if(attr.attr.ucOperationState!=0&&attr.attr.ucAdminState!=1)//xywang0618>BUG:shouldbeucOperationState!
3{
4returnOMCI_FUNC_RETURN_OUT_OF_RANGE;
5}
6break;

3.2 可讀性

首先,規(guī)范變量、函數(shù)等命名。具體方法不再贅述。

其次,注釋到位,尤其是全局變量和通用函數(shù)。舉例如下:

1/******************************************************************************
2*函數(shù)名稱(chēng):ByteArray2StrSeq
3*功能說(shuō)明:掩碼字節(jié)數(shù)組字符串化
4該數(shù)組元素為掩碼字節(jié),將其所有值為1的比特位置轉(zhuǎn)換為指定格式的字符串
5*輸入?yún)?shù):pucByteArray:掩碼字節(jié)數(shù)組
6ucByteNum:掩碼字節(jié)數(shù)組待轉(zhuǎn)換的有效字節(jié)數(shù)目
7ucBaseVal:掩碼字符串起始字節(jié)對(duì)應(yīng)的數(shù)值
8 *輸出參數(shù): pStrSeq :掩碼字符串,以','、'-'間隔
9形如0xD7(0b'11010111)--->"0-1,3,5-7"
10*返回值: pStr :pStrSeq的指針備份,可用于strlen等鏈?zhǔn)奖磉_(dá)式
11*用法示例:INT8UaucByteArray[8]={0xD7,0x8F,0xF5,0x73};
12CHARszSeq[64]={0};
13ByteArray2StrSeq(aucByteArray,4,0,szSeq);
14---->"0-1,3,5-8,12-19,21,23,25-27,30-31"
15memset(szSeq,0,sizeof(szSeq));
16ByteArray2StrSeq(aucByteArray,4,1,szSeq);
17---->"1-2,4,6-9,13-20,22,24,26-28,31-32"
18*注意事項(xiàng):因本函數(shù)內(nèi)含strcat,故調(diào)用前應(yīng)按需初始化pStrSeq
19******************************************************************************/
20CHAR*ByteArray2StrSeq(INT8U*pucByteArray,INT8UucByteNum,INT8UucBaseVal,CHAR*pStrSeq);

最后,整改晦澀難懂的代碼。主要有兩種手段:

1) 改寫(xiě)方法

以PON光路檢測(cè)為例,底層接口提供的光功率單位為0.1uW,OMCI協(xié)議Test消息上報(bào)的光功率單位為0.002dBuW,而Ani-G功率屬性單位則為0.002dBmW。

原有代碼轉(zhuǎn)換如下(為突出重點(diǎn)有所改編):

1INT16SwRxPower=GetRxPowerInDot1uW();//接收光功率
2if(wRxPower

可見(jiàn),原實(shí)現(xiàn)中轉(zhuǎn)換關(guān)系非?;逎y懂。其實(shí)借助1dBuW=10*lg(1uW)和1dBuW-1dBmW=30dB兩個(gè)公式,經(jīng)過(guò)簡(jiǎn)單的數(shù)學(xué)推導(dǎo)即可得到更簡(jiǎn)潔易懂的表達(dá)(為突出重點(diǎn)有所改編):

1INT16SwRxPower=GetRxPowerInDot1uW();//接收光功率
2//Test單位0.002dBuW,底層單位0.1uW,轉(zhuǎn)換關(guān)系T=(10*lg(B*0.1))/0.002=5000*(lgB-1)
3wRxPower=(INT16S)(5000*(log10((DOUBLE)wRxPower)-1));
4
5//Ani-G功率屬性單位0.002dBmW,Test結(jié)果單位0.002dBuW
6//轉(zhuǎn)換關(guān)系A(chǔ)(dBmW)*0.002+30=T(dBuW)*0.002,即A=T-15000
7INT16SwAniRxPwr=wRxPower-15000;

注意,原實(shí)現(xiàn)中誤認(rèn)為Ani-G功率屬性與Test結(jié)果的單位相同,新實(shí)現(xiàn)已修正該錯(cuò)誤。

2) 封裝函數(shù)

以實(shí)體屬性的掩碼校驗(yàn)為例,原有代碼如下:

1/*掩碼初校驗(yàn)*/
2if((OMCIMETYPE_SET==vpIn->omci_header.ucmsgtype)
3||(OMCIMETYPE_GET==vpIn->omci_header.ucmsgtype))
4{
5wMask=W(response.omcimsg.auccontent[0],response.omcimsg.auccontent[1]);
6usSupportMask=(1<omci_header.wmeclass,vpIn->omci_header.wmeid,vpIn->omci_header.ucmsgtype,wMask,usSupportMask);
11}
12}

對(duì)usSupportMask賦值及判斷的語(yǔ)句(第6~7行),用于校驗(yàn)掩碼是否越界。為更具可讀性,將其封裝為如下函數(shù):

1/******************************************************************************
2*函數(shù)名稱(chēng):OmciIsMaskOutOfLimit
3*功能說(shuō)明:判斷實(shí)體屬性掩碼是否越界(比特1數(shù)目超過(guò)屬性數(shù)目)
4*輸入?yún)?shù):INT16UwMeMask:實(shí)體掩碼
5*INT8UucAttrNum:屬性數(shù)目
6*輸出參數(shù):NA
7*返回值:BOOL
8******************************************************************************/
9BOOLOmciIsMaskOutOfLimit(INT16UwMeMask,INT8UucAttrNum)
10{
11//wMeMask:mmmmmmmmmmm0m000
12//wInvertMask:00000000000iiiii
13INT8UwInvertMask=(1<

封裝后的函數(shù)名恰當(dāng)?shù)仄鸬健白悦枋觥钡淖饔谩?/p>

3.3 在線調(diào)測(cè)工程

該產(chǎn)品作為嵌入式終端,需要在Linux系統(tǒng)中編譯打包版本,然后將其下載到目標(biāo)單板上運(yùn)行。這種交叉編譯方式對(duì)于單個(gè)模塊的調(diào)試而言,效率無(wú)疑比較低下。

為提高調(diào)測(cè)效率,在Linux服務(wù)器搭建在線調(diào)測(cè)工程。即提取OMCI模塊代碼,稍作改造后直接在服務(wù)器上編譯和運(yùn)行。這樣就可避免每次修改代碼都要重啟單板升級(jí)大版本,調(diào)測(cè)效率極高。

為使模塊可獨(dú)立運(yùn)行,需要編寫(xiě)模擬接口以屏蔽底層調(diào)用,并裁減暫不必要的特性(如線程和通信)等。

3.4 模擬數(shù)據(jù)庫(kù)

OMCI模塊使用某內(nèi)存數(shù)據(jù)庫(kù)來(lái)管理需要持久化的實(shí)體信息,但該數(shù)據(jù)庫(kù)代碼內(nèi)調(diào)用了大量平臺(tái)相關(guān)的接口,不利于實(shí)現(xiàn)模塊的在線調(diào)測(cè)。因此,作者研讀源代碼后編寫(xiě)了一個(gè)模擬數(shù)據(jù)庫(kù)。該庫(kù)仿照模塊使用的幾個(gè)原庫(kù)接口及行為,模擬接口內(nèi)部校驗(yàn)均增加錯(cuò)誤信息打印,以便于排障。

此外,在數(shù)據(jù)庫(kù)接口原語(yǔ)的基礎(chǔ)上二次封裝統(tǒng)一接口,一舉消除模塊內(nèi)數(shù)據(jù)庫(kù)操作代碼的凌亂和重復(fù)。

3.5 自動(dòng)化測(cè)試

沒(méi)有測(cè)試保護(hù)網(wǎng)的重構(gòu),無(wú)異于沒(méi)有血源的外科手術(shù)。

首先,公共接口和函數(shù)均提供有相應(yīng)的測(cè)試函數(shù),兼做示例和用例。如:

1//StartofByteArray2StrSeqTest//
2VOIDByteArray2StrSeqTest(VOID)
3{
4 //ByteArray2StrSeq函數(shù)算法不甚優(yōu)美和嚴(yán)謹(jǐn),應(yīng)多加測(cè)試驗(yàn)證,如有可能盡量?jī)?yōu)化。
5INT8UucTestIndex=1;
6INT8UpucByteArray[]={0xD7,0x8F,0xF5,0x73,0xB7,0xF0,0x00,0xE8,0x2C,0x3B};
7CHARpStrSeq[50]={0};
8
9//TimeConsumed(x86_gcc3.2.3_glibc2.2.5):72us
10memset(pStrSeq,0,sizeof(pStrSeq));
11ByteArray2StrSeq(pucByteArray,4,1,pStrSeq);
12printf("[%s]Result:%s,pStrSeq=%s!
",__FUNCTION__,ucTestIndex++,
13strcmp(pStrSeq,"1-2,4,6-9,13-20,22,24,26-28,31-32")?"ERROR":"OK",pStrSeq);
14
15//TimeConsumed(x86_gcc3.2.3_glibc2.2.5):7us
16memset(pStrSeq,0,sizeof(pStrSeq));
17ByteArray2StrSeq(pucByteArray,4,0,pStrSeq);
18printf("[%s]Result:%s,pStrSeq=%s!!!
",__FUNCTION__,ucTestIndex++,
19strcmp(pStrSeq,"0-1,3,5-8,12-19,21,23,25-27,30-31")?"ERROR":"OK",pStrSeq);
20
21//TimeConsumed(x86_gcc3.2.3_glibc2.2.5):4us
22memset(pStrSeq,0,sizeof(pStrSeq));
23ByteArray2StrSeq(&pucByteArray[4],2,1,pStrSeq);
24printf("[%s]Result:%s,pStrSeq=%s!
",__FUNCTION__,ucTestIndex++,
25strcmp(pStrSeq,"1,3-4,6-12")?"ERROR":"OK",pStrSeq);
26
27//TimeConsumed(x86_gcc3.2.3_glibc2.2.5):4us
28memset(pStrSeq,0,sizeof(pStrSeq));
29ByteArray2StrSeq(&pucByteArray[6],2,1,pStrSeq);
30printf("[%s]Result:%s,pStrSeq=%s!
",__FUNCTION__,ucTestIndex++,
31strcmp(pStrSeq,"9-11,13")?"ERROR":"OK",pStrSeq);
32
33//TimeConsumed(x86_gcc3.2.3_glibc2.2.5):5us
34memset(pStrSeq,0,sizeof(pStrSeq));
35ByteArray2StrSeq(&pucByteArray[8],2,1,pStrSeq);
36printf("[%s]Result:%s,pStrSeq=%s!
",__FUNCTION__,ucTestIndex++,
37strcmp(pStrSeq,"3,5-6,11-13,15-16")?"ERROR":"OK",pStrSeq);
38}
39//EndofByteArray2StrSeqTest//

此外,模塊內(nèi)還增加自動(dòng)化測(cè)試功能(TestSuite),可用來(lái)驗(yàn)證批量或單個(gè)實(shí)體的配置和查詢(xún)操作。批量測(cè)試結(jié)果統(tǒng)計(jì)如下(省略各實(shí)體的具體測(cè)試結(jié)果):

c28ca3e8-2ac9-11ed-ba43-dac502259ad0.jpg

在上述測(cè)試結(jié)果中,F(xiàn)ailed TestCase(s)最為關(guān)鍵,表示失敗的用例數(shù)目。此外,UnCompared TestCase(s)表示未做比較的條目數(shù),如獲取時(shí)間等易變屬性的實(shí)體,無(wú)法預(yù)置恰當(dāng)?shù)钠谕Y(jié)果,因此未做比較。測(cè)試過(guò)程中的打印信息可保存為日志文件,然后在打印日志中搜索Failure關(guān)鍵字,即可獲知哪些配置失敗。

當(dāng)大量修改當(dāng)前代碼時(shí),借助上述自動(dòng)化測(cè)試功能,可迅速獲知修改結(jié)果的影響。在開(kāi)發(fā)新功能時(shí),可先設(shè)計(jì)好測(cè)試用例和期望結(jié)果,然后按照“測(cè)試驅(qū)動(dòng)開(kāi)發(fā)”的模式來(lái)編碼,提高編碼效率和正確率。

3.6 直搗核心

傳統(tǒng)的重構(gòu)步驟是先容易后困難,先外圍后核心。而作者反其道而行之,首先重構(gòu)核心公共的代碼。這樣做的好處是:

1) 便于梳理頭文件包含關(guān)系

在線調(diào)測(cè)工程中最初只保留最為公共的代碼文件(如日志功能),重構(gòu)并調(diào)測(cè)通過(guò)后再逐步添加其他單一功能的目標(biāo)代碼。該過(guò)程中會(huì)按需拆分和/或組合文件,減少頭文件的嵌套和交叉引用。

2) 避免重復(fù)工作甚至返工

公共代碼重構(gòu)后并封裝后,對(duì)較外圍的應(yīng)用代碼重構(gòu)時(shí)會(huì)更容易消除冗余。若先重構(gòu)好外圍代碼,很可能發(fā)現(xiàn)某些邏輯可以統(tǒng)一到公共代碼內(nèi),從而導(dǎo)致大面積返工;而若先著手重構(gòu)公共代碼,則通過(guò)研讀外圍代碼對(duì)其的使用方式,很容易及早甄別這些冗余性。

3) 迭代驗(yàn)證

 在重構(gòu)后的公共代碼基礎(chǔ)上逐步疊加外圍代碼時(shí),也在反復(fù)測(cè)試公共代碼的正確性和易用性。

4) 增強(qiáng)信心

先核心后外圍、逐步疊加驗(yàn)證的過(guò)程可控,可增強(qiáng)大規(guī)模重構(gòu)時(shí)的信心,緩解壓力。反之,若先重構(gòu)好外圍代碼,等觸及核心時(shí)牽一發(fā)而動(dòng)全身,壓力極大。

四 效果

在某產(chǎn)品代碼基礎(chǔ)上,進(jìn)行OMCI模塊DB/LOG/實(shí)體存取/消息處理/性能統(tǒng)計(jì)等重構(gòu)。經(jīng)過(guò)三個(gè)多月的重構(gòu)后,模塊代碼復(fù)雜度大幅下降(某核心源文件平均復(fù)雜度降為原先1/4),代碼顯著精簡(jiǎn)(據(jù)不完全統(tǒng)計(jì)已精簡(jiǎn)萬(wàn)余行),同時(shí)更具可讀性。新增代碼的過(guò)程中,編寫(xiě)大量工具類(lèi)宏和函數(shù),并增加OMCI自動(dòng)化測(cè)試、內(nèi)存檢測(cè)等實(shí)用功能。

通過(guò)LineCount和Source Monitor度量某功能代碼重構(gòu)效果,如下表所示:

c2a812d6-2ac9-11ed-ba43-dac502259ad0.png

注:為便于統(tǒng)計(jì)比較,合并SNdbplat.c與SNdbplatSpecial.c為SNdbplat&Special.c。

此外,重構(gòu)過(guò)程中積累的通用框架、代碼及經(jīng)驗(yàn),可進(jìn)一步應(yīng)用到新的項(xiàng)目中。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    604

    瀏覽量

    28381
  • PON
    PON
    +關(guān)注

    關(guān)注

    1

    文章

    133

    瀏覽量

    44173
  • svn
    svn
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    8833

原文標(biāo)題:我的代碼重構(gòu)經(jīng)驗(yàn)

文章出處:【微信號(hào):技術(shù)讓夢(mèng)想更偉大,微信公眾號(hào):技術(shù)讓夢(mèng)想更偉大】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    全開(kāi)源!ESP32+3D打印遙控賽車(chē) 極速48km/h 成本可控自由改裝

    我們可以深入了解 3D 打印、遙控模型設(shè)計(jì)和電子控制的魅力。它不僅能讓我們擁有一輛獨(dú)一無(wú)二的遙控賽車(chē),更是一次寶貴的學(xué)習(xí)和實(shí)踐經(jīng)驗(yàn)。
    的頭像 發(fā)表于 05-22 11:41 ?1373次閱讀
    全開(kāi)源!ESP32+3D打印遙控賽車(chē) 極速48km/h 成本可控自由改裝

    端子電流循環(huán)壽命試驗(yàn)機(jī)電子系統(tǒng)設(shè)計(jì)與實(shí)踐經(jīng)驗(yàn)

    一、引言 端子電流循環(huán)壽命試驗(yàn)機(jī)是評(píng)估電氣連接器、開(kāi)關(guān)觸點(diǎn)等元件在反復(fù)通斷電流條件下耐久性能的關(guān)鍵設(shè)備。作為電子工程師,我有幸參與了多款此類(lèi)設(shè)備的研發(fā)工作,本文將分享其中的電子系統(tǒng)設(shè)計(jì)經(jīng)驗(yàn)實(shí)踐心得
    的頭像 發(fā)表于 05-15 08:58 ?137次閱讀
    端子電流循環(huán)壽命試驗(yàn)機(jī)電子系統(tǒng)設(shè)計(jì)與<b class='flag-5'>實(shí)踐經(jīng)驗(yàn)</b>

    一種低翹曲扇出重構(gòu)方案

    翹曲(Warpage)是結(jié)構(gòu)固有的缺陷之一。晶圓級(jí)扇出封裝(FOWLP)工藝過(guò)程中,由于硅芯片需通過(guò)環(huán)氧樹(shù)脂(EMC)進(jìn)行模塑重構(gòu)成為新的晶圓,使其新的晶圓變成非均質(zhì)材料,不同材料間的熱膨脹和收縮程度不平衡則非常容易使重構(gòu)晶圓發(fā)
    的頭像 發(fā)表于 05-14 11:02 ?186次閱讀
    一種低翹曲扇出<b class='flag-5'>重構(gòu)</b>方案

    RV1126 實(shí)現(xiàn)人臉檢測(cè)方案

    基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案,充分體現(xiàn)了電子方面的實(shí)踐經(jīng)驗(yàn)和目標(biāo)檢測(cè)技術(shù)。
    的頭像 發(fā)表于 04-14 09:25 ?200次閱讀
    RV1126 實(shí)現(xiàn)人臉檢測(cè)方案

    碳化硅(SiC)功率模塊方案對(duì)工商業(yè)儲(chǔ)能變流器PCS市場(chǎng)格局的重構(gòu)

    碳化硅(SiC)模塊方案(如BMF240R12E2G3)對(duì)工商業(yè)儲(chǔ)能變流器PCS市場(chǎng)格局產(chǎn)生顛覆性的重構(gòu): 2025年, SiC模塊方案(如BMF240R12E2G3) 憑借效率、成本和政策支持
    的頭像 發(fā)表于 04-13 19:42 ?185次閱讀
    碳化硅(SiC)功率<b class='flag-5'>模塊</b>方案對(duì)工商業(yè)儲(chǔ)能變流器PCS市場(chǎng)格局的<b class='flag-5'>重構(gòu)</b>

    安世半導(dǎo)體在全球化發(fā)展中的實(shí)踐經(jīng)驗(yàn)與前瞻思考

    此前,4月4日至6日,第28屆哈佛大學(xué)中國(guó)論壇成功舉辦。聞泰科技半導(dǎo)體業(yè)務(wù)(安世半導(dǎo)體)董事長(zhǎng)兼CEO張學(xué)政受邀出席,并在“智能時(shí)代的變革與未來(lái)”分論壇上發(fā)表精彩觀點(diǎn),與行業(yè)領(lǐng)袖共同探討全球化、技術(shù)迭代與社會(huì)責(zé)任等議題,分享百年半導(dǎo)體公司在全球化發(fā)展中的實(shí)踐經(jīng)驗(yàn)與前瞻思考。
    的頭像 發(fā)表于 04-12 14:52 ?667次閱讀

    電子工程師的電源設(shè)計(jì)經(jīng)驗(yàn)分享

    作為一名電子工程師,電源設(shè)計(jì)一直是我在工作中重點(diǎn)關(guān)注的領(lǐng)域。電源設(shè)計(jì)不僅需要扎實(shí)的理論基礎(chǔ),還需要豐富的實(shí)踐經(jīng)驗(yàn)。以下是我多年工作中總結(jié)的一些經(jīng)驗(yàn): 一、電源設(shè)計(jì)的核心理念 電源設(shè)計(jì)的核心是高效
    的頭像 發(fā)表于 01-21 15:53 ?423次閱讀

    松下CO2焊機(jī)維修維修

    ????????? CO2氣體保護(hù)焊機(jī)的維修是一項(xiàng)既要有理論知識(shí),又要有豐富的實(shí)踐經(jīng)驗(yàn)的綜合性工作。這就要求修理人員既要懂得CO2氣體保護(hù)焊的基本知識(shí),又要了解CO2焊機(jī)的工作原理并掌握焊機(jī)的各種
    發(fā)表于 12-18 14:21 ?0次下載

    央國(guó)企數(shù)字化轉(zhuǎn)型新趨勢(shì):凡泰極客的創(chuàng)新理念與實(shí)踐

    、IT總監(jiān)和數(shù)字化領(lǐng)軍者共襄盛舉。與會(huì)者紛紛帶來(lái)了各自在AI應(yīng)用方面的前沿思考和實(shí)踐經(jīng)驗(yàn)。在此次峰會(huì)上,凡泰極客作為受邀嘉賓,向與會(huì)者展示了其在數(shù)字化轉(zhuǎn)型領(lǐng)域的最
    的頭像 發(fā)表于 11-27 12:57 ?314次閱讀
    央國(guó)企數(shù)字化轉(zhuǎn)型新趨勢(shì):凡泰極客的創(chuàng)新理念與<b class='flag-5'>實(shí)踐</b>

    海格通信亮相2024年能源北斗與時(shí)空智能創(chuàng)新技術(shù)應(yīng)用大會(huì)

    近日,2024能源北斗與時(shí)空智能創(chuàng)新技術(shù)應(yīng)用大會(huì)在廣州召開(kāi),海格通信作為大會(huì)重要支持單位,充分展示了北斗與時(shí)空智能新技術(shù)、新應(yīng)用、新產(chǎn)品,共享實(shí)踐經(jīng)驗(yàn)、啟迪發(fā)展思路。
    的頭像 發(fā)表于 11-09 14:51 ?892次閱讀

    商湯科技大模型產(chǎn)業(yè)化路徑的實(shí)踐經(jīng)驗(yàn)

    “AI 2.0時(shí)代,垂直領(lǐng)域的數(shù)據(jù)會(huì)成為重要的生產(chǎn)資料,并帶來(lái)新的生產(chǎn)力突破。” 商湯科技董事長(zhǎng)兼CEO徐立在“人工智能與數(shù)據(jù)要素產(chǎn)業(yè)生態(tài)大會(huì)”上說(shuō)。
    的頭像 發(fā)表于 09-26 10:11 ?704次閱讀

    TFT適配LVGL實(shí)踐分享

    1前言說(shuō)明本章通過(guò)FRDM-MCXN947開(kāi)發(fā)板與正點(diǎn)原子的TFTLCD進(jìn)行實(shí)踐1.2模塊介紹硬件:FRDM-MCXN947開(kāi)發(fā)板:該開(kāi)發(fā)板具有豐富的接口詳細(xì)可參考NXP官方
    的頭像 發(fā)表于 09-04 08:06 ?2157次閱讀
    TFT適配LVGL<b class='flag-5'>實(shí)踐</b>分享

    飛凌嵌入式旗下教育品牌ElfBoard亮相全國(guó)大學(xué)生嵌入式競(jìng)賽總決賽現(xiàn)場(chǎng)

    ElfBoard作為嵌入式教育市場(chǎng)的新生力量,憑借母公司飛凌嵌入式多年深耕企業(yè)級(jí)嵌入式板卡的經(jīng)驗(yàn)亮相全國(guó)嵌賽總決賽現(xiàn)場(chǎng),希望將企業(yè)的實(shí)踐經(jīng)驗(yàn)與高校的理論研究相結(jié)合,共同推動(dòng)產(chǎn)學(xué)研結(jié)合,加速技術(shù)成果的轉(zhuǎn)化。
    的頭像 發(fā)表于 08-15 09:39 ?994次閱讀
    飛凌嵌入式旗下教育品牌ElfBoard亮相全國(guó)大學(xué)生嵌入式競(jìng)賽總決賽現(xiàn)場(chǎng)

    重構(gòu):改善既有代碼的設(shè)計(jì)」實(shí)戰(zhàn)篇

    代碼層面的整理,它更是一種軟件開(kāi)發(fā)的哲學(xué),強(qiáng)調(diào)持續(xù)改進(jìn)和適應(yīng)變化的重要性。 ? ? 書(shū)中通過(guò)詳細(xì)的案例分析和代碼示例,將理論與實(shí)踐巧妙地融合在一起。我尤其贊賞作者 如何將復(fù)雜的重構(gòu)任務(wù)拆解成一系列的小步驟 ,每一步都
    的頭像 發(fā)表于 08-14 10:42 ?551次閱讀
    「<b class='flag-5'>重構(gòu)</b>:改善既有代碼的設(shè)計(jì)」實(shí)戰(zhàn)篇

    振弦采集儀的工程安全監(jiān)測(cè)實(shí)踐與案例分析

    振弦采集儀的工程安全監(jiān)測(cè)實(shí)踐與案例分析 振弦采集儀是一種常用的工程安全監(jiān)測(cè)儀器,通過(guò)測(cè)量被監(jiān)測(cè)結(jié)構(gòu)的振動(dòng)頻率與振型,可以實(shí)時(shí)監(jiān)測(cè)結(jié)構(gòu)的安全狀況。本文將結(jié)合實(shí)踐經(jīng)驗(yàn)和案例分析,探討振弦采集儀在工程安全
    的頭像 發(fā)表于 07-01 11:01 ?463次閱讀
    振弦采集儀的工程安全監(jiān)測(cè)<b class='flag-5'>實(shí)踐</b>與案例分析

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品