Какой веб-фреймворк для тех, кто хочет работать?

Я хочу изучить фреймворк, который продвигает хорошие практики программирования и уважается сообществом программистов.

Однако мне также нужен фреймворк, который я могу использовать в повседневной работе.

Какой из них вы бы порекомендовали?

Этот вопрос исходит из моего опыта изучения основ Django, потому что он был высоко оценен разработчиками на Stack Overflow и Hacker News. Однако ... в моем районе (Нью-Йорк) почти нет вакансий, на которые нужны разработчики Django.


person volni    schedule 15.10.2009    source источник
comment
К сожалению, хорошие практики программирования и повседневная работа не совпадают настолько, насколько нам хотелось бы.   -  person Colin Coghill    schedule 16.10.2009


Ответы (10)


Как давний специалист по ASP.NET, я недавно прошел через аналогичный процесс принятия решения, чтобы выяснить, какие еще веб-фреймворки мне следует попробовать. Вот то, что я узнал до сих пор, что может быть применимо и к вашему случаю:

  • Выбор фреймворка / платформы (и, следовательно, возможности трудоустройства) сильно зависит от региона - рынок труда в районе залива сильно отличается от того, что вы найдете в Нью-Йорке, Чикаго, Монреале или Лондоне. Посмотрите на местные списки вакансий (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.
person Justin Grant    schedule 15.10.2009

Я встречал настоящие проекты в крутых небольших компаниях, использующих Django, Ruby on Rails и (ага!) Даже Zope. .NET предназначен для телепузиков - я слышал только, что он используется крупными корпорациями, которые ничего не знают.

person alex tingle    schedule 15.10.2009
comment
Я согласен с тем, что использование .NET в небольших стартапах поблизости от того места, где я живу, относительно необычно (хотя это зависит от отрасли). Тем не менее, исключения являются обычным явлением. Например, я недавно слышал о местном стартапе, который запускает популярный веб-сайт на .NET, где разработчики могут задавать вопросы по кодированию и получать быстрые ответы. Если бы я только мог вспомнить, какой это был сайт ... кто-нибудь знает? :-) - person Justin Grant; 16.10.2009

Я бы сказал, что знать два или три лучше, чем знать один, который широко используется, потому что вы лучше поймете, как это работает как концепция. Например, если вы использовали только Java, в вашем понимании ООП, вероятно, чего-то не хватает, потому что вы склонны думать об этом одним способом. Если вы уже знаете Django, хотя Spring, вероятно, будет хорошим дополнением к этому.

person Tim    schedule 15.10.2009

я бы, наверное, сказал ASP.NET MVC. Я всегда вижу много работы .NET, и это кажется прочной структурой, которая, как мне кажется, фактически поддерживает все семейство stackoverflow. Как разработчик PHP я должен также упомянуть Zend Framework, который используется рядом крупных сайтов, включая bbc.co .uk и теперь часто упоминается в рекламе вакансий PHP.

person robjmills    schedule 15.10.2009
comment
Вокруг много .NET-заданий, но они не используют платформу MVC. Разработчики склонны убегать от старой школы .NET, по крайней мере, от тех, с которыми я разговаривал. Они перешли на Django или Rails, кажется, что-то страшное есть в старых вещах. - person Thierry Lam; 23.10.2009

Я хочу изучить фреймворк, который продвигает хорошие практики программирования и уважается сообществом программистов. Однако мне также нужен фреймворк, который я могу использовать в повседневной работе.

Приносим извинения за плохие новости, но эти два желания имеют тенденцию к конфликту. ИМХО большинство бизнес-менеджеров, как правило, идут на (уродливую) быструю разработку поверх CRM или других сторонних кодовых баз более высокого уровня. . Создание элегантных веб-сайтов с нуля в основном происходит в стартапах или настоящих веб-компаниях, где веб-сайт является единственным продуктом. Таких компаний не так уж и много; и многие из тех, которые кажутся подходящими, на самом деле представляют собой беспорядок внутри, то есть из-за нехватки времени, беспорядочного устаревшего кода и многих других причин, по которым вы все равно часто не можете писать в соответствии с «хорошими методами программирования».

Я согласен с Калебом Брейзи в том, что Java и .NET являются двумя основными платформами, когда доступность работы является приоритетом.

