一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

工程師分享的7個(gè)編程習(xí)慣

dyquk4xk2p3d ? 來(lái)源:cnblogs ? 2023-10-16 11:44 ? 次閱讀

我和很多杰出的軟件工程師們一起工作過(guò),他們有的來(lái)自FAANG之類(lèi)的大公司,有的來(lái)自正處于創(chuàng)業(yè)階段的小公司。

這些工程師中有人自主創(chuàng)業(yè),也有人在大型科技公司領(lǐng)導(dǎo)了數(shù)十億美元的項(xiàng)目。在我與他們一起工作的時(shí)間里,我注意到他們絕大部分人的一些共通的編程和工作習(xí)慣。我想,或許正是這些習(xí)慣讓他們成為了行業(yè)金字塔中最頂尖的那1%。

成為一名工程師,而不是碼農(nóng)

工程是為了解決問(wèn)題而誕生的。

最好的工程師將代碼視為達(dá)到目的的手段。

雖然寫(xiě)代碼是一種樂(lè)趣,但沒(méi)有目的地寫(xiě)代碼是沒(méi)有意義的。代碼應(yīng)該用于為用戶設(shè)計(jì)解決方案。

某種意義上,編程是一種創(chuàng)造性的追求。創(chuàng)造力在約束下茁壯成長(zhǎng)。添加要解決的明確問(wèn)題的“約束”,允許工程師以他們認(rèn)為合適的方式自由地探索和創(chuàng)建解決方案。

我所知道的最好的工程師都是有產(chǎn)品意識(shí)的:首先考慮為人類(lèi)解決問(wèn)題。說(shuō)到這里,就引出了下一點(diǎn)。

為人而不是為機(jī)器編寫(xiě)代碼

“任何傻瓜都可以編寫(xiě)計(jì)算機(jī)可以理解的代碼。優(yōu)秀的程序員編寫(xiě)人類(lèi)可以理解的代碼?!?/p>

代碼是為人類(lèi)編寫(xiě)的,而不僅僅是為計(jì)算機(jī)編寫(xiě)的。

代碼是為團(tuán)隊(duì)中的工程師準(zhǔn)備的,他們會(huì)閱讀、維護(hù)并在代碼的基礎(chǔ)上進(jìn)行構(gòu)建。

代碼是為用戶準(zhǔn)備的,不管是用手機(jī)的孩子,還是調(diào)用API開(kāi)發(fā)者,或者是你自己。

117ed770-6a69-11ee-939d-92fbcf53809c.png

我認(rèn)識(shí)的最好的工程師總是為所有受眾評(píng)估他們代碼的價(jià)值。

如果他們沒(méi)有打動(dòng)某個(gè)受眾,則該代碼就不會(huì)投入生產(chǎn)。

與代碼本身分離

優(yōu)秀的工程師不依附于代碼本身。

即使他們已經(jīng)完成了90%,如果改變意味著最終的結(jié)果會(huì)更好,那么他們不害怕刪除代碼并重新開(kāi)始。

代碼不是個(gè)人的,所以反饋是從容的。

代碼并不完美。沒(méi)有人關(guān)心完美的代碼。他們關(guān)心的是帶來(lái)變化的代碼。

教會(huì)自己不依附于代碼的最好方法是認(rèn)識(shí)到,在20年內(nèi),你的大部分代碼很有可能成為技術(shù)債務(wù)、被棄用或被重寫(xiě)。

使用一致的標(biāo)準(zhǔn)

編寫(xiě)代碼時(shí),請(qǐng)堅(jiān)持一致的編碼標(biāo)準(zhǔn)和風(fēng)格。一致性使代碼更容易被未來(lái)的你和你的團(tuán)隊(duì)成員閱讀和理解。

一致的風(fēng)格指南可以讓團(tuán)隊(duì)和代碼庫(kù)更容易擴(kuò)展。這就是為什么Meta和Google這樣的公司能夠快速發(fā)布如此多的代碼,而不會(huì)隨著時(shí)間的推移使代碼庫(kù)變得不可讀和不可維護(hù)。

11983b70-6a69-11ee-939d-92fbcf53809c.png

我認(rèn)識(shí)的每一個(gè)優(yōu)秀的人都內(nèi)化了團(tuán)隊(duì)的代碼標(biāo)準(zhǔn),并盡可能?chē)?yán)格地遵循它,洞悉它的好處。

寫(xiě)簡(jiǎn)單干凈的代碼

我認(rèn)識(shí)的每一位精英工程師都編寫(xiě)了一些代碼,這些代碼編寫(xiě)起來(lái)可能很復(fù)雜,但最終閱讀和理解起來(lái)都很簡(jiǎn)單。我能想到的最好的詞就是他們的代碼很美觀。

他們的代碼干凈、有條理、合乎邏輯。在他們的代碼中做出的每個(gè)決定都是有意義的,當(dāng)有些事情沒(méi)有意義時(shí),它會(huì)在代碼中被很好地記錄下來(lái)。

編寫(xiě)干凈代碼的一個(gè)好方法是遵循原則,比如SOLID原則。雖然它們最初是用面向?qū)ο缶幊?OOP)設(shè)計(jì)的,但它們可以擴(kuò)展到通用編程:

單一責(zé)任:一個(gè)類(lèi)只能有一個(gè)責(zé)任。

open-closed:軟件對(duì)象(類(lèi)、模塊等)應(yīng)該開(kāi)放擴(kuò)展,但關(guān)閉修改,允許可預(yù)測(cè)、可維護(hù)的代碼。

Liskov 替換:子類(lèi)型必須可替換其基本類(lèi)型,而不會(huì)影響程序的正確性。

接口隔離:代碼不應(yīng)該依賴(lài)于沒(méi)有使用全部接口的大型接口。相反,包應(yīng)該包含并允許更小的、特定的接口被導(dǎo)入。

依賴(lài)反轉(zhuǎn):高級(jí)模塊不應(yīng)依賴(lài)于低級(jí)模塊;兩者都應(yīng)依賴(lài)于抽象,從而促進(jìn)更靈活和解耦的系統(tǒng)設(shè)計(jì)。

這方面的一個(gè)例子是命名。好的命名沒(méi)有神奇的值、明確的區(qū)別、描述性的函數(shù)名稱(chēng)和可理解的變量。

不要讓意外發(fā)生

代碼不應(yīng)該產(chǎn)生意外。這是通過(guò)遵循代碼原則和編寫(xiě)適當(dāng)?shù)臏y(cè)試來(lái)實(shí)現(xiàn)的。

好的代碼是可預(yù)測(cè)的。

測(cè)試強(qiáng)制代碼清晰和可預(yù)測(cè)性。他們提供信心。良好的自動(dòng)化測(cè)試允許團(tuán)隊(duì)對(duì)代碼進(jìn)行更改,而不必?fù)?dān)心會(huì)破壞一些看不見(jiàn)的東西。

11bb88b4-6a69-11ee-939d-92fbcf53809c.png

一些類(lèi)型的測(cè)試包括:

單個(gè)組件和獨(dú)立功能的單元測(cè)試。

用于多個(gè)組件之間交互的集成測(cè)試。

端到端測(cè)試,從用戶的角度評(píng)估整個(gè)系統(tǒng)的功能

測(cè)試應(yīng)該很簡(jiǎn)單。在閱讀失敗的測(cè)試時(shí),應(yīng)該很容易識(shí)別出哪里出了問(wèn)題。

知道什么不應(yīng)該測(cè)試也很重要。

例如,如果端到端測(cè)試的工作量超過(guò)了程序的實(shí)際收益,那么測(cè)試將被周全的文檔、監(jiān)視和向正確的人(例如代碼所有者)發(fā)出警報(bào)所取代。

測(cè)試也不應(yīng)該測(cè)試代碼中的實(shí)現(xiàn)細(xì)節(jié),比如測(cè)試前端代碼中的某些CSS選擇器,而不是使用數(shù)據(jù)屬性或只是屏幕截圖測(cè)試。

經(jīng)常溝通

偉大的系統(tǒng)不是單獨(dú)建立起來(lái)的。優(yōu)秀的工程師會(huì)進(jìn)行設(shè)計(jì)審查,征求反饋,并繼續(xù)對(duì)他們的初始設(shè)計(jì)進(jìn)行迭代。

每個(gè)人都有知識(shí)盲區(qū),可以由其他人來(lái)填補(bǔ)。新的視角通??梢詭椭a變得更清晰,或者提供以前可能沒(méi)有想到的新方法。

最好的工程師既善于溝通又善于合作——為了更好的最終結(jié)果,他們不怕花時(shí)間一起工作。

這可以很簡(jiǎn)單,比如讓團(tuán)隊(duì)成員快速檢查文檔,或者為重要的拉取請(qǐng)求添加額外的代碼檢查人員。

慢,即是快

我所知道的最好的工程師通過(guò)慢編碼來(lái)快速完成項(xiàng)目。聽(tīng)起來(lái)很奇怪,對(duì)吧?

其實(shí),上述所有這些原則和習(xí)慣都增加了首次編碼的時(shí)間。但它們?cè)试S工程師一步一步地推進(jìn)項(xiàng)目的進(jìn)展。

通過(guò)花時(shí)間使用標(biāo)準(zhǔn)、適當(dāng)?shù)販y(cè)試、使用原則和經(jīng)常溝通,從長(zhǎng)遠(yuǎn)來(lái)看,他們可以節(jié)省更多的時(shí)間。

當(dāng)我還是一名實(shí)習(xí)生和初級(jí)工程師時(shí),我親身經(jīng)歷過(guò)另一種選擇,我相信很多人也有過(guò)這種經(jīng)歷,那就是向前沖3步,撞到一個(gè)障礙物,然后不得不后退5步。

不要盲目循規(guī)蹈矩

以上的“規(guī)則”和“原則”只是指導(dǎo)方針。并不是所有的東西都能很好地符合指導(dǎo)方針。

有時(shí)候,你寫(xiě)的代碼是一個(gè)正方形,不能放進(jìn)那個(gè)圓圈里。沒(méi)關(guān)系。

11e11b4c-6a69-11ee-939d-92fbcf53809c.png

在這種情況下,請(qǐng)確保記錄代碼以某種方式編寫(xiě)的原因。

如果你不這樣做,那么有人,比如未來(lái)的你,可能會(huì)在未來(lái)看到當(dāng)時(shí)的代碼時(shí)覺(jué)得“哇,我當(dāng)時(shí)真笨。為什么不符合我們的標(biāo)準(zhǔn)呢?”

然后,他們會(huì)花20個(gè)小時(shí)重新編碼,以符合標(biāo)準(zhǔn),只是為了得到和以前相同的結(jié)論。聽(tīng)起來(lái)是不是很熟悉?

軟件開(kāi)發(fā)的現(xiàn)實(shí)是,并不是所有的代碼都是干凈的或完全遵循規(guī)則的。

但是,它可以是一致的、干凈的、可理解的、可測(cè)試的和有價(jià)值的。

寫(xiě)在最后

此外,我還注意到:這些工程師的行為模式還包括:

至少在一個(gè)領(lǐng)域有深厚的領(lǐng)域知識(shí)。我所記錄的每一位工程師如今都是各自領(lǐng)域的頂尖人物,因?yàn)樗麄儗?zhuān)注于某一領(lǐng)域,并成為了該領(lǐng)域的專(zhuān)家,無(wú)論是前端基礎(chǔ)設(shè)施、分布式系統(tǒng)還是簡(jiǎn)潔的UI。

經(jīng)常適當(dāng)?shù)赝其N(xiāo)自己。這些工程師并沒(méi)有藏匿于幕后。他們團(tuán)隊(duì)中的每個(gè)人以及與他們一起工作的每個(gè)人都知道他們的價(jià)值和專(zhuān)長(zhǎng)。這是通過(guò)適當(dāng)?shù)貭I(yíng)銷(xiāo)自己和從事高影響力項(xiàng)目的結(jié)合而實(shí)現(xiàn)的。

編輯:黃飛

聲明:本文內(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)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1555

    瀏覽量

    63315
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3673

    瀏覽量

    94697
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4880

    瀏覽量

    70025

原文標(biāo)題:讓你遙遙領(lǐng)先的7個(gè)編程習(xí)慣

