Podlodka #47 – Protocol-Oriented Programming


Episode Artwork
1.0x
0% played 00:00 00:00
Feb 18 2018 131 mins   143
Выпуск-разоблачение парадигмы protocol-oriented programming. Андрей Мишанин, инженер из Facebook, рассказывает, как Apple популяризовала гораздо более старую концепцию обобщенного программирования под не самым удачным новым именем. Много экскурсов в историю с разбором процедурного и объектно-ориентированного программирования, практических примеров работы с POP, сравнения Swift и C++ и обсуждений полиморфизма. Ну и, конечно, очень глубоко закопали наследование. Поддержи лучший подкаст про мобильную разработку: www.patreon.com/podlodka Также ждем вас, ваши лайки, репосты и комменты в мессенджерах и соцсетях!
 Telegram-чат: https://t.me/podlodka Telegram-канал: https://t.me/podlodkanews Страница в Facebook: www.facebook.com/podlodkacast/ Twitter-аккаунт: https://twitter.com/PodlodkaPodcast Содержание: - 00:00:40 - Знакомство с гостем - 00:01:47 - Актуальность темы - 00:03:08 - Процедурное программирование - 00:07:30 - Объектно-ориентированное программирование - 00:11:55 - Схожесть функционального и объектно-ориентированного программирования - 00:14:38 - Полиморфизм - 00:20:40 - Принцип единственной ответственности - 00:28:46 - Наследование - 00:35:50 - Недостатки ООП - 00:50:00 - Откуда пошел Protocol-Oriented Programming - 00:57:20 - Swift vs C++ - 01:02:00 - Суть обобщенного программирования - 01:08:00 - Zero-cost abstraction - 01:14:02 - Протоколы в Swift - 01:19:20 - Protocol extensions - 01:25:25 - Разбираемся с обобщенным программированием - 01:41:15 - Парсинг JSON - 02:04:15 - Книги и статьи по теме - 02:08:50 - Подведение черты Полезные ссылки: - Сессия про Protocol-Oriented Programming на WWDC https://developer.apple.com/videos/play/wwdc2015/408/ - Comparing POP to OOP https://forums.swift.org/t/comparing-pop-to-oop/1438/12 - swift-users Digest, Vol 3, Issue 15 https://forums.swift.org/t/swift-users-digest-vol-3-issue-15/1442 - Better Code: Runtime Polymorphism https://www.youtube.com/watch?v=QGcVXgEVMJg - An Extended Comparative Study of Language Support for Generic Programming http://www.osl.iu.edu/publications/prints/2005/garcia05:_extended_comparing05.pdf - Stepanov Interview http://stlport.org/resources/StepanovUSA.html - Lazy MapReduce https://godbolt.org/g/iCRhES - Sorting Nibbles in Swift https://airspeedvelocity.net/2015/03/08/sorting-nibbles-in-swift/comment-page-1/ - From Mathematics to Generic Programming http://www.informit.com/store/from-mathematics-to-generic-programming-9780321942043 - Elements of Programming https://www.amazon.com/Elements-Programming-Alexander-Stepanov/dp/032163537X - C++ Templates - The Complete Guide https://www.amazon.co.uk/Templates-Complete-Guide-David-Vandevoorde/dp/0321714121/ref=sr_1_1?ie=UTF8&qid=1518904677&sr=8-1&keywords=C%2B%2B+Templates+-+The+Complete+Guide - Advanced Swift https://www.objc.io/books/advanced-swift/ - Optimizing Collections https://www.objc.io/books/optimizing-collections/