[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поставьте на путь истинный)
Страницы: 1, 2, 3, 4
Ricco381
Всем привет.
Уже сколько занимаюсь программированием и никак не могу понять где и как обрабатывать те или иные данные, которые не касаются конкретной модели.
Вот например, есть некий сайт в котором используется комиссия за проведение каких-то операций, размер комиссии хранится в базе данных, так как это может использовать в разных местах значит нужно сделать для этого отдельный метод, а может быть и класс, а вот тут то у меня и вбивает в ступор, а как это реализовать так чтоб было правильно и не считалось говнокоде, замечу что мне нужен не сам принцип реализации данного куска кода, а где это нужно писать.
Кто что может посоветовать?
twin
В хелперы можно.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
FatCat
Цитата (Ricco381 @ 25.05.2016 - 02:38)
чтоб было правильно и не считалось говнокоде

Мне пофигу кто как оценит мой код. Пишу так, чтобы по возможности было ресурсоемко и удобно мне.

_____________
Бесплатному сыру в дырки не заглядывают...
T1grOK
Вынести в сервис.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
kaww
T1grOK, удваиваю. Если сервисная архитектура, то самое очевидное решение - это реализация в виде сервиса. А по большому счету не особо и важно как назовешь, функционал то от этого не изменится.
Ron
T1grOK, утраиваю. wink.gif
twin
Куда не размести, все равно найдется умник и скажет, что это говнокод. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ron
Цитата (twin @ 25.05.2016 - 10:58)
Куда не размести, все равно найдется умник и скажет, что это говнокод. smile.gif

Та может быть и найдется. Только кто ж его слушать-то станет!? )))

twin
Цитата (Ron @ 25.05.2016 - 07:20)
Только кто ж его слушать-то станет!? )))
Вот и я про то. Вообще так вопрос задавать нельзя. Потому что прав FatCat - единственный объективный судья твоему коду, это ты сам. А слушать остальных умников, так всем не угодишь.

Вот один умник хэлперы предложил, Santehnick не понял причем тут они, T1grOK сервисы предлагает, пошло, поехало. Кто во что горазд. Зависимости какие то... Мир вообще свихнулся на них. Мне всегда, когда я слышу слово "зависимость", автоматически в мозгу всплывет преффикс "алкогольная".

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

Если будешь писать для всех, это не кодинг получится, а проституция.



_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ricco381
twin
Я так и пишу, но все равно хотел услышать мысли профессиональный)
В хелперах можно писать как и в модели или они не должны обрабатывать данные?

T1grOK
Да позволяет, это yii2

Santehnick
Я думал так сделать но были сомнения что это неправильно
twin
Цитата (Santehnick @ 25.05.2016 - 09:42)
twin, я предложил бизнес-логику хранить там где ей место - уровень модели

Вот о том я и говорю. Каждый видит по своему. Ты хватанул сразу глобальную архитектуру, я увидел это:
Цитата (Ricco381 @ 24.05.2016 - 23:38)
так как это может использовать в разных местах значит нужно сделать для этого отдельный метод, а может быть и класс
, то есть уровнем ниже, T1grOK сразу в сервисы полез, сейчас еще чего-нибудь насоветуют каждый со своей колокольни.

Тут вообще в терминологии нет порядка, как советы давать... Для меня очевидно, что функционалу, относящемуся к бизнес-логике не место в сервисах, дальше хелперов делать нечего. T1grOK явно считает, что по сути это одно и то же. Ты считаешь, что нужно думать более глобально. А правды не найти. Потому что если она когда-нибудь найдется, я наверное брошу прогать. Ибо это станет наискучнейшим занятием. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (Ricco381 @ 25.05.2016 - 09:56)
В хелперах можно писать как и в модели или они не должны обрабатывать данные?

Опять же вопрос терминологии. Что ты считаешь моделью? Класс с постфиксом _model? Так это не совсем так. Модель, это уменьшенная (а может и увеличенная) копия. Другими словами ты моделируешь какое то поведение. И в модели могут участвовать и сервисы и хэлперы и черти лысые. А класс с постфиксом, это некая сборная точка.

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

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ricco381
twin
то что в модели можно все это вызвать я знаю, а вот сам сервис может использоваться для работы с данными?
Например мне нужно получить данные из базы потом что-то с ними сделать и вернуть результат, с точки зрения MVC в хелперах это можно делать?
twin
Да. Отличие сервиса от хэлпера (на мой взгляд опять же) в том, что хэлпер, это часть конкретной бизнес-логики. А сервис, это более общий функционал. Допустим твоя комиссия ну вот нафиг не ужна на сайте, где вообще нет никаких денег. Или на другом сайте она может высчитываться совершенно иначе. А значит этот функционал нужен только тут. Это хэлпер чистейшей воды. Помощник, высчитывающий конкретную комиссию, который можно юзать в разных моделях текущего приложения.

А вот допустим функционал работы с СУБД, это сервис. Так как он не привязан к конкретному сайту, но привязан к какому то драйверу. PDO допустим. И этот сервис можно юзать где угодно, ему плевать, каким образом ты будешь комиссию считать. Ему важно, как бороться с СУБД.

Но это ИМХО, прошу учесть.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ricco381
twin
Спасибо!
Еще такой вопрос, куда в yii2 класть helper и от какого класса наследоваться?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.