Мой подход. Ядро - Движок. - страница 15

 
Реter Konow:

Поймете, массив прототипов создается один раз. И потом, меняется ОЧЕНЬ редко. Только в случае серьезных переделок в программе.

А если надо динамически?!

 
Dmitry Fedoseev:

Как могут сосуществовать вместе эти два положения: отсутствие удобства для программиста и быстрое развитие программы? Как можно развивать программу быстро, если это делать неудобно? 

Все дело в пропорциях. Неудобство при составлении массива прототипов - очевидно. Удобства прямого доступа к ядру из любой точки программы, использование фокуса элементов и другие вещи - ГОРАЗДО БОЛЬШЕ.

Короче, удобства в моем подходе гораздо больше, чем неудобства. Но, для этого им нужно научится владеть.

 
Vitalii Ananev:

А как вы поступите если необходимо будет сделать не прямоугольную кнопку, а допустим круглую или треугольную?

Если использовать ООП то создается базовый класс Button в котором есть абстрактный метод Draf этот метод отвечает за рисование кнопки. Для круглой кнопки необходимо будет создать наследника от Button в котором достаточно будет переопределить метод Draf в котором реализовать рисование круглой кнопки. Для прямоугольной также достаточно создать наследника от Button и переопределить метод Draf для рисования уже прямоугольной кнопки.

Как все это будет выглядеть если использовать вашу методику?

В моем случае, все ГОРАЗДО проще.

1. Добавляю свойство-флаг в список свойств объектов.

2. Увеличиваю длинну ряда Ядра на 1 одну ячейку, которая будет зарезервирована для нового свойства.

3. Создаю ключевое слово, устанавливающее флаг в свойство окружности кнопки.

4. В блок Рисования добавляю механизм рисования окружности, вход в который будет после проверки флага окружности кнопки в Ядре.

 
Реter Konow:

Все дело в пропорциях. Неудобство при составлении массива прототипов - очевидно. Удобства прямого доступа к ядру из любой точки программы, использование фокуса элементов и другие вещи - ГОРАЗДО БОЛЬШЕ.

Короче, удобства в моем подходе гораздо больше, чем неудобства. Но, для этого им нужно научится владеть.

Сильно заблуждаетесь насчет удобства от доступа к глобальному массиву. Это он один сейчас, или несколько. А если в программе будет несколько подсистем написанных в подобном стиле, это будет караул, хаос и неразбериха.

 
Dmitry Fedoseev:

Сильно заблуждаетесь насчет удобства от доступа к глобальному массиву. Это он один сейчас, или несколько. А если в программе будет несколько подсистем написанных в подобном стиле, это будет караул, хаос и неразбериха.

В программе есть несколько Ядер, которые используются только на этапе построения Главного Ядра. Глобальный доступ осуществляется только к главному ядру, и ядру параметров (ядро свойств параметров элементов управления). 

Все вполне удобно. Я не жалуюсь.

 
Реter Konow:

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

Все вполне удобно. Я не жалуюсь.

А сколько у вас заказчиков и как быстро вы выполняете их доработки? Приходилось ли работать с чужими программами написанными в таком стиле?

 
Реter Konow:

В моем случае, все ГОРАЗДО проще.

1. Добавляю свойство-флаг в список свойств объектов.

2. Увеличиваю длинну ряда Ядра на 1 одну ячейку, которая будет зарезервирована для нового свойства.

3. Создаю ключевое слово, устанавливающее флаг в свойство окружности кнопки.

4. В блок Рисования добавляю механизм рисования окружности, вход в который будет после проверки флага окружности кнопки в Ядре.

Когда вы начнете реально это делать, то вы потом запутаетесь во всех своих якобы "объектах".

И получается не проще. В вашем случае (как вы сами написали) надо проделать 4-ре действия. В моем примере с использованием ОПП только одно действие.

upd.

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

 
Dmitry Fedoseev:

А сколько у вас заказчиков и как быстро вы выполняете их доработки?

На данный момент, у меня один заказчик. Я очень быстро выполняю поставленные им задачи. 3-4 часа и новое, полностью функциональное окно готово. Вместе с интерфейсом подключения. Я также быстро исправляю баги движка и скидываю ему новые версии. 9 окон за несколько дней + изменения движка, исправление багов, добавление возможностей... Все очень быстро.

 
Реter Konow:

Все вполне удобно. Я не жалуюсь.

Ну ты же понимаешь, что одного тебя мало. Массовость твоего движка будет зависеть от того, понравится ли он другим программистам (тебя же одного на всех заказчиков не хватит). А если прогерамм не понравится, то... увы и ах, судьба твоего творения будет беславной.

 
Vitalii Ananev:

Когда вы начнете реально это делать, то вы потом запутаетесь во всех своих якобы "объектах".

И получается не проще. В вашем случае (как вы сами написали) надо проделать 4-ре действия. В моем примере с использованием ОПП только одно действие.

upd.

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

Я уже более года это реально делаю. И не путаюсь.))