2010-04-24 14 views
14

Coś, czego nie lubię w programowaniu, to uczenie się nowego API. Na przykład teraz próbuję nauczyć się Windows Identity Foundation. To frustrujące, ponieważ mam zamiar spędzić większość czasu na uczeniu się, jak działa kilka klas, a właściwie napisać tylko kilka linii kodu.Jak szybko nauczysz się hierarchii klas?

W .NET jest tak wiele typów, że wydaje mi się spędzać więcej czasu na polowaniu w msdn dla klasy niż pisanie kodu. To również przerywa mój przepływ pracy, podczas gdy ja pracuję, ponieważ muszę trochę napisać, niż coś wyszukać.

Oczywiście, nie muszę tego robić dla klas podstawowych. Ilekroć pojawiają się nowe rzeczy, na pewno jest coś do zrobienia. Wtedy często nie używam tej klasy na tyle, aby naprawdę ją przejrzeć lub wprowadzić w czyn.

Zastanawiam się, czy ktoś tam znalazł sposób na zapamiętanie (lub sprawniejsze sprawdzenie) hierarchii modeli obiektów?

+0

Aż do głosowania, to jest problem, z którym wszyscy mamy do czynienia. zagłosuj! –

+3

Tylko dlatego, że jest to powszechny problem, nie jest to świetne pytanie. Dla mnie jest to część naszej pracy, a pytanie o skróty przypomina trochę pytanie, jak szybko przejść przez wszystkie te żmudne projekty i architekturę. Uczenie się narzędzi nie jest lub nie powinno być uciążliwością, której należy unikać. – Aaronaught

+0

Krzywa uczenia się nie może być uniknięta. Zdecydowanie można poprawić zdolność asymilacji większej ilości informacji. Jednak nadal istnieje tylko skończona ilość rzeczy, które możesz trzymać w swojej głowie ... "sztuczka" to umiejętne wybieranie rzeczy, które chcesz zachować, i odrzucanie rzeczy, które możesz łatwo wyszukać. – Gishu

Odpowiedz

1

Byłem na twoim stanowisku równie dobrze jak dawno temu, kiedy uczyłem się języka Java i jego klas kolekcji (lub SWING, lub AWT w tej sprawie).

Oto kilka kroków zrobiłem i wynik tych kroków:

  • Nie przeszkadzało robić notatki, zachować go używać => Pamiętaj tylko najbardziej stosowaną klasą
  • wziąć niezorganizowany uwagi => ten sam wynik, zapamiętaj najczęściej używaną klasę
  • Proste diagramy klas => poprawa, ale niekompletne
  • Proste diagramy klas, ale w komplecie z pod-klasami zorganizowanymi według komponentu (pakiet w Javie) => Jackpot!

Niewiele bardziej przypomina:

  • Wyeliminowanie wycofywanych klas
  • Znajdź symbol, aby oznaczyć klasę jest thread-safe (umieścić TS lub coś)
  • Można pominąć przynajmniej wykorzystane podklasy (być może) wraz z przygodami:

Przykład schematu prostej klasy:

Porównaj z tego (nie tak proste):

nadzieję, że pomoże.

Ed

2

Pomocne może być rysowanie diagramów UML i umieszczanie ich obok monitora. W przeciwnym razie, myślę, że jedynym sposobem, aby naprawdę dostać interfejsy nowych klas w głowę jest ich dużo.

Niestety, spędzanie większej ilości czasu na dokumentach niż pisanie kodu jest typową cechą współczesnych środowisk programistycznych.

8

Pomysł, że można całkowicie nauczyć się nowego API umarł dawno temu, prawdopodobnie w systemie Windows 3.0. Interfejs API systemu Windows stał się tak złożony, że naprawdę nie było możliwości, aby większość z nas nauczyła się wszystkiego, tak jak można na przykład nauczyć się wszystkich wywołań systemowych w systemie UNIX. i nie było potrzeby - dokumentacja online, łatwa w wyszukiwaniu, sprawiła, że ​​nauka stała się niepotrzebna.

Oczywiście trzeba wiedzieć, w jaki sposób zorganizowana jest biblioteka API (lub biblioteka klasowa) i jakie są jej możliwości, ale nie ma sensu uczenie się, jaki jest trzeci parametr wywołania funkcji X.

+0

Neil, bardzo dziękuję za tę odpowiedź. Prawdopodobnie najlepsza rada, jaką kiedykolwiek otrzymałem .. –

0

Zazwyczaj nie zawracam sobie głowy uczeniem się API, ale próbuję zrozumieć szerokie pojęcia na temat tego, co robi interfejs API: &, jak to działa.

Tak więc, zazwyczaj zaczynajmy od bloków wysokiego poziomu tego, co robi API (zazwyczaj w dokumentacji), &, a następnie cel, który chcesz wydostać z API &, aby działał z tymi aspektami.

Tak, nie będzie z powrotem & powrotem między kodem dokumentacja & na jakiś czas, ale jak Ci się bardziej komfortowo z API, zaczniesz zauważać desenie & styl kodu & pozostałe obszary API przyjdzie bardziej naturalnie dla ciebie (zakładając, że jest to dobrze zaprojektowany interfejs API :)

HTH.

0

Cholera, po prostu pomyślałem, że to ja się starzeję !!!

Piszę kod Java za pomocą JMS, EJB, JNDI, JDBC, JSP, serwlet, rozpórki, rozpórki, JTA, Swing, POI, GWT, GAE, JDO, IBM MQ MQ, JNI, XML, SAX, DOM, C++ , WIN32, a także nasze własne biblioteki klas i prawdopodobnie więcej niż nie pamiętam.

Gdy potrzebuję przełączać się między technologiami, bardzo trudno jest zapamiętać wszystkie interfejsy API. Niektóre z używanych obecnie narzędzi są tak zaawansowane, że można rozpocząć nowy projekt przy użyciu jednej z nowych technologii.

  • Zarówno Eclipse, jak i Visual Studio mają autouzupełnianie .
  • Google to duża pomoc - używaj jej codziennie.
  • dokumentacja online.

Dodatkowo tworzymy własne pomoce robocze, czyli dokumentowanie krok po kroku procedur, jak coś zrobić, tj. Scalenie gałęzi w kontrolę wersji, wdrożenie na platformę. Przechowujemy te elementy na Wiki dla naszej grupy.

0

Nic konkretnego do zaoferowania tutaj jako odpowiedź.

Jest to niezbędna część bycia programistą. Możesz jednak wybrać bardzo wybredną w ramach, które zdecydujesz się użyć.

dobre ramy

  • jest łatwy do odebrania i używać bez dokumentacji. Działa tylko tak, jak oczekujesz, że będzie działać
  • nadal ma świetną dokumentację pomimo zapisu # 1.
  • jest minimalistyczna. Najmniej ilości kodu/klas/metod, aby wykonać zadanie.

Są jednak chwile, w których nie masz wyboru; w takim przypadku jedyną rzeczą jest zejście w brudne okopy. Zacznij od przykładowego kodu - testuj aplikacje - ucz się od ludzi, którzy już tam byli i robili/blogowali.

0

Tak, pamiętając o wszystkich tych interfejsów API jest problemem dla mnie też ...

moje 2 centów (oprócz utrzymywania dokumentacji online dookoła) jest napisanie kodu testowego suite, które używają funkcji chcę się uczyć. Chodzi o to, że uważam, że najlepszym sposobem zrozumienia jakiegoś API jest sprawienie, by działało, jeśli po prostu je przeczytasz, nie możesz być pewien, że zrozumiałeś to we właściwy sposób. Musimy sprawić, aby wszystko działało, zazwyczaj można sortować między częściami, które są niezbędne do zrozumienia (dziwne jest to, że "twarda" część często dotyczy szczegółów konfiguracji) i jakie części można zostawić na później. Niedawno korzystałem z nowej biblioteki rysunków i nie próbowałem jeszcze wszystkich rysunków prymitywów ...

Piszę ten kod testowy tak jak ja dla dowolnego testu jednostkowego w moich programach, staram się zachować prostotę i łatwy do zrozumienia. Testy te stają się częścią mojej osobistej dokumentacji online, a ja kopiuję wklej i dostosowuję ją w razie potrzeby.

Oczywiście nie mogę przetestować wszystkiego w ten sposób, ale próba typowych przypadków bez presji trwającego projektu jest zazwyczaj bardzo pomocna w zrozumieniu nowego interfejsu API i używam go do wymiany zestawu testów z moimi współpracownikami .

Powiązane problemy