6

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

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

你会推荐哪一个?

这个问题来自于我学习 Django 基础的经验,因为它在 Stack Overflow 和 Hacker News 上得到了开发者的高度评价。然而.. 在我所在的地区(纽约市)几乎没有任何工作需要 Django 开发人员。

4

10 回答 10

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 的基础知识(例如阅读一两本书,尝试一些示例)。
于 2009-10-15T23:19:10.670 回答
3

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

于 2009-10-15T22:24:46.167 回答
3

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

于 2009-10-15T22:30:07.367 回答
3

我想说,知道两个或三个比知道一个被广泛使用的要好,因为你会更好地理解它作为一个概念是如何工作的。例如,如果您只使用过 Java,那么您对 ​​OOP 的理解中可能会缺少一些东西,因为您被固定在以一种方式思考它。如果您已经了解 Django,尽管您使用 Spring 可能是对它的一个很好的补充。

于 2009-10-15T22:38:21.610 回答
3

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

很抱歉在这里带来坏消息,但这两种愿望往往会发生冲突。恕我直言,大多数业务经理倾向于在 CRM 或其他更高级别的 3rd 方代码库之上进行(丑陋的)快速开发。从头开始构建优雅的网站大多发生在初创公司或真正的网络公司,其中网站是唯一的产品。这些公司并不多。许多看似合适的东西实际上是内部一团糟,即由于时间压力、混乱的遗留代码和许多其他原因,您通常无法根据“良好的编程实践”进行编写。

我同意 Kaleb Brasee 的观点,即 Java 和 .NET 是优先考虑工作可用性的两个主要平台。

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

我认为 ASP.NET MVC 2.0 与MVC AreasASP.NET Dynamic Data一起,对于许多想要快速发展的老板来说,将会有一个很好的故事,一个很好的解决方案。而且我认为生成的代码可能还不错,或者至少与现有的许多“CMS 被打入其他东西”网站相比还不错。但这对于 .NET 平台来说是一个全新的东西,需要先卖给决策者……

底线:如果您首先需要工作保障,那么请查看像 Sharepoint 这样的大型 CMS,并在业余时间研究其他技术。或者,您可以稍后在初创公司/网络公司工作;但在你跳跃之前先看看。

于 2009-10-16T00:25:10.503 回答
2

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

于 2009-10-15T22:22:49.613 回答
2

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

但是 Rails 与 Django 相比的缺点主要是有太多的魔法(不太明确)并且文档不如 Django。如果你想获得一份 Django 工作,请尝试查看几个新闻网站,因为 Django 是从一个报纸网站成长起来的,因此它在基于新闻的网站中被大量采用。

于 2009-10-16T08:57:18.870 回答
2

我会推荐 ASP.NET MVC、Ruby on Rails 或 Python/Django,它们似乎都很流行和成功,并且基于 MVC 范式,当涉及到 Web 时,这绝对是适合工作的工具。

于 2009-10-16T09:00:37.007 回答
0

.NET 和 Java 是迄今为止雇主使用的两个最大平台,因此在寻找工作时需求最大。Java 有一些流行的框架,JSF、Spring MVC 和 Struts 的需求似乎都差不多。我不使用 .NET,但据我所知,ASP.NET 和 ASP.NET MVC 是主要的。

于 2009-10-15T23:52:51.927 回答
0

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

你看,Stack Overflow、Hacker News 等网站是与真正关心他们的手艺的人建立联系的好方法。可悲的是,这是少数。世界上有数以百万计的程序员。他们中的大多数都很烂。他们写的代码很烂。他们不在乎。他们对提高技能不感兴趣。他们只想了解领取薪水、回家、喂狗、与家人共度时光、看电视、上床睡觉并在第二天再做一遍所需的最低限度的知识。

好吧,这有点苛刻 :) 我的意思是,你最好向你想工作的公司的一些经理提出这个问题。我的猜测是他们中的大多数人会回答 .NET 或 Java。如果您想笑,请问他们为什么选择该特定技术而不是其他技术,看看他们向您扔了多少流行语;)

于 2009-10-16T15:35:12.877 回答