Platforma SaaS o nazwie Google App Engine (w skrócie GAE) jest wspaniałą alternatywą dla kosztownych opcji hostowania aplikacji opartych o serwery dedykowane czy konta współdzielone. Udostępnia ona całą infrastrukturę tworzenia aplikacji z wykorzystaniem języka Python lub języków opartych o JVM. Oczywiście istnieją ograniczenia związane z architekturą GAE, wymuszając pewne sposoby pracy z platformą (niejako wymuszając […]
Po skończonym kursie Zarządzanie projektami metodyką PRINCE2 i niejako w ramach przygotowania do egzaminu PRINCE2 Foundation (a w dalszej perspektywie PRINCE2 Practitioner) wdałem się ostatnio w kilka dyskusji na temat tej metodyki. Jedną z nich można prześledzić w komentarzach do mojego poprzedniego wpisu opisującego podstawowe koncepcje metodyki PRINCE2. Zauważyłem, że wokół PRINCE2 narosło sporo mitów. […]
Jedną z głównych zasad metodyki PRINCE2 (tzw. pryncypium) jest zarządzanie projektem z wykorzystaniem tolerancji. Przyjrzyjmy się dlaczego owa zasada została wprowadzona, co ona oznacza i jakie konsekwencje niesie ze sobą dla projektu. Zarządzanie z wykorzystaniem tolerancji Cytując oficjalną definicję OGC: Projekt zgodny z PRINCE2 posiada tolerancje określone dla każdego z celów projektu, służące do ustanowienia […]
PRINCE2 to metodyka zarządcza ogólna na tyle, że nadaje się do zastosowania w wielu rodzajach projektów. Jako, że jestem świeżo po kursie PRINCE2 i przygotowuję się do egzaminu PRINCE2 foundation postanowiłem przedstawić kilka ogólnych informacji o tej metodyce, celem utrwalenia wiedzy. Podstawowe elementy PRINCE2 Metodyka PRINCE2 jest metodyką zarządczą. Oznacza to, że jest to metodyka […]
W poprzednim poście przedstawiłem PhoneGap, jako framework pozwalający na tworzenie wieloplatformowych aplikacji mobilnych. W tym poście chciałbym przedstawić Titanium jako framework alternatywny, który choć bazuje na podobnym koncepcie, różni się jednak w wielu elementach od PhoneGap. Titanium Titanium to framework, który podobnie jak PhoneGap, pozwala na pisanie wieloplatformowych aplikacji mobilnych z wykorzystaniem HTML-a oraz JavaScript’u. […]
Platformy mobilne takie jak iPhone czy Android zdobywają coraz większą popularność. Serwisy takie jak Apple App Store czy Google Market posiadają już pokaźną bibliotekę aplikacji dostępnych dla tych platform i co chwila pojawiają się nowe. Niestety każdy programista chcący tworzyć aplikacje mobilne stoi przed nie lada dylematem. Musi wybrać platformę dla której chce tworzyć aplikacje. […]
Wygenerujmy sobie proste rusztowanie (ang. scaffolding): Następnie dodajmy kilka walidacji dla naszego modelu: Odpalamy migracje i wchodzimy na: http://localhost:3000/users/new Nie wypełniając żadnego pola klikamy przycisk Create. Niby wszystko gra, dostajemy informacje o błędach walidacji i takie tam. Jednak jeżeli przyjrzymy się dokładnie, a w szczególności adresowi URL to widzimy: http://localhost:3000/users Adres się zmienił! Ale przecież […]
Frameworki ORM takie jak Hibernate czy ActiveRecord pozwalają nam w dość naturalny sposób przechodzić pomiędzy zależnościami modeli (encji). Wystarczy po kropce dodać nazwę atrybutu i gotowe. Niestety takie podejście kończy się tym, że wywołania kolejnych zależności ciągną się w nieskończoność: Takie konstrukty nazywamy z angielska train wreck. Nie jest to dobre podejście z punktu widzenia […]
Model-Widok-Kontroler to w tej chwili chyba najczęściej używany wzorzec projektowy. Niemal każda aplikacja, a zwłaszcza aplikacje webowe, wykorzystują go (często pod przykrywką jakiegoś frameworka). Niestety rozpowszechnienie użycia tego wzorca nie idzie w parze z jego zrozumieniem. Często widzę jak programistom brakuje elementarnej wiedzy na temat MVC przez co traci się większość jego zalet. No cóż, […]
Większość standardowych zadań związanych z testowaniem aplikacji jest w prosty sposób do zrealizowania z użyciem domyślnych kroków Cucumbera. Z założenia Cucumber służy do testów funkcjonalnych, lecz można go również zastosować do realizacji „testów” integracyjnych. Chodzi mi o taką sytuację kiedy chcemy przetestować w jednym scenariuszu interakcje pomiędzy działaniami kilku użytkowników, szczególnie gdy z jakiś powodów […]