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

от автора

Вступление

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

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

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

Реализация


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

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

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

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

Плагин (пока доступен только для Safari) может такое:

REST

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

post

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

get

l.co.ua/[id] — get redirect html to long url with id
l.co.ua/rest/statistic/[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 часа.

ссылка на оригинал статьи http://habrahabr.ru/post/176579/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *