Рубрика «Блог компании Новые облачные технологии»

Практики управления техническим долгом в отдельно взятой команде

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

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

Что удалось получить в результате:

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

Давайте расскажу, как мы этого добились.

Ланнистеры всегда платят свои долги! (и технические тоже) - 1

Читать полностью »

История о том, как мы поменяли сборку проекта с grunt на webpack

Приходишь на работу, открываешь IDE, пишешь npm start, запуская систему сборки, начинаешь работать. Тебе удобно ориентироваться в структуре проекта, удобно отлаживать код и стили, очевидно, как именно и в каком порядке собирается проект.

Проходит два года. В процессе разработки периодически задумываешься, куда правильно положить файлы с новым модулем, как быть с общими ресурсами, и не всегда с ходу отвечаешь на вопрос джуниора «а каким образом этот файл вообще попадает в бандл?». Или отвечаешь сакральное «так исторически сложилось» и тоскуешь по тому, что было два года назад.

Как выяснилось, такое случается, если не модернизировать систему сборки вместе с ростом проекта. Хорошая новость в том, что это успешно лечится! Летом мы подтвердили это в бою и хотим поделиться опытом.

Angular 1.x: крадущийся webpack, затаившийся grunt - 1
Читать полностью »

Введение

«МойОфис» работает на большинстве современных платформ: это Web-клиент, настольные версии приложения для Windows, MacOS и Linux, а также мобильные приложения для iOS, Android, Tizen. И если в разработке компьютерных приложений уже давно есть основные правила подхода к дизайну интерфейсов, то при создании приложений для мобильных устройств требуется отдельная проработка многих особенностей.
Как подружить Custom View и клавиатуру - 1
Читать полностью »

Введение

Наша команда с 2013 года работает над офисными приложениями МойОфис. В линейку продуктов входит полный набор приложений для работы с документами, почтой, календарями и контактами на компьютерах, мобильных устройствах и в веб-браузерах, а также сервер совместной работы, почтовый сервер и система хранения данных. В этой статье мы хотим рассказать вам о принципах разработки интерфейсов редакторов МойОфис для различных платформ и устройств.

image
Читать полностью »

Во второй части «Истории офисных приложений» мы описали то, как Google Docs поначалу казались лишь любопытным технологическим экспериментом, но постепенно превратились в крупного игрока. Это не единственный случай, когда офисные продукты меняло что-то, поначалу не привлекавшее внимания. Что ещё было? Ответ — под катом в третьей и заключительной часть нашего текста.

История офисных приложений: Часть III - 1

Читать полностью »

Наш предыдущий текст закончился тотальной победой Microsoft Office в 90-х: большинству пользователей уже в принципе не приходило в голову использовать что-либо другое. Конкурировать было затруднительно хотя бы из-за того, что его стандарты стали общепринятыми, людям требовалось работать с ними, и возникали опасения «в другом редакторе у присланных мне документов вся вёрстка поедет». Могут ли другие компании в принципе что-либо противопоставить такому доминированию? Как показал XXI век, могут.

История офисных приложений: Часть II - 1

Читать полностью »

Сейчас кажется само собой разумеющимся, что над таблицей или презентацией можно работать одновременно целой командой, находясь при этом в разных точках планеты за совершенно разными устройствами. Но прежде чем прийти к этому, офисные пакеты развивались на протяжении десятилетий — и в процессе разворачивались такие драмы, что впору их экранизировать. МойОфис вспоминает, что именно происходило.

image

Читать полностью »

Dagger 2 и структура приложения для Android - 1
Добрый день! Наша команда уже больше года занимается разработкой почтового клиента МойОфис для платформы Android (приложения МойОфис мы разрабатываем для всех популярных платформ).

Сегодня мы хотим рассказать о технологиях, которые мы используем в разработке нашего почтового клиента. А именно, о механизмах Dependency Injection в виде библиотеки Dagger 2. В статье мы опишем основные части библиотеки и расскажем, как их использовать в Android-проекте.
Читать полностью »