文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電子工程師最關(guān)心的10個(gè)問(wèn)題

    精通對(duì)一個(gè)電子工程師更重要。7 如何成為電子工程師高手電子工程師的工作就是將一堆器件搭在一起,注入思想(程序),完成這些器件分離時(shí)無(wú)法完成的
    發(fā)表于 05-18 11:49

    LabVIEW軟件工程師招聘

    公司全職招聘LabVIEW軟件工程師,招聘說(shuō)明如下:1,工作地點(diǎn):北京海淀區(qū);2,待遇:7K-12K;3,工作經(jīng)驗(yàn)1-3年;4,熟悉CPCI總線,熟悉VISA操作,對(duì)狀態(tài)機(jī)和隊(duì)列運(yùn)用熟練;5,有良好的編程
    發(fā)表于 09-12 14:20

    【下載】我和LabVIEW:一個(gè)NI工程師的十年編程經(jīng)驗(yàn)

    `簡(jiǎn)介:《我和LabVIEW:一個(gè)NI工程師的十年編程經(jīng)驗(yàn)》是作者在學(xué)習(xí)和使用LabVIEW過(guò)程中的經(jīng)驗(yàn)總結(jié)。書(shū)中由淺入深地對(duì)LabVIEW最常用的功能和LabVIEW學(xué)習(xí)過(guò)程中常見(jiàn)的問(wèn)題進(jìn)行了一一
    發(fā)表于 06-13 18:19

    PCB layout工程師的必須具備的7個(gè)習(xí)慣

    ,兼顧性能、工藝、成本等各方面,同時(shí)還要注意板子布局的合理整齊。作為一名優(yōu)秀的PCB layout工程師,好的工作習(xí)慣會(huì)使你的設(shè)計(jì)更合理,性能更好,生產(chǎn)更容易。下面羅列了PCB layout工程師
    發(fā)表于 04-03 06:00

    plc編程工程師的前景怎么樣

    `  誰(shuí)來(lái)闡述一下plc編程工程師的前景怎么樣?`
    發(fā)表于 11-12 16:23

    PCB layout工程師7個(gè)習(xí)慣

    ,兼顧性能、工藝、成本等各方面,同時(shí)還要注意板子布局的合理整齊。作為一名優(yōu)秀的PCB layout工程師,好的工作習(xí)慣會(huì)使你的設(shè)計(jì)更合理,性能更好,生產(chǎn)更容易。下面羅列了PCB layout工程師
    發(fā)表于 01-29 07:43

    PCB工程師的應(yīng)該具備的好習(xí)慣

    ,兼顧性能、工藝、成本等各方面,同時(shí)還要注意板子布局的合理整齊。作為一名優(yōu)秀的PCB layout工程師,好的工作習(xí)慣會(huì)使你的設(shè)計(jì)更合理,性能更好,生產(chǎn)更容易。下面羅列了PCB layout工程師
    發(fā)表于 06-17 15:20

    ?。。。。。?!高薪誠(chéng)高級(jí)FPGA工程師,Base廣東佛山

    高級(jí)FPGA工程師:1人(待遇:15k-30K/月)崗位要求:1、本科及以上學(xué)歷,電子/通信/計(jì)算機(jī)等相關(guān)專(zhuān)業(yè);2、本科5年以上,研究生3年以上相關(guān)工作經(jīng)驗(yàn);3、具備較扎實(shí)的數(shù)字電路基礎(chǔ);4、具備
    發(fā)表于 10-22 10:33

    電子工程師結(jié)合創(chuàng)造性與習(xí)慣

    電子工程師結(jié)合創(chuàng)造性與習(xí)慣 人們可能會(huì)對(duì)電子產(chǎn)品的開(kāi)發(fā)與設(shè)計(jì)方法堅(jiān)持某種不變的觀念,甚至對(duì)解決不同問(wèn)題所采用的器件這樣的小事都有某種思維定勢(shì),這是可
    發(fā)表于 12-16 09:19 ?2048次閱讀

    我和LabVIEW 一個(gè)NI工程師的十年編程經(jīng)驗(yàn)(PDF及實(shí)例程

    《我和LabVIEW:一個(gè)NI工程師的十年編程經(jīng)驗(yàn)》是作者在學(xué)習(xí)和使用LabVIEW過(guò)程中的經(jīng)驗(yàn)總結(jié)。書(shū)中由淺入深地對(duì)LabVIEW最常用的功能和LabVIEW學(xué)習(xí)過(guò)程中常見(jiàn)的問(wèn)題進(jìn)行了一一
    發(fā)表于 05-06 11:47 ?0次下載

    匯總PCB layout工程師7個(gè)習(xí)慣 你有沒(méi)有學(xué)會(huì)?

    ,兼顧性能、工藝、成本等各方面,同時(shí)還要注意板子布局的合理整齊。作為一名優(yōu)秀的PCB layout工程師,好的工作習(xí)慣會(huì)使你的設(shè)計(jì)更合理,性能更好,生產(chǎn)更容易。下面羅列了PCB layout工程師
    的頭像 發(fā)表于 04-06 16:44 ?4653次閱讀

    PCB layout工程師7個(gè)習(xí)慣

    作為一名優(yōu)秀的PCB layout工程師,好的工作習(xí)慣會(huì)使你的設(shè)計(jì)更合理,性能更好,生產(chǎn)更容易。本文羅列了PCB layout工程師7個(gè)
    的頭像 發(fā)表于 02-16 15:46 ?3073次閱讀

    PCB layout工程師7個(gè)習(xí)慣,來(lái)看看你都占了幾個(gè)吧!

    作為一名優(yōu)秀的PCB layout工程師,好的工作習(xí)慣會(huì)使你的設(shè)計(jì)更合理,性能更好,生產(chǎn)更容易。本文羅列了PCB layout工程師7個(gè)
    發(fā)表于 01-22 06:43 ?6次下載
    PCB layout<b class='flag-5'>工程師</b>的<b class='flag-5'>7</b><b class='flag-5'>個(gè)</b>好<b class='flag-5'>習(xí)慣</b>,來(lái)看看你都占了幾個(gè)吧!

    我和LabVIEW:一個(gè)NI工程師的十年編程經(jīng)驗(yàn).pdf

    我和LabVIEW:一個(gè)NI工程師的十年編程經(jīng)驗(yàn).pdf
    發(fā)表于 12-14 09:20 ?0次下載