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

发布于 2024-08-07 17:54:27 字数 207 浏览 4 评论 0原文

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

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

您会推荐哪一款?

这个问题来自于我学习 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

少女的英雄梦 2024-08-14 17:54:27

作为一名长期使用 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,这样我可以更好地理解应用跨平台
  • 学习 JQuery 的 MVC 和 REST 概念(再次强调,平台中立)
  • 暂时放弃 ORM 选择——有太多其他事情需要担心,
  • 在 Rails 中构建一些项目,这是我一直在关注的较新的 SF 湾区初创公司中使用最多的框架
  • 学习有关 Python/Django、Java/Spring 和 Groovy/Grails 的基础知识(例如,阅读一两本书,尝试一些示例)。

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:

  • framework/platofrm choices (and hence job opportunities) are highly regional-- the Bay Area job market differs alot from what you'll find in NYC, Chicago, Montreal, or London. Look at local job listings (craigslist and indeed are good places to start) to get a good sense at what's in demand.
  • similarly, usage varies alot based on the size and type of company. if you want to get a job in a large company, Spring MVC and ASP.NET MVC may be your best bets. In small companies, DJango and (especially) Rails seem to be on the rise.
  • usage also sometimes varies by industry. for example, many HR apps seem be to .NET based, while financial/banking apps seem to favor Java. if you want to work in a particular industry, check out what up-and-coming companies in that industry are using.
  • when investing your scarce time in learning something new, favor technologies which are on the upswing of the adoption curve (e.g. Rails) rather than frameworks with wider adoption which may not be growing as fast. Also be wary of very early or niche frameworks which may not ever gain wide adoption.
  • the one common thread between most (or almost all) frameworks gaining in popularity is that they're MVC frameworks and rely heavily on a solid understanding of REST. Learning those concepts in depth is a good idea.
  • before deciding to invest a lot of time in one framework, gain a basic understanding of several of them, so you can get a reasonable sense of what you like and don't about each-- and so if you end up applying for a job using a framework you haven't learned, at least you'll be able to talk intelligently about it.
  • If you focus on what you enjoy, you'll be more motivated to learn it. For example, personally I found Rails (regarless of employment opportunities) more interesting than Spring or Django, so I decided to focus on Rails first. Others may have different impressions-- follow your programmer instincts. That said, there are often few jobs using technologies you find fascinating, so try to strike the right balance: technology you like that many companies are actually hiring people to use!
  • once you answer the basic "what framework" question, there are many more questions lurking, including picking a javascript framework, validation framework, an ORM, etc. Don't worry too much about those choices yet-- when starting, just pick the default implementation for your framework. But as you get more advanced, the same argument about frameworks also hold for those other things-- e.g. it's useful to know a few ORMs.

Personally, I decided on this approach:

  • continue building stuff in what I knew best (ASP.NET) but transition all work to ASP.NET MVC, where I can better understand MVC and REST concepts which apply cross-platform
  • learn JQuery (again, platform neutral)
  • blow off the ORM choice alltogether for now-- too many other things to worry about
  • build a few projects in Rails, which is the framework I see used most in the newer SF-Bay-Area startups I've been looking at
  • learn the basics (e.g. read a book or two, try a few samples) about Python/Django, Java/Spring, and Groovy/Grails.
盛夏已如深秋| 2024-08-14 17:54:27

我在很酷的小公司遇到过使用 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.

顾铮苏瑾 2024-08-14 17:54:27

我想说,了解两到三个比了解一个被广泛使用的更好,因为你会更好地理解它作为一个概念是如何运作的。例如,如果您只使用过 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.

む无字情书 2024-08-14 17:54:27

我可能会说 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.

止于盛夏 2024-08-14 17:54:27

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

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

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

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

我认为 ASP.NET MVC 2.0 与 MVC 区域ASP.NET 动态数据 将为其中许多人提供一个好故事、一个好的解决方案想要快速发展的老板。我认为生成的代码可能相当不错,或者至少与现有的许多“CMS 被打入其他内容”的网站相比还不错。但这对于 .NET 平台来说是一个全新的事物,需要首先将其出售给决策者...

底线:如果您首先想要工作保障,那么请考虑大型 CMS,例如 Sharepoint ,并在业余时间研究其他技术。或者您可以稍后在初创公司/网络公司工作;但三思而后行。

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.

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.

凹づ凸ル 2024-08-14 17:54:27

你尝试过 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.

海未深 2024-08-14 17:54:27

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

最终幸福 2024-08-14 17:54:27

我会推荐 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.

嘴硬脾气大 2024-08-14 17:54:27

.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.

薄荷梦 2024-08-14 17:54:27

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

你看,像 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 ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文