2009-03-06 13 views
2

我在將來會開發一個新的Web應用程序,我想知道如何決定使用什麼框架。我決定選擇Python作爲我的語言。但是仍然有框架可供選擇!更一般地說,你如何選擇不同的類似技術,這些技術仍然是最新一輪的Web框架?我很好奇你的流程是用來決定你從未使用的技術。你如何決定不同的新興技術?

回答

6

認識到沒有選擇是完美的 - 甚至非常好。

不管你選擇什麼,有人會有一個建議,他們聲稱 - 更好。

無論你選擇什麼,你的技術的一部分。堆棧將無法滿足您的期望。

最重要的是「無共享」,以便可以更換組件。

之後,下一個最重要的是自動生成的功能,以減少或防止編程。

看看Django。許多自動管理功能使生活變得非常愉快。

+0

你是什麼意思「無共享」? Django實際上是目前兩大競爭者之一。另一個是主塔。 – baudtack 2009-03-06 03:27:01

2

有很多的事情可以做:

  • 下載的框架,並與他們建立比較類似的東西。
  • 尋找其他人的比較,但試圖理解評論者的偏見。
  • 觀察工作中的社區,瞭解人們在使用該技術時遇到的問題以及遇到的問題。論壇,博客,郵件列表等是檢查的好地方。
  • 參加會議並滿足志同道合的開發者的興趣。

你也可以採用使用穩定版本而不是阿爾法位的方法。過了一段時間,你可能會靠近出血邊緣。與該項目有關的人通常比那些從其他平臺接近的人更加偏向,要小心你信任的人。

考慮使用流血邊緣框架與已建立框架的影響。有時候,你認爲你的顧客對你的顧客很重要。在其他時候,這並不重要。修復框架本身有多舒適?優秀的開發人員將學習內部知識,或者至少知道如何在事件發送到框​​架郵件列表等時保持移動。

考慮一些在python平臺上構建抽象和可重用代碼的一般性最佳實踐。您可能能夠在轉移到其他平臺時節省一些工作。但是,不要成爲重複使用的垃圾箱,因爲這會限制您使用框架的有效性。 37Signals的工作人員談論的是從工作代碼中提取框架,而不是從頭開始構建框架。

1

經驗勝過傳聞。我發現原型是一個巨大的幫助。製作一個原型,使用您期望成爲各種框架最重要的功能。這有助於找出任何可能無法工作的功能。

一般來說,願意看新技術的榮譽。

2

我知道這是一箇舊帖子,但我又處於類似的情況,我認爲還有其他人可能想要尋找不同的意見,並聽說(有點)成功的經驗。

由於baudtack提到Python,我會嘗試用我使用Python的經驗來回答這個問題。以下是已經工作對我來說:

  1. 確定項目的範圍 - 概述你的應用程序應該能夠做到不引入任何編程或設計說明會澄清自己的目標大大
  2. 確定如何使用代碼,堆棧和數據:

    a。你想與什麼樣的編程範式一起工作?即面向對象,功能等,你想玩你的編程風格,還是你想遵循別人的編程風格?

    b。使用語義網還是不?你想更好地控制URI和他們的設計嗎? (順便說一句,我發現web.py很棒 - 我選擇用Python創建REST API)

    c。你是想被框架需求困住,還是希望更好地將應用程序從Web組件中分離出來,例如,使用框架將應用程序作爲一組模塊來使用。我與Django的問題是,我最終沒有編程Python,但必須學習更多的Django,而不是我需要的。如果這對你有用,那麼這就是要走的路。 d)。數據存儲...某種類型的SQL與非RDBMS(xml數據庫,如具有完整xquery支持的eXist-db)相比,OODBMS與上述的組合相關?你需要這個有多複雜?在您的應用程序中如何存儲和調用數據需要多少控制/分離?

    e。測試:單元測試...謝天謝地python!如果您的網絡應用程序具有增長的潛力(正如他們經常這樣做),那麼開始使用一個穩健和一致的測試平臺將會對未來有很大幫助 - 我希望我早些時候瞭解了這一點。哦,好吧......遲到比從未好。

    f。你需要多少控制服務器?託管考慮?你需要對Apache實例有多少控制?操作系統的具體需我發現使用像Webfaction這樣的共享主機提供商非常棒。我最終發現我需要更大的靈活性和帶寬需求。換句話說,你可以得到什麼預算?如果你有50美元每個月花,它可能是更好的考慮一樣的Linode一個虛擬主機解決方案....

最後,我贊同美國洛特的情緒是一個解決方案沒有選擇是完美的,會受到過時。

1

我有不同類別的一組標準:

活動&文檔

  1. 有積極的用戶羣?
  2. 有沒有積極的開發基地?
  3. 支持是否響應且信息可訪問?
  4. 是否有用戶和開發指南和參考資料?

這些都是必不可少的,所有這些都需要可追溯性來建立對解決方案的信心。

易於使用的

是基本的功能簡單,複雜的功能可能嗎?我通常給一個新的框架提供一個測試驅動,並嘗試推出一組用例來看看框架的使用直觀程度。

  1. 對於本地/ dev安裝和生產部署,安裝直觀且簡單嗎?
  2. 它是如何備份和升級的?
  3. 實現「Hello World」類型博客文章,靜態頁面,菜單項和插件的努力和UX是什麼?
  4. 版本是如何處理核心&插件的?

例子(自動測試/持續集成解決方案的話題)

幾年前,我評估了幾種自動化測試解決方案。當時JenkinsTeamCity是領跑者,最終我選擇了TeamCity,因爲UX,活躍用戶&開發基礎和可訪問文檔的質量。

實例(CMS一個博客)

這個標準也是爲什麼我更喜歡使用WordPress超過其他選項。雖然wordpress有它的缺點,但用戶和開發基礎強大而且活躍,這導致軟件架構具有更大的潛力隨着時間的推移發展並保持其相關性,並且開發社區提供高質量的插件和主題供您選擇。