TL; DR: Za chwilę wydamy aplikację produkcyjną na MagLev. Powinieneś prawdopodobnie poczekać.
Przepraszam za długość; Mam wiele rozłączonych myśli na ten temat, że wciąż próbuję się połączyć.
Mój zespół wkrótce uruchomi pierwszą aplikację produkcyjną na MagLev. To była wyboista droga, ale jesteśmy pewni, że w końcu okaże się, że była to właściwa decyzja. Mówię o naszych doświadczeniach na kilku konferencjach w tym roku i cieszę się, że mogę porozmawiać o tym bardziej szczegółowo, ale tutaj jest (długi) przegląd.
Jak już wiesz, GemStone ma długą i dumną historię wspierającą firmy z branży finansowej. Jesteśmy przede wszystkim sklepem Ruby i rozwijamy aplikacje finansowe. Dbamy o nasze dane, więc GemStone był dla nas oczywistym wyborem. MagLev pozwala nam wykorzystywać naszą istniejącą wiedzę Ruby i znaczną część naszego kodu oraz przechowywać nasze dane w GemStone. Było to (na pozór) idealne małżeństwo.
Zdecydowaliśmy się rozpocząć od małej aplikacji, która była nowością dla naszych użytkowników i byłaby najłatwiejszym i najmniejszym ryzykiem przeniesienia. Wybraliśmy naszą aplikację do fakturowania, która wiąże się z naszą hostowaną platformą kasową. Możliwość prostego utrzymywania obiektów bez martwienia się o mapowanie lub konwersje sprawiła, że programowanie stało się bardzo szybkie i przyjemne, a uniknęliśmy wielu problemów związanych z ORM-ami i utrzymywaniem w ogóle. Planujemy kontynuować przenoszenie pozostałych aplikacji do MagLev.
Powiedział, że powinieneś poczekać chyba wszystkie są spełnione następujące warunki:
Jesteś (lub pracować) Eksperci Ruby, którzy są na tyle obeznany z językiem i jego implementacje zbadać i naprawić realizację szczegóły, z których wiele jest napisanych w Smalltalk.
Jesteś programistą, który rozumie specyfikę pracy w Smalltalk, ale ogólnie jest oparty na obrazie.
Jesteś w stanie dokładnie poznać platformę GemStone/S, język, mechanizmy wdrażania i oprzyrządowanie.
Jesteś gotowy zgarnąć wszystko i ponownie napisać swoją aplikację w Smalltalk, jeśli trafisz na ceglany mur. (Ja to przyznać: Mam nadzieję na MagLev spadnie całkowicie płaska czasami, żeby mieć pretekst.)
Istnieje kilka rzeczy, które mają problemy z na bieżąco. Ponieważ dla nas wszystkie powyższe są prawdziwe, przeszliśmy do przodu. Często sprawdzamy każdy z poniższych "problemów". Czasami codziennie.
śledzenia wstecznego są prawie niemożliwe do odczytania na własną rękę, a gdy napotkasz wiele wyjątków trzeba grać z debugera wiersza poleceń z GemStone Smalltalk. Tutaj jest dość krzywa uczenia się.
Kompatybilność bibliotek z biblioteką Ruby jest ... mniejsza niż można by oczekiwać. Zasadniczo możesz liczyć na większość rzeczy, które są napisane czystym Rubinem, aby było dobrze. Zasadniczo wszystko, co używa rozszerzeń C bez ffi, jest niedostępne. To zaskakująca ilość rzeczy. Biblioteki, które śmiesznie nadużywają meta-programowania, mylą MagLev. To wiele rzeczy na ziemi Rails.
Przeładowywanie kodu i migracje są ręczne. Po zmianie definicji klasy utrwalonego obiektu na dysku należy zarządzać ładowaniem nowego kodu i ręczną migracją istniejących instancji.
Wszystkie powiedział, że rzeczą, która pomogła nam najbardziej jest to, że jestem przyjaciół z najbardziej (wszystkie?) Z facetów, którzy są (i były) poinformowany o Maglev na Kamień. Są dla nas fantastyczne. Uczniowie z HPI również byli nieocenionymi naprawianymi błędami i pomagali nam rozwiązywać problemy.
O mojej drużynie, ponieważ zespół, który posiadam, w zasadzie to umożliwia. Mamy czterech programistów. Każdy z nas ma ponad dekadę doświadczenia (myślę, że wszyscy jesteśmy w rzeczywistości ponad 12-15 lat). Niektórzy z nas (ja przynajmniej) mają ponad dekadę doświadczenia z Ruby. Mamy różny stopień doświadczenia z Smalltalk, chociaż nikt z nas nie dostarczył aplikacji produkcyjnych, które zarabiają na nim pieniądze. Jestem aktywny w społecznościach Ruby i Smalltalk (i jestem w pewnym sensie "przejściem" od poprzedniego do drugiego).
Nasze doświadczenia są nieco skaliste, ale przede wszystkim przyjemne. Gdybym wiedział, co teraz wiem, zrobiłbym to ponownie. Mam nadzieję, że nasza praca nad tym pomoże innym zrobić to samo w przyszłości. Widzę MagLev jako cenne narzędzie w przyszłości.
To jest dokładnie ten rodzaj informacji, którego szukałem. Dziękuję bardzo za poświęcenie czasu. Pomimo przyczyn, dla których pytanie zostało zamknięte, myślę, że było to bardzo przydatne. – aceofspades
Może to pomóc w przyszłości zakończyć się bezpośrednim pytaniem. Użyłeś "Jakieś komentarze?" Może ci pomóc, jeśli powiesz "Czy MagLev jest gotowy do produkcji?" lub coś bardziej bezpośredniego. Możliwe, że tutejsi moderatorzy lubią wydmuchiwać skrzynie. –
Zrewidowałem pytanie, na wypadek gdyby ktoś chciał zagłosować, aby ponownie otworzyć. Dużo głosów dość szybko, więc wydaje się, że to jest interesujące. – aceofspades