CRUD веб приложение на ASP.NET Core, React, EF Core, Postgresql с чистой архитектурой

Поділитися
Вставка
  • Опубліковано 14 січ 2025

КОМЕНТАРІ • 134

  • @SachkovTech
    @SachkovTech  Рік тому +20

    В итоге мало чего объяснил и подача оставляет желать лучшего. В следующих видео постараюсь сделать качественнее, а это можете смело ставить на 2х. Мой телеграм канал - t.me/sachkov_blog

    • @IvanKadrov-e7l
      @IvanKadrov-e7l Рік тому +5

      Спасибо за труд. Наоборот, всё очень понятно и доходчиво) Очень полезно и всё доходчиво. Я бэкендер

    • @SachkovTech
      @SachkovTech  Рік тому +1

      @@IvanKadrov-e7l Спасибо!

    • @bloodymanchenal9281
      @bloodymanchenal9281 11 місяців тому +8

      Всё замечательно. Понятно что дальше лучше. Самое главное не опускай руки, так как по .NET очень мало свежих видео и я очень рад что нашёл твой канал так как он очень сильно помог мне в понимание мелких деталей .NET. Спасибо большое)))

    • @nick_stelmakh
      @nick_stelmakh 10 місяців тому +1

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

    • @polyfem128
      @polyfem128 9 місяців тому

      Смотрел на 1х не отрываясь

  • @ВасилийКондратьев-п1в

    Шикарно, большое спасибо!
    Наконец-то кто-то приводит пример, приближенный к реальной разработке

  • @yakov.lopatin
    @yakov.lopatin Рік тому +7

    Хоть видео и длинное, но посмотрел на одном дыхании, стал больше понимать, как работает приложение в целом, спасибо

  • @SonicMusics
    @SonicMusics Рік тому +8

    Опа, это я удачно зашел. Хорошо объясняешь, продолжай в том же духе.

  • @julik_r
    @julik_r Рік тому +6

    Я фронтендер, появилось больше понимания, как работает бэкенд. Спасибо за видео!)

  • @daymaker_trading
    @daymaker_trading Місяць тому +1

    ОГРОМНОЕ СПАСИБО! Насколько же полезно!! ❤‍🔥

  • @bogdanlistopad271
    @bogdanlistopad271 11 місяців тому +7

    @KirillDeveloper видео понравилось, но пример уж слишком простой в данном случае. Мне кажется стоило добавить еще несколько связанных между собой сущностей, чтобы показать как реализовать эту связь в моделях и репозиториях, например как в видео по EF. В любом случае благодарю за видео, продолжай!

  • @underground49
    @underground49 Рік тому +2

    Кирилл огромное тебе спасибо!!! Давно хотел фронт пощупать, ты вдохновил)

  • @Im_like_Merphy
    @Im_like_Merphy 10 місяців тому +2

    Спасибо большое! Очень познавательное видео.

  • @Artw124
    @Artw124 9 місяців тому +2

    Gоod !!! больше нечего и не нужно говорить! спасибо за ваш труд!

  • @sherlockholmes5395
    @sherlockholmes5395 11 місяців тому +2

    Thanks a million for your video it's a good lesson for me. i made api and I will be doing next super Welldone!!!

  • @chuchelochuchelo1379
    @chuchelochuchelo1379 Місяць тому

    класс, то что надо, как раз изучаю ASP.NET)

  • @PavelLyakh
    @PavelLyakh Місяць тому

    Повторил, все получилось :)
    Класс, спасибо! Но явно нужно разбираться с фронтом...

  • @Polite_person_
    @Polite_person_ 11 місяців тому +2

    Спасибо, то что нужно.

  • @graffoman
    @graffoman 8 місяців тому

    Очень интересный видос.
    Многое непонятно, но это даже здорово, т.к. захотелось углубиться и погуглить отдельно некоторые моменты.
    Я далек от фронта, но тоже было интересно, хотелось с чего-то начать. Почему бы не начать с того, что предлагает автор.
    Думаю, что пересмотрю видео ещё раз. Спасибо 😊

  • @sakenjs
    @sakenjs 5 місяців тому +1

    Спасибо! Узнал много нового, то что не было понятно спросил у Claude

    • @sakenjs
      @sakenjs 5 місяців тому +1

      record - это функция, введенная в C# 9.0 (выпущена в 2020 году), которая позволяет создавать неизменяемые (immutable) ссылочные типы с меньшим количеством шаблонного кода. Основные характеристики record:
      Неизменяемость по умолчанию
      Автоматическая реализация методов Equals(), GetHashCode() и ToString()
      Поддержка деконструкции
      Возможность использования позиционных параметров

    • @sakenjs
      @sakenjs 5 місяців тому +1

      Docker - это платформа для разработки, доставки и запуска приложений в контейнерах

    • @sakenjs
      @sakenjs 5 місяців тому +1

      Docker Compose - это инструмент для определения и управления многоконтейнерными приложениями Docker

    • @sakenjs
      @sakenjs 5 місяців тому +1

      AsNoTracking() - это метод в Entity Framework Core, который используется для оптимизации производительности при выполнении запросов только для чтения

    • @sakenjs
      @sakenjs 5 місяців тому +1

      ExecuteUpdateAsync и ExecuteDeleteAsync - это методы, добавленные в Entity Framework Core 7.0, которые позволяют выполнять массовые операции обновления и удаления без необходимости сначала загружать сущности в память

  • @yaroslav.shamov
    @yaroslav.shamov Рік тому +2

    Спасибо за видео!

  • @tojifu6higuro
    @tojifu6higuro 9 місяців тому +2

    Как сделать вижуалку такой же красивой?

    • @SachkovTech
      @SachkovTech  9 місяців тому

      Превью версия

    • @Jesiksss
      @Jesiksss 4 місяці тому

      есть тема Rider, это не та тема, но тоже красивая

  • @alexandralikin3830
    @alexandralikin3830 10 місяців тому +2

    Кирилл, есть возможность предоставить гитхаб с этим проектом?

    • @SachkovTech
      @SachkovTech  10 місяців тому +1

      Позже в телеграм канале выложу

  • @sergeyz.5845
    @sergeyz.5845 10 місяців тому +1

    [15:55] Вызов Select после ToListAsync? надо до превращения в лист мэпить. запрос в бд будет чаще всего короче и не придется после создания листа итерироваться по новой

    • @sergeyz.5845
      @sergeyz.5845 10 місяців тому

      в примечании microsoft рекомендует использовать Add, кроме некоторых исключительных случаев

  • @behemoth1621
    @behemoth1621 8 місяців тому +1

    Добрый день!Спасибо за материал!А есть ссылка на гит с кодом?

  • @КылымбекЖенишбеков-х2я
    @КылымбекЖенишбеков-х2я 7 місяців тому +1

    Добрый день! Я новичок в чистой архитектуре и на пути изучения. У меня появились вопросы.
    1) слой core как я понимаю - это доменный слой( бизнес слой, ядро). Если модели данного слоя это бизнес сущность, то не должны ли все остальные слои зависеть от данного слоя?
    2) Могу ошибаться, поправьте, пожалуйста, но если в бизнес сущностях что-то поменяется, то нам надо будет в двух слоях менять?
    3) Как я понимаю, сеттеры не добавлены были, дабы, проконсультировать нежелательные вставки в свойства? А нельзя ли это проконтролировать в слое выше, в application, так как это слой бизнес процессов. Так же, не протаскивать доменную сущность до слоя Api. Так же, нормально ли в контроллерах выполнять дополнительные действия такие как силекты и прочее, если их можно в слое application, так как повторюсь, это слой бизнес процессов?
    За ранее спасибо! Я ни в коем случае, не хочу никого задеть, это в целях улучшить знания свои и получить фидбек по пробелам.

  • @Edgar-pu1lc
    @Edgar-pu1lc 9 місяців тому +1

    Привет,на 1:50 про какую логику идет речь, это же просто модели,не ?

    • @SachkovTech
      @SachkovTech  9 місяців тому

      Про доменную логику, у моделей может быть большая логика, например модель банкомата

  • @vitaliyschweigen4833
    @vitaliyschweigen4833 8 місяців тому +2

    Привет. Не мог бы ты пояснить момент.
    Не понятен смысл существования BookEntity.
    Действительно ли нам нужно, используя EF codefirst и миграции, юзать эту прослойку? Какие проблемы мы этим решаем? В твоем примере получается просто валидация при чтении из БД, зачем оно надо не понятно.
    За труды Спасибо, это самый лучший мануал по теме, который мне удалось найти.

    • @dmitriiandrukhiv3579
      @dmitriiandrukhiv3579 18 днів тому +1

      (у меня 20+ лет опыта) Чтобы ответить на твой вопрос предлагаю подумать: А какие есть альтернативы? Как бы ты сделал без этой прослойки?
      Важная задача, которую мы решаем: независимость бизнес-логики от инфраструктуры. (EF - это инфраструктура) Т.е. ты можешь взять отдельно проект(ы) относящиеся к бизнес-логике и написать для них тесты вообще не используя EF. Ты можешь перекомпоновать решение вообще без использования именно EF, заменив EF на другую технологию или заменив на обращение к какому-то фасаду, который реализует другая команда разработчиков и ты даже не знаешь как они это делают.
      Как ты достигнешь такой гибкости и возможности разрабатывать проект независимо несколькими командами, если у тебя не будет этой прослойки?

    • @dmitriiandrukhiv3579
      @dmitriiandrukhiv3579 18 днів тому +1

      Сейчас подумал, что по настоящему осознать необходимость такой гибкости можно только столкнувшись в этим на практике: Над предпоследним проектом, в котором я участвовал, работало несколько сотен разработчиков, это больше десяти отдельных команд, в каждой из которых свое руководство, свои процессы и т.д. Оказавшись в такой ситуации на практике понимаешь как важно организовать максимально независимую работу от других команд. Чтобы баг созданный разработчиком, с которым ты даже не знаком, не мешал твоей работе, отладке и т.д. Почти в каждой команде мы использовали эмуляторы модулей, разрабатываемых другими командами, чтобы их баги не мешали нам работать

  • @asli9152
    @asli9152 5 місяців тому

    Искал любой норм asp тутор, а нашёл золото!

  • @yevhenzoria9532
    @yevhenzoria9532 10 місяців тому +1

    Спасибо, очень познавательно. Есть вопрос: чем плох шаблон "React and ASP.NET Core"? Его используют на практике, или все же обычно используют разделение frontend/backend как в ролике? Спасибо.

    • @SachkovTech
      @SachkovTech  10 місяців тому +2

      Большинство разделяют проекты, чтобы все деплоилось независимо + в шаблоне используется сборщик vite, кому-то может не нравится. Просто если создашь отдельно фронт, то можно вести себя гибче, менять сборщики и тд, поэтому рекомендую делать раздельно

  • @just_ondrey1032
    @just_ondrey1032 3 місяці тому

    Классный видос, очень помог, Спасибо! еще возник не по теме вопрос, что за тема в vs у тебя?

  • @Enigma-mv6ss
    @Enigma-mv6ss Рік тому +2

    В некоторых случаях dto же находится на уровне бизнес логики , то есть логика возвращает нужный объект для контроллера , а контроллер просто возвращает , то есть в контроллере минимум логики. Такой вариант более правильнее ?

    • @SachkovTech
      @SachkovTech  Рік тому

      Зависит от подхода, но если это подход контролер, сервис, репозиторий, то сервис должен возвращать Domain модель, а контроллер маппить её в дто

  • @kostyabetenya6509
    @kostyabetenya6509 5 місяців тому

    Подскажите пожалуйста, как он может обращаться к именам других решений. Я имею ввиду, как, будучи в проекте BookStore.DataAccess он может обращаться к моделям из BookStore.Core.
    таймкод: 12:24

  • @ЛеонидЗиновьев-з5у
    @ЛеонидЗиновьев-з5у 3 місяці тому

    Не нашёл в тг канале ссылку на гитхаб, можно пожалуйста её?

  • @Vilgefortz13
    @Vilgefortz13 7 місяців тому +1

    а откуда взять docker-compose файл?

    • @a_s_f_a5351
      @a_s_f_a5351 3 місяці тому

      Узнал откуда?

    • @Vilgefortz13
      @Vilgefortz13 3 місяці тому

      @@a_s_f_a5351 нет, в ручную переписал

    • @nasimmamatkylov5457
      @nasimmamatkylov5457 2 місяці тому

      создать, автоматом добавить в папку solution items

  • @mrdgnf
    @mrdgnf 3 місяці тому

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

  • @eugene-murashka
    @eugene-murashka 11 місяців тому

    12:38 А разве использование константы из Core слоя в Data слое не нарушает принцип обратной зависимости? Не лучше ли будет вынести константу в отдельный конфигурационный файл (например appsettings.json), где будут храниться все константы?

    • @eugene-murashka
      @eugene-murashka 11 місяців тому

      А еще лучше в EnvironmentVariable в файле launchSettings.json

    • @SachkovTech
      @SachkovTech  11 місяців тому +1

      Нет, не нарушает, слой Persistence имеет доступ к доменным моделям, как минимум он их возвращает и принимает в репозиториях, поэтому так можно делать. Конечно желательно, чтобы слой Persistence ссылался на Application, а Application на Domain

    • @SachkovTech
      @SachkovTech  11 місяців тому +1

      В конфиге константы хранить не лучшая идея

  • @murr_ka4374
    @murr_ka4374 8 місяців тому +1

    Как ты в Visual Studio сделал внешний вид, наподобие внешнего вида vs code?

    • @SachkovTech
      @SachkovTech  8 місяців тому

      Это preview версия

  • @DerzoMelon
    @DerzoMelon 2 місяці тому

    на момент с "dotnet ef migrations add " выдет ошибку "Не удалось выполнить, поскольку указанная команда или файл не найдены." В чем может быть дело?

  • @nasimmamatkylov5457
    @nasimmamatkylov5457 2 місяці тому

    страница не найдена(

  • @dronsan-unity7302
    @dronsan-unity7302 10 місяців тому +1

    в повершеле прописывал миграцию и само окно частично скрыл и не понятно, что там прописывал(

    • @SachkovTech
      @SachkovTech  10 місяців тому

      dotnet ef migrations add название миграции -p путь до проекта с dbcontext -s путь до проекта с api. В документации эта команда есть, можно загуглить dotnet ef migrations

    • @dronsan-unity7302
      @dronsan-unity7302 10 місяців тому

      @@SachkovTechспасибо за объяснение!

  • @hilton8370
    @hilton8370 Рік тому +1

    А вот ты создаешь в book.cs метод create и проверяешь title , но даже если у нас будет ошибка в любом случае сожается book ? Если я все правильно понял

    • @SachkovTech
      @SachkovTech  Рік тому

      Правильнее было бы, сделать возвращаемый тип Book?, и если ошибка есть, то возвращать вместо book - null. А ещё правильнее использовать тип Result, как я делаю в видео про богатую DDD модель

    • @LightChimera
      @LightChimera 11 місяців тому +1

      ​@@SachkovTech, честно, не совсем понял прикол такой реализации. Даже если возвращать null, то где-то на уровень выше прийдётся каждый раз проверять, что нам вернул метод, а если где-то забыть это сделать, то все приложение сломается. Сомнительная практика. Разве не лучше просто выбрасывать исключения?

    • @SachkovTech
      @SachkovTech  11 місяців тому

      @@LightChimera Можно просто выбрасывать исключение, но это менее производительно. Тут кому как больше нравится, либо использовать тип Result и делать проверку каждый раз при создании модели или выбрасывать исключение, но жертвовать производительностью

    • @LightChimera
      @LightChimera 11 місяців тому +1

      ​@@SachkovTechТеперь понял мотив, спасибо

    • @nick_stelmakh
      @nick_stelmakh 10 місяців тому

      @@SachkovTech out of the blue. возвращать null? rly? это худшее зло, что коллекции, что поодиночные объекты
      вроде так не плохо все сделал и более или менее понимаешь суть, но иногда у тебя такие высказывания проскакивают, что не имеют никакого отношения к clean code, architecture.

  • @it-tb8od
    @it-tb8od 8 місяців тому +1

    То чувство когда выучил базовый синтаксис и понимаешь, что дальше уже ничего не понимаешь

  • @RichardTheLionJokes
    @RichardTheLionJokes 3 місяці тому

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

  • @proger2396
    @proger2396 8 місяців тому +1

    Сделай еще одно такое видео просто создай полноценный проект и сразу на видео покажи как в нитернет опубликовать проект

  • @extense1337
    @extense1337 10 місяців тому +1

    Привет, пару небольших замечаний:
    1) Там где const string MAX_TITLE_LENGTH, лучше было его же и вписать в error, вместо магичской 250
    2) Вместо кортежа result + error как будто бы напрашивается отдельный класс (Пример у Чапсаса - ua-cam.com/video/YbuSuSpzee4/v-deo.html)

    • @SachkovTech
      @SachkovTech  10 місяців тому +1

      Согласен, но решил не усложнять пример и показать саму концепцию, а с переменной, просто забыл так сделать)

    • @sergeyz.5845
      @sergeyz.5845 10 місяців тому

      про 2 - 100% надо result класс

  • @xd6369
    @xd6369 3 місяці тому

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

  • @rubiks7196
    @rubiks7196 Рік тому +1

    Скинь пожалуйста тему оформления в VS

    • @SachkovTech
      @SachkovTech  Рік тому

      Это Dracula в visual studio и dracula purple в vs code

  • @makc3682
    @makc3682 9 місяців тому +1

    А как docker-compose up -d без докерфайла работает?

    • @SachkovTech
      @SachkovTech  9 місяців тому

      Он загружает образы(images), если запускаешь свое приложение, то сначала нужно сделать для него докер файл

    • @makc3682
      @makc3682 9 місяців тому +1

      @@SachkovTech Тоесть если тебе нужен постгре то достаточно докер-композ, но если хочешь в докер контейнер положить свое приложение, тогда нужен докерфайл. Понял. Спасибо.

    • @SachkovTech
      @SachkovTech  9 місяців тому +1

      Да, и ты можешь из своего приложения сделать образ, загрузить его в докер хаб и потом оттуда загружать образ, также, как и с постгрес например

  • @nikartom
    @nikartom 6 місяців тому

    Мы в куче разных мест используем поля Guid Id, string Name и тд. И в будущем если появится новое поле, то его надо так же везде в куче мест добавить. Нельзя где-то в одном месте их прописать и во всех классах использовать?

    • @Jesiksss
      @Jesiksss 6 місяців тому

      Ну технически, можно сделать какой то абстрактный класс, от которого мы будем наследоваться, но добавлять эти поля create и update все равно придется(

  • @ДимаОщепков-к8д
    @ДимаОщепков-к8д 2 місяці тому

    Помогите понять чистую архитектуру. Почему в слое DataAccess есть зависимости от EF Core? Я везде нахожу информацию, что зависимости от фреймворков должны быть в .Infrastracture. Это нормальная практика или упрощение? Заранее спасибо

  • @moon5964
    @moon5964 7 місяців тому +2

    Забавный момент который я не сразу заметил. Тут создается контейнер в Докере и запускается но используется при этом обычный сервер Postgresql если я правильно понял. То есть в данном случаи создание контейнера используется как создание БД схемы а работа с БД ведется напрямую через локальный установленный скорее всего сервер Postgresql, а не в докера , ибо если остановить работу контейнера, то о чудо, работа апи не будет выбрасывать ошибки, что докажет что апи работает с сервером. Но видео при этом очень полезное и достаточно хорошо показывает БАЗУ!)

    • @timur2887
      @timur2887 5 місяців тому

      Метко подмечено, в строке соединения должен был бы быть не Host=localhost, а Host=postgres, то есть имя контейнера в докере...

  • @Easycore2000
    @Easycore2000 Рік тому +1

    Есть ли смысл использовать шаблон c реактом в VS, там где сборщик vite?

    • @SachkovTech
      @SachkovTech  Рік тому +1

      Ещё не использовал vite, но как минимум для изучения, смысл есть

  • @lullaby-c3i
    @lullaby-c3i 11 місяців тому +1

    i done everything is it ok asp + next good mix

  • @govoryashchie
    @govoryashchie 8 місяців тому

    Интересный подход. И всё же есть вопрос. Класс Book, тот , который домейновский, он не противоречит SOLID? Возможно, я что-то не понимаю, но здесь при создании класса у нас одновременно и состояния, и поведение и даже инициализация экземпляра этого же класса, как в Singletone, и там же - валидация. Такое ощущение, как будто мы перегружаем класс. А он является домейновским. Поправьте, если не прав. А вообще объяснение мне очень даже понравилось. Спасибо за труды. Теперь буду следить за вами. Лайк и респект за обучение

    • @Abilovv599
      @Abilovv599 7 місяців тому +1

      я также считаю, че то много всего происходит в одном классе

  • @nouchance
    @nouchance Рік тому +1

    spasibo!

  • @АлексейАлександрович-с4д3м

    У меня постоянно лажа с зависимостями между слоями, а есть больше информации про это? То слой DAL не видит Core то В контроллерах не видно модели или интерфейсы из Core. Как их правильно настраивать, когда несколько проектов в солюшене?

    • @SachkovTech
      @SachkovTech  10 місяців тому +1

      Будет про это видео

  • @re1mzfn426
    @re1mzfn426 Рік тому +1

    Какая тема на вс?

    • @SachkovTech
      @SachkovTech  Рік тому

      Dracula на vs, dracula purple на vs code

    • @re1mzfn426
      @re1mzfn426 Рік тому +1

      @@SachkovTech спасибо

  • @alexeybreez9102
    @alexeybreez9102 9 місяців тому +2

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

  • @АндрейКаллаур-й2н
    @АндрейКаллаур-й2н 5 місяців тому

    ты не мог оставить код. Где код всего этого

  • @Дмитрийсекрет-н7о

    Это я удачно залетел. Давно хотел пощупать React за мяхкое место. С меня лайк и подписка. Так држать.
    И сразу вопрос. Можно ли добавть итолько страницу на реакте. В Существующие mvc приложение net core 6. Например реализовать админку и странице статистики по каким нибуть item"s?

    • @SachkovTech
      @SachkovTech  Рік тому +1

      Спасибо! По идее можно, есть интеграции react в asp net mvc, есть nuget библиотеки для этого, после установки можно будет использовать файлы jsx.

    • @Дмитрийсекрет-н7о
      @Дмитрийсекрет-н7о Рік тому +2

      @@SachkovTech Вот и готовая идея для реализации любителей нестандртного програмирования ))

  • @Xor0x
    @Xor0x 7 місяців тому

    Странно я все делаю как на видео но у меня выдаёт ошибку в Programs.cs а именно в IBooksService и IBooksService он не видит их хоть я ссылку даю.

    • @opilochka-yw8xg
      @opilochka-yw8xg 4 місяці тому

      Как ты решил эту проблему?

  • @erproerpro903
    @erproerpro903 Рік тому +1

    Молодец 👍

  • @medyabeats4041
    @medyabeats4041 7 місяців тому

    а что за язык?

  • @dm8380
    @dm8380 Рік тому +1

    Каким образом можно всему этому научиться? 😭

    • @SachkovTech
      @SachkovTech  Рік тому

      Да это еще только база) Ну а вообще усердными занятиями)

  • @eqspertars4062
    @eqspertars4062 5 місяців тому

    В целом для новичка норм, но namespace...Боль и еще раз боль!

  • @timur2887
    @timur2887 6 місяців тому

    Зачем классы использовать в таких моделях, есть же рекорды? В три раза меньше писанины, а валидацию вынести в отдельные классы с использованием FluentValidation... По поводу архитектуры мог бы порекомендовать вертикальные срезы - хорошо на скрам ложится, например: ua-cam.com/video/msjnfdeDCmo/v-deo.htmlsi=Iq6zal9K3DCAAIwE

  • @АндрейКаллаур-й2н
    @АндрейКаллаур-й2н 5 місяців тому

    так себе. одни нервы. так и не получилось. оказывается на просторах интернета трудно найти. Обычно GRUD приложение

  • @GustavoFring-f8z
    @GustavoFring-f8z 9 місяців тому +3

    гайд слабый, хоть и понятно, что хотел донести автор, но всё-таки хотелось бы знать, почему так или не так сделано в каком-то конкретном случае(именно ход мыслей и логическое рассуждение, подкрепленнённые фактами из реальной разработки), понимаю, первое видео - проба пера, и в будущем будет лучше, но на такие вещи сразу лучше обращать внимание

  • @Pirat_of_the_red_sea
    @Pirat_of_the_red_sea 9 місяців тому +8

    Крайне малоинфлрмативный видос, объясняешь почти ничего.

  • @testservicesssss
    @testservicesssss 8 місяців тому

    Для новичков плохо объяснил, а профессионал будет скучно такое.

  • @lonelypaul69
    @lonelypaul69 11 місяців тому +3

    Пока фронт не начал показывать, всё понятно было и без вопросов (за исключением пары моментов),
    Как только начался фронт... Я перестал улавливать логику...
    Что за иерархия папок, что за компоненты, несколько файлов с book и т.д.😅
    Ощущение, что ты спешил очень куда-то 😅

    • @SachkovTech
      @SachkovTech  11 місяців тому +1

      Признаюсь, так и было, с фронтом я в этом видео накосячил, буду теперь разбивать на части такие видео и про фронт отдельно разговаривать)

    • @lonelypaul69
      @lonelypaul69 11 місяців тому

      @@SachkovTech буду ждать

    • @kirillprokhorenko3944
      @kirillprokhorenko3944 10 місяців тому +1

      даа, есть такое. наконец-то закончил делать, но использовал сборщик Vite, чисто из-за привычки (все 1 в один, только роутинг иначе реализовал)
      поначалу все еще понятно было, но под конец куча файлов, стейтов и все перемешалось в голове короче😓
      +либо я пропустил, либо реализация кнопки Add Books появилась магическим образом в конце видео))
      + у меня почему-то каждая карточка занимает целую строку, но с этим уже разберусь.
      А так классный урок, определенно, есть чему поучиться. Спасибо огромное