哪个网页框架适合想要工作的人?

时间:2009-10-15 22:20:44

标签: ruby-on-rails django frameworks web-frameworks

我想学习一个促进良好编程实践的框架,并受到编程社区的尊重。

但是,我还想要一个可用于日常工作的框架。

你会推荐哪一个?

这个问题来自我学习Django基础知识的经验,因为它在Stack Overflow和Hacker News上得到了开发人员的高度赞扬。但是......我所在地区(纽约市)几乎没有任何工作要求Django开发人员。

10 个答案:

答案 0 :(得分:18)

作为一个长期的ASP.NET人员,我最近经历了一个类似的决策过程,以找出我应该尝试的其他Web框架。这是我到目前为止所学到的,也可能适用于你的案例:

  • 框架/平台选择(以及工作机会)是高度区域化的 - 湾区就业市场与您在纽约,芝加哥,蒙特利尔或伦敦的发现有很大不同。查看当地的工作列表(craigslist,确实是开始的好地方),以便对需求有所了解。
  • 同样,根据公司的规模和类型,使用情况也各不相同。如果你想在一家大公司找到一份工作,Spring MVC和ASP.NET MVC可能是你最好的选择。在小公司中,DJango和(特别是)Rails似乎正在崛起。
  • 有时也会因行业而异。例如,许多HR应用程序似乎基于.NET,而金融/银行应用程序似乎更喜欢Java。如果您想在特定行业工作,请查看该行业正在使用的新兴公司。
  • 在投入宝贵时间学习新事物时,赞成采用曲线上升的技术(例如Rails),而不是采用更广泛的框架,而这些框架可能不会快速增长。同时要警惕可能无法广泛采用的早期或小众框架。
  • 大多数(或几乎所有)框架之间的一个共同点是,它们是MVC框架,并且在很大程度上依赖于对REST的深入理解。深入学习这些概念是个好主意。
  • 在决定在一个框架中投入批次之前,先对其中的几个进行基本的了解,这样你就可以合理地理解你喜欢什么,不关心每个 - 因此,如果您最终使用未学习的框架申请工作,至少您将能够聪明地谈论它。
  • 如果你专注于自己喜欢的东西,你就会更有动力去学习它。例如,我个人发现Rails(无论是就业机会)比Spring或Django更有趣,所以我决定首先关注Rails。其他人可能会有不同的印象 - 遵循程序员的直觉。也就是说,通常很少有工作使用你觉得很有吸引力的技术,所以尽量找到合适的平衡点:你喜欢的技术很多公司实际上都是雇用人们使用的!
  • 一旦你回答了基本的“什么框架”问题,潜伏着更多的问题,包括选择javascript框架,验证框架,ORM等等。不要过多担心这些选择 - 启动时,只需选择框架的默认实现。但随着你越来越先进,关于框架的相同论点也适用于其他事情 - 例如了解一些ORM很有用。

就个人而言,我决定采用这种方法:

  • 继续以我最熟悉的方式构建内容(ASP.NET),但将所有工作转移到ASP.NET MVC,在那里我可以更好地理解应用跨平台的MVC和REST概念
  • 学习JQuery(再次,平台中立)
  • 现在完全放弃ORM选择 - 太多其他事情要担心
  • 在Rails中构建一些项目,这是我在最新的SF-Bay-Area初创公司中看到的最常用的框架我一直在看
  • 了解Python / Django,Java / Spring和Groovy / Grails的基础知识(例如,阅读一两本书,尝试一些示例)。

答案 1 :(得分:3)

我可能会说ASP.NET MVC。我总是看到很多.NET工作,这似乎是一个坚实的框架,我认为实际上为所有stackoverflow系列提供支持。作为一名PHP开发人员,我还必须提及Zend Framework,它被包括bbc.co.uk在内的许多大型网站使用,现在在PHP作业的广告中经常被提及。

答案 2 :(得分:3)

我在使用Django,Ruby on Rails和(甚至是!)甚至Zope的酷小公司遇到过真正的项目。 .NET适用于天线宝宝 - 我只听说它被不太了解的大公司使用。

答案 3 :(得分:3)

