2009-03-24 11 views
5

Spring Python wydaje się być złotym standardem, jak definiować dobrej jakości interfejsy API w Pythonie - bazuje on na Spring, który również wydaje się być złotym standardem dla API Java.Jaki jest najlepszy tutorial online na początek ze Spring Python

Mój menadżer skarżył się (nie bez powodu), że nasze interfejsy API są w rozsypce - musimy nałożyć na nie trochę zamówienia. Ponieważ będziemy re-factoring, warto skorzystać z tego, co jest uważane za najlepszą praktykę - więc chcielibyśmy rozważyć Spring.

Czy ktoś może wskazać mi najlepsze zasoby do nauki, aby zacząć korzystać ze Springa? Mam google przez jakiś czas i nie znalazłem niczego, co wydaje się zaczynać od pierwszych zasad. Szukam czegoś, co zakłada dobrą znajomość Pythona, ale zerową znajomość Springa na innych platformach lub jego zasadach.

Dzięki

+0

"Spring Python wydaje się być złotym standardem, jak definiować dobrej jakości API w Pythonie" - jak doszło do tego wniosku? – Vasil

+0

Czy masz źródło? http://sourceforge.net/projects/springpython/ Co złego jest w czytaniu źródła? Czy masz artykuł wikipedia? http://pl.wikipedia.org/wiki/Spring_Python Czego więcej potrzebujesz? Czy masz konkretne pytanie? –

+0

@Vasil: Artykuł wikipedia to mówi. Dlatego (oczywiście) to prawda. –

Odpowiedz

10

Skąd zdecydować się na wiosennym Python jako API z wyboru? Wiosna dobrze działa na Javie, gdzie istnieje tradycja programowania deklaratywnego; zdefiniowanie aplikacji głównie za pomocą XML do sterowania silnikiem jądra to standardowy wzorzec w Javie.

W języku Python, chociaż podstawowe wzorce, takie jak Inversion of Control, są wciąż trafne (w zależności od przypadku użycia), implementacja wybrana przez Spring wygląda jak klasyczny przypadek czegoś wyprodukowanego przez programistę Java, który nie chce się uczyć Pyton. Zobacz artykuł oft-odniesienie Python is Not Java.

Pochwalam Twoją decyzję o wprowadzeniu ładu i zamyślenia w bazie kodów, ale przed podjęciem decyzji możesz ocenić kilka opcji. W szczególności może się okazać, że użycie Spring Python utrudni zatrudnienie dobrych programistów Pythona, z których wielu będzie działać w inny sposób, gdy napotkają 1000-liniowe pliki XML opisujące interakcje z obiektami.

Być może zacznij od ponownego zbadania, co naprawdę chcesz osiągnąć. Problem nie może po prostu polegać na tym, że "potrzebujesz ramy". Istnieje wiele frameworków i trudno jest ocenić a) jeśli naprawdę potrzebujesz jednego ib), który będzie działał, jeśli nie zidentyfikowałeś podstawowych problemów z oprogramowaniem, które musisz rozwiązać.

Jeśli prawdziwy problem polega na tym, że Twój kod jest nie do zniesienia, wprowadzenie frameworka prawdopodobnie nie rozwiąże problemu. Zamiast po prostu niechlujnego kodu, masz kod, który jest niechlujny w czyimś stylu :-) Być może rygor w zespole deweloperów jest tam, gdzie powinieneś najpierw polecić: dobre planowanie, recenzje kodu, rygorystyczne praktyki zatrudniania, wydanie "czyszczenia" , itp ...

Życzymy powodzenia w badaniach.

+0

Nasz kod jest w większości całkiem niezły - jednak interfejsy API są niespójne. Chcielibyśmy, aby nasze interfejsy API były znacznie łatwiejsze w użyciu i mogły skorzystać z tego, co osiągnęli liderzy w zakresie projektowania interfejsu API. –

+0

Proszę wiedzieć, że Spring Python nie jest zwykłym portem [1], ani nie jest ograniczony do XML. Nie uciekaj od XML, po prostu użyj dekoratorów zamiast tego! [2] Zawsze cieszę się, że można robić rzeczy pythonic. - 1. http://tinyurl.com/dz3dk6, 2. http://tinyurl.com/dzupa9, 3. http://tinyurl.com/d53d8v – gregturn

+0

Przeanalizujmy ten problem - chcesz mieć spójny API. Radzę przeczytać PEP-0008 http://www.python.org/dev/peps/pep-0008/, który jest oficjalnym wytycznym stylu dla Pythona. – gregturn

1

Nie posunę się tak daleko, by sugerować, że Spring Python jest zły (ponieważ nie wiem o nim wystarczająco dużo). Ale nazywanie Spring Python "złotym standardem dla API Pythona" jest ciągiem. Wydaje mi się, że Spring Python jest bardziej sposobem na umożliwienie aplikacjom Pythona interakcji z aplikacjami Java przy użyciu Spring.

W każdym razie po zapoznaniu się z prefiksem na official documentation, wydaje mi się dość łatwe do zrozumienia, że ​​mam przyzwoitą znajomość Pythona, ale brak znajomości wiosny. Pomijając fakt, że prawie wygląda jak kod Java, w którym autor zapomniał nazwy, średniki i nawiasy klamrowe. :-)

+0

Powinienem wspomnieć: Jesteśmy sklepem Python + Java. Cała nasza logika biznesowa jest w ptythonie. Większość naszego GUI to Java, więc sprawienie, by Python grał dobrze z Javą, jest dla nas NAPRAWDĘ ważne. Twórcy Java kochają Spring i nie mogę wymyślić dobrego powodu, aby ich rozczarować. –

+0

To brzmi jak doskonały powód, aby go wykorzystać. Ale powinieneś być przygotowany na reakcje, tak jak w tym pytaniu, na używanie w Pythonie architektury zorientowanej na java. :-) –

+0

Spring Python nie został zbudowany, aby po prostu zintegrować się z Javą. W rzeczywistości ta sekcja jest teraz trochę słaba. Jednak dodanie zabezpieczeń do aplikacji, zapewniających łatwe sposoby na łatwe wykonywanie instrukcji SQL (w pobliżu ORM) i dynamiczne przechwytywanie kodu w bibliotekach zewnętrznych z AOP, wydają się cennymi narzędziami. – gregturn

Powiązane problemy