IT技術發展實在是太快了,在認真看完c++網路編程卷一後,準備看卷二的時候,ubuntu+ROR又進入了我的視線。卷二看到第三章的時候,就已經放到一邊了,是我的新一輪的技術迭代開始呢?還是我萬金油的個性在作怪呢?記得MAC osx被破解的時候我也是迫不及待的給setup到我的本本上,現在ubuntu也不能例外。
總是想給中國的開源事業做出點貢獻,可惜自己知識太淺薄。花了3天的時間來研究ROR(也就是利用網上的文章的例子一步一步的照著做),今天終於到書店購到<<應用Rails進行敏捷Web開發>>一書。打算好好來研究一下。希望這本書能夠像<<J2EE without EJB>>那樣帶給我震撼。
其實去年就知道python,ruby這類的動態語言了,由於ruby是日本血統,所以下了一些python的電子檔,準備學習一本動態語言的。但是由於事情較多,而且去年公司有意嚮往J2EE上發展,所以去年基本上研究J2EE的一些開源架構去了,python也就學了不到一周。
今年為了想在各平台移植演算法和共用記憶體的c代碼,所以開始學習和研究c++和STL,在學習的過程中發現了ACE這個庫,發現正是我要尋找的東西,所以開始學習ACE,買了C++網路編程卷一卷二這兩本書,開始學習,中間由於工作中斷了。最近2個月又開始重新拾起學習。中間還為了實現共用記憶體池的演算法,參考了SGI STL記憶體 Clerk的演算法的源碼。發現計費系統裡面需要用到的演算法ACE都有跨平台的實現。
曾經也想過用C++基於ACE+標準庫來重新開發計費系統。目前這套基於c的計費系統,裡面充斥著各種代碼的異味。粘貼拷貝代碼的後果是無數的重複代碼。大量新畢業生加入開發,直接造成代碼品質的下降。並且無人重視單元測試,所以測試代價相當的大。而且測試的效果和結果都不是很好,可以說是比較差。
最近漸漸的又放棄了這種想法,如果用c++改寫系統,這樣學習成本相當的大,還要基於ACE?目前C程式員還是比較好招聘的,並且過程思想的編程比較容易,公司無法投入人力和物力來承擔這種風險。我也無法說服公司來做這件看似毫無意義的事情。在業務上似乎更加容易出彩。但從長遠來說,維護成本和風險是無法評估的。
基於上面的思想,我轉向了ROR(Ruby on Rails),這種快速流行的開源Web架構吸引了我,記得我學java讓我理解了對象思想,進而學C++的時候感覺非常的輕鬆。所以我認為各種知識都有相輔相成的地方。我喜歡簡單的東西,容易理解思想的精髓部分,進而方便轉向複雜的技術的理解。
做個實效的程式員一書中推薦:一個好的程式員,一年最好能學習一門新的語言。我對此深信不疑。
希望我的ROR學習之旅能對我的Java/C++的知識有所協助,至少能夠拓寬我的視野,我想付出是會有回報的。
近期計劃,看完<<應用Rails進行敏捷Web開發>>一書後再買下<<Programming Ruby中文版>>一書加深對ruby的理解和應用,希望能應用到工作和計費系統中。當然這輪迭代結束後繼續我的ACE的旅程。C++是我不會放棄的一門語言。