Pull to refresh

Comments 10

По факту какой-то чувак запили статью про своё обучение. Протоколы по факту хорошо разложены в видосах Дейва Абрамса с ввдц и так же рекомендую заглянуть в его твиттер.
… про своё обучение...

Непохоже.
в видосах Дейва Абрамса с ввдц

Ссылка на «видос» упомянута в заключении перевода.
Это просто нашлёпки из плейграунда, которые есть у каждого кто более мене в теме. Было бы намного полезней если бы это был кусок кода из реального проекта, решающего реальную задачу. Тогда там бы никаких птичек и мотоциклов не было. Дженерик не про птички и мотоциклы, в самом деле. И не про конченный тип Result. Дженерик это про алгоритмы и только. Нет, ну ок, топ спид он высрал. Но это слишком мало для целой статьи.
Оригинальная статья, как и перевод, заявлены как Tutorial, т.е. как материал для начинающих разбираться в этой теме. Поэтому естественно тут про «птичек и мотоциклы», а не куски непонятно какого проекта, по той же причине всё в плейграунде. Как туториал текст вполне подойдёт, а для тех, кто хочет поглубже «залезть в нору» — ссылки в конце статьи.
Статья хорошая, однако называть это новым видом программирования я бы не стал.

Все же, протоколы это просто механизм для реализации абстракций и разделения приложения на слои.

Также по сути это и есть множественное наследование, поскольку в Swift протокол это не просто интерфейс с сигнатурами но и абстрактный класс, с возможность реализации абстрактных методов через extension.
Да и те же properties можно таким же образом добавить.
Другими словами, mixin’ы.

Ну и самое главное — слишком сало картинок. UML схемы и просто красивые изображения для пояснения действий и изменений были бы очень к стати.
Статья интересная, хотя, на мой взгляд, пример не очень удачный — как раз такую же проблему приводят, когда объясняют, почему лучше использовать композицию, а не наследование, и далее про использование entity-component-system.
Есть целая книжка про это: Hoffman, Jon. «Protocol-Oriented Programming with Swift». Рекомендую.
This is not about protocol oriented programming. This book insists it is better design, just making abstract class as protocol with extension. It doesn’t explain “Self requirement” with a “generic constraint” that is the one of most important concept in protocol-oriented design.

If you want to learn protocol-oriented, watch two WWDC 2015 videos “Protocol-Oriented Programming in Swift” and “Building Better Apps with Value Types in Swift”. It’s much more valuable and even free.

I read down to the end of the book because I don’t want to waste money. As a result, I waste my time also.

Почему же я такой вредный?
Оттуда же:

I just received this book and it is outstanding. If you want to learn what Protocol-Oriented programming is all about then you need to get this book. The design pattern and case studies chapters alone make this book worth the cost.


Видимо потому, что смотрели не последнюю редакцию книги :)

Цитата:
«Chapter 6. Working with Generics
I received a lot of feedback about protocol-oriented programming after the first version of this book was released. Almost all of this feedback was very positive; however, there was one conversation that I had, with one of the smartest people that I have had the privilege to meet, about what protocol-oriented programming was. One of the comments that he made was that I should not forget about generic programming. The conversation that we had about generic programming really stuck with me and when I had the opportunity to write the new version of this book, I took that opportunity to include this chapter on generics.»
Sign up to leave a comment.

Articles