Начните с экосистемы Java (JVM)

Я пришел от другого вопроса к этому:

Как начать работу с экосистемой Java (JVM)? Что такое начальные, средние и продвинутые базы знаний (баги!)? Честно говоря, экосистема Java всегда немного сбивала меня с толку, поэтому было бы очень полезно предоставить несколько «справочных справок» и «учебников де-факто» для изучения (кривой!) JVM.

Примечание. Я хочу использовать JVM со Scala (или Clojure), но не с самой Java.

Я разработчик С# (WPF, Windows Forms, ASP.NET, веб-службы и т. д.).


person Kaveh Shahbazian    schedule 07.06.2010    source источник
comment
Да, я чувствую вашу боль, меня тоже интересуют новые языки JVM (не сама Java), и мне всегда кажется, что знание Java и инструментов Java является обязательным условием.   -  person Eldritch Conundrum    schedule 19.02.2012
comment
Если вы хотите использовать Clojure, я предлагаю начать с Leiningen.   -  person Bill    schedule 02.09.2013


Ответы (4)


Учебник по Java — хорошее место для начала.

Обновление: у вас достаточно вопросов примерно для дюжины сообщений здесь ;-) Честно говоря, вы должны провести небольшое исследование самостоятельно (Google вам в помощь), а затем задать более конкретные, целенаправленные вопросы; это дало бы лучшие результаты. (например, я не думаю, что кто-то может ответить на ваш вопрос о Swing или JavaFX без более конкретных подробностей о том, чего вы пытаетесь достичь.) Ниже я попытаюсь дать несколько советов по областям, которые я знаю в некоторой степени.

  • для сервлетов и других веб-фреймворков есть куча руководств.
  • Tomcat и Jetty являются серверами приложений.
  • существует множество различных веб-фреймворков, потому что у разных людей разные предпочтения, идеи и стиль, поэтому многие создали свой собственный фреймворк. Это может сбивать с толку, но, по крайней мере, выбор есть :-)
  • для постоянства, помимо JDBC, еще одним сильным вариантом являются фреймворки ORM. Я использую Hibernate и могу рекомендовать его; в более крупном проекте это может сделать вашу жизнь намного проще. В конечном счете это зависит от вашего конкретного проекта и ограничений; нет единственно правильного выбора.
  • AFAIK Java не имеет эквивалента LINQ.

См. также эту публикацию для получения дополнительной информации. рекомендации.

person Péter Török    schedule 07.06.2010
comment
Спасибо; но эта страница в основном посвящена языку Java (может быть, это неправильная вещь, которую я говорю, но я все еще здесь). Более конкретным примером может быть база знаний для веб-разработки на JVM (с другим языком, кроме Java, например, Scala)? Какие существуют различные технологии сервлетов? Что такое Гиз? Кот? Причал? Почему существует так много разных вещей для запуска веб-приложения на основе JVM? Для настольного графического интерфейса я должен использовать Swing? JavaFX? Для базы данных JDBC все, что мне нужно? И есть еще вопросы, ориентированные на .NET, такие как: существует ли технология, подобная LINQ, для JVM (на любом языке)? - person Kaveh Shahbazian; 08.06.2010

Веб-приложения на основе Java должны выполняться внутри веб-контейнера, такого как Jetty или Tomcat.
Вы создаете свое приложение и развертываете его в контейнере, в котором размещается приложение во время выполнения.

Чистый/обычный JDBC должен использоваться непосредственно только простыми приложениями или слоями интеграции, которые не имеют доступа к модели классов. более высокий уровень, чем старый добрый JDBC. Популярные O/R-фреймворки включают:

Для веб-разработки вы можете начать с AppFuse, см. краткое руководство.

AppFuse — это система шаблонов, которая создает для вас скелет приложения. Затем посмотрите глубже на то, что было сгенерировано, и посмотрите, какие фреймворки они используют.

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

Я не видел поддержки AppFuse для Guice или GWT.
Guice есть внедрения зависимостей, вместо него можно использовать другие Spring или пикоконтейнер.

Другой исследовательский подход, который вы могли бы попробовать, это начать с AndroMDA, который представляет собой модельно-ориентированную архитектуру. - вы начинаете с модели UML, а затем создаете или разрабатываете работающее приложение.
AndroMDA также позволяет вам контролировать выбор реализации базовой платформы путем настройки различных картриджей. Опять же, вам следует копнуть глубже, чтобы увидеть, что они используют в сгенерированное приложение.

person crowne    schedule 07.06.2010

Если вы ищете базовое введение, вам подойдут Учебники по Java. Чтобы заняться другими вещами, такими как веб-разработка на Java, вам нужно будет проконсультироваться с Google для соответствующей технологии, поскольку они очень сильно различаются.

Тем не менее я настоятельно рекомендую ознакомиться с одной книгой: Java Concurrency in Practice.

person TheLQ    schedule 07.06.2010

Да, новичкам почти невозможно начать. Это отпугнет многих разработчиков, а Java рискует остаться без постоянного притока новой крови. Старым пердунам это понравится, это отлично подходит для карьеры, и именно поэтому они делают Java все более и более сложной.

person irreputable    schedule 08.06.2010