Проектирование — один из залогов успеха

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Расскажите, как лучше всего проектировать свое веб приложение?
Что для этого нужно, кто какие использует программы?
А то писал один проект, с идеей не на бумаге или на компьютере, а в голове, тоесть все алгоритмы, нюансы, пробывал держать в голове. И как вы догадались это ни к чему хорошему не привело.
Поэтому хочу услышать кто и как планирует и проектирует...

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

бумага и ручка + сканер. маркер и доска.

Если позволите, со своей колокольни. Отвечу не по теме, но (возможно) по сути.

Если приложение — Ваше, то добавляются некоторые «первые» шаги, ещё до упомянутого деления на части. Нужно исходить из преследуемых целей создания приложения, причём честных. И пишем, пишем, всё время приоретизируя...

Кейс: Ваша задумка (веб-синхронизация открытых закладок мозиллы) уже кем-то реализована (и неплохо), но Вы всё же считаете нужным сделать. Вероятно, тут цель не создание функционала, а что-то иное. Возможно, отработка навыков написания плагинов. Или «понты перед пацанами».
В зависимости от цели, реализация может быть изменена. Вступление в ряды опенсорсных разработчиков плагинов, с выбором того участка работы который реально востребован (вместо ранее задуманного, по факту никому не нужного). Покупка понтового телефона :).

Потом будет 2-й шаг (определение ценностей для цели и показателей её освоения), потом 3-й (поиск и выбор способов обеспечить эти показатели). Приоретизацию не забываем :) 4-й шаг — малюем в уме (а лучше — на бумаге) концепцию, мысленно примеряем её «интерфейсы» к жизни.
И уже потом, на 5-м шаге, концепцию выписываем по техническим частям, например как описано у Ярослава, и все дальнейшие шаги. Ну или покупаем телефон, если концепцию писать лень.

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

Проектирование — это на практике довольно простой процесс, в отличие от распостранённого мнения, что это магия заклинаний на языке баззвордов (типа обджект-фектори и синглетон).
Делишь систему на части, пытаешься себе ясно представить какие у каждой части функции и какими средствами их реализовать, какие интервейсы меджу частями, где узкие места, где пробемы с масштабируемостью. Если какие-то части не прозрачны — детализируешь их, разбиваешь на суб-блоки, строишь интерфейсы, представляешь реализацию, и т.д.
Если не можешь ясно представить или детализировать какую-то из частей — значит не имеешь достаточно знаний, быстренько их пополняешь и/или привлекаешь знатоков.
Имея детализированную картину с ясными функциями каждой части и ясными взаимосвязями между частями, уже легко представить их реализацию и дать оценку трудозатрат. Вот и имеем хорошо спроектированную систему.
Но есть и другой подход к проектированию — понарисовывать диаграмм классов на первом попавшемся UML-редакторе, и потом с умным видом их показывать таким же ценителям UML с надутыми щеками. На вкус и на цвет, конечно, все фломастеры разные, но, ИМХО, это не что иное, как популярное нынче шарлатанство — одно время чревовещание тоже было очень популярным, века полтора назад... :)

А то писал один проект, с идеей не на бумаге или на компьютере, а в голове, тоесть все алгоритмы, нюансы, пробывал держать в голове.
Это называется — за деревьями не видеть леса, ничего особенного. Не имея общей картины очень легко 1) сделать серьёзную ошибку в сложности проекта и, соответственно, в сроках, и 2) потерять мотивацию, не видя прогресса, а чтобы видеть прогресс нужны оценки и план. Да, планы меняются на ходу, но чем яснее и продуманнее общая картина в начале, тем меньше шансов обнаружить скрытую сложность в процессе исполнения.
Что для этого нужно
Опыт проектирования и опыт исполнения, причём и положительный и отрицательный... Второе уже есть, как я понимаю? :) Если опыта нет — можно нанять себе начальника, а можно опыт приобрести.
какие использует программы?
Моя любимая — Freemind, bit.ly/12xwZ2l

Підписатись на коментарі