Re[4]: Проектирование, переписывание, прокрастинация :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.08.21 12:14
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Важнее чтоя у тебя не усмотрел — требования, юзкейсы и т.п.


Требования — поддержка всех положенных системных интерфейсов и взаимодействий. Юзкейсы — какие они могут быть у драйвера устройства, фильтра DirectShow и подобного софта?

НС>Общая структура это и есть детали реализации, которые, в норме, должны вытекать из сценариев.


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

НС>Ну вот в этом и есть твоя ошибка.


И как ее избежать?
Re[5]: Проектирование, переписывание, прокрастинация :)
От: Ночной Смотрящий Россия  
Дата: 19.08.21 12:32
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

НС>>Важнее чтоя у тебя не усмотрел — требования, юзкейсы и т.п.

ЕМ>Требования — поддержка всех положенных системных интерфейсов и взаимодействий.

Которые для тебя уже кто то спроектировал? Тогда да, проект тебе особо и не нужен, берешь и пилишь.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[5]: Проектирование, переписывание, прокрастинация :)
От: Ночной Смотрящий Россия  
Дата: 19.08.21 12:56
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Если дать ответы на все эти вопросы, как это поможет лучше выполнить чисто техническую часть?


Очень просто. Чисто техническая часть не будет содержать лишнего и будет содержать все что нужно. Единственная цель проектирования — добиться нужного результата максимально быстро и максимально качественно. Так вот что такое "нужный" и что такое "качественно" как раз и определяется функциональными и нефункциональными требованиями. Если это не зафиксировано — стихийное проектирование снизу вверх приведет к какому то случайному, не совпадающему полностью с нужным результатом.
Тебя спасает только то, что все публичные API за тебя уже спроектировали, и это держит тебя в жестких рамках.

LK>>Если задача не выполняется три года, то, может быть, она не нужна и не важна? А если нужна и важна, то получается, что вместо неё делается что-то менее нужное и важное?

ЕМ>Все, что делается, определенно нужно и важно, но для того, чтобы более-менее объективно определить степень нужности/важности каждого аспекта, нужно проводить отдельные бизнес-исследования.

Да ты прям КО.

ЕМ> А речь, напомню, о разработчике-одиночке, а не о компании.


И что? Одиночка ведь для кого то пишет, не так ли?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[5]: Проектирование, переписывание, прокрастинация :)
От: Ночной Смотрящий Россия  
Дата: 19.08.21 13:01
Оценка: -1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Проблемы с видением результата у меня возникают в основном в плане GUI — какой внешний вид придать окнам программы, в каком виде удобнее отображать данные и элементы управления, как организовать структуру меню и т.п. Здесь я этих вопросов не поднимал — речь исключительно о внутренней структуре


Есть такой более менее консенсус — софт, взаимодействующий с пользователем, должен проектироваться по принципу frontend first. Т.е. сперва ты проектируешь UX (т.е. внешний вид GUI и его поведение), и только потом реализуешь к нему бек. Если поступить наоборот — скорее всего на выходе получится неудобное пользователям чудище.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Проектирование, переписывание, прокрастинация :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.08.21 13:28
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

ЕМ>>Требования — поддержка всех положенных системных интерфейсов и взаимодействий.


НС>Которые для тебя уже кто то спроектировал?


Что значит "для меня"? Их спроектировали прежде всего для самой подсистемы.

НС>Тогда да, проект тебе особо и не нужен, берешь и пилишь.


Так я и пилю — получается криво. Как мне сделать красиво, по заветам столпов от программирования?
Re[6]: Проектирование, переписывание, прокрастинация :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.08.21 13:48
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

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


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

НС>Тебя спасает только то, что все публичные API за тебя уже спроектировали, и это держит тебя в жестких рамках.


Что Вы называете "публичными API"? А жесткие рамки мне только мешают соблюсти красоту и стройность архитектуры кода.
Re[6]: Проектирование, переписывание, прокрастинация :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.08.21 13:49
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Есть такой более менее консенсус — софт, взаимодействующий с пользователем, должен проектироваться по принципу frontend first.


Сколько раз еще нужно повторить, что в этой теме вообще не идет речи о взаимодействии с пользователем?
Re[7]: Проектирование, переписывание, прокрастинация :)
От: Ночной Смотрящий Россия  
Дата: 20.08.21 09:27
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Но он не нравится мне, поскольку в ряде мест структура кода выглядит уродливо. Теоретики программирования утверждают, что все это можно сделать красиво.


Это не задача проектирования, это задача рефакторинга.

НС>>Тебя спасает только то, что все публичные API за тебя уже спроектировали, и это держит тебя в жестких рамках.

ЕМ>Что Вы называете "публичными API"?

То, через что твой продукт используют. Внешняя поверхность черного ящика.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[7]: Проектирование, переписывание, прокрастинация :)
От: Ночной Смотрящий Россия  
Дата: 20.08.21 09:27
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

НС>>Есть такой более менее консенсус — софт, взаимодействующий с пользователем, должен проектироваться по принципу frontend first.

ЕМ>Сколько раз еще нужно повторить, что в этой теме вообще не идет речи о взаимодействии с пользователем?

Ты сам упомянул GUI, я ответил. Какие ко мне претензии?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[7]: Проектирование, переписывание, прокрастинация :)
От: Ночной Смотрящий Россия  
Дата: 20.08.21 09:27
Оценка: 9 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

НС>>Которые для тебя уже кто то спроектировал?

ЕМ>Что значит "для меня"? Их спроектировали прежде всего для самой подсистемы.

Ну значит проектирование уже сделано до тебя, все просто.

НС>>Тогда да, проект тебе особо и не нужен, берешь и пилишь.

ЕМ>Так я и пилю — получается криво.

Как определил?

ЕМ> Как мне сделать красиво, по заветам столпов от программирования?


Включать моск, как еще? Пиши код так, чтобы его было легко рефакторить, регулярно устраняй техдолг. There is no silver bullet.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[8]: Проектирование, переписывание, прокрастинация :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 20.08.21 10:23
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Это не задача проектирования, это задача рефакторинга.


Рефакторинг — это переделка [полу]готового, а проектирование — построение исходной структуры. И предлагаемые отцами методы рефакторинга тоже не позволяют обойтись без уродливых костылей.
Re[8]: Проектирование, переписывание, прокрастинация :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 20.08.21 11:08
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ну значит проектирование уже сделано до тебя, все просто.


Проектирование любой ОС тоже сделано до разработки любого стороннего софта для нее. Следует ли из этого, что разработка любого стороннего софта не требует проектирования?

ЕМ>>Так я и пилю — получается криво.


НС>Как определил?


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

НС>Пиши код так, чтобы его было легко рефакторить, регулярно устраняй техдолг.


Да не в этом вопрос. Поскольку меня с самого начала преследует ощущение, что далеко не все поняли, о чем речь, вот аналогия со строительством здания.

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

Если же здание строится в рамках "точечной застройки", вписываясь в существующую архитектуру и инфраструктуру, то на этапе проектирования необходимо учитывать лимиты размеры, форму, нагрузку на грунт, электрическую мощность, расход воды, и воздуха, емкость парковок и все остальное. А если здание необходимо присоединить к уже существующим, обеспечив определенные условия взаимодействия (например, при строительстве нового корпуса в больничном комплексе), то требования еще больше ужесточаются. И тут уже часто бывает не до заветов Витрувия и Леонардо, и смотреть на получившееся далеко не всегда приятно. Какой рефакторинг можно применить в такой ситуации, чтобы построенное выглядело изящно снаружи, и не нарушало общепринятых технических принципов внутри?
Re[8]: Проектирование, переписывание, прокрастинация :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 20.08.21 11:10
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ты сам упомянул GUI


Там, где я его упомянул, я сразу же подчеркнул, что здесь это не рассматривается.

НС>Какие ко мне претензии?


Невнимательность при чтении?
Re[9]: Проектирование, переписывание, прокрастинация :)
От: Ночной Смотрящий Россия  
Дата: 20.08.21 12:20
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Рефакторинг — это переделка [полу]готового, а проектирование — построение исходной структуры.


Почему для тебя этот момент так важен?

ЕМ> И предлагаемые отцами методы рефакторинга тоже не позволяют обойтись без уродливых костылей.


Почему ты так решил?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[9]: Проектирование, переписывание, прокрастинация :)
От: Ночной Смотрящий Россия  
Дата: 20.08.21 12:28
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

НС>>Ты сам упомянул GUI

ЕМ>Там, где я его упомянул, я сразу же подчеркнул, что здесь это не рассматривается.

Почему?

НС>>Какие ко мне претензии?

ЕМ>Невнимательность при чтении?

