При использовании функционально-ориентированного программирования исчезает «несоответствие импеданса»? - PullRequest
2 голосов
/ 22 октября 2010

В настоящий момент я вижу много работы над Entity Modeling в коде и интерес к функциональному программированию.После нескольких лет работы в объектно-ориентированных системах я снова и снова сталкиваюсь с «несоответствием импеданса».

Поскольку Transact SQL реализует некоторые FOP с наборами данных, которые описываются как наборы декларативным способом, выполняет «импеданс»несоответствие "уходи.Если это именно тот случай, который я пытаюсь выяснить, есть ли необходимость в разработке модели предметной области в коде или можно использовать старые и проверенные методы SQL и теории отношений.

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

Отражает ли это обходное решение, что под рукой может быть более серьезная проблема и«Несоответствие импеданса» гораздо больше касается объектно-ориентированного проектирования / программирования, так как вся парадигма может быть не лучшим решением при взаимодействии с RDBMS.

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

Ответы [ 2 ]

1 голос
/ 24 января 2011

Нет

Это короткий ответ.Тем не менее, «шаблоны» функционального программирования уменьшат несоответствие импеданса.Но ожидать этого можно только после того, как вы потратили много времени на изучение функционального стиля.Ожидайте также, что ваше несоответствие импеданса в стиле ОО улучшится с той же мудростью.

Функциональное программирование научит вас, как выстраивать отношения между данными и функциями так же, как вы бы решили загадку содоку.Функциональный стиль дает вам ключевые знания, чтобы понять, почему происходит много несовпадений импедансов.Но даже с этим знанием импедансы все же случаются.Это происходит потому, что программирование - это отображение деревьев и графиков в списки и деревья.Речь идет о отображении конструкций «более высокого уровня» (как в данных, так и в функциональном «пространстве») в отображения «более низкого уровня».Каждое сопоставление может работать хорошо до тех пор, пока не появится новое требование и не возникнет проблема, и тогда потребуется повторное сопоставление сопоставлений.Это жизнь.

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

0 голосов
/ 16 февраля 2013

Если вы не отображаете реляционные данные в объекты (не используйте ORM) только тогда, тогда несоответствие исчезает, ваш стиль программирования не имеет большого значения.

...