2012-01-31 4 views
8

Więc jestem nowy w rozwoju iOS i robię wszystko, aby nauczyć się "najlepszego" sposobu robienia rzeczy. (Tak, wiem, że jest to pojęcie względne)Ekwiwalenty wzorców w systemie iOS pochodzące ze świata C#/Java?

Pochodzę ze świata C# i Java, gdzie robimy rzeczy takie jak wstrzykiwanie zależności przez kontener IOC, używanie wzorca repozytoriów do abstrakcyjnego dostępu do danych, korzystania z usług domenowych i obiektów enkapsulacji danych biznesowych i zachowań itp. To są rzeczy, których jeszcze nie widziałem w rozwoju iOS. (Może szukam w niewłaściwych miejscach)

Zdaję sobie sprawę, że Objective-C jest nadzbiorem C i dynamicznym/luźno napisanym językiem, który prawdopodobnie zmieni trochę grę, jeśli chodzi o dobre praktyki projektowe . Czy ktokolwiek może wskazać mi kierunki niektórych książek/blogów/innych, które pomogłyby mi dokonać tego mentalnego przeskoku z mocno napisanego, zarządzanego środowiska do tego nowego świata, jednocześnie zachowując moje projekty elastyczne i przestrzegając zasad SOLID?

EDYCJA - Chcę być tutaj przejrzysty. Nie pytam, jak nauczyć się struktury Cocoa i tajników Objective-C jako języka. Znalazłem mnóstwo zasobów na ten temat. Chciałbym przejść do następnego poziomu, zacząć robić TDD i upewnić się, że projekty, które buduję, będą łatwe do rozbudowy i konserwacji.

+1

Niektórzy z nas dostali się do rozwoju iOS, aby uciec od wszystkich tych nonsensów. :) –

+2

@robmayoff Tego typu rzeczy można na pewno przesadzić, ale "bzdura" jest trochę trudna. Zdecydowanie nie chcemy wracać do dni wstawionego SQL wszędzie, więc istnieje pewien balans, który mamy na uwadze. Zgodnie ze zrównoważonym podejściem, co robisz, aby poprawić swoje projekty w iOS? –

+0

Myślę, że jak mówi Adam, powinieneś zacząć od spojrzenia na API Apple'a. Ich interfejsy API są proste, minimalne i bardzo spójne. Na przykład, aby reprezentować kolekcje, Cocoa ma trzy klasy - 'NSArray',' NSSet' i 'NSDictionary'. Porównaj to z tym, co Java i niektóre inne języki oferują jako część standardowych bibliotek. Sprawdź również rozmowy WWDC pt. "Pisanie łatwych do zmiany kodu" oraz "Projekt interfejsu API dla kakao i dotyku kakao" z 2011 i 2010 roku. – Anurag

Odpowiedz

4

Najlepszym sposobem na poznanie "najlepszego" sposobu działania jest możliwie jak najgłębsze zrozumienie sposobu, w jaki zostały zaprojektowane interfejsy API firmy Apple. W końcu, niezależnie od tego, jaki jest teoretyczny najlepszy sposób na zrobienie czegoś, ostatecznie twój kod będzie musiał działać z tymi interfejsami API, więc w większości przypadków powinieneś postępować zgodnie z podobnymi wzorcami.

Jeśli chodzi o książki, jest jeden o nazwie Cocoa Design Patterns, który obejmuje dokładnie ten temat i, na podstawie recenzji Amazon, wydaje się być dobrze przyjęty.

+0

Dobra rekomendacja. – JoePasq

+0

Nie jestem pewna, czy to wypełni wszystkie luki, ale wydaje mi się, że jest to doskonała książka, która doprowadzi mnie do tej drogi. Dzięki. –

1

Polecam śledzenie kursu cs193p i przeczytanie Learning Objective-C ze strony firmy Apple.

Myślę, że te dwa linki wskażą Ci właściwy kierunek działania systemu iOS.

1

Istnieje wiele wzorców projektowych charakterystycznych dla rozwoju Objective-C i Cocoa, znajdziesz bardzo ładne podsumowanie w this book. Obejmuje ona wbudowane wzorce językowe, jak również bardziej skomplikowane i wysokopoziomowe (architektoniczne, jeśli chcesz) wzorce.

Ogólnie rzecz biorąc, zasady SOLID mają zastosowanie i są nie mniej ważne w dynamicznym języku, ponieważ są one mocno typowane. Inną rzeczą jest to, że w Objective-C masz możliwość używania silnych typów w swoim projekcie, więc prawie wszystkie "klasyczne" schematy OOP mają zastosowanie, chociaż mogą istnieć pewne konstrukcje szkieletowe/językowe bardziej eleganckie i nadające się do tego zadania.