Записки программиста 1. Рай

Довелось некоторое время работать в международной компании, занимающейся разработкой софта для интернет-казино(кстати, лидер в своей области). Проработал я там около двух лет.

В компании несколько отделов: html5(мобильные разработчики), flash(desktop-разработчики), java-team(backend) и, конечно, тестеры. Я работал в команде html5-разработчиков. Самым организованным отделом был наш. Тимлид html5 разработчиков организовал для нас практически рай.


Так вот, код. Самое главное, с чем имеет дело программист в посведневной работе. В тиме был введен унифицированный стиль написания кода(т.н. codestyle). Это здорово, поскольку так куда проще разбираться в чужом коде. Имелся собственный фреймворк, написанный на чистом js и заточенный для написания игр под мобильные устройства. Фреймворк был кроссплатформенным(поддерживались WinPhone, Android > 4.1, iOS > 5.0). Те, кто писал кроссплатформенные вещи на js, знает, какой зоопарк устройств приходилось поддерживать. Ах да, мы писали на js в ООП стиле. Причем, без ограничений от канонического ООП. На js! И все это до TypeScript'a! Фантастика! Поскольку фреймворк был шикарно структурирован - он позволял писать невероятно гибкие системы. Там было все, что нужно: и собственные структуры данных(дерево, очередь, матрица, конечный автомат и т.д.), и собственная система инициализации событий(как в jQuery, только лучше), и грамотное разделение фреймворка на модули. И все это добро приправлено просто горой различных шаблонов проектирования. Было здорово копаться в нем и смотреть, что да как устроено.


Документация. Она была! В ней было дано описание основных систем фреймворка, как с ним работать и были описаны его ограничения.

Процесс разработки. Строился так: тебе падает задача, ты сам оцениваешь время, которое тебе понадобится для ее решения. Все эти оценки ты отражаешь в документе - плане. План ты строишь скурпулезно, описывая работу по часам. В нем ты можешь учесть и время на тестирование и время на непредвиденные трудности. Было одно условие: соблюдение временных рамок плана. Ну, или если есть отклонения по времени, сообщать заранее, а не тянуть до последнего. Но такое случалось редко, поскольку скурпулезное построение плана позволяет распределить время очень точно. В общем - это удобно. И разработчику - детально знает фронт работ, знает крайний срок, распоряжается им. И тем более начальству - иметь точные сроки реализации мечта любого начальства. Во время кодинга, конечно, ты можешь советоваться с более опытными разработчиками - тебе всегда окажут помощь. Благодать.


Используемые технологии: фреймворк использовал последние стабильные достижения в области js-кода(например: canvas, web audio API и т.д.). Конечно же, мы использовали систему контроля версий. Трекером задач служил redmine.


Такое ощущение, что тимлид начитался книги "Совершенный код" и, вдохновленный идеями из этой книги, решил многие из них воплотить в жизнь.Какой гик о таком не мечтает?

Автор поста оценил этот комментарий
А сейчас где трудишься?
раскрыть ветку
Автор поста оценил этот комментарий

Я мечтаю, я! Заберите меня к себе!