電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 51|回復(fù): 0
收起左側(cè)

這些良好的嵌入式軟件編程習(xí)慣,建議掌握!

[復(fù)制鏈接]

447

主題

447

帖子

492

積分

一級(jí)會(huì)員

Rank: 1

積分
492
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-10-10 17:50:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師  R( D1 y( [3 Q' |. @) p/ A
關(guān)注我,一起變得更加優(yōu)秀!: }; r. w) a6 s
這幾年大環(huán)境不好,很多人都比較浮躁,看了網(wǎng)上的各種“段子”更是覺得搞嵌入式開發(fā)很難,也沒有前途。既然你選擇了嵌入式這條路線,只要你堅(jiān)持走下去,怎么會(huì)沒有前途?當(dāng)然,要搞好嵌入式,除了堅(jiān)持和努力之外,有時(shí)候我們也要學(xué)會(huì)一些方法。  @  s4 g0 N/ u: I/ {! c  j
1看官方文檔3 ~: u. E, {% ?2 f, N5 `2 i' e; X
不要被這幾個(gè)字嚇到,官方文檔其實(shí)都是寶藏。一個(gè)成熟的技術(shù)誕生,可以沒有博客沒有書籍,但一定會(huì)有一個(gè)官方文檔,毋庸置疑,它一定是最準(zhǔn)確、最實(shí)時(shí)的資料。編寫官方文檔的人,也通常就是這些技術(shù)或者軟件的開發(fā)者,他們是對(duì)這些東西最了解的人,所以編寫的文檔不僅質(zhì)量非常高,通常內(nèi)容也都是最新的。
7 B% ?' s% ~6 {$ l1 P0 k" y
  \  i- f5 ]* |3 h+ ?9 @0 G因此,官方文檔遠(yuǎn)比網(wǎng)上的各種博客和論壇等更適合入門學(xué)習(xí)。當(dāng)我們遇到很多問題和技術(shù)細(xì)節(jié)的時(shí)候,認(rèn)真將官方文檔過一遍,你會(huì)發(fā)現(xiàn)很多問題和認(rèn)識(shí)模糊的地方都會(huì)清晰起來。程序員都應(yīng)該掌握通過官方文檔去學(xué)習(xí)一個(gè)技術(shù)的能力,掌握了這項(xiàng)能力,你就具備了學(xué)會(huì)其他一切技術(shù)框架的基礎(chǔ);而且原汁原味的官方文檔,還能鍛煉你的自我學(xué)習(xí)總結(jié)能力。0 F# t4 N1 I- I* v) {5 t1 _" X
2面向搜索引擎編程
, Y# |/ E9 \# o- C* w9 u4 F很多人總以為無論什么都 Google 一下是一件很 low 的行為,但其實(shí),普通程序員+ Google=超級(jí)程序員。用好搜索功能,Google +Stack Overflow + GitHub 能解決你的大部分問題。所以,在問別人問題之前,先自己搜索一下吧。% W9 t9 C7 g' ~! a' t2 ?

0 m4 d- o3 n! c5 q  O2 Z/ I& `* |# t當(dāng)然,超級(jí)程序員可不是會(huì)Google就行的,把 Google 到的東西吸收并運(yùn)用起來,才是真正的能力。不過,無論是看官方文檔也好,還是面向 Google 編程也好,都必須要掌握較好的英文能力。這樣才能更好的閱讀文檔,搜索自己所需要的東西。
$ s* {  l- l! m5 a% b5 G6 D' O3規(guī)范命名
! N/ `, R, O# ]! b5 M6 K& lITWorld 曾經(jīng)發(fā)起過一個(gè)“程序員最頭疼的事情”投票,結(jié)果,近半數(shù)的程序員認(rèn)為命名是最頭疼的事情。
8 w$ j- e4 c% t5 _! {4 e
& e1 w+ U) a3 o$ M有時(shí)候代碼寫嗨了,命名的時(shí)候就開始放飛自我,gousheng、tiedan、xiaonaigou、i、j.....自己是寫嗨了,其他人閱讀起來就懵逼了。所以,不論是內(nèi)部變量還是全局變量,都要形成自己的一種命名規(guī)則,能夠一眼看明白變量的意思;靵y或錯(cuò)誤的命名不僅讓我們對(duì)代碼難以理解,更會(huì)誤導(dǎo)我們的思維;反之,良好的命名,則可以大大提高我們的代碼易讀性,也能大大增強(qiáng)代碼的可維護(hù)性。
; i+ _4 d8 s* k! y- Y4認(rèn)真注釋
4 q4 S( u, U2 C6 Z' s) q& M和命名一樣讓程序員頭疼的還有兩件事:寫注釋頭疼,別人不寫注釋讀著頭疼。之所以要寫注釋,是因?yàn)楫?dāng)你在寫某個(gè)程序的時(shí)候,可能當(dāng)下記得很清楚,這一段是什么機(jī)制、如何實(shí)現(xiàn),但是當(dāng)你寫的程序越來越多,你會(huì)忘記當(dāng)初為什么這樣寫,改動(dòng)和交接也十分麻煩,對(duì)代碼進(jìn)行注釋就可以有效避免這種情況。注釋不僅可以讓人讀懂代碼,甚至能讓讀代碼的人獲取更多信息。
6 V/ U- Z- M% d: X
5 e+ q+ ~1 o  a& _$ J不過,注釋貴精不貴多。要杜絕大姨媽般的“例注”,漫山遍野的碎碎念注釋,實(shí)際就是背景噪音。
0 V& E! s$ j: z" t
5不要重復(fù)造輪子
) b# R6 j7 `# g0 U: L“不要重復(fù)造輪子( Stop Trying to Reinvent the Wheel)”, 可能應(yīng)該是每個(gè)程序員入行被告知的第一條準(zhǔn)則。寫程序?qū)嶋H上是一個(gè)最能“偷懶”的工作:你現(xiàn)在費(fèi)力實(shí)現(xiàn)的每一個(gè)功能,可能早已經(jīng)有極好的解決方法貢獻(xiàn)在開源社區(qū),使用好現(xiàn)有的輪子和各種開源庫,會(huì)讓你事半功倍。當(dāng)然,要找到一個(gè)非常適合的輪子,是非常不容易的一件事。有時(shí)候費(fèi)了九牛二虎之力找了輪子,卻發(fā)現(xiàn)有這樣那樣的問題,最后還是無疾而終。, b& C& Z9 ?: k/ H9 l3 U

3 I6 _0 ^, j. n8 \5 g# W那么,什么樣的輪子是一個(gè)好輪子呢?開源,并且 License 寬松。有文檔,代碼規(guī)范,接口友好,最好有實(shí)際用例。社區(qū)相對(duì)活躍。松耦合,定制容易。總之,只要合適好用,都是一個(gè)好輪子。
+ K' [0 ]3 \% ^& O) u6多讀多寫代碼( J+ V1 I& E; c7 D7 u+ B
提高編程能力其實(shí)沒有捷徑,最佳方式就是多寫代碼。不過,除了寫大量代碼,提升編程能力還需要大量閱讀別人寫的代碼。
4 |2 y% [( A9 w0 B
9 z4 {# o* `+ `2 Z' T) B2 U一來,閱讀源碼可以提高編程能力。學(xué)習(xí)都從模仿開始,不管是入門時(shí)閱讀教程里的示例代碼,還是進(jìn)階時(shí)閱讀優(yōu)秀項(xiàng)目源碼,都是很好的學(xué)習(xí)方式。二來,閱讀源碼可以提高 debug 能力。只有練習(xí)積累的閱讀代碼的能力,才能看懂代碼,從而快速準(zhǔn)確地定位代碼中的問題。最后,閱讀源碼可以幫助形成良好的代碼風(fēng)格 !伴_發(fā)”不僅要寫可以執(zhí)行的代碼,更是 要寫別人讀得懂的代碼 ,這對(duì)代碼的維護(hù)和擴(kuò)展大有好處。7 N4 s0 K* x5 i; G2 D/ u
7預(yù)留開發(fā)時(shí)間
0 ?) Z' ]! k- G# M- x, f' W一個(gè)程序員能否精確評(píng)估開發(fā)時(shí)間,是一件非常重要的事情。不過對(duì)于新手程序員來說,寧可多算一周,不可少估一天。過于“樂觀”容易讓你的 boss 受驚嚇。畢竟,在評(píng)估開發(fā)時(shí)間的過程中,你需要預(yù)設(shè)各種修改對(duì)其他模塊的影響。一個(gè)修改后的單元測(cè)試,可接受測(cè)試,UAT 環(huán)境測(cè)試,再到上線,很多地方都是需要花時(shí)間的。一旦某個(gè)測(cè)試不通過,然后又得調(diào)試,修改,再進(jìn)行單元測(cè)試......誰能保證每次修改都是一次通過的呢。, V* q% n6 O- J5 O% P/ R
8大膽重構(gòu)4 I2 v: |- Q3 ?9 Y9 V6 l
重構(gòu)是程序員的主力技能。一個(gè)程序員最大的勇氣就是看自己三個(gè)月之前寫的代碼。但是,學(xué)習(xí)如何將你的代碼重構(gòu)為一份更好的代碼,這是一項(xiàng)很有價(jià)值的技能。好的代碼是改出來的,代碼需要不停的重構(gòu), 重構(gòu)應(yīng)該貫穿代碼開發(fā)的整個(gè)階段。
# \* O* f# h1 e( g# B# N/ B9 u& d & N& f+ ?7 `  X1 A/ `2 E
重構(gòu)也并不應(yīng)該是在幾個(gè)月之后重構(gòu),最好的方式是實(shí)時(shí)重構(gòu)。寫一天代碼,70%的時(shí)間都放到重構(gòu)上都不過份。
7 [% t. z0 @: `# h8 |& r& g9師傅領(lǐng)進(jìn)門
' z( R" h; M7 H! x' ~! E8 Z! {9 A最后,作為一個(gè)初入職場(chǎng)的新手程序員,找一個(gè)可靠的前輩帶領(lǐng)自己,是一個(gè)非常有利于自己成長的選擇。這個(gè)師傅最好能具備這幾個(gè)特質(zhì):支持你:不會(huì)因你的成功而利益受損的人。eg.同事相互競(jìng)爭技術(shù)技能:是確保你能從他身上實(shí)際學(xué)到東西的人。高標(biāo)準(zhǔn):能讓你保持高標(biāo)準(zhǔn),并不只是為了應(yīng)付今天的工作,也是為了日后成為更資深的程序員。這樣,當(dāng)你的工作遇到各種問題時(shí),你的師傅可以帶領(lǐng)你走正確的職業(yè)發(fā)展方向上。最后,能做到以上幾點(diǎn),我不相信你嵌入式編程很菜。
4 P4 `' N' \! Y$ x+ ?7 }% Y+ y; k0 s
文章來源:網(wǎng)絡(luò)。7 `5 Z5 x1 o3 S. y  H
: M9 T2 x; q0 F/ C+ ^! |# Q8 ~
-END-
2 O; t5 \0 D  s5 v, v8 F往期推薦:點(diǎn)擊圖片即可跳轉(zhuǎn)閱讀
! n0 k7 f9 ?. ]- Z/ }: a- v                                                        2 i' y7 o2 T  ~( R* L
                                                                4 U; u' P+ h( ?* ^) F: V$ V% n
                                                                       
' u7 m" s7 x1 }7 F                                                                                # e+ k' A! A/ N  U# |7 S

0 v0 i& D; z3 B7 I0 I$ F- F/ @                                                                                # A4 `% {8 Z9 ~( g; s) Y- ]( x) `5 ^  G
                                                                                        國慶節(jié)后,搞嵌入式的都齊聚深圳!! _" y% T  G1 A' m
                                                                                . X7 `% h; S% C8 w( X' `/ n
                                                                        $ u9 d" y% `* [
                                                               
/ C4 a; `1 C: M                                                        ) ^. [9 K+ ]: p: |' r
                                               
, |4 ?! o% U' W8 i. E  s) Z
: j- c( r4 j1 m                                                        & a3 N7 ]6 n) g9 Q6 p4 t
                                                               
7 Z3 H2 S) M! N# K, ^& k                                                                       
& M, M. r9 N4 q, {  L1 r/ }                                                                               
& Y" B0 E0 ^/ I0 t
9 ~- `; e0 p0 g" P* R                                                                                1 i3 ?9 m$ u* A% P* Z; I2 |6 n/ R* ?" p
                                                                                        這絕對(duì)是工程師心目中的理想工作室!7 h; Q4 G: H* y4 W  @5 h+ ?
                                                                               
; u! R8 N1 D0 W' V9 `                                                                       
' p& Z+ r4 J0 T  w! L6 y4 T                                                                / D8 p. G7 i7 W/ y, g! \2 {1 t  F
                                                        1 E9 e+ V$ D# D. p8 L( }6 b
                                                . v' V% O9 \" K) [0 f- X0 R  D
- v* y3 T0 p! a! H9 u% M
                                                       
" d$ k- |  L; x; X$ v; p9 [7 @                                                               
! G  h4 S& \" |5 V: S  Q3 ~5 S; E                                                                       
0 V$ ~% f" g8 [9 z* \7 y5 T                                                                               
# g6 W/ n; N$ @8 {7 m0 P 4 V0 A5 o8 p- D" P0 U" z
                                                                                2 Z- z/ G, q! n
                                                                                        不想讓嵌入式核心板吃灰,于是,我準(zhǔn)備對(duì)它下手了!
  c" u4 j$ I# m. C) E/ G                                                                                ' v0 u; g. s7 H
                                                                        # a! D7 C' D# V: i# e1 L/ e
                                                               
, Y+ W) H: q* i% f2 O# ?! A                                                        5 i0 b- P4 D& F2 ?
                                               
* W. C  d& M) O我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師3 e/ u8 J& I) K! [* L
關(guān)注我,一起變得更加優(yōu)秀!

發(fā)表回復(fù)

本版積分規(guī)則

關(guān)閉

站長推薦上一條 /1 下一條


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表