2009-10-15 43 views
6

我想學習一個促進良好編程實踐並受編程社區尊重的框架。哪個Web框架適合想要工作的人?

但是,我也想要一個我可以用來做日常工作的框架。

你會推薦哪一個?

這個問題來自我學習Django基礎的經驗,因爲它得到了Stack Overflow和Hacker News的開發人員的高度讚揚。但是,我的地區(紐約市)幾乎沒有任何工作要求Django開發人員。

+6

可悲的是,「良好的編程習慣」和「日常工作」不會在任何地方重疊儘可能多的我們想要的。 – 2009-10-16 00:18:29

回答

18

作爲一個長期ASP.NET的傢伙,我最近經歷了一個類似的決策過程,以找出我應該嘗試的其他Web框架。這是我學會爲止可能適用於你的情況太:

  • 框架/ platofrm選擇(因此就業機會)的高度regional--灣區就業市場從什麼,你會在紐約找到了很多不同,芝加哥,蒙特利爾或倫敦。看看當地的工作列表(craigslist,確實是開始的好地方),以便清楚地瞭解需求。
  • 類似地,根據公司的規模和類型不同,使用情況也不盡相同。如果你想在大公司找到工作,Spring MVC和ASP.NET MVC可能是你最好的選擇。在小公司中,DJango和(特別是)Rails似乎正在上升。
  • 用法也有時因行業而異。例如,很多人力資源應用程序似乎都是基於.NET的,而金融/銀行應用程序似乎偏愛Java。如果你想在一個特定的行業工作,看看那個行業裏新興的公司正在使用什麼。
  • 當你將稀缺時間投入到學習新事物的時候,青睞處於採用曲線上升的技術(例如Rails),而不是更廣泛採用的框架,而這些框架可能不會快速增長。也要警惕早期的或利基的框架,這些框架可能不會被廣泛採用。
  • 大多數(或幾乎所有)框架越來越受歡迎的一個共同點是它們是MVC框架,並且嚴重依賴於對REST的深入理解。深入學習這些概念是一個好主意。
  • 在決定在一個框架中投資lot時間之前,您可以對其中的幾個進行基本瞭解,這樣您就可以合理地理解您喜歡和不喜歡的每一個 - 如果結束使用你沒有學過的框架申請工作,至少你可以聰明地談論它。
  • 如果您專注於自己喜歡的事物,那麼您將更有動力去學習它。例如,我個人發現Rails(無數就業機會)比Spring或Django更有趣,所以我決定首先關注Rails。其他人可能會有不同的印象 - 遵循程序員的本能。也就是說,通常很少有使用你覺得迷人的技術的工作,所以你應該努力找到適當的平衡點:許多公司實際上都在招聘人們使用的技術!
  • 一旦你回答了基本的「什麼框架」的問題,潛伏着更多的問題,包括選擇一個JavaScript框架,驗證框架,ORM等。不要過多擔心這些選擇 - 只需選擇框架的默認實現即可。但是隨着你越來越先進,關於框架的相同論點也適用於其他的東西 - 例如,瞭解一些ORM很有用。

就個人而言,我決定在這個辦法:

  • 繼續在我所瞭解的最好的(ASP.NET)構建的東西,但所有轉型工作ASP.NET MVC,在那裏我可以更好地理解和MVC適用跨平臺的REST概念
  • 學習jQuery(再次,平臺中立)
  • 吹掉ORM選擇產品總數爲now--太多其他的事情擔心
  • 建立Rails的幾個項目,這是framewor k我看到在我一直在看的更新的SF-Bay-Area初創公司中使用得最多
  • 瞭解基本知識(例如,閱讀一兩本書,嘗試幾個樣本),瞭解Python/Django,Java/Spring和Groovy/Grails。
+0

很多信息,謝謝! – volni 2009-10-15 23:33:11

+0

很多很多... – RominaV 2014-01-29 12:28:44

2

你試過Spring MVC嗎?許多公司都將Java用於Web應用程序(或.NET)和基於Web服務的應用程序。

3

我可能會說ASP.NET MVC。我總是看到很多.NET作業,這似乎是一個堅實的框架,我認爲它實際上爲所有的stackoverflow系列提供動力。作爲一名PHP開發人員,我還必須提及許多大型網站使用的Zend Framework,其中包括bbc.co.uk,現在經常在PHP作業的廣告中提及。

+0

有很多.NET作業,但他們沒有使用MVC框架。開發人員傾向於遠離舊的.NET,至少從我曾經談論的那些.NET開始。他們已經跳槽到Django或Rails,舊的東西似乎有些可怕。 – 2009-10-23 19:32:00

3

我在使用Django,Ruby on Rails和(eiuw!)甚至Zope的酷小公司中遇到過真正的項目。 .NET是用於天線寶寶的 - 我只聽說它被不知道更好的大公司所使用。

+2

我同意在我住的地方附近的小創業公司使用.NET的情況相對不尋常(儘管它因行業而異)。也就是說,例外情況很常見。例如,我最近聽說一家本地初創公司在.NET上運行一個受歡迎的網站,開發人員可以提出編碼問題並獲得快速答案。現在,如果我只記得哪個網站是....任何人都知道? :-) – 2009-10-16 00:31:40

3

我會說知道兩三個比知道被廣泛使用的要好,因爲你會更好地理解它作爲一個概念是如何工作的。例如,如果你只使用了Java,那麼在你理解OOP時可能會缺少一些東西,因爲你會用一種方式來思考它。如果你已經知道Django,儘管你可能會對此表示讚賞。

0

.NET和Java是迄今爲止僱主使用的最大的兩個平臺,因此在尋找工作時最受歡迎。 Java有一些流行的框架,JSF,Spring MVC和Struts看起來都是平等的需求。我不使用.NET,但從我看到的,ASP.NET和ASP.NET MVC是主要的。

3

我想學習一個促進良好編程實踐並受編程社區尊重的框架。不過,我也想要一個我可以用來做日常工作的框架。

對不起,這裏是壞消息的持有者,但這兩個願望往往會衝突。恕我直言,大多數業務經理傾向於在CRM或其他更高級別的第三方代碼庫上進行(醜陋)快速開發。從頭開始建立優雅的網站主要發生在初創公司或真正的網站公司,網站是唯一的產品。這些公司並不是那麼多;許多似乎適合的內容實際上是內部的混亂,即由於時間壓力,凌亂的遺留代碼以及許多其他原因,無論如何,根據「良好的編程實踐」,您通常無法撰寫它們。

我同意Kaleb Brasee的觀點,即Java和.NET是工作可用性優先的兩個主要平臺。

每一個就業市場是獨一無二的,所以看職位空缺您所在地區,或致電招聘了一把,問他們看到什麼需要/可以很容易地把你在一個初級的位置。我所看到的是微軟Sharepoint需求旺盛,還有一些其他區域CMS需求(丹麥,我經常看到Sitecore)。

我認爲ASP.NET MVC 2.0與MVC AreasASP.NET Dynamic Data一起,對許多想要快速開發的老闆們來說,將會有一個好故事,一個很好的解決方案。而且我認爲,由此產生的代碼可能相當好,或者至少與許多存在的「CMS毆打成別的東西」站點相比,這並不壞。但是這對於.NET平臺來說是一個全新的東西,它需要首先賣給決策者......

底線:如果你首先想要工作安全,那麼看看大型CMS像Sharepoint一樣,並在業餘時間處理其他技術。或者,您可以稍後在創業公司/網絡公司找工作;但看看你跳躍之前。

2

既然你提到了Ruby on Rails,你可能想學習Ruby on Rails。它有一些很好的編程實踐和一個非常好的思想架構。 Ruby社區本身也(在我個人看來)創建了非常新穎的框架,並且非常青睞測試和質量。您可以通過創新的測試框架(如Cucumber,webrat,shoulda,cana,rspec,test/spec)來查看。許多初創公司也使用Rails作爲他們的平臺,所以你應該更容易找到工作。您可以開始查看Working With Rails37signals job board。所以在Rails和Ruby社區裏有一個很好的生態系統。

但Rails與Django相比的缺點主要是魔術太多(不太明確),而且文檔不如Django。如果你想得到一個Django的工作,試着看看幾個新聞網站,因爲Django是從一個報紙網站成長起來的,所以它在很多新聞網站都被採用。

2

我會推薦ASP.NET MVC,Ruby on Rails或者Python/Django,它們看起來都很流行和成功,並且基於MVC範例,這對於工作來說絕對是正確的工具。網頁。

0

我會說在這裏提到的大多數框架都會促進良好的實踐。但這並不意味着使用這些框架的公司實際上正在遵循這些良好實踐!實際上很可能不是。所以不要期望太多。

你看,像堆棧溢出,黑客新聞等地方是一個很好的方式來與真正關心他們的手藝的人聯繫。可悲的是,這是少數。世界上有數百萬程序員。他們中的大多數吸吮。他們寫的代碼很爛。他們不在乎。他們對提高技能不感興趣。他們只想學習收集薪水,回家,喂狗,與家人共度時光,看電視,睡覺,第二天再次完成所需的最低限度所需的最低限度。

好吧,這有點苛刻:)我得到的是,你可能最好向想要工作的公司的一些經理問這個問題。我的猜測是,他們中的大多數人會回答.NET或Java。如果你喜歡笑,問問他們爲什麼選擇那種特定的技術而不是其他的東西,並看看他們扔給你多少流行語;)