Принципи чистого коду і SOLID | Ти б не пройшов співбесіду!

preview_player
Показать описание
#swift #oop #solid

У цьому відео ми докладно розглянемо низку основних принципів програмування, які допоможуть вам створювати чистий і підтримуваний код. Почнемо ми з загальних принципів інженерії програмного забезпечення, а потім перейдемо до SOLID - п'яти основних принципів об'єктно-орієнтованого програмування.

Приєднуйтесь до спілкування!

Підтримайте канал на патріоні!

00:00 Початок
01:00 Інші принципи
05:30 KISS
06:30 YAGNI
08:10 DRY
09:10 Single source of truth
11:30 SOLID
14:15 S - Single Responsibility Principle
15:40 O - Open/closed Principle
20:30 L - Liskov Substitution Principle
24:30 I - Interface Segregation Principle
28:20 Dependency Injection
32:30 D - Dependency Inversion Principle
37:20 Роберт Мартін та Мартін Фаулер
39:20 Питання для співбесіди
58:40 Домашнє завдання

GitHub iOS Roadmap, поставте зірочку:

Miro iOS Roadmap:

Додавайтесь в соц мережах:
Рекомендации по теме
Комментарии
Автор

Комент в підтримку україномовного автора та Swift-ком'юніті :)

andriybashta
Автор

дякую за контент, багато різних статей по соліду прочитав, але ваше відео виявилось найзрозумілішим)
Також дуже корисно бачити приклад того, як мислить senior розробник і якою логікою користується шукаючи рішення проблеми

amankazahbenbrodovich
Автор

Очень классный, открытый пример того, как надо думать когда открываешь чужой код. Спасибо ждем новых видееооо!)
PS Я работаю разработчиком не очень давно и сегодншний урок мне помог получить ценные знания того, с чего стоит начинать разбор кода, на что обращать внимание. Вячеслав вам спасибо, за то что так разжевываете материал. Я очень вам благодарен

АртемМакаров-пы
Автор

Замість багатьох статей із теорією) дуже дякую за гарний контент

ShooMPozitiV
Автор

Чудове відео. Нарешті про архітектури та філософію. Дякую!

john_karpov
Автор

Лайк і коментар навіть перед початком перегляду❤ Дякую

СергейМолодец-нй
Автор

Стосовно третього завдання: func updateUser(user: User, completion: (Result<Void, Error>) -> ()), або func updateUser(user: User) async throws ...

andriizuiok
Автор

q1: я би зробив на структурі і в делегат повертав змінену структуру для збереження (на success оновлюємо UI, error - показуємо алерт)
q2: трохи не зрозумів суть запитання, але підозрюю про мова йде про convenience init з параметрами (user model: User, delegate: EditUserDelegate?)
q3: result =) і для помилок зробив би якийсь AlertService, який мав би метод showError(_ error: Error)

АндрійБескостий
Автор

Спасибо за урок, как всегда шикарно. Такой вопрос, ко всему выше перечисленному к коду хочется расставить уровни доступа private и тд. Это относиться к второму закону про открытость закрытость или уровни доступа это только про инкапсуляцию?

bulgakov
Автор

Про GRASP i GoF не планується відео?)

До речі, GRASP міг би гарно лягти в відео поруч з SOLID)

moshenskyi_n
Автор

вот рассказал ты про SOLID и я вспомнил библиотеку в Android разработке для DI - Dagger2. Есть ли что либо подобное в iOS разработке? Ты использовал, рассказывал в каком-то из своих видео?

zaur
Автор

Чудове відео👍
Знаходжуся на етапі навчання і Ваші відео дуже допомагають!
Дуже цікава відповідь на Ваше перше питання з приводу того, чому працює передача даних на сервер, так як використовується інший Юзер, не можу поки зрозуміти
Друге питання Ваше :
Можливо if let vc = UIStoryboard(name: "Main", bundle: "EditViewController") as? EditViewController {
present(vc, animated: true, completion: nil)
}
На скільки я розумію, якщо створювати просто let vc = EditVC() і потім презент, то просто кожного разу буде створюватися копія і якщо увійти у Debug View Hirerachy, то там кожного разу буде створюватися той самий екран

ТаняГарбарчук-мъ
Автор

Якщо дуже хочеться, то можна мімікрувати абстрактний клас.

vandrj
Автор

Підтримайте канал на патріоні!

Співбесіда Петра Корінєва

bwswift
Автор

Никогда не думал, что за полтора года так хорошо выучу украинский язык, вот жизнь настала :(

StalkerSergeant
Автор

У мене завтра перша співбесіда в житті. Стосовно коду. Я побачив, що ми помітили делегат як var, у нас можуть бути проблеми з пам'яттю, тому що в основному делегати помічаються як weak var. Іще я б зробив провірку на нейм через гуард лет

vladloktionov
Автор

ну в нас User це клас а не структура(це до речі перше що мені не сподобалось), ну ми передаємо посилання тому і все змінюється.
По другому уявлення немаю, а от по третьому вже відповіли що це result
Але я для себе нарешті зрозумів що таке антипаттерн, і я розумію що юзаю сінглтон зовсім не вірно, і найгірше те що ніхто мені на це не вказав, буду виправлятись.
Дякую.

viktorpotoki
Автор

Какие интересные темы, но почему не на русском?

CK-pftp
Автор

Слав, помню твои видео на русском. Да и на мове пойму, но вот нафига? Кому ты что хочешь доказать?

Stricken
Автор

жаль только на украинском((
не понимаю

shur_up