Skip to content

Comments

Add endpoints for working with books#2

Open
df530 wants to merge 7 commits intomasterfrom
df5dev
Open

Add endpoints for working with books#2
df530 wants to merge 7 commits intomasterfrom
df5dev

Conversation

@df530
Copy link
Owner

@df530 df530 commented Dec 12, 2021

No description provided.

Copy link

@katunilya katunilya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я не "докапываюсь" просто хочу понять, насколько ты понимаешь разницу между post и put. Просто семантически выбивает немного.


Вообще naming такая смешная штука. Вот вроде есть JSONSchema, которая вроде как на уровне API имеет место быть. А вроде как есть схемы, которые для БД. А вроде это модели, а моделями еще называют то, что в бизнес логике и начинает болеть голова. Но это так, лирическое нытье)


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

На самом деле это просто семантика, которая особо глубокого смысла не несет. Что адаптер, что сервис, хоть UseCase называйте (а так делают). Все равно в основе лежит идея - бизнес логика изолирована от инфраструктуры, это инфраструктура под нее адаптируется (это кстати объясняет почему так назвали).

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

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

Ну просто вы сейчас можете неожиданно узнать, что, например mongodb умеет в хранение файлов (по крайней мере на C# я точно находил дрова для этого, скорее всего и для питона будут) и тут оказывается, что нужно все это дело переписать и бизнес логику тоже переписать. потому что это не адаптеры) но для питона это не очень свойственное решение

Comment on lines 4 to 6
from src.api_gateway.books.get import *
from src.api_gateway.books.post import *
from src.api_gateway.books.put import *

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

интересное разделение

from src.books.adapters import sources, info


@palt_app.put("/new_book_source/")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А почему put?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants