- PVSM.RU - https://www.pvsm.ru -

Открытый Java проект для тех, кто ищет первый опыт разработки

Вступление

Доброго времени суток, жители Хабра. Так повелось, что я иногда занимаюсь подготовкой кадров для мира программистов. Пытался одно время, помимо очных курсов, записать несколько обучающих видео о Java для самых маленьких (http://java.b0noi.com [1]), но даже треть не закнчил =(. Было решено не выходить за рамки офлайн курсов, однако одну из проблем еще предстояло решить. Как дать слушателям реальный опыт разработки? Еще хотелось бы не просто опыт командной разработки, но и то, что студенты могли бы включить в свое резюме, нечто публичное и, хоть немного, полезное.

Что хотелось бы видеть в проекте, с которым работают слушатели:

  • собственно Java с элементами Java EE;
  • maven;
  • git/mercurial;
  • continues integration system;
  • DB interaction;
  • JavaScript;

Реализация

Открытый Java проект для тех, кто ищет первый опыт разработки
Само собой такой проект может быть, скорее всего, только проектом под Веб. Поразмыслив над тем, что можно быстро создать и передать в OpenSource, с дальнейшей поддержкой, было принято решение сделать «еще один» сервис по сокращению ссылок. Тем более, что в Украине таких не так много, как в мире — было зарегистрировано несколько доменов: l.co.ua [2] и более национальный http://ї.co.ua (этот домен пока еще не работает).

Сам проект хостится [3] на Jelastic'e, но для тех кто будет делать пуши на сервер эта информация скорее всего не станет востребованной. Внешняя часть написана на JavaScript + BootStrap, а за кулисами трудится REST Server, написанный на Java (jersey). В качестве БД была выбрана MongoDB.

Итак, по факту проект делится на 4 части (будет больше =)):

  • REST server;
  • Web UI, который не более чем еще один клиент для REST server;
  • DB;
  • plugins for browsers (сейчас пока сделан только для православного Safari);

Плагин (пока доступен только для Safari) может такое:
Открытый Java проект для тех, кто ищет первый опыт разработки

REST

Вот короткое описание REST'a v. 0.2:

post

l.co.ua/rest/postUrl [4] — post long url and get short id
l.co.ua/generateShort [5] — post long url and get short id (DEPRICATED)

get

l.co.ua/ [6][id] — get redirect html to long url with id
l.co.ua/rest/statistic/ [7][id] — get statistic for id. Statistic is array in JSON format, each field contains information about: Date, Country and OS

Присоединится

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

Но, несмотря на посредственность сервиса сокращения ссылок, есть еще и весьма интересная идея об его монетизации. Но об этом пока история умолчит.

Анти-троллинг

Раздел для тех, кто вместо разговора по сути начинает менять тему. Я прекрасно понимаю, что можно было что-либо дописать к уже существующим сотням OpenSource проектам и кто-то скажет, что это велосипед, однако на данный момент это именно то, что мне необходимо, так как не исключено, что версию 2.0 уже будем писать совместно со слушателями полностью с нуля, так что вопрос своего проекта все равно бы стоял. Плюс для себя я давно хотел попробовать что-то на jelastic, ибо до этого работал только с Amazon EC2. Есть еще много причин, по которым выбрал именно такой вариант. Тем более, что сделать подобный проект — это 2-4 часа.

Автор: b0noII

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/32062

Ссылки в тексте:

[1] http://java.b0noi.com: http://java.b0noi.com

[2] l.co.ua: http://l.co.ua

[3] хостится: https://www.reg.ru/?rlink=reflink-717

[4] l.co.ua/rest/postUrl: http://l.co.ua/rest/postUrl

[5] l.co.ua/generateShort: http://l.co.ua/generateShort

[6] l.co.ua/: http://l.co.ua/

[7] l.co.ua/rest/statistic/: http://l.co.ua/rest/statistic/

[8] Источник: http://habrahabr.ru/post/176579/