Size: a a a

2020 September 01

⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒... in /web/
Stanislav Bobokalo
Нужно просто всё в хранимках писать лооол
Зло
источник

⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒... in /web/
Логика не должна быть в базе
источник

LB

Little Big in /web/
@Oldfag смотри какая схема может существовать. Рассмотрим одну функцию твоего приложения. Пусть это будет показ пользователя из бд по id. У тебя есть 2 источника входящих данных, пусть это будет http и console. Ты делаешь по одному обработчику на эти источники. Обработчики приводят входящие данные к универсальному виду (пусть это будет какой-нибудь класс DTO, который просто хранит данные. Можешь сделать по одному DTO на каждый входящий тип данных. Использование словарей и чего-либо такого, что есть у тебя в языке, я не советую, т.к. это очень неявный путь). У тебя будет контроллер, который никак не завязан на http. Он будет универсальный. На вход в контроллер будет DTO с userId. Контроллер запихает это в модельку и получит от неё результат, тоже в виде DTO юзера и общий класс представления (пусть это будет UserView). Потом этот результат контроллер вернет в слой обработки запросов (консоль или http). Обработчик запросов выберет подходящий вью. Если запрос был по http, то это будет либо HtmlUserView или JsonUserView. Если запрос был через консоль, то это будет ConsoleUserView. И отдаст на выход. Логично, что все классы *UserView должны иметь единый интерфейс типа *UserView.show(UserDTO user). Тип такого
источник

LB

Little Big in /web/
но учти, что это очень тяжелый путь. У тебя распухнет приложение что ппц. Если у тебя цель - сделать энтерпрайзную хуёвину, которую будут пилить несколько команд парарллельно, то такой путь тебе подойдёт. Если это маленькая приложуха на 5-10 эндпоинтов, то забей хуй и сделай все проще и менее универсально
источник

LB

Little Big in /web/
@Oldfag че пилишь-то? какие функциональные требования у приложения? Какая команда разработки? Срок жизни проекта?
источник

⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒... in /web/
Little Big
@Oldfag че пилишь-то? какие функциональные требования у приложения? Какая команда разработки? Срок жизни проекта?
Есть подозрение что при трудоустройстве тестовое задание такое будет
источник

LB

Little Big in /web/
⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒
Есть подозрение что при трудоустройстве тестовое задание такое будет
не ебись
источник

LB

Little Big in /web/
пошли нахуй ребят
источник

⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒... in /web/
Да и сам я хочу уметь универсально писать а не так чтобы чисто под хттп, я считаю что грамотно выстроеная архитектура позволит писать прилодение исполтзуя его и как сайт и как сервис и в консоли
источник

LB

Little Big in /web/
⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒
Да и сам я хочу уметь универсально писать а не так чтобы чисто под хттп, я считаю что грамотно выстроеная архитектура позволит писать прилодение исполтзуя его и как сайт и как сервис и в консоли
поверь, это хуйня без задач на самом деле
источник

LB

Little Big in /web/
именно в таком виде, в котором я расписал
источник

LB

Little Big in /web/
обычно тебе не требуется весь функционал твоего приложения в консольном виде. Максимум - 2-3 функции. Решает это очень просто - не закладываешь в логику модели ничего от http. Потом на той же кодовой базе прикручиваешь консольные скрипты, используеющие модели и всё
источник

⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒... in /web/
Little Big
@Oldfag смотри какая схема может существовать. Рассмотрим одну функцию твоего приложения. Пусть это будет показ пользователя из бд по id. У тебя есть 2 источника входящих данных, пусть это будет http и console. Ты делаешь по одному обработчику на эти источники. Обработчики приводят входящие данные к универсальному виду (пусть это будет какой-нибудь класс DTO, который просто хранит данные. Можешь сделать по одному DTO на каждый входящий тип данных. Использование словарей и чего-либо такого, что есть у тебя в языке, я не советую, т.к. это очень неявный путь). У тебя будет контроллер, который никак не завязан на http. Он будет универсальный. На вход в контроллер будет DTO с userId. Контроллер запихает это в модельку и получит от неё результат, тоже в виде DTO юзера и общий класс представления (пусть это будет UserView). Потом этот результат контроллер вернет в слой обработки запросов (консоль или http). Обработчик запросов выберет подходящий вью. Если запрос был по http, то это будет либо HtmlUserView или JsonUserView. Если запрос был через консоль, то это будет ConsoleUserView. И отдаст на выход. Логично, что все классы *UserView должны иметь единый интерфейс типа *UserView.show(UserDTO user). Тип такого
С дто согласен, (по сути это и есть реквест универсальный) а каким транспортом он получен - не важно, нужны только адаптеры какие то которые будут ее создавать
источник

⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒... in /web/
Little Big
обычно тебе не требуется весь функционал твоего приложения в консольном виде. Максимум - 2-3 функции. Решает это очень просто - не закладываешь в логику модели ничего от http. Потом на той же кодовой базе прикручиваешь консольные скрипты, используеющие модели и всё
Ну да, обычно так и есть)
источник

⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒... in /web/
Точнее даже не консольные а просто скрипты по крону вызываемые например
источник

LB

Little Big in /web/
ага. Смысла такую архитектуру городить - ровным счетом ноль
источник

LB

Little Big in /web/
разве что в обучающиъ целях
источник

LB

Little Big in /web/
типа "а еще можно вот так"
источник

⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒... in /web/
Little Big
разве что в обучающиъ целях
Ну тип того
источник

⚒ ᎪᏞᎬᏦᏚᎪɴᎠᎡ ⚒... in /web/
В развивающих
источник