Больше похоже на то, что, задавая вопрос, ты желаешь услышать какой то конкретный ответ, и любые другие ответы игнорируешь.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[9]: Проектирование, переписывание, прокрастинация :)
От: Ночной Смотрящий Россия  
Дата: 20.08.21 12:28
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

НС>>Ну значит проектирование уже сделано до тебя, все просто.

ЕМ>Проектирование любой ОС тоже сделано до разработки любого стороннего софта для нее. Следует ли из этого, что разработка любого стороннего софта не требует проектирования?

Сторонний софт обычно взаимодействует не только и не столько с ОС.

ЕМ>>>Так я и пилю — получается криво.

НС>>Как определил?
ЕМ>Возникают неустранимые зависимости между классами, который на первый взгляд вроде бы не связаны — как по вызываемым методам, так и по внешним условиям. Портится инкапсуляция — классы верхнего уровня вынуждены излишне много знать о поведении классов нижнего уровня.

Ну значит пора рефакторить. Конкретно в плане неустранимых зависимостей есть такая штука как IoC.
А ты что, всерьез считаешь что можно сразу так спроектировать, чтобы подобных проблем гарантированно не было? У меня для тебя плохая новость — это невозможно даже теоретически.

НС>>Пиши код так, чтобы его было легко рефакторить, регулярно устраняй техдолг.

ЕМ>Да не в этом вопрос.

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

ЕМ>Поскольку меня с самого начала преследует ощущение, что далеко не все поняли, о чем речь, вот аналогия со строительством здания.


Все аналогии ложны. Попытка дедукции при их помощи логически некорректна.

ЕМ>Какой рефакторинг можно применить в такой ситуации, чтобы построенное выглядело изящно снаружи, и не нарушало общепринятых технических принципов внутри?


Весь доступный.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Проектирование, переписывание, прокрастинация :)
От: Carc Россия https://vk.com/gosha_mazov
Дата: 22.08.21 10:10
Оценка:
Здравствуйте, reversecode, Вы писали:

R>говорил уже, это старость, смиритесь

Это не старость. Это мудрость! А это не одно и то же.

«Мудрым способно сомневаться» (© Аристотель)

Aml Pages Home
Re[3]: Проектирование, переписывание, прокрастинация :)
От: reversecode google
Дата: 22.08.21 11:45
Оценка:
где вы в этой теме увидели у автора сомнение ?
если же полистать тему полностью
то можно понять то там ситуация намного печальнее
когда у автора чуть больше чем две сущности
его мозг не может построить нейросеть, нейроны не могут связаться со своими ближайшими соседями

в теме минусиками отметились собратья автора с неспособностью строить в голове любые нейросети
что и не удивительно на почтенный их возраст и отсутствию любой адекватной активности в темах про кодинг
Re: Проектирование, переписывание, прокрастинация :)
От: vaa  
Дата: 22.08.21 14:14
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

Мы не знаем как правильно программировать (Рич Хикки) это относительно переписывания.
Относительно прокрастинации это из-за отсутствия обратной связи с пользователями.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Проектирование, переписывание, прокрастинация :)
От: Carc Россия https://vk.com/gosha_mazov
Дата: 22.08.21 16:00
Оценка: +2
Здравствуйте, reversecode, Вы писали:

R>где вы в этой теме увидели у автора сомнение ?

Ну в первых же словах стартового сообщения сплошные ж сомнения на тему "как надо делать"?
Проектирование — тогда как?
Или писать сходу? А потом как?
В общем, "мнительный Сидор" © — если по научному, по книжному, то не выходит каменный цветок. Если по старинке — то не кошерно, вроть.
Вот они и сумненья. Сплошными ж вродь сомнениями вся стартовая тема пронизана… Разве нет? Не находите?

R>если же полистать тему полностью

R>то можно понять то там ситуация намного печальнее
R>когда у автора чуть больше чем две сущности
R>его мозг не может построить нейросеть, нейроны не могут связаться со своими ближайшими соседями
Чего то я не понял, причем тут 2 сущности, причем тут нейросети!?! Хотя всю ветку я прочитал с точностью почти до конкретных постов (ну кроме когда уже откровенно дискуссионеров сносило в религиозные войны и личные нападки).

R>в теме минусиками отметились собратья автора с неспособностью строить в голове любые нейросети

R>что и не удивительно на почтенный их возраст и отсутствию любой адекватной активности в темах про кодинг
Дык разговор то вроде не про кодинг же был!?! А концептуальный? Откуда в этой ветке взяться про кодинг? Или я что упустил?
Aml Pages Home
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.