2008-09-24 68 views
6

我想教我如何使用現代持久模式(OR/M,倉庫等)和開發實踐(TDD等)。什麼是一個很好的項目來學習現代模式和實踐?

因爲最好的學習方式(對我來說)是幹什麼的,我想建立某種爲自己的演示應用。問題是,我不知道要構建什麼樣的應用程序。我想寫一些關於我的經歷的博客,所以我想爲社區創造一些有價值的東西,但同時我想避免其他人正在積極做的事情(web commerce,forums)或者已經完成死亡(博客引擎)。

有沒有人有任何建議,我可以工作的一個好的寵物項目,也許博客關於我的經驗?

回答

11

有無數的社區服務機構很少或根本沒有網站。

選擇一個服務組織 - 任何一個 - 掃盲志願者,食品儲藏室,家居擺設捐贈,酒類匿名 - 任何東西。基層社區組織從參與中受益最大;他們經常需要更加動態的網絡存在,但買不起。

看看他們目前的網站。建立他們更好的東西。捐給他們。

+2

現在這是一個好主意,也是我之前沒有考慮過的事情。謝謝。 =) – 2008-09-24 21:14:52

+3

這是一個好主意。 – 2008-10-07 23:39:17

1

當然,你可以花6個monthes選擇一個開源項目,並開始一點一點地被接受和理解的貢獻系統是如何工作的。

但是最好的辦法還是開始自己的項目,用自己的標準,這可能會是一個faillure。你需要嘗試,失敗,並從錯誤中學習以改善,並使用你想要練習的東西。

像法國作家說:

「坐着的天才要比永遠少去遠的地方就是一個活的蠢蛋」。

+0

我同意 - 在成功之前我需要失敗幾次。雖然我仍然沒有任何想法,以失敗... ...雖然謝謝! =) – 2008-09-24 20:07:31

3

我想說一個很好的方法是從一個你想學習或構建你的應用程序的核心框架的示例項目開始。以Spring爲例,他們有一個很棒的「寵物商店」web應用程序,您可以下載該應用程序,以推薦的方式顯示如何使用框架的許多不同部分。從那裏,你可以擴展它:檢查它到源代碼管理,獲得自動化構建,添加你自己的單元測試或測試優先增加,在你自己的ORM層交換,嘗試不同的視圖層等。

一旦你可以隨心所欲地工作,然後你可以更容易地分支,甚至可以使用你學到的知識從頭開始創建自己的應用程序。

我覺得從一個好的基礎開始('好'很重要,因爲你想學習最佳實踐,而不是僅僅依靠一個隨機互聯網用戶搗亂的東西來建立你的工作)只是從一個空白的項目開始,這個項目可能是壓倒性的,特別是如果試圖一次學習一堆新事物。

1

一個網站如何讓人們問技術導向的問題,並從互聯網上的集體專家社區獲得迴應?

我認爲一個寵物項目的最重要的方面是,它必須是你關心,並會使用自己的東西的事實。如果您使用它,並且對您有幫助,那麼其他人也會發現相同。如果你正在做某件事,因爲有人提出這個建議,那麼它就像工作一樣。

爲了玩TDD,我最終創建了一個命令行參數解析器。我編寫了很多控制檯應用程序,這些應用程序可以從中受益,感興趣並且對我來說很有趣。那裏已經有其他人了,但那對我來說並不重要。我也打算寫博客,但我的另一個玩模式和架構的寵物項目是一個「完成到死」的博客平臺......並使用您正在創建的博客平臺撰寫博客平臺的博客......好吧,這很難。

最後,在這一點上,我的項目都沒有給社區帶來什麼,但我注意到我在攻擊問題方面的回報。找到一些你可以從中受益的東西,以後再擔心別人的好處。有點自私。

+0

你的意思是,像StackOverflow? = P – 2008-09-24 20:12:15

1

這是一個非常好的問題。我覺得這一定是許多開發人員的感覺。很多時候,我們受到我們在工作中開發的應用程序的限制。可能沒有機會實施每一件最偉大的事情。

我有類似的感受。我所做的就是說服我的團隊學習新事物,分享有關新技術的知識。我已經開始建立自己的某種項目。它的實時使用非常少,但我可以玩。

例如我在DAL上使用EntLib,但明天當我設法學習LINQ時,我將用LINQ替換EntLib。可能是LINQ到實體。然後我使用普通的WCF公開了這些DAL方法。然後我學會了如何實現WebHttpBinding並使用JSON公開我的WCF服務。我有計劃現在學習MS MVC和jQuery,並在那裏做一些ASP.Net/AJAX的東西。

基本上你應該以小塊爲單位針對一個問題。如果你有時間和熱情,那麼這裏建議的第一個解決方案似乎是最好的。

祝你好運!

相關問題