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

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

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


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


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


ухты ©   (19.12.18 22:09[20]

А что сейчас актуально?


FreeAndNil ©   (19.12.18 22:11[21]

mvvm например будет поновее.


FreeAndNil ©   (19.12.18 22:14[22]

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


ухты ©   (19.12.18 23:29[23]

так это не взаимозаменяемо
например в том же вебе (сервер) наворачивать мввм себе дороже, а мвс хоть бы что. )


FreeAndNil ©   (20.12.18 00:10[24]

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

например один человек однажды сделал полезное и удобное для ведения клиентской базы.
раньше все данные вводились с листа  и листов этих было много (минут 15 уходило на создание нового профиля).
а он сделал разбор pdf файлов из сервиса фокус (или чего-то там подобного)
все просто пищали от счастья, но не долго.
ровно до того момента, когда поменялся (совсем немного) pdf.
все сразу испортилось, а у чела просто не хватило сил и воли отрефакторить свой же код.
все было написано в лоб и каким-то чудом работало. а почему (в каком месте) перестало работать - он даже этого не смог понять.

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

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

и там естественно никаких мвц, мввм и прочего не было и не могло быть.

чисто процедурный подход.


Inovet ©   (20.12.18 03:55[25]

Удалено модератором
Примечание: offtopic


Inovet ©   (20.12.18 03:55[26]

Удалено модератором
Примечание: offtopic


FreeAndNil ©   (20.12.18 09:29[27]

Удалено модератором
Примечание: offtopic


ухты ©   (20.12.18 11:24[28]

Удалено модератором
Примечание: offtopic


FreeAndNil ©   (20.12.18 11:30[29]

Удалено модератором
Примечание: offtopic


ухты ©   (20.12.18 11:51[30]

Удалено модератором
Примечание: offtopic


Inovet ©   (20.12.18 20:38[31]

Удалено модератором
Примечание: offtopic


Inovet ©   (20.12.18 20:45[32]

Удалено модератором
Примечание: offtopic


FreeAndNil ©   (20.12.18 22:07[33]

Удалено модератором
Примечание: offtopic


Inovet ©   (20.12.18 22:49[34]

Удалено модератором
Примечание: offtopic


FreeAndNil ©   (20.12.18 22:52[35]

Удалено модератором
Примечание: offtopic


Inovet ©   (20.12.18 23:21[36]

Удалено модератором
Примечание: offtopic


FreeAndNil ©   (20.12.18 23:33[37]

Удалено модератором
Примечание: offtopic


FreeAndNil ©   (20.12.18 23:37[38]

Удалено модератором
Примечание: offtopic


FreeAndNil ©   (20.12.18 23:55[39]

Удалено модератором
Примечание: offtopic


картман ©   (21.12.18 00:34[40]

Господа, не проясните, об чем речь с отсутствующими зимними одежками и пейзажами?


версия для печати

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

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







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


Наверх

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