Каждый рынок труда уникален, поэтому изучите вакансии в вашем районе или позвоните нескольким рекрутерам и спросите, в чем они видят потребность / могут ли они легко найти вас на должности младшего специалиста. Я вижу, что Microsoft Sharepoint пользуется спросом, и есть спрос на несколько других региональных CMS (в Дании я регулярно вижу Sitecore).

Я думаю, что ASP.NET MVC 2.0 вместе с областями MVC и ASP.NET Dynamic Data будут хорошей историей, хорошим решением для многих из них. начальство, желающее быстрого развития. И я думаю, что результирующий код может быть вполне нормальным или, по крайней мере, неплохим по сравнению со многими существующими сайтами «CMS перебита во что-то еще». Но это совершенно новая вещь для платформы .NET, и ее сначала нужно будет продать лицам, принимающим решения ...

Итог: если вы в первую очередь хотите обеспечить безопасность работы, посмотрите на крупные CMS, такие как Sharepoint, и поработайте над другими технологиями в свободное время. При желании вы можете устроиться на работу в стартап / веб-компанию позже; но посмотри, прежде чем прыгнуть.

person Jesper M    schedule 16.10.2009

Вы пробовали Spring MVC? Многие компании действительно используют Java для веб-приложений (или .NET) и приложений на основе веб-сервисов.

person Jeff Storey    schedule 15.10.2009

Поскольку вы упомянули Ruby on Rails, возможно, вы захотите изучить Ruby on Rails. В нем есть несколько хороших практик программирования и очень хорошо продуманная архитектура. Само сообщество Ruby также (по моему личному мнению) создало очень инновационные фреймворки и очень отдает предпочтение тестированию и качеству. Вы можете убедиться в этом по инновационной среде тестирования, такой как Cucumber, webrat, shoulda, coulda, rspec, test / spec. Многие стартапы также используют Rails в качестве платформы, поэтому вам будет проще найти работу. Вы можете начать смотреть на Работа с Rails и Доска объявлений 37signals. Итак, внутри сообщества Rails и Ruby существует хорошая экосистема.

Но обратная сторона Rails по сравнению с Django заключается в том, что в основном слишком много магии (менее явной), а документация не так хороша, как Django. Если вы хотите устроиться на работу в Django, попробуйте заглянуть на несколько новостных сайтов, потому что Django вырос из газетного сайта, поэтому он широко используется на новостных сайтах.

person Joshua Partogi    schedule 16.10.2009

Я бы порекомендовал ASP.NET MVC, Ruby on Rails или Python / Django, все они кажутся популярными и успешными и основаны на парадигме MVC, которая определенно является правильным инструментом для работы, когда дело доходит до Интернета.

person pinku    schedule 16.10.2009

.NET и Java на сегодняшний день являются двумя крупнейшими платформами, используемыми работодателями, и, следовательно, наиболее востребованными при поиске работы. У Java есть несколько популярных фреймворков, причем JSF, Spring MVC и Struts кажутся примерно равными по спросу. Я не использую .NET, но из того, что я видел, основными являются ASP.NET и ASP.NET MVC.

person Kaleb Brasee    schedule 15.10.2009

Я бы сказал, что большинство упомянутых здесь фреймворков продвигают передовой опыт. Но это не обязательно означает, что компании, использующие эти фреймворки, на самом деле следуют этим передовым методам! На самом деле, скорее всего, нет. Так что не ждите слишком многого.

Видите ли, такие места, как Stack Overflow, Hacker News и т. Д., - отличный способ связаться с людьми, которые действительно заботятся о своем ремесле. К сожалению, это меньшинство. В мире миллионы программистов. Большинство из них - отстой. Код, который они пишут, отстой. Им все равно. Они не заинтересованы в повышении своих навыков. Они просто хотят выучить минимум, необходимый для того, чтобы получить свою зарплату, пойти домой, покормить собаку, провести некоторое время с семьей, посмотреть телевизор, пойти спать и сделать это снова и снова на следующий день.

Хорошо, это было немного жестко :) Я понимаю, что вам, вероятно, лучше задать этот вопрос некоторым менеджерам компаний, в которых вы хотели бы работать. Я предполагаю, что большинство из них ответят на .NET или Java. Если вы хотите посмеяться, спросите их, почему они выбрали именно эту технологию, а не что-то еще, и посмотрите, сколько модных словечек они вам бросят;)

person Daniel Kristensen    schedule 16.10.2009