哪个网络框架适合想要工作的人?
我想学习一个能够促进良好编程实践并受到编程社区尊重的框架。
但是,我还想要一个可以用于日常工作的框架。
您会推荐哪一款?
这个问题来自于我学习 Django 基础知识的经历,因为它在 Stack Overflow 和 Hacker News 上受到了开发者的高度好评。然而......在我所在的地区(纽约)几乎没有任何工作需要 Django 开发人员。
I want to learn a framework that promotes good programming practices and is respected by the programming community.
However, I also want a framework that I can use for a day job.
Which one would you recommend?
This question comes from my experience of learning the basics of Django because it was highly acclaimed by developers on Stack Overflow and Hacker News. However.. there's hardly any jobs in my area (NYC) that are asking for Django developers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
作为一名长期使用 ASP.NET 的人,我最近经历了类似的决策过程,以确定我应该尝试哪些其他 Web 框架。到目前为止,我了解到的内容也可能适用于您的情况:
就我个人而言,我决定采用这种方法:
As a long-time ASP.NET guy, I've recently gone through a similar decision process to figure out what other web frameworks I should try. Here's what I learned so far which may apply to your case too:
Personally, I decided on this approach:
我在很酷的小公司遇到过使用 Django、Ruby on Rails 甚至 Zope 的真实项目。 .NET 是为天线宝宝设计的——我只听说过它被一些不太了解的大公司使用。
I've encountered real projects at cool, small companies using Django, Ruby on Rails and (eiuw!) even Zope. .NET is for teletubbies - I've only ever heard of it being used by big corporations that don't know better.
我想说,了解两到三个比了解一个被广泛使用的更好,因为你会更好地理解它作为一个概念是如何运作的。例如,如果您只使用过 Java,那么您对 OOP 的理解可能会有所缺失,因为您只以一种方式思考它。如果你已经了解 Django,那么 Spring 可能会是一个很好的恭维。
I would say that knowing two or three is better than knowing one that is widely used because you will gain a better understanding of how it works as a concept. For instance if you've only used Java, there is something probably missing in your understanding of OOP, because you're pigeon-holed into thinking about it in one way. If you already know Django though you Spring would probably be a good compliment to that.
我可能会说 ASP.NET MVC。我总是看到很多 .NET 工作,这似乎是一个可靠的框架,我认为它实际上为所有 stackoverflow 系列提供了支持。作为一名 PHP 开发人员,我还必须提及 Zend Framework,它被许多大型网站使用,包括 bbc.co .uk,现在 PHP 职位广告中经常提到。
i'd probably say ASP.NET MVC. I always see lots of .NET jobs around and this seems to be a solid framework which i think in fact powers all the stackoverflow family. As a PHP developer i must also make a mention of Zend Framework which is used by a number of big sites including bbc.co.uk and is now frequently mentioned in advertisements for PHP jobs.
很抱歉在这里带来坏消息,但这两种愿望往往会发生冲突。恕我直言,大多数业务经理倾向于在 CRM 或其他更高级别的第三方代码库之上进行(丑陋的)快速开发。从头开始构建优雅的网站主要发生在初创公司或真正的网络公司中,网站是唯一的产品。这些公司的数量并不多;许多看似合适的代码实际上内部很混乱,即由于时间压力、混乱的遗留代码以及许多其他原因,您通常无法根据“良好的编程实践”进行编写。
我同意 Kaleb Brasee 的观点,即当优先考虑工作机会时,Java 和 .NET 是两个主要平台。
每个就业市场都是独一无二的,因此请查看您所在地区的职位空缺,或者致电几位招聘人员,询问他们认为需要什么/可以轻松地将您安排在初级职位上。我看到的是,Microsoft Sharepoint 很受欢迎,其他一些区域 CMS 也很受欢迎(在丹麦,我经常看到 Sitecore)。
我认为 ASP.NET MVC 2.0 与 MVC 区域 和 ASP.NET 动态数据 将为其中许多人提供一个好故事、一个好的解决方案想要快速发展的老板。我认为生成的代码可能相当不错,或者至少与现有的许多“CMS 被打入其他内容”的网站相比还不错。但这对于 .NET 平台来说是一个全新的事物,需要首先将其出售给决策者...
底线:如果您首先想要工作保障,那么请考虑大型 CMS,例如 Sharepoint ,并在业余时间研究其他技术。或者您可以稍后在初创公司/网络公司工作;但三思而后行。
Sorry to be the bearer of bad news here, but those two desires tend to conflict. IMHO most business managers tend to go for (ugly) rapid development on top of CRMs or other higher-level 3rd party codebases. Building elegant websites from the ground up mostly happens in startups, or true web companies where the website is the sole product. There are not that many of those companies; and many of those that seem to fit are actually a mess on the inside, i.e. due to time pressure, messy legacy code and many other reasons you often don't get to write according to "good programming practices" anyway.
I agree with Kaleb Brasee that Java and .NET are the two main platforms when job availability is a priority.
Every job market is unique, so look at job openings in your area, or call a handful of recruiters and ask what they see a need for / could easily place you in a junior position for. What I'm seeing is that Microsoft Sharepoint is in demand, and a few other regional CMS'es are in demand (in Denmark I see Sitecore regularly).
I think ASP.NET MVC 2.0 together with MVC Areas and ASP.NET Dynamic Data will have a good story, a good solution, for many of those bosses who want rapid development. And I think the resulting code could be quite okay, or at least not bad compared to many of the "CMS beaten into something else" sites that exist. But this is a brand new thing for the .NET platform, and it will need to be sold to the decision makers first...
Bottom line: If you want job security first and foremost, then look at large CMS's like Sharepoint, and work on other technologies in your spare time. Optionally you could take a job at a startup / a web company later; but look before you leap.
你尝试过 Spring MVC 吗?许多公司确实将 Java 用于 Web 应用程序(或 .NET)和基于 Web 服务的应用程序。
Have you tried Spring MVC? Many companies do use Java for web-apps (or .NET) and web service based applications.
既然您提到了 Ruby on Rails,您可能想学习 Ruby on Rails。它有一些很好的编程实践和一个经过深思熟虑的架构。 Ruby 社区本身(在我个人看来)也创建了非常创新的框架,并且非常支持测试和质量。您可以通过 Cucumber、webrat、shoulda、coulda、rspec、test/spec 等创新测试框架看到这一点。许多初创公司也使用 Rails 作为他们的平台,所以你应该更容易找到工作。您可以开始查看 使用 Rails 和 37signals 求职板。所以Rails和Ruby社区内部有一个很好的生态系统。
但与 Django 相比,Rails 的缺点主要是魔法太多(不太明确),而且文档不如 Django。如果你想找到一份 Django 工作,请尝试查看几个新闻网站,因为 Django 是从报纸网站发展而来的,因此它在新闻网站中被大量采用。
Since you mentioned Ruby on Rails, you might want to learn Ruby on Rails. It has got some good programming practices in it and a very well thought architecture. The Ruby community itself have also (in my personal opinion) created very innovative frameworks and highly favor testing and quality. You can see this by the innovative testing framework like Cucumber, webrat, shoulda, coulda, rspec, test/spec. Many startups also uses Rails as their platform, so it should be easier for you to get a job. You can start looking at Working With Rails and 37signals job board. So there is a good ecosystem inside Rails and Ruby community.
But the downside of Rails compare to Django is mainly there are too much magic (less explicit) and the docs is not as good as Django. If you want to get a Django job, try looking at several news site because Django grew up from a newspaper site so it is adopted alot in news based sites.
我会推荐 ASP.NET MVC、Ruby on Rails 或 Python/Django,它们似乎都很流行且成功,并且基于 MVC 范例,这绝对是适合 Web 工作的工具。
I would recommend ASP.NET MVC, Ruby on Rails, or Python/Django, they all seem to be popular and successful, and based on the MVC paradigm which is definitely the right tool for the job when it comes to the web.
.NET 和 Java 是迄今为止雇主使用的最大的两个平台,因此在寻找工作时最受欢迎。 Java 有一些流行的框架,其中 JSF、Spring MVC 和 Struts 的需求似乎都差不多。我不使用 .NET,但据我所知,ASP.NET 和 ASP.NET MVC 是主要的。
.NET and Java are by far the 2 largest platforms used by employers, and hence the most in-demand when searching for a job. Java has a few popular frameworks, with JSF, Spring MVC and Struts all seeming to be about equal in demand. I don't use .NET, but from what I've seen, ASP.NET and ASP.NET MVC are the major ones.
我想说,这里提到的大多数框架都提倡良好实践。但这并不一定意味着使用这些框架的公司实际上遵循了这些良好实践!事实上,很可能不是。所以不要期望太多。
你看,像 Stack Overflow、Hacker News 等地方是与真正关心自己的技术的人联系的好方法。遗憾的是,这只是少数。世界上有数百万程序员。他们中的大多数都很糟糕。他们写的代码很糟糕。他们不在乎。他们对提高自己的技能不感兴趣。他们只是想了解领取薪水、回家、喂狗、与家人共度时光、看电视、上床睡觉并在第二天重新做这一切所需的最低限度。
好吧,这有点苛刻:)我想说的是,你最好向你想工作的公司的一些经理问这个问题。我的猜测是,他们中的大多数人都会回答 .NET 或 Java。如果您想笑,请询问他们为什么选择该特定技术而不是其他技术,并看看他们向您抛出了多少流行语;)
I would say that most of the frameworks mentioned here promotes good practices. But that doesn't neccesarily mean that the companies using those frameworks are actually following those good practices! In fact most probably aren't. So don't expect too much.
You see, places like Stack Overflow, Hacker News etc. are a great way to connect with people who really care about their craft. Sadly this is a minority. There are millions of programmers in the world. Most of them suck. The code they write sucks. They don't care. They are not interested in improving their skills. They just want to learn the bare minimum required to collect their paycheck, go home, feed the dog, spend some time with the family, watch some TV, go too bed and do it all over again the next day.
Okay that was a bit harsh :) What I'm getting at is that you are probably better off asking this question to some of the managers at the companies where you would like to work. My guess is that most of them will answer .NET or Java. If you are up for a laugh ask them why they chose that particular technology over something else, and see how many buzzwords they throw at you ;)