Сергей, здравствуйте! Спасибо большое за лекции, я ваш поклонник!) Когда вы объясняете паттерн "Indirection" на 52:40, ваш пример с вынесением интерфейса показался не совсем корректным, так как суть паттерна "Перенаправление", на мой взгляд, заключается в том, чтобы разорвать двустороннюю связь между двумя классами посредником. (в 2008 году на слайде был корректный пример с продажей, репозиторием и базой данных) Могу ошибаться, но вроде по описанию паттерна все так :)
Круто! Спасибо. Тот случай, когда сам дошёл до понимания половины этих принципов, и узнал, что 20 лет назад из уже кто-то сформулировал. Получился паттерн - Инверсия обучения :)
Пихать суммирование в строчку чека - какая-то дичь. Уже лет 6 не пишу логику в классах с данными. DTO хранят данные, Services обрабатывают то что соответствует интерфейсам. Объекты почти не наследую от других объектов, зато использую множественное наследование интерфейсов. Код получается простой. Брат жив. Придумали себе какие-то принципы, и теперь страдают.
@@uasco-da-gama ну да, либо каждые полгода менять версию java либо сидеть с дырами в безопасности (или криво работающими фичами). Все такое заманчивое, прям даже не знаю что и выбрать.
Сергей, приветствую! Спасибо за Ваши труды.. Есть вопрос, в 33 -35 лет , есть ли шанс устроитьсья junior Java или это конец))? До этого работал немного iOS приложения покупал, последний год Golang junior был, но не срослось.. Сейчас в тестировании, но очень хочу научиться и стать разработчиком. Главный вопрос, говорят, что после 30 Junior устроиться очень сложно, это так?
@@uasco-da-gama Вы же говорите, что это в нашей дикой стране с 20-ти летними синьорами типа такое в ИТ- 30 лет и на пенсию. Мне 36 и учу Джаву, есть желание сменить работу.
Почему-то сказанное по поводу индирекшина не коррелирует со слайдом. Там описано создание Хранилища-чистовыдуманного, а не то, что мы инверсируем зависимость через интерфейс. А в целом:"Об очевидных вещах нужно писать снова и снова. Чтобы они не теряли своей очевидности в глазах людей. Чтобы люди, подгоняемые гнетом действительности не могли отринуть очевидное, как малозначимое. Чтобы они не могли придумать хитроумных псевдоаргументов с целью оправдать свое пренебрежительное отношение к очевидным вещам. Очевидные вещи такого не прощают. И планирование проектов тому не исключение." Из старой и удаленной статьи с Хабра.
есть все же такие языки на которых не стоит писать что-то сложнее калькулятора и простенькой бизнесслогики, понятно что спилить вековой дуб можно и пилкой для ногтей :) но это очень долго и утомительно.
Зачем нужны вообще публичные поля, если они нарушают принцип инкапсуляции? К примеру в Java есть класс Point для повышения производительности для работы с графикой там поля публичные, а если брать к примеру PHP (у которого поля по умолчанию публичные)?
Ребят, возник вопрос, который прям не дает покоя: - Не противоречит ли принципе DIP паттерну Creator. По DIP надо объекты передавать другим объектам через их интерфейсы, а по Creator'у эти объекты следует создавать там, где они используются. Как разрешить это противоречие?
Dip не про это, он говорит, что типу надо зависеть от абстракции, а не от реализации. это немного другое нежели, выдача инстанса по запросу. Один за архитектуру связей, второй за поведение при создании. Это проще рассмотреть на конкретном примере, но сколько встречал, то обычно это либо неправильное понимание/смешение понятий, либо незаконченная декомпозиция и как следствие нарушение coupling/cohesion
Проблема с обьектами, которые используются для сериализации. Приходит/отправляется в Jira какую json, где логически обьект 1 , задача, а api реализован так, что в задаче обьект транзакция, в которой лист транзакций, в которых статус, в которых лист статусов, а приходит обьект с одними полями, уходит с немного другими. Когда совсем жопка, конечно, пишется кастомный сериализатор, но не будешь пилить его прям на все извращенные поля, иначе сам сериализатор превратится в говнокод. Вот и приходится выбирать среднее из зол, и брать информацию через вложенные обьекты, если это меньшее из зол...
Шо за тотальний буллшіт? Indirection - це про інтерфейси? Рілі, блять?)) Учіть матчасть, господа, indirection - це паттерн посередник між сервісами і не важливо чи в GoF паттернах чи в GRASPі.
Говорить о сложных вещах простыми словами - талант.
Сергей, спасибо.
спасибо :)
Сепгей, вы умница обожаю вашу харизму и знания,спасибо!!!
Сергей, вы огромный молодец! Желаю вам по больше продуктивной работы, хорошего настроения и здоровья!
Сергей, здравствуйте! Спасибо большое за лекции, я ваш поклонник!)
Когда вы объясняете паттерн "Indirection" на 52:40, ваш пример с вынесением интерфейса показался не совсем корректным, так как суть паттерна "Перенаправление", на мой взгляд, заключается в том, чтобы разорвать двустороннюю связь между двумя классами посредником. (в 2008 году на слайде был корректный пример с продажей, репозиторием и базой данных)
Могу ошибаться, но вроде по описанию паттерна все так :)
вот это огонь! на мног инетреснее чем на канале по обучению.))) не знал что у вас еще этот канал есть,как то упустил. спасибо!
Круто! Спасибо.
Тот случай, когда сам дошёл до понимания половины этих принципов, и узнал, что 20 лет назад из уже кто-то сформулировал.
Получился паттерн - Инверсия обучения :)
Как же Сергей хорошо объясняет, чувствую +250$ к зп))
Благодаря вашим лекциям влюбляюсь в программирование
Очень интересная лекция, посмотрел с удовольствием!
Сергей, жму руку!)
спасибо :)
Когда все вокруг умирает и рассыпается остается То ЕДИНОЕ, ВЕЧНОЕ -- это ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ!
Только сдесь услышал понятное объяснение что такое инкапсуляция
Самые крутые лекции в интернете. Нужно прочитать кучу книг чтобы прити к простым выводам.
49:50 Про рефакторинг придумано просто гениально
Пихать суммирование в строчку чека - какая-то дичь.
Уже лет 6 не пишу логику в классах с данными. DTO хранят данные, Services обрабатывают то что соответствует интерфейсам. Объекты почти не наследую от других объектов, зато использую множественное наследование интерфейсов.
Код получается простой. Брат жив.
Придумали себе какие-то принципы, и теперь страдают.
Наконец-то обучающее видео. Сделайте плиз видос, что по вашему мнению будет с java с появлением платного JDK, .NET победит?
Присоединяюсь к вопросу.+++
ничего не будет :)
@@SergeyNemchinskiy звучит стремно: - А что будет если вон те дяди уронят вон ту штуку? - Ни чего не будет, в радиусе 50 км.
@@uasco-da-gama ну да, либо каждые полгода менять версию java либо сидеть с дырами в безопасности (или криво работающими фичами). Все такое заманчивое, прям даже не знаю что и выбрать.
Не могли бы Вы приложить к видео документ презентации, а то сложно на видео что-либо прочитать?
прикрепил в описании
Сергей, приветствую! Спасибо за Ваши труды.. Есть вопрос, в 33 -35 лет , есть ли шанс устроитьсья junior Java или это конец))? До этого работал немного iOS приложения покупал, последний год Golang junior был, но не срослось.. Сейчас в тестировании, но очень хочу научиться и стать разработчиком. Главный вопрос, говорят, что после 30 Junior устроиться очень сложно, это так?
@@uasco-da-gama Вы же говорите, что это в нашей дикой стране с 20-ти летними синьорами типа такое в ИТ- 30 лет и на пенсию. Мне 36 и учу Джаву, есть желание сменить работу.
@@uasco-da-gama Простите, перечитал еще раз вдумчиво ответ. Обознался, прошу прощения. Все верно в видео рассказано.
Мне просто кажется, что HRы проходят мимо чаще, если возраст приклонный), в Москве по крайней мере, да и вакансий junior не много.
Вопрос снят, парни - спасибо! Педалим...
@@orda13 зарегтесь на линкедине и добавляте в связи всех эйчарок. Окажется что вакансий куча.
Правило бойскауата forever
Почему-то сказанное по поводу индирекшина не коррелирует со слайдом. Там описано создание Хранилища-чистовыдуманного, а не то, что мы инверсируем зависимость через интерфейс.
А в целом:"Об очевидных вещах нужно писать снова и снова. Чтобы они не теряли своей очевидности в глазах людей. Чтобы люди, подгоняемые гнетом действительности не могли отринуть очевидное, как малозначимое. Чтобы они не могли придумать хитроумных псевдоаргументов с целью оправдать свое пренебрежительное отношение к очевидным вещам. Очевидные вещи такого не прощают. И планирование проектов тому не исключение." Из старой и удаленной статьи с Хабра.
Офигенно!!! Только слишком коротко. У Вас есть более развёрнутые лекции на тему архитектуры? =)
15:53 Когда говорил о вакцинации до того как это стало мэйнстримом)
есть все же такие языки на которых не стоит писать что-то сложнее калькулятора и простенькой бизнесслогики, понятно что спилить вековой дуб можно и пилкой для ногтей :) но это очень долго и утомительно.
А корпоративные паттерны в youtube выложите?
Зачем нужны вообще публичные поля, если они нарушают принцип инкапсуляции? К примеру в Java есть класс Point для повышения производительности для работы с графикой там поля публичные, а если брать к примеру PHP (у которого поля по умолчанию публичные)?
Ребят, возник вопрос, который прям не дает покоя:
- Не противоречит ли принципе DIP паттерну Creator. По DIP надо объекты передавать другим объектам через их интерфейсы, а по Creator'у эти объекты следует создавать там, где они используются. Как разрешить это противоречие?
Dip не про это, он говорит, что типу надо зависеть от абстракции, а не от реализации. это немного другое нежели, выдача инстанса по запросу. Один за архитектуру связей, второй за поведение при создании. Это проще рассмотреть на конкретном примере, но сколько встречал, то обычно это либо неправильное понимание/смешение понятий, либо незаконченная декомпозиция и как следствие нарушение coupling/cohesion
доски вообще не видно =(
25 секунда - не могу расслышать слово между "шаблонам" и "gof и grasp" - ещё какое-то название общее?
Микрофон бы ему нацепить - вообще сказка была бы!
да, это не мы писали, а у организаторов - треш какой-то был :) Если лекция интересна - могу переснять в формате вебинара
@@SergeyNemchinskiy да, было бы неплохо
вместо посредника объясняется дипенденси инвершен, что не одно и то же
Спасибо за лекцию =)
Отдельное спасибо за 1С, где-то на 8ой минуте
да не за что - я так думаю
Петличку бы Сергею для записи звука
А без if-ов код нечитабелен будет
пфффффф :))))
Проблема с обьектами, которые используются для сериализации. Приходит/отправляется в Jira какую json, где логически обьект 1 , задача, а api реализован так, что в задаче обьект транзакция, в которой лист транзакций, в которых статус, в которых лист статусов, а приходит обьект с одними полями, уходит с немного другими. Когда совсем жопка, конечно, пишется кастомный сериализатор, но не будешь пилить его прям на все извращенные поля, иначе сам сериализатор превратится в говнокод. Вот и приходится выбирать среднее из зол, и брать информацию через вложенные обьекты, если это меньшее из зол...
Вместо "зацепления" можно использовать "согласование", ИМХО наного более понятно получается
До, но это общепринятый перевод
Были же видосы про шаблоны
да. Но давно очень
@@SergeyNemchinskiy Они уже неактуальны? Какие у них есть минусы?
@@user-ug1fk8ob3q плохое качество записи и они не полны
За пользовательский ввод на тредах минус. Даже в java всё можно делать в одном потоке через epoll и аналоги (библиотека netty).
57:48 TL;DR
Шо за тотальний буллшіт? Indirection - це про інтерфейси? Рілі, блять?))
Учіть матчасть, господа, indirection - це паттерн посередник між сервісами і не важливо чи в GoF паттернах чи в GRASPі.
Плохой звук, отсвечивает экран
не я снимал, можете оценить разницу