Код выше работает, но всё ли с ним хорошо?
Anonymous Poll
20%
Работает? Значит всё ок.
60%
Вопрос то с подвохом, что-то тут не то!
20%
Написал в комментариях, что не так
24 февраля приглашаю тебя на лекцию "Как получить оффер Х2" 🔥
Мы уже обсудили темы: «Как стать миддлом за год с нуля» и «Какие страшные тайны скрывает ООП», а скоро обсудим «Как делать код-ревью и улучшать код».
🫥 В этот раз тема тоже очень интересная. Расскажу про то, как получить оффер Х2 от текущей зарплаты и проходить собеседования на грейд выше, чем у вас сейчас. Особенно актуально тем, кто ещё не работают.
Вот краткое содержание выступления:
🟠 Моя история 3-ёх офферов за 9 месяцев.
🟠 Секреты любого технического интервью.
🟠 Как поднять свой технический грейд.
🟠 Разберём реальные вопросы с моего последнего собеседования.
А ещё будет розыгрыш подарков и интерактивная игра, для тех, кто придёт на выступление лично. Жду тебя в эту субботу, 24.02, в московской школе 21⚡️
Мы уже обсудили темы: «Как стать миддлом за год с нуля» и «Какие страшные тайны скрывает ООП», а скоро обсудим «Как делать код-ревью и улучшать код».
Вот краткое содержание выступления:
А ещё будет розыгрыш подарков и интерактивная игра, для тех, кто придёт на выступление лично. Жду тебя в эту субботу, 24.02, в московской школе 21
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Моё выступление начнётся уже через 20 минут!
Жду тебя на лекции "Как получить оффер Х2". Напоминаю, что у тех, кто придёт лично, будет возможность выиграть подарок 🎁
Жду тебя на лекции "Как получить оффер Х2". Напоминаю, что у тех, кто придёт лично, будет возможность выиграть подарок 🎁
Выступление прошло супер! 🥳
Спасибо всем, кто пришёл лично! Победители, не забудьте написать мне в личку👍
Помогите выбрать тему следующего выступления:
Спасибо всем, кто пришёл лично! Победители, не забудьте написать мне в личку
Помогите выбрать тему следующего выступления:
Please open Telegram to view this post
VIEW IN TELEGRAM
Тема следующего выступления:
Anonymous Poll
45%
Как делать код ревью, улучшать качество кода и проводить рефакторинг?
55%
Для работы нужен опыт, для опыта работа. Что делать?
Сегодня продолжаем изучать тайны ООП. А если вы пропустили предыдущий пост - обязательно читайте.
Мы определили проблему. Задача: "не повторять один и тот же код и сделать код простым". Для решения этой задачи мы воспользуемся Наследованием.
Мы разработали персонажа для игры. Пока всё просто и понятно. У нас есть класс, который выполняет определённые действия.
Мы хотим добавить классы
Warrior и Archer с общей реализацией всего, кроме метода атаки. Стоит вынести общие методы в общий класс. Для этого мы воспользуемся механизмом наследования:Наследование позволяет нам объединить схожие части в один класс.
Мы создали абстрактный класс, который является лишь каркасом. Абстрактный класс не может использоваться самостоятельно. Каждый из классов наследников может использовать как общие методы, так и уникальные методы для каждого из них.
Расширим классы, добавив новый метод специальной атаки. Так как этот метод имеет уникальную реализацию у каждого класса, то реализация должна быть внутри класса наследника. В абстрактном классе мы добавляем абстрактный метод.
Если мы хотим добавить класс
Paladin расширяющий Warrior, то проблем не будет. Мы добавляем уникальный дополнительный метод в новый класс. Paladin сможет использовать как новый метод, так и все методы Warrior.В случае с
TrainingDummy всё сложнее. Те методы, которые этот класс не может использовать мы обязаны переопределить, добавив вызов ошибки, что будет сложно поддерживать!Наследование не просто позволяет нам удобно объединять общее поведение. Любые исключения приведут к большим изменениям. В итоге, каждое изменение приводит к дорогому рефакторингу. Изменения "верхних" классов приводят к изменениям всех "нижних" классов.
Наследование требует объединить общие детали в один класс!
Какие есть альтернативы - знают те, кто был на выступлении. А ты знаешь? Пиши об этом в комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
У нас есть рабочий код, это важно! Он запускается и всё с ним хорошо. Но в чём же проблемы?
Решить все эти проблемы можно простой командой
isort .Не забудьте установить её 😅
Использование isort - это самый простой способ повысить качество кода, не прикладывая усилий. Помните, что:
Ваш уровень больше всего определяет простой и понятный код!
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня я хочу поделиться выжимкой из своего прошедшего выступления. На нём мы обсудили, как поднять свой грейд и получить оффер с зарплатой в два раза больше текущей.
На выступлении я рассказал:
Читайте полезное по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
Тезис: «Если компания предлагает сделать тестовое задание, то работать в такой компании не стоит».
АРГУМЕНТЫ «ЗА»
АРГУМЕНТЫ «ПРОТИВ»
Пишите свои аргументы «за» и «против» этого тезиса в комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
ФРОНТ 🫥 БЕК
На мой взгляд, для работы в разработке сейчас стоит выбирать направление Веб-Бекенда. Но для этого нужно понимать, как работает веб. Разберём на примере.
У нас есть «фронт»:
🟣 Социальная сеть - лента картинок с подписями от других людей.
🟣 Лента со списком людей, на кого ты подписан.
🟣 Лента того, что ты публиковал.
Как это всё должно работать?
Мы используем REST-подход. Вообще есть альтернативы, но о них расскажу потом. REST проще и популярнее.
У нас есть клиент, который делает запросы к серверу. На сервере мы определяем роуты (маршруты, эндпоинты):
🟣 mysite.ru/posts
🟣 mysite.ru/subs
🟣 mysite.ru/my_posts
На фронте (клиенте), при нажатии на "посты", пользователь переходит по первой ссылке mysite.ru/posts. Бек (наш сервер) должен вернуть все данные, чтобы фронт их отрисовал.
В данном примере фронт нас вообще не интересует, поэтому разберём, что мы делаем на беке.
Бизнес приходит к нам с типичными задачами, все они описываются примерно так:
➡️ Запустить сервер, который будет отлавливать обращения с фронта
➡️ Научиться распознавать, какой роут был использован (posts, subs. my_posts)
➡️ На каждое действие возвращать клиенту данные в удобном виде
➡️ При обращении к subs, надо проверить кто текущий пользователь (значит, что нужна система авторизации). Для текущего пользователя сходить в БД и получить всех, на кого он подписан. Вернуть JSON со списком этих пользователей.
Этот пример можно бесконечно расширять, добавляя новую функциональность. Если вы можете справиться с таким (язык и фреймворк не важны, ведь это лишь инструмент), то вы готовы к собесам!👨💻
Пишите в комментарии, если хотите подробный пост про REST, JSON или клиент-серверное взаимодействие. Я как раз закончил записывать урок про это для курса.🔽
На мой взгляд, для работы в разработке сейчас стоит выбирать направление Веб-Бекенда. Но для этого нужно понимать, как работает веб. Разберём на примере.
У нас есть «фронт»:
Как это всё должно работать?
Мы используем REST-подход. Вообще есть альтернативы, но о них расскажу потом. REST проще и популярнее.
У нас есть клиент, который делает запросы к серверу. На сервере мы определяем роуты (маршруты, эндпоинты):
На фронте (клиенте), при нажатии на "посты", пользователь переходит по первой ссылке mysite.ru/posts. Бек (наш сервер) должен вернуть все данные, чтобы фронт их отрисовал.
В данном примере фронт нас вообще не интересует, поэтому разберём, что мы делаем на беке.
Бизнес приходит к нам с типичными задачами, все они описываются примерно так:
Этот пример можно бесконечно расширять, добавляя новую функциональность. Если вы можете справиться с таким (язык и фреймворк не важны, ведь это лишь инструмент), то вы готовы к собесам!
Пишите в комментарии, если хотите подробный пост про REST, JSON или клиент-серверное взаимодействие. Я как раз закончил записывать урок про это для курса.
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы еще не успели по-полной "вкатиться" в рабочий режим, предлагаю решить небольшую задачку.
Что выведет этот простой код на картинке?
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выводит код выше?
Anonymous Quiz
34%
0
14%
10
10%
None
41%
Ничего, произойдёт ошибка / исключение
🤔1
Даже если вы уже читали книгу «Паттерны проектирования», вы можете не справится с одним популярным вопросом собеса. Если вас попросят привести примеры паттернов, вы можете подумать, что никогда не работали с ними.
Это не так! Если вы пишите код на Python, то вы используете паттерны каждый день. Привёл для вас 5 примеров, которые пришли мне на ум первыми.
* Замыкание — функция, которая создаётся каждый раз во время её выполнения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM