從事IT行業(yè)有這么久了犁珠,談不上是什么大牛叙淌,卻也因為興趣也搗騰了不少東西。從大學時代的Asp.net,到實驗室Kinect汉操,到Unity3D虛擬現(xiàn)實再来,畢業(yè)后做iOS開發(fā),自己抽時間也在看看Android磷瘤,前端芒篷,后端。搗騰了這么多采缚,最近自己發(fā)現(xiàn)活得好累针炉。期間曾做過一些開源嘗試,不過都一一死掉扳抽。細細數(shù)來篡帕,行業(yè)里面無名小卒一個。本文從在自身角度出發(fā)反思贸呢。
重復造輪子
曾經(jīng)聽過前輩說過:“在開發(fā)中镰烧,你現(xiàn)在遇到的問題,別人早就已經(jīng)遇到了楞陷。如果為了研究可以自己搞怔鳖,如果考慮進度,還是去google吧固蛾!”
平時開發(fā)结执,相信大部分程序員以項目為單位開發(fā)吧,如果說通俗一點魏铅,其實大部分程序員都是業(yè)務工程師昌犹,很少去涉及到一些底層的知識坚芜。就拿iOS開發(fā)
為例览芳,平時開發(fā)中涉及到底層,比如runloop,runtime鸿竖,unix信號沧竟,其實很少,用得最多的也就是用一些runtime常用的缚忧。
個人覺得如果技術不能為業(yè)務服務悟泵,那么這項技術基本上就沒什么價值了。于是拿來主義成了軟件開發(fā)中很重要的一個環(huán)節(jié)闪水。畢竟公司不是給你來研究代碼的糕非,而是要你產(chǎn)生商業(yè)價值的,所以是否要自己重復造輪子就很值得考究。
onevcat有一篇文章中寫道他的同事
所以在實際開發(fā)中肯定要用第三方的輪子朽肥。由于現(xiàn)在的輪子已經(jīng)能夠滿足需求了禁筏,所以自己就沒必要去重復造。有時候真的很反感業(yè)內(nèi)某些人的做法衡招。比如一個圖片瀏覽的第三方篱昔,已經(jīng)被許許多多開源過了,輪子已經(jīng)很多了始腾。還在造相同的輪子州刽,更為讓人不爽的是,好多人是直接把別人的代碼改一改就變成自己的開源項目了浪箭。
如果要造輪子要不在原有的輪子做比較大的改進穗椅,要不就新建項目解決另外的需求。沒必要為了
start
而造重復的輪子奶栖。好多人是為了開源而開源房待,看看最近github
上iOS最近的行情就知道。
時間
如果你和我一樣驼抹,國慶節(jié)也沒有停息下來桑孩,反而在網(wǎng)上都會擼一擼代碼的,那么就應該會有一定的時間來做開源項目的事情了框冀。但是大部分同學是沒有這種激情的流椒,自己這樣也是有特定背景的。
說來說去其實我們能夠利用的時間就上班和放假明也。上班的首要任務是完成項目開發(fā)需求宣虾。自己在公司也時常忙里偷閑搞搞自己的東西,可是這樣的效果比較零散温数。最好的也就是下班之后如果認為都完成就可以玩玩自己項目了绣硝。
利用周末的時間來寫代碼,這并不是一件好事情撑刺。但是時間就那沒多鹉胖,有舍必有得,所以還是得有自己衡量够傍。有些人是技術宅甫菠,而有些人是做不下來的。這樣的同學遇到了不少冕屯。
之前自己也沒有把時間規(guī)劃好寂诱,公司的項目完成之后馬上又來新需求,所以上班時間做自己的開源項目有些不現(xiàn)實安聘,但是回到家里再寫代碼也很不好痰洒。反正及時在斷斷續(xù)續(xù)的過程中瓢棒,開源代碼就永遠死在了文件夾里面。
總結(jié)
好吧丘喻,瞎寫了幾百字音羞,算是對開源路途上的一個反省吧!仓犬。對自己而言我感覺可以從簡單的一些方面開始自己的開源之旅嗅绰。大致如下:
- 1.先從給項目提
Bug
開始 - 2.checkout 代碼看每個版本的變化
- 3.關注項目主要人員的博客
- 4.分析項目源碼
- 5.嘗試pull resquest
- ...
具體可以參考這篇文章如何參與一個GitHub開源項目?