Первые шаги в Java: как начать разрабатывать ничего не устанавливая

По прошествию многих лет я подумал, а как бы я разрабатывал свою первую программу на Java, если бы я начал сегодня?
2965189fe81b4c42978fecadff3ffde9.jpg

Знакомство с Java было в университете и при воспоминаниях об этом бросает в холодный пот. Кроме нового незнакомого языка, приходилось устанавливать какой-то JDK, потом IDE, потом создавать первый проект и вручную добавлять в него библиотеки. Делать по аналогии с готовыми программами и ловить неизведанные java.lang.ClassNotFoundException и java.lang.NoSuchMethodException и тому подобный ужас. Когда знал как работать только в операционной системе Windows и доступ в интернет был по модему через телефонную линию.

Надеюсь интересно будет как тем, кто делает первые шаги в java и тем, кто помнит jdk 1.4. Попробуем online IDE Eclipse Che.

Оговорюсь про главное условие — сейчас у вас должен быть стабильный доступ в интернет. И конечно же после прочтении статьи вы не получите работу Java архитектором в Нью-Йорке за 180 000 $ в год и даже не выучите Java за 21 день. Просто разработаем в современном окружении свой Hello world в несколько строчек кода, но с веб сервером.

Облачная IDE и разработка в Docker контейнере
Открытое программное обеспечение Eclipse Che — IDE нового поколения для коллективной разработки ПО. Не столь привычно нам «старичкам», но позволяет разрабатывать имея локально лишь современный браузер и стабильный доступ к сети. Сервер Che может быть запущен в локальной сети. Для быстрого старта нам даже не нужно ничего устанавливать!!!

Перейдите по ссылке Eclipse Che. Там возможно создать бесплатный аккаунт на codenvy.com. Можно зарегистрировать его на свою почту, либо воспользоваться OAuth провайдерами: Github, Google или Microsoft online.

На стороне сервера автоматически создается Docker контейнер с уже настроенным окружением для разработки. С помощью агента в контейнере к нему подключается IDE на javascript из вашего браузера.

При создании из шаблона «Java» в контейнере обычная сборка Ubuntu, а это значит что можно устанавливать необходимые вам для работы пакеты. Шаблон «Eclipse Che» основан на Alipine — минималистичной сборке linux под Docker и там такой свободы у вас нет.

7beee7405d424bf582437d3ce6ca5bfc.png

Итак о чем я это. Если вы не знаете что это такое, пока можете даже не беспокоиться об этом. Все работает и так «из коробки», пусть на первом шаге это будет казаться магией! Со временем при желании разобраться во всем этом довольно просто.

Создадим новый «Workspace» из шаблона «Java». Прийдется посмотреть мультфильм со строительным краном, пока создается ваше пространство для разработки.

В вашем окружении разработки будут доступны Oracle JDK 8u45 и Maven 3.3.9. Точно также легко можно начать разработку на основе проекта с Github.

Готовим окружение для проекта…
bc358cf6cf4545b6a3c0b5c9c61d983b.png


Система управления зависимостями и сборки
Стандартом де-факто в мире Java является Maven и, наверное, самая лучшая поддержка в разных IDE. Gradle более молодой проект и он заслуживает право стать вашим выбором №1. Но при выходе на работу Java разработчиком вероятность встретить Maven гораздо выше, особенно на унаследованных проектах. К тому же он тоже пытается молодиться и уйти от XML формата за счет проекта Polyglot. Atom, Groovy, Clojure, Ruby, Scala, YAML — как основа для написания файла сборки. Тут история как и с языком программирования в JVM. Несмотря на существование Groovy, Scala, JRuby, Jython, Clojure всю их мощь и лаконичность, язык Java живее всех живых. И даже не сравнивайте Java с вождем — язык программирования живой и хоть медленно, но развивается.

Проект по-умолчанию console-java-simple предложит нам любимый Hello World.

Предлагаю чуть усложнить наш первый шаг и добавить Apache Camel в проект. Источники и приемники данных и вся сложность работы с технологиями скрываются за Url синтаксисом внутри его компонент и мы не будем погружаться глубоко.

Магия «верблюда»
Eclipse Che создал для нас нас шаблон проекта, который мы сейчас отредактируем и создадим наше веб приложение.

Apache Camel — это open source интеграционный фреймворк и нам он нужен лишь для простого Hello World. Добавим его библиотеки в pom.xml зависимость на ядро «верблюда» и компонент jetty веб сервера.

        
            org.apache.camel
            camel-core
            2.18.0
        
        
            org.apache.camel
            camel-jetty
            2.18.0
        

После этого отредактируем файл /console-java-simple/src/main/java/org/eclipse/che/examples/HelloWorld.java заодно прочувствуем как работает эта online IDE.
package org.eclipse.che.examples;

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.main.Main;

public class HelloWorld {
    public static void main(String[] argvs) throws Exception {
       
        Main main = new Main();
        main.addRouteBuilder(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("jetty:http://0.0.0.0:8080")
                    .process(exchange -> {exchange.getIn().setBody("Hello World");});
            }
        });
        main.run(argvs);
    }
}

Для того чтобы можно было запустить пример командой mvn clean install exec: java нужно добавить в pom.xml exec-maven-plugin
    
        
            
              org.codehaus.mojo
              exec-maven-plugin
              1.5.0
              
                
                  java
                
              
              
                org.eclipse.che.examples.HelloWorld
              
            
        
    


Запустим проект командой из терминала
mvn clean install exec:java

Или отредактируем конфигурацию запуска «по щелчку» в IDE.

Подключиться к нашему веб приложению из внешнего мира можно по адресу из столбца «Server Address» для строки «tomcat8». Как это сделать можете посмотреть в видео дальше:

86acfa4327e647179f4415fbba898ab3.png

Результат работы нашей программы:

5d88377199bd444cbfdcafd47a03685e.png

В этом примере создается Apache Camel и его маршрут обработки данных. Маршрут начинается с веб сервера jetty, который слушает http запросы на порту 8080. При получении запроса мы создаем ответ с помощью строчки process (exchange → {exchange.getIn ().setBody («Hello World»);}).

Скринкаст процесса написания java кода (без звука и мата) в Che и запуска программы Hello World:

Что дальше?
Достаточно доступа в интернет и браузера в 2016 году чтобы учиться разрабатывать на Java. Не надо решать 1000 и 1 проблему с установкой и настройкой IDE и окружения, чтобы начать учиться программировать.

А еще не верьте курсам что вас научат программировать на Java за 21 день и тому подобному маркетингу. Чтобы познать дзен разработки на Java нужны годы. Учиться, учиться и еще раз учиться!

Комментарии (4)

  • 6 декабря 2016 в 12:19

    +2

    Первоначально подумалось, что статья будет о том, как написать Hello World без IDE и при минимальных энергозатратах.
    • 6 декабря 2016 в 12:23

      0

      Спасибо, верное замечание! Добавил про Eclipse Che перед катом.
  • 6 декабря 2016 в 14:00 (комментарий был изменён)

    +3

    Не надо решать 1000 и 1 проблему с установкой и настройкой IDE и окружения, чтобы начать учиться программировать.

    Вот не знаю, если честно. По моему мнению, если установить и настроить IDE — это проблема, то рано начинать учиться программировать. Я могу понять банальную лень, которая мешает найти статью «Установка Eclipse» и выполнить десяток шагов, но то, что это может вызвать какие-либо иные сложности, понять не могу.
    • 6 декабря 2016 в 14:06

      +1

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

© Habrahabr.ru