Вступление
Доброго времени суток, жители Хабра. Так повелось, что я иногда занимаюсь подготовкой кадров для мира программистов. Пытался одно время, помимо очных курсов, записать несколько обучающих видео о Java для самых маленьких (http://java.b0noi.com), но даже треть не закнчил =(. Было решено не выходить за рамки офлайн курсов, однако одну из проблем еще предстояло решить. Как дать слушателям реальный опыт разработки? Еще хотелось бы не просто опыт командной разработки, но и то, что студенты могли бы включить в свое резюме, нечто публичное и, хоть немного, полезное.
Что хотелось бы видеть в проекте, с которым работают слушатели:
- собственно Java с элементами Java EE;
- maven;
- git/mercurial;
- continues integration system;
- DB interaction;
- JavaScript;
Реализация
Само собой такой проект может быть, скорее всего, только проектом под Веб. Поразмыслив над тем, что можно быстро создать и передать в OpenSource, с дальнейшей поддержкой, было принято решение сделать «еще один» сервис по сокращению ссылок. Тем более, что в Украине таких не так много, как в мире — было зарегистрировано несколько доменов: l.co.ua и более национальный http://ї.co.ua (этот домен пока еще не работает).
Сам проект
Итак, по факту проект делится на 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 часа.
Автор: b0noII