99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

程序員的基本功有哪些

工程師人生 ? 來(lái)源:工程師吳畏 ? 2018-12-28 14:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

記得來(lái)TW之前看到過(guò)一個(gè)論壇上有人對(duì)TW的一條評(píng)價(jià):這是一個(gè)奇怪的公司,非常強(qiáng)調(diào)代碼風(fēng)格。

現(xiàn)在已經(jīng)在TW工作半年多了,回想起這句話,發(fā)現(xiàn)自己已經(jīng)完全融入到這種“奇怪的”代碼風(fēng)格了。簡(jiǎn)言之,就是要把程序?qū)懙那逦锥?,易維護(hù)。具體如何達(dá)到這種目的??梢詤⒖聪旅鎡houghtworks文集中的一篇,對(duì)象健身操,中所闡述的“編程規(guī)范”。

方法只使用一級(jí)縮進(jìn)

拒絕else關(guān)鍵字

封裝所有的原生類型和字符串

一行代碼只有一個(gè)“。”運(yùn)算符

不要使用縮寫

保持實(shí)體對(duì)象簡(jiǎn)單清晰

任何類中的實(shí)例變量都不要超過(guò)兩個(gè)

使用一流的集合

不使用任何Getter/Setter/Property

以上的這些標(biāo)題如果感覺(jué)不是很能表意,不妨去網(wǎng)上搜下或者買本thoughtworks文集看看。其中第一條中的具體內(nèi)容提到“把函數(shù)控制在5行”。其他條目中也有一些具體的“變態(tài)的”要求。

我在開頭把“編程規(guī)范”打上引號(hào)的意思是:這不是真正要嚴(yán)格遵守的規(guī)范,而是一個(gè)方向。以此為方向?qū)懗鰜?lái)的程序能夠在一定程度上符合前面提到的“清晰易懂,易維護(hù)”。我一直認(rèn)為,標(biāo)準(zhǔn)一定是要定高一些的,這樣即使不能完全達(dá)到標(biāo)準(zhǔn)的要求,也會(huì)為此為努力。比如你的標(biāo)準(zhǔn)是60分,你可以輕松的達(dá)到而自我滿足;而我的標(biāo)準(zhǔn)是101分,雖然永遠(yuǎn)都達(dá)不到,可是我可以保持在饑餓的狀態(tài),從而不斷的進(jìn)步。

工作的前4,5個(gè)月,大部分時(shí)候?qū)懙氖且恍┬麓a??梢蚤_心的按照上述的原則去編碼。事實(shí)上寫出來(lái)的代碼也能夠讓自己覺(jué)得滿意:短方法,表意的名字,測(cè)試,清晰簡(jiǎn)單的結(jié)構(gòu)。并且感覺(jué)現(xiàn)代IDE對(duì)這種代碼風(fēng)格也是比較支持的。直到從TWU回來(lái),回到原來(lái)的項(xiàng)目。項(xiàng)目進(jìn)入support階段。其實(shí)就是給人家修修bug。關(guān)鍵這些bug不是我們之前做的新功能引入的,而是他們的陳年老bug,兩三年前的都有。所以這個(gè)階段寫的新代碼少,多數(shù)是先讀懂之前的代碼,然后做少許修改。不得不說(shuō)看這些老代碼看起來(lái)真是恨痛苦,很慢。很多超過(guò)一屏甚至兩屏的長(zhǎng)函數(shù),在我們24寸的大顯示器下。

在抱怨老代碼寫的像一坨的同時(shí),突然覺(jué)得,還是自己看代碼的能力有欠缺。一直工作在相對(duì)來(lái)說(shuō)比較簡(jiǎn)單易懂的代碼庫(kù)上,然后去看這些一坨的代碼就好像一個(gè)人很整潔很愛(ài)衛(wèi)生的人突然被扔到垃圾堆里,異常難受。而對(duì)于常年在垃圾堆里生活的人們?cè)缫丫寐劜挥X(jué)其臭,甚至還對(duì)垃圾堆中的那些病菌產(chǎn)生了抗體。世界沒(méi)有那么美好,工作中總是會(huì)遇到不盡如人意的代碼庫(kù),無(wú)論是做交付還是做咨詢。所以除了要有寫出清晰漂亮代碼的能力外,還要有讀復(fù)雜,凌亂的代碼的能力和改造復(fù)雜凌亂代碼的能力,也就是我們常說(shuō)的重構(gòu)。

復(fù)雜代碼可以分成兩種:

一種是受到語(yǔ)言,平臺(tái),庫(kù)的限制,使得代碼無(wú)法寫的非常簡(jiǎn)短和易懂。比如使用純c,沒(méi)有很好的語(yǔ)言特性和可用的sdk,使得實(shí)現(xiàn)復(fù)雜邏輯的時(shí)候不可避免的要寫出很長(zhǎng)很復(fù)雜的代碼。有時(shí)短的代碼也不一定清楚,比如在代碼中大量使用組合表達(dá)式或者是位運(yùn)算符,在讓代碼變短的同時(shí),變得更難懂。這些時(shí)候通常是處于效率的考慮。

