我想学习一个促进良好编程实践并受到编程社区尊重的框架。
但是,我还想要一个可以用于日常工作的框架。
你会推荐哪一个?
这个问题来自于我学习 Django 基础的经验,因为它在 Stack Overflow 和 Hacker News 上得到了开发者的高度评价。然而.. 在我所在的地区(纽约市)几乎没有任何工作需要 Django 开发人员。
我想学习一个促进良好编程实践并受到编程社区尊重的框架。
但是,我还想要一个可以用于日常工作的框架。
你会推荐哪一个?
这个问题来自于我学习 Django 基础的经验,因为它在 Stack Overflow 和 Hacker News 上得到了开发者的高度评价。然而.. 在我所在的地区(纽约市)几乎没有任何工作需要 Django 开发人员。
作为一个长期从事 ASP.NET 工作的人,我最近经历了一个类似的决策过程,以确定我应该尝试哪些其他 Web 框架。这是我到目前为止所学到的,也可能适用于您的情况:
就个人而言,我决定采用这种方法:
我可能会说 ASP.NET MVC。我总是看到很多 .NET 工作,这似乎是一个可靠的框架,我认为它实际上为所有 stackoverflow 系列提供了动力。作为一名 PHP 开发人员,我还必须提到 Zend 框架,它被包括bbc.co.uk在内的许多大型网站使用,现在在 PHP 工作的广告中经常被提及。
我在使用 Django、Ruby on Rails 和(eiuw!)甚至 Zope 的很酷的小公司遇到过真正的项目。.NET 是用于天线宝宝的——我只听说过它被不了解的大公司使用。
我想说,知道两个或三个比知道一个被广泛使用的要好,因为你会更好地理解它作为一个概念是如何工作的。例如,如果您只使用过 Java,那么您对 OOP 的理解中可能会缺少一些东西,因为您被固定在以一种方式思考它。如果您已经了解 Django,尽管您使用 Spring 可能是对它的一个很好的补充。
我想学习一个促进良好编程实践并受到编程社区尊重的框架。但是,我还想要一个可以用于日常工作的框架。
很抱歉在这里带来坏消息,但这两种愿望往往会发生冲突。恕我直言,大多数业务经理倾向于在 CRM 或其他更高级别的 3rd 方代码库之上进行(丑陋的)快速开发。从头开始构建优雅的网站大多发生在初创公司或真正的网络公司,其中网站是唯一的产品。这些公司并不多。许多看似合适的东西实际上是内部一团糟,即由于时间压力、混乱的遗留代码和许多其他原因,您通常无法根据“良好的编程实践”进行编写。
我同意 Kaleb Brasee 的观点,即 Java 和 .NET 是优先考虑工作可用性的两个主要平台。
每个就业市场都是独一无二的,因此请查看您所在地区的职位空缺,或致电少数招聘人员并询问他们认为需要什么/可以轻松地将您置于初级职位。我看到的是 Microsoft Sharepoint 很受欢迎,而其他一些区域性 CMS 也很受欢迎(在丹麦,我经常看到 Sitecore)。
我认为 ASP.NET MVC 2.0 与MVC Areas和ASP.NET Dynamic Data一起,对于许多想要快速发展的老板来说,将会有一个很好的故事,一个很好的解决方案。而且我认为生成的代码可能还不错,或者至少与现有的许多“CMS 被打入其他东西”网站相比还不错。但这对于 .NET 平台来说是一个全新的东西,需要先卖给决策者……
底线:如果您首先需要工作保障,那么请查看像 Sharepoint 这样的大型 CMS,并在业余时间研究其他技术。或者,您可以稍后在初创公司/网络公司工作;但在你跳跃之前先看看。
你试过 Spring MVC 吗?许多公司确实将 Java 用于 Web 应用程序(或 .NET)和基于 Web 服务的应用程序。
既然您提到了 Ruby on Rails,您可能想学习 Ruby on Rails。它有一些很好的编程实践和一个经过深思熟虑的架构。Ruby 社区本身(在我个人看来)也创建了非常创新的框架,并且非常支持测试和质量。您可以通过 Cucumber、webrat、should、cana、rspec、test/spec 等创新测试框架看到这一点。许多初创公司也使用 Rails 作为他们的平台,所以你应该更容易找到工作。您可以开始查看使用 Rails和37signals 工作板。所以 Rails 和 Ruby 社区内部有一个很好的生态系统。
但是 Rails 与 Django 相比的缺点主要是有太多的魔法(不太明确)并且文档不如 Django。如果你想获得一份 Django 工作,请尝试查看几个新闻网站,因为 Django 是从一个报纸网站成长起来的,因此它在基于新闻的网站中被大量采用。
我会推荐 ASP.NET MVC、Ruby on Rails 或 Python/Django,它们似乎都很流行和成功,并且基于 MVC 范式,当涉及到 Web 时,这绝对是适合工作的工具。
.NET 和 Java 是迄今为止雇主使用的两个最大平台,因此在寻找工作时需求最大。Java 有一些流行的框架,JSF、Spring MVC 和 Struts 的需求似乎都差不多。我不使用 .NET,但据我所知,ASP.NET 和 ASP.NET MVC 是主要的。
我想说,这里提到的大多数框架都促进了良好的实践。但这并不一定意味着使用这些框架的公司实际上正在遵循这些良好实践!事实上很可能不是。所以不要期望太高。
你看,Stack Overflow、Hacker News 等网站是与真正关心他们的手艺的人建立联系的好方法。可悲的是,这是少数。世界上有数以百万计的程序员。他们中的大多数都很烂。他们写的代码很烂。他们不在乎。他们对提高技能不感兴趣。他们只想了解领取薪水、回家、喂狗、与家人共度时光、看电视、上床睡觉并在第二天再做一遍所需的最低限度的知识。
好吧,这有点苛刻 :) 我的意思是,你最好向你想工作的公司的一些经理提出这个问题。我的猜测是他们中的大多数人会回答 .NET 或 Java。如果您想笑,请问他们为什么选择该特定技术而不是其他技术,看看他们向您扔了多少流行语;)