程式設計師如何積累程式設計技術或程式設計經驗?

2021-10-08 23:58:09 字數 1090 閱讀 7529

工作中總是被問到程式設計師如何積累程式設計技術或程式設計經驗?首先我認為程式設計是一門實踐性的很強的藝術,所以貌似唯有實踐才能積累。然而把它當作乙個個人軟體過程(psp)的問題,總感覺是有一些規律、規則或建議可以解答。思索良久,結合自己的工作經歷,嘗試給出乙個自己對這個問題的解答。

經驗是什麼?

程式寫多了,總會發現有一些東西是不怎麼變的,就是說你寫一萬遍也是這麼個寫法,而這就是所謂的經驗。當然這些不變的東西有大有小,如果我們能給它分一下類,並取個好聽的名字,然後在後續的程式設計實踐中得以運用,那麼這個過程就是所謂的積累。

經驗分類

我們將小一些的不變的東西叫習慣用法(idiom),大一些的叫模式(pattern),再大一些叫框架(framework),再大一些就是技術棧(technology stack)了。

idiom(習慣用法)

一般我們會將這個經典的寫法整理到筆記本中,方便查閱。對於使用eclipse的使用者,可以將這些抽取成**片段,分類儲存起來,方便應用。

pattern(模式)

模式更多的描述一類問題的解決方案,比較抽象適用於任何語言。如經典的23種設計模式、併發程式設計模式等。對於模式要理解解決的問題域及實現方式,所以就要求在程式設計實踐中有意的訓練,然後從實踐中積累自己的程式設計模式。

例如關於網路併發程式設計模式主要有:reactor模式和proactor模式。在linux中使用epoll,當io可讀寫的時候通知你,你再去同步讀寫,這就是所謂reactor模式。而windows下的iocp或者linux下的zeromq則是資料傳送完了或者接收完了再通知你,這就是所謂proactor模式。其實說白了就是,reactor給你的是讀寫權,proactor給你的是資料。

framework(框架)

framework就是對pattern的實現,目的是簡化應用程式設計和重用**。如struts、spring、mina、netty等框架。對於框架的積累,一般在程式設計中多以快速原型發布,持續演進方式推進,最終形成穩定的框架實現。

technology stack(技術棧)

積累自己的技術棧是架構師必備素養之一。這就要求我們在程式設計實踐中要以架構師的視角看問題,運用技術,積累技術。

我覺得如果能做好上面的這幾個方面,從小到大,反覆迭代的實踐,程式設計技術或程式設計經驗的積累又有何難呢?

程式設計師程式設計技術迅速提高終極攻略 zz

z 2013 12 26 22 36 13 is2120 bg57iv3 t1894842032.k.f3499268100 t5,l75,r2,v14 leveldb boost poco redis sqlite emule filezilla server live555 vlcchrome ...

如何正確運用非同步程式設計技術

同步 英語 synchronization 指對在乙個系統中所發生的事件 event 之間進行協調,在時間上出現一致性與統一化的現象。說白了就是多個任務乙個乙個執行,同一時刻只有乙個任務在執行。非同步 英語 asynchronization 指的是讓cpu暫時擱置當前請求的響應,處理下乙個請求,當通...

程式設計師程式設計語錄

linux c 網路程式設計 linux下c c ace boost 高效能伺服器端應用 開發技術 1.乙個好的程式設計師是那種過單行線馬路都要往兩邊看的人。doug linder 2.程式有問題時不要擔心。如果所有東西都沒問題,你就失業了。軟體工程的mosher定律 3.程式設計師的麻煩在於,你無...