一種是我們有了更高級(jí)的語(yǔ)言和其上的大量的框架。如java+spring+struts+hibernate,或者是直接用Ruby on rails,Django等更易用的工具。通常在這些框架下寫程序,是很容易遵循上面提到的讓程序清晰簡(jiǎn)單的原則的。如果在這樣的基礎(chǔ)上寫出了讓人摸不著頭腦的代碼,那就完全是程序員的責(zé)任了。

現(xiàn)在有種感覺(jué),在層層疊疊的框架下寫程序,就像是搭積木,越來(lái)越簡(jiǎn)單。底層封裝的越來(lái)越嚴(yán)實(shí),程序員都像白癡一樣機(jī)械的在框架中填寫你想實(shí)現(xiàn)的業(yè)務(wù)邏輯。發(fā)明框架的原因是為了讓程序員不再重新創(chuàng)造輪子。但是長(zhǎng)期在框架上工作的結(jié)果是,大家都不會(huì)做輪子了,真正有一天需要你做點(diǎn)不太一樣的輪子的時(shí)候,就sb了。

程序員寫代碼的能力是凌駕于語(yǔ)言之上的,是思考問(wèn)題,抽象問(wèn)題和用另外一種語(yǔ)言簡(jiǎn)潔,有效,清晰地描述問(wèn)題的能力。我相信一個(gè)能寫出優(yōu)秀c代碼的人通過(guò)一段時(shí)間對(duì)java及其上的一些框架的學(xué)習(xí),也能寫出優(yōu)秀的java代碼。

目前我正在學(xué)習(xí)各種各樣的框架,平時(shí)的工作也是在這些框架上工作,越來(lái)越感覺(jué),學(xué)習(xí)這些新知識(shí)的同時(shí),做為一個(gè)程序員的基本功也不能放下。框架是很好的東西,在提高生產(chǎn)力方面,但是框架讓寫程序變得簡(jiǎn)單的同時(shí)也會(huì)降低對(duì)程序員的要求,久而久之,基本功就被荒廢了。如何鍛煉這些基本功?個(gè)人認(rèn)為用最簡(jiǎn)單的語(yǔ)言,如c,去做一些算法題是一個(gè)不錯(cuò)的主意;或者不甘做玩積木的小孩兒,看看框架的源碼。其實(shí)做為一個(gè)計(jì)算機(jī)專業(yè)的學(xué)生,這些鍛煉應(yīng)該是當(dāng)學(xué)生的時(shí)候都好好練習(xí)過(guò)的東西。如果現(xiàn)在發(fā)現(xiàn)有所欠缺了,就趕緊補(bǔ)補(bǔ)吧。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    954

    瀏覽量

    30425
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)

    的地址)出發(fā),采用推導(dǎo)的方式,深入淺出的分析了廣大C程序員學(xué)習(xí)和開發(fā)中遇到的難點(diǎn)。 2. 從方法論的高度對(duì)C語(yǔ)言在數(shù)據(jù)結(jié)構(gòu)和算法方面的應(yīng)用進(jìn)行了深入講解和闡述。 3. 講解了絕大多數(shù)C程序員開發(fā)
    發(fā)表于 05-13 16:45

    如何在 樹莓派 上編寫和運(yùn)行 C 語(yǔ)言程序

    ,一本很好的書是BrianKernighan和DennisRitchie所著的《TheCProgrammingLanguage》。這本書對(duì)經(jīng)驗(yàn)豐富的程序員和想學(xué)習(xí)C語(yǔ)
    的頭像 發(fā)表于 03-25 09:28 ?576次閱讀
    如何在 樹莓派 上編寫和運(yùn)行 C 語(yǔ)言<b class='flag-5'>程序</b>?

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    是一種非常有用的編程語(yǔ)言,其語(yǔ)法易于閱讀,允許程序員使用比匯編、C或Java等語(yǔ)言更少的代碼行。Python編程語(yǔ)言最初實(shí)際上是作為L(zhǎng)inux的腳本語(yǔ)言而開發(fā)的。Py
    的頭像 發(fā)表于 03-25 09:27 ?766次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python<b class='flag-5'>程序</b>?

    阿里云升級(jí)通義靈碼AI程序員,全面上線

    近日,阿里云宣布其備受矚目的通義靈碼AI程序員已正式全面上線,為開發(fā)者帶來(lái)更為強(qiáng)大和便捷的編程輔助工具。 此次上線的通義靈碼AI程序員,在功能上實(shí)現(xiàn)了全面升級(jí)。現(xiàn)在,它支持VS Code
    的頭像 發(fā)表于 01-09 11:16 ?725次閱讀

    TMS320C6000程序員指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000程序員指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-24 17:19 ?0次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補(bǔ)充

    電子發(fā)燒友網(wǎng)站提供《TMS320C55x DSP CPU程序員參考補(bǔ)充.pdf》資料免費(fèi)下載
    發(fā)表于 12-21 11:36 ?3次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補(bǔ)充

    UCD3138A64/UCD3138128程序員手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《UCD3138A64/UCD3138128程序員手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 12-09 14:42 ?0次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊(cè)

    機(jī)械革命發(fā)布CODE AI程序員

    近日,英特爾新質(zhì)生產(chǎn)力技術(shù)生態(tài)大會(huì)在成都舉行,機(jī)械革命作為重要參展商帶來(lái)了多款明星產(chǎn)品引爆全場(chǎng)!其中更是在AI PC軟件生態(tài)產(chǎn)品發(fā)布分論壇上,Intel、智譜、機(jī)械革命三方聯(lián)合發(fā)布了專為程序員設(shè)計(jì)的CODE AI程序員本,成為本次大會(huì)的一大亮點(diǎn)。
    的頭像 發(fā)表于 11-30 10:34 ?1113次閱讀

    Linux驅(qū)動(dòng)程序程序員指南

    電子發(fā)燒友網(wǎng)站提供《Linux驅(qū)動(dòng)程序程序員指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-22 15:53 ?0次下載
    Linux驅(qū)動(dòng)<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    AI編程工具會(huì)不會(huì)搶程序員飯碗

    AI編程工具可輔助編程,減少手動(dòng)編碼,提升效率,對(duì)程序員積極影響也有挑戰(zhàn)。程序員需深化技能、拓寬知識(shí)應(yīng)對(duì)。長(zhǎng)遠(yuǎn)看,AI與人類程序員將共生共榮。
    的頭像 發(fā)表于 11-08 10:17 ?538次閱讀

    軟通動(dòng)力子公司鴻湖萬(wàn)聯(lián)助陣?guó)櫭?024程序員節(jié)成功舉辦

    10月24日,在武漢、成都、深圳等地政府指導(dǎo)下,鴻蒙生態(tài)服務(wù)公司舉辦了一場(chǎng)面向廣大開發(fā)者的盛會(huì)——鴻蒙1024程序員節(jié)暨鴻蒙原生應(yīng)用交流會(huì)。軟通動(dòng)力子公司鴻湖萬(wàn)聯(lián)作為開源鴻蒙生態(tài)的重要參與者和貢獻(xiàn)者
    的頭像 發(fā)表于 10-29 15:49 ?757次閱讀
    軟通動(dòng)力子公司鴻湖萬(wàn)聯(lián)助陣?guó)櫭?024<b class='flag-5'>程序員</b>節(jié)成功舉辦

    第五屆長(zhǎng)沙·中國(guó)1024程序員節(jié)開幕

    據(jù)官方媒體報(bào)道,10月24日;? 第五屆長(zhǎng)沙·中國(guó)1024程序員節(jié)在湖南湘江新區(qū)開幕;本次中國(guó)1024程序員節(jié)以“智能應(yīng)用新生態(tài)”為主題。設(shè)置岳麓對(duì)話、技術(shù)英雄會(huì)、主題峰會(huì)及賽事、展覽等活動(dòng),一場(chǎng)
    的頭像 發(fā)表于 10-25 15:42 ?503次閱讀

    芯啟源有源分器的特點(diǎn)和優(yōu)勢(shì)

    分器的按照不同的分類方式可以分為很多種,按輸出端口分,可分為二分、三分、四分、六分、八
    的頭像 發(fā)表于 08-26 16:03 ?774次閱讀
    芯啟源有源<b class='flag-5'>功</b>分器的特點(diǎn)和優(yōu)勢(shì)

    分器的端口多少個(gè)

    分器的端口數(shù)量可以根據(jù)其設(shè)計(jì)和應(yīng)用需求來(lái)確定,常見(jiàn)的端口數(shù)量包括以下幾種: 兩端口 :即二分器(2-way power splitter),是最簡(jiǎn)單的分器形式,具有一個(gè)輸入端口和兩個(gè)輸出端口
    的頭像 發(fā)表于 08-14 09:58 ?969次閱讀

    分器和耦合器哪個(gè)可以調(diào)整信號(hào)的強(qiáng)度

    在比較分器和耦合器哪個(gè)可以調(diào)整信號(hào)的強(qiáng)度時(shí),我們可以根據(jù)它們的基本功能和原理來(lái)進(jìn)行分析。 一、分器的功能 分器主要用于將一個(gè)輸入信號(hào)分成兩個(gè)或多個(gè)輸出信號(hào),其工作原理基于耦合器和
    的頭像 發(fā)表于 08-13 14:42 ?753次閱讀