💻 Как применить 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
🇺🇸 Как выучить английский с B1 до C1 (часть 2)
Второе, что вам нужно сделать на B1, это купить абсолютно любую книжку по грамматике с (важно) теорией и упражнениями, и прорешать её от начала до конца.
Допустим, вы на B2 и выше (советы будут актуальны для всех)
Тут прокачивать нужно уже скорее пассивный словарный запас, ибо разговаривать как минимум более-менее натурально вы уже можете.
— Скачиваете на телефон WordUp
— Открываете список слов
— Нажимаете "should learn" или "already know" для каждого слова в зависимости от того, знаете ли его.
Рекомендую купить про подписку за 10 долларов, чтобы открылся доступ к идиомам и фразовым глаголам.
Как учить
- Только первый шаг из стратегии для B1: смотрим слово и пытаемся вспомнить его значение
Каждый день повторяем обязательно. При желании учим новые, по объему — 10-15 слов в день.
Если вы скипнули сюда, советую вернуться и прочитать то, что выше. Я объяснил, почему важно как минимум повторять каждый день.
В идеале и учить каждый день тоже.
Как прокачивать говорение (актуально для всех, обязательно для B1):
— Берете английские тексты и пересказываете их. Объясняю, как это делать безболезненно:
1. Читаем первый абзац, пересказываем его своими словами. Абсолютно, повторяю, абсолютно не нужно пытаться быть максимально близко к тексту. Ваша задача — научиться изъяснять мысль, а не ответить перед учителем. При желании вы можете добавлять что-то свое, это будет только плюс.
2. Читаем второй абзац. Пересказываем его своими словами.
3. Нет, не читаем третий. Пересказываем первый и второй.
4. Читаем третий.
5. Пересказываем его, затем все три
6. Читаем четвертый
7. Пересказываем его, затем все четыре.
Так до конца текста. Будет не больно и займет где-то 20-30 минут. Снова, делайте это после чего-то или перед чем-то: нужна привычка, а для неё нужен триггер.
Как прокачивать восприятие речи
B1: Смотрим ютуб с субтитрами 2 месяца на интересные вам темы, затем начинаем смотреть без субтитров. У меня когда-то сработало. Фильмы и сериалы здесь слишком сложные, это сейчас не нужно.
B2: Смотрим ютуб без субтитров, смотрим фильмы и сериалы с субтитрами. В идеале смотреть сериалы и по несколько часов в день. Через где-то 3 месяца заметите, что стали понимать речь лучше. Субтитры в сериалах не выключаем. Даже после трех месяцев.
C1: Если вы смотрели сериалы, пробуйте смотреть без субтитров. Если не смотрели, смотрите с субтитрами.
Все уровни. Обязательно: Прокачайте произношение. В конце я объясню, почему поместил это сюда, а не в говорение. Конкретно, как это сделать:
1. Заходите на этот канал и сразу подписываетесь: https://www.youtube.com/@PhoneticFanatic
2. Смотрите это и это видео
- https://www.youtube.com/watch?v=wvk4K4FahD8
- https://www.youtube.com/watch?v=lmhmB7g_mB4
3. Начиная с этих видео, смотрите с конца (!!!) все видео до самого последнего — "Английские гласные звуки: /uː/ vs /ʊ/ - секреты произношения"
Необходимо, прокачивая говорение, пытаться употребить изученные звуки. А когда смотрите видео, повторять за автором. Будет больно.
Но. Так вот, почему же я поместил это сюда. Благодаря прокачке произношения вы получите сразу несколько бонусов:
1. Вы станете лучше понимать речь, потому что ваш мозг научится различать звуки. Вы услышите разницу в sit и seat (а она не в длине, кстати, как учат в школе).
2. Вашу речь будет проще понять. И нет, плохой акцент носителям понимать сложно, вопреки распространенному мнению, что вас поймут. Да, вас поймут, но напрягая мозг. А вам бы хотелось пытаться разобрать, что же говорит собеседник, когда вы обсуждаете важный вопрос?
3. Если вы собеседуетесь на английском, вы будете звучать увереннее и с большей вероятностью пройдете собес
4. Если вы в айти и компания, в которую вы хотите попасть, требует английский, общее впечатление при оценке вашего уровня будет на порядок выше, и выберут вас, а не другого кандидата.
5. Если вы будете сдавать IELTS, вы получите дополнительные баллы за нормальное произношение.
6. Когда вы освоите большинство звуков и интонацию, вы сами и ваше окружение кайфанете от вашего английского.
Третья часть ниже
Второе, что вам нужно сделать на B1, это купить абсолютно любую книжку по грамматике с (важно) теорией и упражнениями, и прорешать её от начала до конца.
Допустим, вы на B2 и выше (советы будут актуальны для всех)
Тут прокачивать нужно уже скорее пассивный словарный запас, ибо разговаривать как минимум более-менее натурально вы уже можете.
— Скачиваете на телефон WordUp
— Открываете список слов
— Нажимаете "should learn" или "already know" для каждого слова в зависимости от того, знаете ли его.
Рекомендую купить про подписку за 10 долларов, чтобы открылся доступ к идиомам и фразовым глаголам.
Как учить
- Только первый шаг из стратегии для B1: смотрим слово и пытаемся вспомнить его значение
Каждый день повторяем обязательно. При желании учим новые, по объему — 10-15 слов в день.
Если вы скипнули сюда, советую вернуться и прочитать то, что выше. Я объяснил, почему важно как минимум повторять каждый день.
В идеале и учить каждый день тоже.
Как прокачивать говорение (актуально для всех, обязательно для B1):
— Берете английские тексты и пересказываете их. Объясняю, как это делать безболезненно:
1. Читаем первый абзац, пересказываем его своими словами. Абсолютно, повторяю, абсолютно не нужно пытаться быть максимально близко к тексту. Ваша задача — научиться изъяснять мысль, а не ответить перед учителем. При желании вы можете добавлять что-то свое, это будет только плюс.
2. Читаем второй абзац. Пересказываем его своими словами.
3. Нет, не читаем третий. Пересказываем первый и второй.
4. Читаем третий.
5. Пересказываем его, затем все три
6. Читаем четвертый
7. Пересказываем его, затем все четыре.
Так до конца текста. Будет не больно и займет где-то 20-30 минут. Снова, делайте это после чего-то или перед чем-то: нужна привычка, а для неё нужен триггер.
Как прокачивать восприятие речи
B1: Смотрим ютуб с субтитрами 2 месяца на интересные вам темы, затем начинаем смотреть без субтитров. У меня когда-то сработало. Фильмы и сериалы здесь слишком сложные, это сейчас не нужно.
B2: Смотрим ютуб без субтитров, смотрим фильмы и сериалы с субтитрами. В идеале смотреть сериалы и по несколько часов в день. Через где-то 3 месяца заметите, что стали понимать речь лучше. Субтитры в сериалах не выключаем. Даже после трех месяцев.
C1: Если вы смотрели сериалы, пробуйте смотреть без субтитров. Если не смотрели, смотрите с субтитрами.
Все уровни. Обязательно: Прокачайте произношение. В конце я объясню, почему поместил это сюда, а не в говорение. Конкретно, как это сделать:
1. Заходите на этот канал и сразу подписываетесь: https://www.youtube.com/@PhoneticFanatic
2. Смотрите это и это видео
- https://www.youtube.com/watch?v=wvk4K4FahD8
- https://www.youtube.com/watch?v=lmhmB7g_mB4
3. Начиная с этих видео, смотрите с конца (!!!) все видео до самого последнего — "Английские гласные звуки: /uː/ vs /ʊ/ - секреты произношения"
Необходимо, прокачивая говорение, пытаться употребить изученные звуки. А когда смотрите видео, повторять за автором. Будет больно.
Но. Так вот, почему же я поместил это сюда. Благодаря прокачке произношения вы получите сразу несколько бонусов:
1. Вы станете лучше понимать речь, потому что ваш мозг научится различать звуки. Вы услышите разницу в sit и seat (а она не в длине, кстати, как учат в школе).
2. Вашу речь будет проще понять. И нет, плохой акцент носителям понимать сложно, вопреки распространенному мнению, что вас поймут. Да, вас поймут, но напрягая мозг. А вам бы хотелось пытаться разобрать, что же говорит собеседник, когда вы обсуждаете важный вопрос?
3. Если вы собеседуетесь на английском, вы будете звучать увереннее и с большей вероятностью пройдете собес
4. Если вы в айти и компания, в которую вы хотите попасть, требует английский, общее впечатление при оценке вашего уровня будет на порядок выше, и выберут вас, а не другого кандидата.
5. Если вы будете сдавать IELTS, вы получите дополнительные баллы за нормальное произношение.
6. Когда вы освоите большинство звуков и интонацию, вы сами и ваше окружение кайфанете от вашего английского.
Третья часть ниже
YouTube
МФА - Международный фонетический алфавит IPA. Введение в транскрипцию.
Введение в фонетическую транскрипцию IPA (International Phonetic Alphabet). Кто и для чего придумал Международный фонетический алфавит, почему он важен для работы над правильным произношением и как разобраться во всех этих закорючках простому изучающему английский…
🔥23❤8👍5😁1