国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

程序員的基本功有哪些

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

掃碼添加小助手

加入工程師交流群

記得來TW之前看到過一個論壇上有人對TW的一條評價:這是一個奇怪的公司,非常強調代碼風格。

現在已經在TW工作半年多了,回想起這句話,發現自己已經完全融入到這種“奇怪的”代碼風格了。簡言之,就是要把程序寫的清晰易懂,易維護。具體如何達到這種目的。可以參看下面thoughtworks文集中的一篇,對象健身操,中所闡述的“編程規范”。

方法只使用一級縮進

拒絕else關鍵字

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

一行代碼只有一個“。”運算符

不要使用縮寫

保持實體對象簡單清晰

任何類中的實例變量都不要超過兩個

使用一流的集合

不使用任何Getter/Setter/Property

以上的這些標題如果感覺不是很能表意,不妨去網上搜下或者買本thoughtworks文集看看。其中第一條中的具體內容提到“把函數控制在5行”。其他條目中也有一些具體的“變態的”要求。

我在開頭把“編程規范”打上引號的意思是:這不是真正要嚴格遵守的規范,而是一個方向。以此為方向寫出來的程序能夠在一定程度上符合前面提到的“清晰易懂,易維護”。我一直認為,標準一定是要定高一些的,這樣即使不能完全達到標準的要求,也會為此為努力。比如你的標準是60分,你可以輕松的達到而自我滿足;而我的標準是101分,雖然永遠都達不到,可是我可以保持在饑餓的狀態,從而不斷的進步。

工作的前4,5個月,大部分時候寫的是一些新代碼。可以開心的按照上述的原則去編碼。事實上寫出來的代碼也能夠讓自己覺得滿意:短方法,表意的名字,測試,清晰簡單的結構。并且感覺現代IDE對這種代碼風格也是比較支持的。直到從TWU回來,回到原來的項目。項目進入support階段。其實就是給人家修修bug。關鍵這些bug不是我們之前做的新功能引入的,而是他們的陳年老bug,兩三年前的都有。所以這個階段寫的新代碼少,多數是先讀懂之前的代碼,然后做少許修改。不得不說看這些老代碼看起來真是恨痛苦,很慢。很多超過一屏甚至兩屏的長函數,在我們24寸的大顯示器下。

在抱怨老代碼寫的像一坨的同時,突然覺得,還是自己看代碼的能力有欠缺。一直工作在相對來說比較簡單易懂的代碼庫上,然后去看這些一坨的代碼就好像一個人很整潔很愛衛生的人突然被扔到垃圾堆里,異常難受。而對于常年在垃圾堆里生活的人們早已久聞不覺其臭,甚至還對垃圾堆中的那些病菌產生了抗體。世界沒有那么美好,工作中總是會遇到不盡如人意的代碼庫,無論是做交付還是做咨詢。所以除了要有寫出清晰漂亮代碼的能力外,還要有讀復雜,凌亂的代碼的能力和改造復雜凌亂代碼的能力,也就是我們常說的重構。

復雜代碼可以分成兩種:

一種是受到語言,平臺,庫的限制,使得代碼無法寫的非常簡短和易懂。比如使用純c,沒有很好的語言特性和可用的sdk,使得實現復雜邏輯的時候不可避免的要寫出很長很復雜的代碼。有時短的代碼也不一定清楚,比如在代碼中大量使用組合表達式或者是位運算符,在讓代碼變短的同時,變得更難懂。這些時候通常是處于效率的考慮。

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

現在有種感覺,在層層疊疊的框架下寫程序,就像是搭積木,越來越簡單。底層封裝的越來越嚴實,程序員都像白癡一樣機械的在框架中填寫你想實現的業務邏輯。發明框架的原因是為了讓程序員不再重新創造輪子。但是長期在框架上工作的結果是,大家都不會做輪子了,真正有一天需要你做點不太一樣的輪子的時候,就sb了。

程序員寫代碼的能力是凌駕于語言之上的,是思考問題,抽象問題和用另外一種語言簡潔,有效,清晰地描述問題的能力。我相信一個能寫出優秀c代碼的人通過一段時間對java及其上的一些框架的學習,也能寫出優秀的java代碼。

目前我正在學習各種各樣的框架,平時的工作也是在這些框架上工作,越來越感覺,學習這些新知識的同時,做為一個程序員的基本功也不能放下。框架是很好的東西,在提高生產力方面,但是框架讓寫程序變得簡單的同時也會降低對程序員的要求,久而久之,基本功就被荒廢了。如何鍛煉這些基本功?個人認為用最簡單的語言,如c,去做一些算法題是一個不錯的主意;或者不甘做玩積木的小孩兒,看看框架的源碼。其實做為一個計算機專業的學生,這些鍛煉應該是當學生的時候都好好練習過的東西。如果現在發現有所欠缺了,就趕緊補補吧。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序員
    +關注

    關注

    4

    文章

    956

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    GNSS分器:多設備共享衛星信號的“信號橋梁”,北斗分器,gps分器

    一、GNSS分器:從技術原理到核心價值** GNSS分器,全稱為“全球導航衛星系統信號功率分配器”,其核心功能是將單根室外GNSS天線接收的衛星信號,均勻、低損耗地分配給多臺GNSS接收設備
    的頭像 發表于 01-29 16:51 ?439次閱讀

    芯盾時代SDP助力企業應對核心機密泄露危機

    無論你是程序員、文案、財務,無論你想擼代碼、出海報、做報表,各式各樣的AI總能滿足你的需求,讓你的工作更加輕松。
    的頭像 發表于 12-26 11:49 ?672次閱讀

    大理的AI野心藏不住了——風花雪月中千名程序員探討人工智能

    2025 年12月4日至6日第二屆CCF程序員大會暨大理人工智能與應用國際開發者大會在大理圓滿落幕。
    的頭像 發表于 12-24 17:45 ?724次閱讀
    大理的AI野心藏不住了——風花雪月中千名<b class='flag-5'>程序員</b>探討人工智能

    程序員最常見謊言

    了。 28我已經測試過了,這個功能沒問題,可以上線了。 29別擔心,這個問題很快就能解決。 30代碼快寫完了,已經完成 90% 了 。 希望大家對程序員多一些容忍以及諒解! 各位程序員你們都被我說中了哪些?說說你們的觀點
    發表于 12-10 08:24

    堆和棧的區別

    程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收 。注意它與數據結構中的堆是兩回事,分配方式倒是類似于鏈表,呵呵。
    的頭像 發表于 11-27 18:13 ?1090次閱讀

    裸機方式的缺點哪些

    進行的: 應用程序程序員必須確保數據一致性。 超級循環可以與系統計時器輕松同步,但: 如果系統需要多種不同的周期時間,則會很難實現。 超過超級循環周期的耗時函數需要做拆分。 增加軟件開銷,應用程序難以
    發表于 11-17 06:11

    軟通國際亮相2025沙中開源與AI科技峰會

    2025年11月11日,由沙特程序員協會(parmg)主辦的"2025沙中開源與AI科技峰會"在利雅得盛大啟幕。
    的頭像 發表于 11-14 17:45 ?1480次閱讀

    奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動圓滿收官

    1024程序員日”系列活動至此劃上了一個圓滿句號。本屆1024程序員節以“AI構建世界,智能引領未來”為主題,廣邀技術大咖、產業領袖、企業代表與全球開發者齊聚星城
    的頭像 發表于 10-27 18:59 ?787次閱讀
    奔赴熱AI,碼力全開!Talkweb House@1024<b class='flag-5'>程序員</b>日系列活動圓滿收官

    開鴻智谷“以賽促學、以賽選才”|1024程序員節暨開源鴻蒙構建大會圓滿落幕!

    10月24日,由開鴻智谷聯合主辦的長沙1024程序員節暨開源鴻蒙構建大會在長沙圓滿落幕。本次活動以“湘聚長沙,共赴熱AI”為主題,通過技術分享與實戰競賽相結合的方式,著力培養“開源鴻蒙+AI”領域
    的頭像 發表于 10-27 17:58 ?715次閱讀
    開鴻智谷“以賽促學、以賽選才”|1024<b class='flag-5'>程序員</b>節暨開源鴻蒙構建大會圓滿落幕!

    無法在調試中連接到PSOC4怎么解決?

    您好,我一塊使用 PSOC4 CY8C4013SXI-410 制作的小板。非常簡單的設備,它只有三個 GPIO 引腳并通過 5 引腳 SWD 進行編程。我遇到的問題是程序員能夠看到該設備但無法對其進行編程。
    發表于 07-22 06:02

    程序設計與數據結構

    的地址)出發,采用推導的方式,深入淺出的分析了廣大C程序員學習和開發中遇到的難點。 2. 從方法論的高度對C語言在數據結構和算法方面的應用進行了深入講解和闡述。 3. 講解了絕大多數C程序員開發
    發表于 05-13 16:45

    計算機網絡排錯思路總結

    明人不說暗話,這篇文章我們來聊一個非常有用,同時也是程序員必備的技能,那就是網絡排錯思路大總結。
    的頭像 發表于 04-01 17:32 ?899次閱讀
    計算機網絡排錯思路總結

    如何在 樹莓派 上編寫和運行 C 語言程序

    ,一本很好的書是BrianKernighan和DennisRitchie所著的《TheCProgrammingLanguage》。這本書對經驗豐富的程序員和想學習C語
    的頭像 發表于 03-25 09:28 ?1161次閱讀
    如何在 樹莓派 上編寫和運行 C 語言<b class='flag-5'>程序</b>?

    零基礎入門:如何在樹莓派上編寫和運行Python程序

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

    Gemini Vision + Raspberry Pi 化身“數字導盲犬”?

    本文討論了一位程序員利用樹莓派、攝像頭、Gemini和Python構建PeregrineEye設備,使其成為“數字導盲犬”為視障者服務的項目經歷,包括項目靈感、功能、構建過程、遇到的挑戰及未來計劃等
    的頭像 發表于 03-25 09:20 ?1929次閱讀
    Gemini Vision + Raspberry Pi 化身“數字導盲犬”?