Информация об изменениях

Сообщение Re: Когда императивность переходит в декларативность... от 08.08.2023 9:25

Изменено 08.08.2023 9:26 swame

Re: Когда императивность переходит в декларативность...
Здравствуйте, Shmj, Вы писали:

S>Вот императивный способ создания GUI и это плохо:


S>
S>Form mainForm = new Form();

S>Button blueButton = new Button();
S>blueButton.Color = Colors.Blue;

S>mainForm.Children.Add(blueButton);
S>


S>А если всего чуток изменить, то можно без особой переделки сделать чтобы все было декларативно. А именно:


S>
S>Form(
S>   Children: [
S>      Button(
S>         Color: Colors.Blue
S>      )
S>   ]
S>)
S>


S>Т.е. делаем new не обязательным, создание объекта без него. И даем возможность задать в конструкторе свойства. И все! Теперь без переделки ядра и без создания нового языка — мы можем писать все декларативно. Не нужен XAML или еще что. Получается что все выглядит как JSON или подобие его — все просто и ясно, даже парсить можно парсером в 10 срок кода.


S>Все гениальное — просто.


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

А парсить этот свой коде непонятно зачем надо.
Re: Когда императивность переходит в декларативность...
Здравствуйте, Shmj, Вы писали:

S>Вот императивный способ создания GUI и это плохо:


S>
S>Form mainForm = new Form();

S>Button blueButton = new Button();
S>blueButton.Color = Colors.Blue;

S>mainForm.Children.Add(blueButton);
S>


S>А если всего чуток изменить, то можно без особой переделки сделать чтобы все было декларативно. А именно:


S>
S>Form(
S>   Children: [
S>      Button(
S>         Color: Colors.Blue
S>      )
S>   ]
S>)
S>


S>Т.е. делаем new не обязательным, создание объекта без него. И даем возможность задать в конструкторе свойства. И все! Теперь без переделки ядра и без создания нового языка — мы можем писать все декларативно. Не нужен XAML или еще что. Получается что все выглядит как JSON или подобие его — все просто и ясно, даже парсить можно парсером в 10 срок кода.


S>Все гениальное — просто.


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

А парсить этот ивой коде непонятно зачем надо.