作為一名嵌入式行業(yè)的程序員佳遣,對這十大謊言也是深有感觸淑玫,本人從事汽車電子行業(yè)矢否,主要工作做軟件開發(fā)以及集成測試蛮艰。
? ? 每次在寫代碼的時候怕吴,無論是C代碼還是腳本測試代碼拒垃,注釋總是寫的很少停撞,甚至不寫,除非此處的代碼有特殊的環(huán)境意義悼瓮,才會切中寫一些針對性的注釋戈毒。這種做法其實(shí)是很不好的,我們組長經(jīng)常給我講横堡,代碼一定要寫好注釋埋市,該有的注釋一定不要少,可有可無的也盡量要寫的優(yōu)美一些命贴,養(yǎng)成一個好的習(xí)慣道宅。和組長聊的多了,感覺也越來越深刻胸蛛,就一點(diǎn)污茵,每次一定要強(qiáng)迫自己去寫注釋,久而久之葬项,就慢慢就養(yǎng)成了習(xí)慣泞当。
? ? 針對第一條的,這只是臨時辦法民珍,這一點(diǎn)感觸更加深刻襟士,我的例子就是,在工作中需要開發(fā)一套基于CANoe的集成測試工具嚷量,需要用CAPL進(jìn)行開發(fā)敌蜂,開始的時候,就直接做了津肛,也沒考慮太多的擴(kuò)展性以及后續(xù)的可維護(hù)性,做好后組長問了一下我的設(shè)計(jì)思路汗贫,說完后身坐,組長說出了許多他的建議秸脱,讓我最好重新設(shè)計(jì)一下,我當(dāng)時說這只是臨時方案部蛇,后續(xù)我會慢慢改摊唇,然后后續(xù)我并沒有改,就這樣一直用著涯鲁,也就是在前一個月前吧巷查,自己打開CAPL看了一下,發(fā)現(xiàn)自己就看不下去了抹腿,花了一上午時間岛请,把之前做的不好的地方重構(gòu)了一下,自己心里感覺也舒服多了警绩。所以在寫代碼或者設(shè)計(jì)之初崇败,一定要深思熟慮,千萬不要放希望在后面改肩祥,這樣做出的東西才會優(yōu)秀后室,還是那句話,切記一定在開始做好混狠!哪怕會花費(fèi)你一些時間岸霹,但是前面做好了,后面你會發(fā)現(xiàn)很順溜的将饺!正所謂磨刀不誤砍柴工贡避,說的就是這個道理。
? ? 針對第二條俯逾,估計(jì)很多做開發(fā)的也會遇到贸桶,功能做好后,其實(shí)一般都會有幾個小問題在那里留著桌肴,雖然不是很要緊皇筛,但是終究不是很完美,既做了就一鼓作氣坠七,全做好水醋,正所謂一鼓作氣,再而衰彪置,三而竭拄踪,說的就是這個道理!
? ? 這很簡單拳魁,我?guī)滋炀湍茏龊没掏@種現(xiàn)象更是比比皆是,再簡單的東西,也要全面思考一下姚糊,特別是嵌入式這種對實(shí)時性要求很高的軟件贿衍,一定要在自己的腦海中把狀態(tài)機(jī)跑一遍,做好單元測試救恨,所有的邏輯分支都要跑到贸辈,這樣的軟件才能經(jīng)得住考驗(yàn)。
? ? 開發(fā)還需要十天肠槽,這就要聊聊對開發(fā)周期的評估了擎淤,要做到評估的準(zhǔn)確性,首先要對自己的能力有一個充分的認(rèn)識秸仙,也要對與該軟件相關(guān)人的能力評估嘴拢,一定要避免木桶原理的發(fā)生。當(dāng)然了對工作量也要做一下準(zhǔn)確的評估筋栋,做到實(shí)事求是的評估炊汤。
? ? TODO。弊攘。抢腐。很可能就一直todo了,可能忘記了襟交,也可能需求不明確迈倍,如何避免忘記,最好自己每天做個checklist,把每天要做的事情過一遍捣域,如果是需求不明確啼染,那么一定要找系統(tǒng)工程師以及需求工程師做一個深入的探討,如果不把需求整明白的話焕梅,做出的軟件會南轅北轍的迹鹅!
? ? ? 在我機(jī)器上是好的,這種情況出現(xiàn)的話贞言,先看看兩臺機(jī)器的運(yùn)行環(huán)境有哪里不一致斜棚,如果都一致,那么就需要看看外界因素该窗,比如說是不是電壓有波動弟蚀,哪些軟件版本不一致等等,如果都一致酗失,多半是這條謊言是成立的义钉,呵呵。
? ? ? 這不需要測試规肴,呵呵捶闸,是軟件就會有bug夜畴,不經(jīng)過測試的軟件,誰也不能百分之100的保證沒有問題鉴嗤,這句話斩启,作為一個優(yōu)秀的軟件工程師,一般是不會說出來的醉锅。?
? ? ? 以前就有這個問題,針對這條发绢,可以通過代碼管理工具硬耍,如SVN,來將這個版本和上一個版本進(jìn)行代碼變更點(diǎn)比較边酒,就能很快定位問題经柴。
? ? 第九,改之前墩朦,雖然只有一行代碼坯认,真的要考慮很多狀況,這種情況在我們的項(xiàng)目中就遇到過氓涣,只改了一行代碼牛哺,導(dǎo)致整車功耗大了30倍左右,是因?yàn)檫@行代碼劳吠,導(dǎo)致了低頻芯片不能進(jìn)入睡眠了引润,導(dǎo)致靜態(tài)電流過大,功耗高痒玩,經(jīng)常虧電淳附,后來查了很久才發(fā)現(xiàn)那一行代碼!所以雖然僅僅是一行代碼蠢古,也一定要慎之又慎奴曙!
硬件有問題,不排除這種可能性草讶,但是多數(shù)是軟件的問題洽糟,這一條在互聯(lián)網(wǎng)行業(yè)應(yīng)該會明顯,在嵌入式行業(yè)到涂,硬件的可能性確實(shí)會大一些脊框,不過也不是絕對,在我們的項(xiàng)目種践啄,出現(xiàn)過這種問題浇雹,是芯片級的問題,畢竟少之又少屿讽,所以一旦出現(xiàn)問題昭灵,軟件還是要多查查的吠裆!