Witaj na blogu prowadzonym przez Sebana. Spisuję tutaj swoje uwagi na różny temat. Przeważają tematy związane z Internetem, popieranymi przeze mnie rozwiązaniami dotyczącymi wykorzystania komputerów, oraz kilka innych.
Subprocesy w aplikacjach uruchomionych na Thin
25 kwietnia 2011 | Klucze:
it,
programowanie,
ruby,
Techblog
2 komentarze. trackback
Ostantio odkryłem, dość przypadkiem przyznam, jedną ciekawostkę związaną z forkowaniem procesów w Ruby. Problem dzięki, któremu odkryłem metodę Kernel#at_exit polegał na tym, że aplikacja oparta na Sinatrze i Thin w momencie odpalania innego procesu poprzed fork w pewnym momencie usuwała swój pidfile.
Winowajca
Winowajcą, w cudzysłowie, była metoda daemonize z modułu Thin::Deamonizing, która definiuje blok at_exit. Blok robi super prosta rzecz: usuwa pidfile. Cała zagwozdka polega na tym, że blok at_exit jest uruchamiany również po zakończeniu procesów potomnych. Prościej mówiąc wszystko co uruchomimy przez fork w aplikacji opartej o Thin (sprowadzonym do demona) prędzej czy później dojdzie do tego at_exit i usunie pidfile
Rozwiązanie
Rozwiązanie jest super hiper proste:
RTFMTTE!
W dokumentacji jak byk jest napisane, że jeśli chce się uniknąć uruchomienia at_exit należy zakończyć proces metodą exit!, co spowoduje jego natychmiastowe zakończenie. Przygotowałem krótkie streszczenie - gist.Testowanie oprogramowania - podręcznik
09 kwietnia 2011 | Klucze:
agile,
it,
programowanie,
recenzje,
Techblog
11 komentarzy. trackback
To co najbardziej mi się podoba w społeczności stworzonej wokół języka Ruby to kultura testowania pisanego oprogramowania. Obojętnie czy jest do duży serwis internetowy pisany w Rails, mała stronka wydziergana w Sinatra czy bilioteka do realizowania konkretnych zadań prawie zawsze ma napisany dobry zestaw testów. Brak takich testów bardzo często jest piętnowany i uważany za skazę na jakości tworzonego oprogramowania.
Książka Growing Object Oriented Software, Guided by Tests to doskonała pozycja dla wszystkich, którzy chcieli by ugruntować swoją wiedzę o TDD lub chcą poznać techniki związane z automatycznym testowaniem oprogramowania. Książka pokazuje krok po kroku co i jak testować. Na co zwrócić szczególną uwagę, co testować na którym poziomie testów. Według mnie pozycja obowiązkowa dla każdego programisty. Robert 'Ruper' Pankowiecki w swojej recenzji tej książki pisze, że książka powinna być obowiązkowa na studiach. Trudno mi się z tym nie zgodzić!
Jeśli nie czytałeś tej książki kup ją i przeczytaj. Zamów do firmowej biblioteczki. Jestem pewien, że na tym skorzystasz.

