В предыдущих сериях мы поднялись до абстрактной теории про херовую ответственность модуля.
Сейчас опустимся до деталей и посмотрим на реальный код на самом простом примере
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6😢4❤2😐1
DIP (Dependency Inversion Principle)
Когда с SRP и остальными примерно все понятно, то самый сложный принцип для многих — это принцип инверсии зависимостей. Да и не соблюдение этого принципа приводит к куда ощутимым последствиям, чем остальные.
Звучит он так: "Классы должны зависить от абстракций". Мартин говорил, что интерфейсы менее изменчивы, чем реализации. А хороший разработчик старается не менять интерфейс, добавляя новые возможности в имплементации, которые не потребуют изменить интерфейс.
Разберем на практике кейс, который недавно решали с моим учеником на менторстве и решить эту проблему дают на собесах в банках, где пишут тесты.
🟢 lvl: jun
Когда с SRP и остальными примерно все понятно, то самый сложный принцип для многих — это принцип инверсии зависимостей. Да и не соблюдение этого принципа приводит к куда ощутимым последствиям, чем остальные.
Звучит он так: "Классы должны зависить от абстракций". Мартин говорил, что интерфейсы менее изменчивы, чем реализации. А хороший разработчик старается не менять интерфейс, добавляя новые возможности в имплементации, которые не потребуют изменить интерфейс.
Разберем на практике кейс, который недавно решали с моим учеником на менторстве и решить эту проблему дают на собесах в банках, где пишут тесты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍2
На мой взгляд пока лучший ролик, объяснящий SOLID и лучший русскоязычный канал про архитектуры.
https://www.youtube.com/watch?v=TxZwqVTaCmA
https://www.youtube.com/watch?v=TxZwqVTaCmA
YouTube
SOLID ПРИНЦИПЫ простым языком (много примеров)
SOLID принципы с подробным и простым, наглядным объяснением. Single responsibility (Принцип единственной ответственности), open–closed (Принцип открытости/закрытости), Liskov substitution (Принцип подстановки Лисков), interface segregation (Принцип разделения…
👍11
Вы не ждали, а он пришел.
Встречайте симулятор иосника. Помните я отказался от марафонов и всяких инфоцыганских замашек и решил замутить что-то продуктовое?
После этого ко мне на помощь пришла целая команда добровольцев из авито, сбера, вконтакте, озона. И мы мутим супер крутой проект
Основная идея проста — сделать лучший симулятор для тренировок. Где будет баланс прикладной практики и фаном.
⁃ максимально рыночные вопросы собранные сотнями часами практик менторства и десятками годами работы в крупных компаниях
⁃ Статьи и учебные материалы
⁃ Реальные и полезные задачи
⁃ Интерактивные испытания
⁃ режим паники. в любой момент все может сильно усложниться
⁃ Доступ в секретный чат для обсуждений
⁃ Элементы геймфикации от нуля до Стива Джобса
⁃ Ежедневные испытания
⁃ Каждое задание будет вызывать челендж и азарт
⁃ Много новых и крутых фич
🚨 В конце следующей недели стартует закрытая бета. Оставляй заявки для активного тестинга до релиза. Помоги нам сделать лучшее образовательное приложение в мире
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥57❤🔥3❤1
В интернете все больше набираются теории про массовые увольнения в фаанг компаниях. Какие работники первые кандидаты на увольнения? Как не быть ими? Как стать ценным сотрудником?
Даже у Роберта Мартина в "Идеальной работе" много актуальных и похожих советов. Я посмотрел много видосов, почитал множество мнений. все ссылаются почти к одним требованиям:
- Брать на себя больше ответственности
- Изучать математику
- Выходить за обязанности покрасок кнопок
- Не доверять словам тех, кто обучает после малого кол-ва опыта. Этой проблеме даже Мартин посвятил пару глав и я писал оттуда отрывок.
- Не быть волком
Сейчас не только важно найти работу, но скорее остаться на старой, постоянно принося пользу бизнесу и продукту.
https://www.youtube.com/watch?v=AjkghMCKN_0
Даже у Роберта Мартина в "Идеальной работе" много актуальных и похожих советов. Я посмотрел много видосов, почитал множество мнений. все ссылаются почти к одним требованиям:
- Брать на себя больше ответственности
- Изучать математику
- Выходить за обязанности покрасок кнопок
- Не доверять словам тех, кто обучает после малого кол-ва опыта. Этой проблеме даже Мартин посвятил пару глав и я писал оттуда отрывок.
- Не быть волком
Сейчас не только важно найти работу, но скорее остаться на старой, постоянно принося пользу бизнесу и продукту.
https://www.youtube.com/watch?v=AjkghMCKN_0
Telegram
iOS makes me cry
😢1
Топ навыки для iOS разработчика
Anonymous Poll
63%
UIKit
68%
Swift
12%
Objc-c (kek)
49%
многопоточность
52%
Навыки проектирования
18%
Алгоритмы
44%
Управление памятью
23%
Computer Sience
29%
Способы хранения данных
7%
Ничего выше
Open-Closed Principle в Swift
Идем дальше по самым популярным принципам.
Этот принцип в иос часто путают с extension (расширениями), но это далеко ошибочное от источника представление.
Принцип открытости/закрытости гласит:
❕ Программные сущности должны быть открыты для расширения и закрыты для изменения.
Принцип открытости/закрытости — одна из движущих сил в архитектуре систем.
Его цель — сделать систему легко расширяемой и обезопасить ее от влияния изменений. Эта цель достигается делением системы на компоненты и упорядочением их зависимостей в иерархию, защищающую компоненты уровнем выше от изменений в компонентах уровнем ниже .
⏺ Проще говоря, мы должны расширять программы без их изменения.
🟢 lvl: jun
Let's go to practice
Идем дальше по самым популярным принципам.
Этот принцип в иос часто путают с extension (расширениями), но это далеко ошибочное от источника представление.
Принцип открытости/закрытости гласит:
Принцип открытости/закрытости — одна из движущих сил в архитектуре систем.
Его цель — сделать систему легко расширяемой и обезопасить ее от влияния изменений. Эта цель достигается делением системы на компоненты и упорядочением их зависимостей в иерархию, защищающую компоненты уровнем выше от изменений в компонентах уровнем ниже .
Let's go to practice
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Отвлечемся от SOLID к менее популярным, но иногда даже более важным принципам.
KISS (keep it simple, stupid)
Как-то в разговоре с коллегой он сказал, что я выдумал этот принцип. Ведь такое название и его расшифровку мог придумать только какой-то гопарь и ни один адекватный человек не будет воспринимать нэйминг всерьез.
Кажется, это глубочайшая ошибка. Ведь принцип довольно мощный. А переоценить его пользу сложно.
По названию нетрудно понять, что он требует. У него много трактовок, но попробуем пройтись по основным:
Иначе говоря, правило предельно простое — не усложни. В теории звучит легко, но на практике требует опыта и многолетней практики. Усложняет это индуские подходы, где в некоторых компаниях оценивают работу по строкам кода в реквестах. А начинающие разработчики хотят показать свою компетенцию, показав ее в ненужных испытаниях.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍1
Прошел тут обучение по антипаттернам в продуктовой разработке и хочу с вами поделиться основными идеями.
Одна из турбулентностей для пришедших галлерных разработчиков в продуктовку — это простои. Я сам страдал после аутсорса. Человеку с ресурсным мышлением очень сложно работать в больших и крупных компаниях. Всегда будут большие процессы доставки нашего кода и придется развиваться в других плоскостях. Уметь коммуницировать, понимать процессы, менторить, вести задачи. Иными словами тут приходит уже не модный t—shaping.
Для тех, кто 8 часов привык не останавливаясь кодить — это очень больно. Но крупному бизнесу чаще нужно больше.
Какие же антипаттерны в продуктовой разработке?
Это одни из многих антипаттернов. Еще добавлю, что сильно влияют финансовые модели команд внутри одной компании. И здесь важно уметь переключаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10💯3🔥1😁1