我想说知道两三个比知道一个被广泛使用的更好,因为你将更好地理解它如何作为一个概念。例如,如果您只使用Java,那么您对OOP的理解可能会缺少一些东西,因为您已经陷入了以某种方式思考它的过程中。如果你已经知道Django,你可能会对Spring赞不绝口。

答案 4 :(得分:3)

  

我想学习一个促进良好编程实践的框架,并受到编程社区的尊重。但是,我还想要一个可用于日常工作的框架。

很抱歉在这里成为坏消息的承载者,但这两个愿望往往会发生冲突。恕我直言,大多数业务经理倾向于在CRM或其他更高层次上进行(丑陋)快速发展第三方代码库。从头开始构建优雅的网站主要发生在创业公司或网站是唯一产品的真正的网络公司。这些公司并不多;许多看似合适的内容实际上是内部的混乱,即由于时间压力,凌乱的遗留代码以及许多其他原因,你通常根据“良好的编程习惯”无法编写。

我同意Kaleb Brasee的观点,当工作可用性成为优先事项时,Java和.NET是两个主要平台。

每个就业市场都是独一无二的,所以请查看您所在地区的职位空缺,或致电少数招聘人员,询问他们认为需要/可以轻松将您置于初级职位。我所看到的是Microsoft Sharepoint的需求,以及其他一些区域性CMS的需求(在丹麦我经常看到Sitecore)。

我认为ASP.NET MVC 2.0与MVC AreasASP.NET Dynamic Data一起为许多想要快速开发的老板提供了一个好故事,一个很好的解决方案。而且我认为生成的代码可能相当不错,或者与许多“存在于其他网站”的网站相比,至少还不错。但这对于.NET平台来说是一个全新的东西,它需要首先出售给决策者......

底线:如果您首先想要工作安全,那么请查看大型CMS,如Sharepoint,并在业余时间使用其他技术。您可以选择在创业时工作/以后是一家网络公司;但是在你跳跃之前先看看。

答案 5 :(得分:2)

你试过Spring MVC吗?许多公司确实将Java用于Web应用程序(或.NET)和基于Web服务的应用程序。

答案 6 :(得分:2)

既然你提到了Ruby on Rails,你可能想学习Ruby on Rails。它有一些很好的编程实践和一个非常好的思想架构。 Ruby社区本身也(我个人认为)创建了非常创新的框架,非常有利于测试和质量。您可以通过创新的测试框架来看到这一点,如Cucumber,webrat,shoulda,cana,rspec,test / spec。许多初创公司也使用Rails作为他们的平台,所以你应该更容易找到工作。您可以开始查看Working With Rails37signals job board。所以在Rails和Ruby社区中有一个很好的生态系统。

但是,与Django相比,Rails的缺点主要是有太多的魔法(不太明确),而且文档不如Django好。如果你想获得一份Django工作,可以试试看几个新闻网站,因为Django是从一家报社网站长大的,所以它在新闻网站上被大量采用。

答案 7 :(得分:2)

我会推荐ASP.NET MVC,Ruby on Rails或Python / Django,它们似乎都很受欢迎且成功,并且基于MVC范例,它绝对是适合工作的工具。

答案 8 :(得分:0)

.NET和Java是迄今为止雇主使用的两个最大的平台,因此在搜索工作时最受欢迎。 Java有一些流行的框架,JSF,Spring MVC和Struts似乎都需求相同。我不使用.NET,但从我所看到的,ASP.NET和ASP.NET MVC是主要的。

答案 9 :(得分:0)

我想说这里提到的大多数框架都会促进良好实践。但这并不意味着使用这些框架的公司实际上遵循了这些良好做法!事实上很可能不是。所以不要期待太多。

你知道,像Stack Overflow,Hacker News等这样的地方是与真正关心他们工艺的人联系的好方法。可悲的是,这是少数。世界上有数百万程序员。大多数人都很糟糕。他们写的代码很糟糕。他们不在乎。他们对提高技能不感兴趣。他们只想学习收取薪水,回家,喂狗,与家人共度时光,看电视,过早睡觉以及第二天再做一遍所需的最低限度。

好的,这有点苛刻:)我得到的是,你可能最好不要向你想工作的公司的一些经理提出这个问题。我的猜测是他们中的大多数人会回答.NET或Java。如果你想笑一笑,问他们为什么选择那种特殊技术而不是其他东西,并看看他们向你扔了多少流行语;)