Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »
Страницы: 1 2 3

Почему программисты хотят структурировать код,


xayam ©   (08.12.18 20:06

но не могут?


Sha ©   (08.12.18 21:03[1]

обычно потому, что нашелся другой программист, который успел "структурировать" раньше )


SergeyIT ©   (08.12.18 22:36[2]

Конкретные примеры будут?


asail ©   (08.12.18 23:47[3]


> Почему программисты хотят структурировать код,

Чтобы их не побили другие программисты, которым потом пришлось иметь дело с этим кодом.

> но не могут?

Только те, кого мало били те самые другие программисты... :)


xayam ©   (09.12.18 00:14[4]


> Конкретные примеры будут?

так голосуем.
1) Программисты у которых с структурированием проекта все в порядке
2) И остальные которые не могут :)


Sha ©   (09.12.18 00:31[5]

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


asail ©   (09.12.18 00:43[6]


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

О! Месье явно не имел дела с индусами... :)


xayam ©   (09.12.18 00:59[7]


> Месье явно не имел дела с индусами

мнения разделились :)


Германн ©   (09.12.18 02:38[8]


> SergeyIT ©   (08.12.18 22:36) [2]
>
> Конкретные примеры будут?

Поддерживаю.
Что значит "структурировать код"?


xayam ©   (09.12.18 09:34[9]


> Что значит "структурировать код"?

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

То есть структура - это некий скелет проекта, на который уже наращивают мясо функционала.
В период поддержки проекта для пользователей, затруднительно менять структуру,
поскольку на нем держится весь функционал и перестройка структуры приведет к новому
витку наращивания мяса функционала (а кому сие повторное действие надо?)

Это в первом приближении :)

Одним из известных способов структурирования проекта является система
MVC = Model + View + Controller
https://ru.wikipedia.org/wiki/Model-View-Controller


xayam ©   (09.12.18 09:42[10]


> Одним из известных способов структурирования проекта является
> система

ну и другие шаблоны проектирования:
Фасад (шаблон проектирования)
https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D1%81%D0%B0%D0%B4_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D1%82%D0%B5%D0%BB%D1%8C_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

см. также Адаптер, Декоратор и т.д.


картман ©   (09.12.18 11:22[11]

потому что это сложно


KSergey ©   (09.12.18 11:46[12]

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

Лично я считаю это основным признаком и критерием профессионализма программиста: умение делать продукт, удобный пользователю, а не "структурированный программистом". Ибо тот кейс который удобен пользователю - он всегда неудобен программисту с т.з. "структуры".
И по итоговому продукту это тоже всегда очень видно: делал его программист или нормальный чувак, понимающий кейс пользователя этого продукта.


Sha ©   (09.12.18 11:53[13]

> xayam ©   (09.12.18 09:34) [9]

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

Переделать большой проект, написанный в стиле "вся обработка - в обработчиках кнопок" на MVC обычно трудно из-за трудно отслеживаемого и трудно понимаемого течения управления: взаимного влияния обработчиков, вызовов Click из OnClick, большого числа контролов на форме и тучи рефрешей, которые обновляют в них данные. И только когда рефреши становятся циклическими, "программист" начинает подозревать, что, возможно, он что-то делает не так.

В этом случае, первое, что надо сделать, - отдать GIU другому программисту.

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

Контролировать данные в стиле MVC обычно проще, мне больше нравится сразу создать что-то вроде MVVM: одна модель для "внешнего" мира, другая для "экранного".

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

Ну а после этого можно браться за "красоту".


ухты ©   (09.12.18 22:55[14]


> Невозможно программировать, не имея представления о структуре
> проекта.
Как бы в задаче не про то спросили. ))

Интересное дело
Хотят (по крайней мере, из топика) структурировать но какие то трудности а еще и с оплатой за такие выкрутасы. А бесструктурно фигачить только в путь и платят?
Я тада за бесструктурность.))


Германн ©   (10.12.18 02:51[15]


> Sha ©   (09.12.18 11:53) [13]
...
> В этом случае, первое, что надо сделать, - отдать GIU другому
> программисту.

Вот с этим у меня всегда были проблемы. Как читатель я нормально представлял себе "хороший интерфейс". А вот как писатель - вставал в ступор.


Mystic ©   (11.12.18 12:56[16]

Потому что не могут?

Аналогичный пример: все хотят заработать миллион долларов, почему не зарабатывают? Ответ такой же.


Сергей Суровцев ©   (18.12.18 12:50[17]

>xayam ©   (09.12.18 09:34) [9]
>> Что значит "структурировать код"?
>некое действие над начальным кодом, которое уменьшит последующие глобальные
>переделки проекта в угоду заказчику,функционалу, либо еще каким-то причинам.

Обычно это принято называть архитектурой.

>Одним из известных способов структурирования проекта является система
>MVC = Model + View + Controller

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

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


FreeAndNil ©   (18.12.18 13:29[18]

Лично я считаю это основным признаком и критерием профессионализма программиста: умение делать продукт, удобный пользователю, а не "структурированный программистом".

Это так себе критерий.
Если такое умение есть, это ни о чем не еще говорит.


FreeAndNil ©   (19.12.18 21:57[19]

Одним из известных способов структурирования проекта является система
MVC = Model + View + Controller


именно что проекта, но не кода.
к тому же про этого мамонта (мвц) все давно уже забыли еще позавчера.


Страницы: 1 2 3 версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо