Как стать автором
Обновить

Декомпозиция программных компонент

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3K
Всего голосов 38: ↑18 и ↓20+5
Комментарии18

Комментарии 18

стрелочки, квадратики, ...

фигня какая-то. На заборе тоже очень многозначительно написано, но там просто дрова лежат за забором.

Спасибо за публикацию. Интересно.

Последний пример привели бы на ts с jsx, чтобы было понятно во что ваш tree превращается.

Я часто использую MVC. Посмотрел на картинку. Все ли там корректно? У меня на практике код для View, код Model изолированы друг от друга. Взаимодействие отражается только в секции Controller.

Схема движения данных такая: View <--> Controller и Model <--> Controller. И нет связи между View и Model.

Кстати, если говорить о том, кто кого знает, то только Controller знает о View и Model. Они же в свою очередь не знают о Controller и друг друге

Во чо-то такое, но в данном случае это не особо важно.

Если View не связана с Model, то это, очевидно, не MVC, а MVP.

Блин, точно. Думал, что у меня MVC, а оно MVP ))

$mol_view построен на идеях MVF

То есть весь набор полезной информации об остальных подходах в библиотеке игнорируется.

Вообще, подход автора непонятен. Сначала он расписывает преимущества и недостатки разных подходов. Уже на этом этапе он совершает непонятное - зачем-то в каждом случае собирает отдельный набор критериев оценки. Далее же просто заявляет - вот в этом произвольном наборе критериев выставлены все галки, и видимо поэтому он использован в моей библиотеке.

Автор, что такое сравнимость результатов? Это когда попугаев сравнивают с попугаями, а не с мандаринами. Во всяком случае мне (и не только мне) так казалось до сих пор. Но автор предложил альтернативу - мерить слона в попугаях. А вдруг взлетит?

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

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

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

Ну и по сравнению.

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

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

Ну и в третьих. Следует двигаться от задачи. То есть от построения UI. И вот тогда вы могли бы предложить что-то ценное, а потом уже указать, что найденное работает хуже/лучше с такими-то паттернами. То есть тогда была бы основа для сравнения. У вас же никакой основы нет. Я даже удивлён - ожидал от вас большего проникновения в глубины пиления фронта, но обнаружил очень поверхностный подход.

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

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

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

Мне тайпскрипт не интересен, поэтому дайте мне код на тайпскрипте, иначе я поставлю вам ❌и ➖.

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

Дмитрий без обид, но это классический пост про $mol. Напоминает рекламу из боковых баннеров: "У меня теперь стоит как у быка, ведь я принимаю ..." Хотите узнать больше?
В этом есть какая-то выгода, помимо саморазрушения? Какой план? Наступать на одни и те же грабли?

Что мертво, умереть не может.

Жить не может тоже.

Я немного извиняюсь за тупость, но у меня вот такой вопрос: если у меня в MVVM классы Model и ViewModel сливаются в один класс, то что это? С одной стороны, это не View-Model, поскольку код работы с моделями не пишется прямо в отображении. С другой стороны, это не Model-View, поскольку пользователь не взаимодействует с моделью напрямую, да и модель не знает как себя представлять. В коде это выглядит как-то так: https://pastebin.com/0Xst5chU

И кроме того, почему в голосовании можно выбирать лишь одну опцию? Что делать, если в приложении одновременно используются разные паттерны?

Я бы сказал, что это MVVM с микромоделями содержащими одно значение.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории