💻 Как применить SOLID на практике
Начнем с чего-то более абстрактного и актуального для всех. Все мы слышали про SOLID. Кто-то умеет применять его на практике, кто-то знает лишь определения и говорит их на собеседованиях. Очевидно, первая категория пишет код куда лучше.
Бытует мнение, что солид применим только в ООП, однако это не так. Вы можете на каждом шагу применять солид и во фронте.
Например, у вас есть юзер, у него есть статус. В зависимости от статуса вам нужно покрасить лейбл в соответствующий бекграунд и дать нужный цвет текста. Один стул — писать кучу ифов, сохраняя стили в переменную, смотря на статус. Потом появляется еще одно требование — показывать модалку, если статусы пользователя "новый", "забанен", и "приглашен". Вы либо напишете еще один иф, либо впихнете в уже существующий, который считает стили. Во втором случае вы также нарушите единственную ответственность.
Есть второй стул:
Создаем объект, в котором поле — это статус, а значение — это стиль.
Создаем второй объект, в котором поле — это статус, а значение — это модалка, которую показываем.
Затем в коде просто прокидываем в этот объект через доступ по ключу наш user.status, пришедший с бека, и получаем нужные стили для лейбла.
Таким же образом смотрим, есть ли статус в объекте для модалок, и, если есть, получаем нужную модалку и рисуем её.
Клиентский код не знает ни про то, что за стили он рисует, ни про то, что за модалку он реализует. Он знает, что есть два объекта, ключи которых — статус, значения — стили и виджеты. Получаем зависимость от абстракции, последний принцип.
Всё еще может быть не понятно. Теперь мы переходим к самому вкусному и разложим все по полочкам.
Когда я поднимался до мидла, я учил много вещей. Одной из них был этот ресурс — https://solidbook.vercel.app/
Здесь детальнейшим и понятнейшим образом расписано, как работает каждый из принципов солид и показаны реальные примеры его применения. Код написан на typescript, но он будет понятен, если вы владеете другим языком. Для каждого паттерна я советую прочитать введение, примеры из идеального мира и примеры из реального мира. Остальное можно не читать. После вернитесь сюда и, я думаю, написанное выше станет понятным.
Что делать дальше? Пытайтесь думать, соответствует ли солиду код, который вы пишете, руководствуясь новообретенными знаниями. Если нет, то подумайте, как это можно исправить. По началу это будет казаться чем-то неподъемным, но уже через несколько месяцев вы обнаружите, что на автомате пишете куда более качественный код, с которым приятно работать.
Начнем с чего-то более абстрактного и актуального для всех. Все мы слышали про SOLID. Кто-то умеет применять его на практике, кто-то знает лишь определения и говорит их на собеседованиях. Очевидно, первая категория пишет код куда лучше.
Бытует мнение, что солид применим только в ООП, однако это не так. Вы можете на каждом шагу применять солид и во фронте.
Например, у вас есть юзер, у него есть статус. В зависимости от статуса вам нужно покрасить лейбл в соответствующий бекграунд и дать нужный цвет текста. Один стул — писать кучу ифов, сохраняя стили в переменную, смотря на статус. Потом появляется еще одно требование — показывать модалку, если статусы пользователя "новый", "забанен", и "приглашен". Вы либо напишете еще один иф, либо впихнете в уже существующий, который считает стили. Во втором случае вы также нарушите единственную ответственность.
Есть второй стул:
Создаем объект, в котором поле — это статус, а значение — это стиль.
Создаем второй объект, в котором поле — это статус, а значение — это модалка, которую показываем.
Затем в коде просто прокидываем в этот объект через доступ по ключу наш user.status, пришедший с бека, и получаем нужные стили для лейбла.
Таким же образом смотрим, есть ли статус в объекте для модалок, и, если есть, получаем нужную модалку и рисуем её.
Клиентский код не знает ни про то, что за стили он рисует, ни про то, что за модалку он реализует. Он знает, что есть два объекта, ключи которых — статус, значения — стили и виджеты. Получаем зависимость от абстракции, последний принцип.
Всё еще может быть не понятно. Теперь мы переходим к самому вкусному и разложим все по полочкам.
Когда я поднимался до мидла, я учил много вещей. Одной из них был этот ресурс — https://solidbook.vercel.app/
Здесь детальнейшим и понятнейшим образом расписано, как работает каждый из принципов солид и показаны реальные примеры его применения. Код написан на typescript, но он будет понятен, если вы владеете другим языком. Для каждого паттерна я советую прочитать введение, примеры из идеального мира и примеры из реального мира. Остальное можно не читать. После вернитесь сюда и, я думаю, написанное выше станет понятным.
Что делать дальше? Пытайтесь думать, соответствует ли солиду код, который вы пишете, руководствуясь новообретенными знаниями. Если нет, то подумайте, как это можно исправить. По началу это будет казаться чем-то неподъемным, но уже через несколько месяцев вы обнаружите, что на автомате пишете куда более качественный код, с которым приятно работать.
Солидбук. Книга о принципах объектно-ориентированного дизайна
Солидбук
Книга о принципах объектно-ориентированного дизайна
🔥17❤2👍1👨💻1
🇺🇸 Как выучить английский с B1 до C1 (часть 1)
Версия на Medium
Часть 4 (Что делать на А1-А2, читать после прочтения частей 1-3)
Расскажу, что делать на каждом уровне.
Здесь не будет советов вроде "Найдите партнера для разговоров". Здесь будет конкретное описание того, что я сделал (или хотел бы сделать, вернись я назад), чтобы подняться до C2 и говорить почти как носитель.
Есть два типа словарного запаса: активный и пассивный. Активный — то, что вы юзаете в письме и речи. Пассивный — то, что само в голову не приходит, но, увидев/услышав это где-то, вы это понимаете.
Допустим, вы на B1, а значит знаете около 2-3к слов, немного словосочетаний и фразовых глаголов и можете смотреть английский ютуб с субтитрами. Если вы оцениваете себя выше и реально уверены в своих знаниях, все равно читаем все, что ниже: там написана очень важная информация, применимая ко всем стратегиям, о которых я расскажу.
Первое, что вам нужно, это прокачка активного словарного запаса. Как это делать:
— Скачиваете на комп Anki. На комп — бесплатно, на андроид — бесплатно, на iOS — 8 долларов. Это программа для интервального повторения. Интервальное повторение работает так: вы выучили 10 слов, повторили их на следующий день, через три дня после этого, потом через условно неделю после трех дней, через три, через месяц, через 3, 6, 12 и так далее. Если вы каждый день учите по 10 слов, то самому вспоминать, что повторить, будет очень больно. Поэтому существуют специальные инструменты, автоматизирующие создание флеш-карточек с лексикой для вас. Anki прекрасно для этого подходит. Едем дальше.
— Скачиваете следующие сеты с готовыми флеш-карточками:
- https://ankiweb.net/shared/info/27053954
- https://ankiweb.net/shared/info/3910234
- https://ankiweb.net/shared/info/1439888274
— Заходите в Anki, обязательно создаете аккаунт на сайте и входите в него в приложении.
— Нажимаете на каждый скачанный сет по очереди и добавляете их в приложение.
Так, мы все засетапили. Что из себя представляют эти сеты:
- Необходимые слова для активного словарного запаса
- Необходимые фразовые глаголы
- Необходимые словосочетания
Как учить
Есть карточка. В ней есть одна сторона, и вторая сторона. На одной стороне — слово/фразовый глагол/словосочетание. На другой — определение и пример использования. Важно, чтобы были как минимум три эти вещи, иначе эффективность изучения будет очень низкая.
Каждый день анки показывает вам слова, которые вы учили ранее и которые нужно повторить, а также новые слова.
Поскольку мы качаем активный словарный запас, то нам придется прикладывать усилия к запоминанию и практике. Нам будет мало просто посмотреть слово и вспомнить его значение, а затем посмотреть обратную сторону.
Что мы делаем вместо этого:
1. Все так же смотрим слово и пытаемся вспомнить его значение
2. Если не вспоминаем, открываем и смотрим сторону с ответом
3. Придумываем пример самостоятельно и проговариваем его вслух
4. Идем дальше.
Важно: Это нужно проделать с каждой карточкой. Как с теми, что повторяем, так и с новыми, что учим сегодня. Даже если вы уже десятый раз повторяете карточку и выучили её полгода назад, это все равно нужно сделать: интервальное повторение работает именно засчет увеличения длины между каждым повторением.
Каждый день учить новые карточки не обязательно. Что обязательно, так это каждый день их повторять. Почему? Если вы вчера или три дня назад учили слова, их просто критически необходимо повторить сегодня. Мозг имеет свойство забывать, и интервальное повторение работает именно на устранение этой забывчивости. Первые несколько повторений самые важные. Но это не значит, что дальше стоит забить. Повторять нужно каждый день. Учить — по настроению.
Сколько учить в день? 7-10. Оптимально — 10.
Будьте готовы к тому, что это будет занимать у вас час времени каждый день, а то и больше. Если вы хотите выучить английский до С1, вам придется работать очень жестко.
Определите, после чего или перед чем вы каждый день будете садиться прокачивать активный словарный запас. Например, можно садиться перед или после работы.
Вторая часть ниже
Версия на Medium
Часть 4 (Что делать на А1-А2, читать после прочтения частей 1-3)
Расскажу, что делать на каждом уровне.
Здесь не будет советов вроде "Найдите партнера для разговоров". Здесь будет конкретное описание того, что я сделал (или хотел бы сделать, вернись я назад), чтобы подняться до C2 и говорить почти как носитель.
Есть два типа словарного запаса: активный и пассивный. Активный — то, что вы юзаете в письме и речи. Пассивный — то, что само в голову не приходит, но, увидев/услышав это где-то, вы это понимаете.
Допустим, вы на B1, а значит знаете около 2-3к слов, немного словосочетаний и фразовых глаголов и можете смотреть английский ютуб с субтитрами. Если вы оцениваете себя выше и реально уверены в своих знаниях, все равно читаем все, что ниже: там написана очень важная информация, применимая ко всем стратегиям, о которых я расскажу.
Первое, что вам нужно, это прокачка активного словарного запаса. Как это делать:
— Скачиваете на комп Anki. На комп — бесплатно, на андроид — бесплатно, на iOS — 8 долларов. Это программа для интервального повторения. Интервальное повторение работает так: вы выучили 10 слов, повторили их на следующий день, через три дня после этого, потом через условно неделю после трех дней, через три, через месяц, через 3, 6, 12 и так далее. Если вы каждый день учите по 10 слов, то самому вспоминать, что повторить, будет очень больно. Поэтому существуют специальные инструменты, автоматизирующие создание флеш-карточек с лексикой для вас. Anki прекрасно для этого подходит. Едем дальше.
— Скачиваете следующие сеты с готовыми флеш-карточками:
- https://ankiweb.net/shared/info/27053954
- https://ankiweb.net/shared/info/3910234
- https://ankiweb.net/shared/info/1439888274
— Заходите в Anki, обязательно создаете аккаунт на сайте и входите в него в приложении.
— Нажимаете на каждый скачанный сет по очереди и добавляете их в приложение.
Так, мы все засетапили. Что из себя представляют эти сеты:
- Необходимые слова для активного словарного запаса
- Необходимые фразовые глаголы
- Необходимые словосочетания
Как учить
Есть карточка. В ней есть одна сторона, и вторая сторона. На одной стороне — слово/фразовый глагол/словосочетание. На другой — определение и пример использования. Важно, чтобы были как минимум три эти вещи, иначе эффективность изучения будет очень низкая.
Каждый день анки показывает вам слова, которые вы учили ранее и которые нужно повторить, а также новые слова.
Поскольку мы качаем активный словарный запас, то нам придется прикладывать усилия к запоминанию и практике. Нам будет мало просто посмотреть слово и вспомнить его значение, а затем посмотреть обратную сторону.
Что мы делаем вместо этого:
1. Все так же смотрим слово и пытаемся вспомнить его значение
2. Если не вспоминаем, открываем и смотрим сторону с ответом
3. Придумываем пример самостоятельно и проговариваем его вслух
4. Идем дальше.
Важно: Это нужно проделать с каждой карточкой. Как с теми, что повторяем, так и с новыми, что учим сегодня. Даже если вы уже десятый раз повторяете карточку и выучили её полгода назад, это все равно нужно сделать: интервальное повторение работает именно засчет увеличения длины между каждым повторением.
Каждый день учить новые карточки не обязательно. Что обязательно, так это каждый день их повторять. Почему? Если вы вчера или три дня назад учили слова, их просто критически необходимо повторить сегодня. Мозг имеет свойство забывать, и интервальное повторение работает именно на устранение этой забывчивости. Первые несколько повторений самые важные. Но это не значит, что дальше стоит забить. Повторять нужно каждый день. Учить — по настроению.
Сколько учить в день? 7-10. Оптимально — 10.
Будьте готовы к тому, что это будет занимать у вас час времени каждый день, а то и больше. Если вы хотите выучить английский до С1, вам придется работать очень жестко.
Определите, после чего или перед чем вы каждый день будете садиться прокачивать активный словарный запас. Например, можно садиться перед или после работы.
Вторая часть ниже
Medium
How to improve English to C1 Advanced level: A definitive guide
I’ll tell you exactly what to do at each level. Believe me, that’s what you’ve been looking for.
🔥32❤10👍5