|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Как не превратить код в антипаттерны?
Долго искал раздел с названием "курилка" или "обо всем", но безрезультатно.. Но вот он!)
Взявшись разбирать промисы, я обнаружил, что не знаю предела использования паттернов. То есть, есть примеры реализации шаблонов, есть статьи и книги, которые описывают и рассказывают на минимальных примерах, как оно все устроенно. Но если шаблон немного не подходит под задачу, то это означает, что нужно от него отказаться или можно его видоизменить или даже компоновать с другими шаблонами? Вот например "команда", у которой есть публичный метод execute, который во всех примерах, ничего не возвращает. А если мне нужно чтобы возвращал? Будет ли его переделывание отправлять мой код в сторону антипаттернов? И есть какие-то критерии, возможно описанные в каких-то книгах, где говорится о допустимом приделе изменения паттернов? Есть например "спецификация", паттерн, который по своей задумки возвращает только булево значение. А если взять и изменить его до возвращения всех значений. То это тоже будет не айс? |
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
Пиши код, чтобы было удобно и не сложно.
Комментируй слабые участки. Старайся не плодить лишние сущности, но при этом не писать всё в одном месте. Вот и всё. |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Это понятно и просто, не плодить сущности, один объект - одна обязанность, но эта дорога ведет в сторону антипаттернов. Это не имеет значения, если бы я хотел все время код только для себя писать.
Но ведь хочется ещё что-то сделать полезного, но при этом не хочется, чтобы мой код назвали кривым. Да и вообще нужно же совершенствоваться. И на сей момент мне кажется, что предел это уметь видеть грань, которая отличает паттерн от антипаттерна. Ведь это очень насущная тема. Даже если не знать об их существовании, то все равно пишешь код, который давно уже описали, структурировали и даже придумали, как его писать нельзя. И вот после всего этого хочется получить ответ, хотя бы на два заданных вопроса выше и уже исходя из ответов, начинать рисовать эту грань. |
|
|||||
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Паттерны, это по сути просто условность (сейчас в меня палки полетят). Вы заморачиваетесь на ерунде.
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Цитата:
Я не понимаю людей, которые не понимая важности, говорят, что это не важно, только потому, ято они сами живут без этого. Еще жаль, что вместо ответа, мне приходится слышать слова "ерунда", что приравнивает значимость моего вопроса, к ерунде! И если бы дело было только в Вас, но ведь другой посмотрит и подумает, что Вы правы! А это не только утопит мой вопрос, но и ещё отнимет у кого-то много времени. Вот скажите, Вы повторяете, как сорока, слова "читабельность кода", "время разработки"? Не обращайте внимание на слова "сорока", так-как я считаю, что Вас они не заденут, только на основе того, что меня лично, они бы не задели! И вот тут я объясню дальше - дал я Вам задание доработать код, а там сто классов и все с говорящими именами - "Зверушка", "ВсеОгороды", "Инвентарь". Вы можете сказать, что с этим делать? А вот если бы Вы знали, что этот класс Декоратор, а эти Momento и Proxy. Вы бы сразу разобрались, как устроено приложение, даже не видя самих классов. Это не читаемость свойств, это читаемость приложения. Разве это "просто ерунда"? |
|
|||||
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Цитата:
Цитата:
Вообще, код может быть понятен как с паттернами, так и без них. Точно так же и наоборот - можно написать отвратительный код, использую паттерны. |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Какие философские беседы, если я задал ДВА КОНКРЕТНЫХ ВОПРОСА?
Философия, это Ваш "ответ" - Цитата:
Цитата:
И личный вопрос - Вы идете по улице и видете тетку с банкой для денег и картонкой "помогите котятам". Неужели Вы подойдете и будете говорить, что Вы не любите катят и она занимается ерундой? Так вот и тут нужно так же, не нравится вопрос - мимо, зачем говорить своё мнение, когда Вас не спрашиваю? Добавлено через 3 минуты Цитата:
Или Вы только другим говорите о ерунде, а сами придерживаетесь традиций? А когда нужно что-то изменить, то Вам лень спрашивать ерунду и Вы портите все так, как Вам хочется? Добавлено через 4 минуты То есть Вы осознано делаете месиво и после этого считаете, что этот, ТОЧНЫЙ вопрос является ерундой?) |
|
|||||
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Любые паттерны - это лишь набор рекомендаций (шаблонов), самое главно понять их суть - реализации одного и того же шаблона могут быть самыми разнообразными, тем более в разных языках.
Можно писать-дописывать свои реализации, если так будет удобнее в вашем конкретном случае - главное при этом не исказить смысл до противоположного. Вернёмся к вашему вопросу о паттерне комманда - весь смысл этого паттерна - обособить действие в отдельный объект. Соответственно результат выполнения команды должен быть спрятан в этом объекте, кроме того, паттерн Команда не говорит ничего, каким должна быть эта команда - синхронная, асинхронная или ёще какая, соответственно никто не гарантирует, что execute может возвратить что-то. Чаще всего - Команда - это объект, который совершает действия над другими объектами, передаными в качестве параметров конструктора. Если вы измените это поведение - ничего страшного, но это уже будет другой паттерн. Добавлено через 3 минуты Цитата:
Добавлено через 12 минут Цитата:
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 17.08.2014 в 01:52. |
|
|||||
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Цитата:
Цитата:
Хотя, видимо, просто тролль. Не будем больше кормить. |
|
|||||
Регистрация: Jan 2013
Сообщений: 322
|
Gerbert, https://github.com/EnterpriseQuality...erpriseEdition
идеальный код - ненаписанный код |
Часовой пояс GMT +4, время: 19:38. |
|
« Предыдущая тема | Следующая тема » |
|
|