Лучшие статьи и кейсы стартапов
Включить уведомления
Дадим сигнал, когда появится
что-то суперстоящее.
Спасибо, не надо
Вопросы Проекты Вакансии
Удобный online сервис для совместной разработки баз данных
Рекомендуем
Продвинуть свой проект
Лучшие проекты за неделю
37
Битрикс24

Битрикс24

www.bitrix24.ru

28
Отследить-посылку

Отследить-посылку

отследить-посылку.рф

13
WebResidentTeam

WebResidentTeam

webresident.agency

12
Логомашина

Логомашина

logomachine.ru

11
Devicerra

Devicerra

devicerra.com

9
ADN Digital Studio

ADN Digital Studio

adn.agency

9
Aword

Aword

Приложение для изучения английских слов

9
Eczo.bike

Eczo.bike

www.eczo.bike

9
GIFTD

GIFTD

giftd.tech

7
Flowlu

Flowlu

flowlu.ru

Показать следующие
Рейтинг проектов
Подписывайтесь на Спарк в Facebook

Не пренебрегайте техническим прототипом

467 0 В избранное Сохранено
Авторизуйтесь
Вход с паролем
Меня зовут Борис и я перфекционист. Для человека, начинающего бизнес это чаще недостаток, чем достоинство. Если вас зовут не Стив. Перфекционизм жрет время - в то время как ты натираешь продукт пастой ГОИ, более расторопные ребята выпускают свой - в разводах и царапинах. Они краснеют от стыда и получают деньги. Ты гордишься собой и сидишь голодный.

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

В процессе работы над моим продуктом для совместного проектирования баз данных я сталкивался с описанной ситуацией дважды. Первый раз был тогда, когда я намеревался реализовать совместную работу пользователей используя алгоритм Operational Transformation, допускающий одновременную правку документа любым количеством пользователей (на нем построен Google Docs). К счастью, тогда я не пожалел времени и разобрался, что это за монстр. О том, что мои предположения относительно его сложности были слегка занижены, говорит эта фраза, которую я прочитал на сайте одной из реализаций OT, Share.js: "I am an ex Google Wave engineer. Wave took 2 years to write and if we rewrote it today, it would take almost as long to write a second time." Хорошенько покопав и не найдя гового решения стоящей передо мной задачи, я героически отступил к более простому варианту: редактирование одним пользователем и почти мгновенная трансляция изменений всем остальным. И ни разу об этом не жалею.

Второе столкновение с айсбергом произошло не так давно. Для отрисовки ER-модели я использовал SVG тулзу. Судя по всему, ее писал один автор, предоставляя коммерческую лицензию за 500 евро. "Отлично", - подумал я, и начал строчить UI. Потихоньку стали проявляться сыроватости - части функциональности не хватало, часть работала с ошибками. Я неистово monkey-патчил и дописывал недостающие детали (при том что JavaScript для меня третий язык после Java и Python, а созданием SVG/Canvas диаграмм я до этого ни разу не занимался). Это отнимало кучу времени, но я все же рисовал достаточно красивые и аккуратные объекты и даже заставлял их вести себя так, как надо. Конец искусству наступил внезапно - я всего лишь отрендерил 100 таблиц по 10 колонок в каждой и с удивлением обнаружил, что начальная загрузка документа в браузере стала занимать минуты(!). Я думал о различных оптимизациях, но упирался в естественное ограничение - как бы я не старался, значительно уменьшить время начальной загрузки (на 1 - 2 порядка) я не мог. Теперь я переключился на другую библиотеку, уже за 2800$, с отделом разработки и поддержки и даже сейлзами! Будет излишним говорить, что недели, потраченные на допиливание старой либы пошли коту под хвост.

Мораль басни в двух словах:

1. Если задача для вас не типична, сделайте прототип, грубо реализовав основные функции системы.
2. Оттестируйте моменты, которые наиболее туманны для вас. О том, как красить квадратики в разные цвета или перехватывать события, сказано в документации; вероятность того, что такие базовые вещи не реализованы или не работают, стремится к нулю. А вот касаемо скорости - темный лес, я это даже примерно прикинуть не мог.
3. Если что-то не устраивает - поищите другое решение. Если не нашли подходящего решения задачи, попробуйте упростить саму задачу (как у меня со стратегиями редактирования документа). Вообще, совет про упрощение задач можно смело скопировать в пункт 0 - особенно перфекционистам - для них это единственная возможность закончить проект не изменив своим принципам (полностью не изменив).

Кстати, хорошая (хоть и местами скучноватая) книга для выздоравливающих: Тал Бен-Шахар "Парадокс перфекциониста".
0
Добавить в избранное Сохранено
Авторизуйтесь
Вход с паролем
Комментариев еще не оставлено
Выбрать файл
Читайте далее
Загружаем…
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать