Programista 4/2013 (11)
Programista 4/2013 (11)
Choć języki wysokiego poziomu – skryptowe, interpretowane czy wykonywane w wirtualnej maszynie – mają wiele zalet i są najlepszym wyborem w licznych zastosowaniach, to niekiedy potrzebujemy napisać kod jak najbardziej wydajny. Do tego nie wystarczy zastosować język natywny taki jak C++. Dopiero pewna dawka wiedzy i znajomość dobrych praktyk pozwoli wycisnąć ze sprzętu maksimum mocy obliczeniowej.
W siódmej i ostatniej części kursu „Wprowadzenie do języka C# i platformy .NET” przedstawimy podstawowe zasady związane z komunikacją z bazami danych oraz zaprezentujemy podstawy tworzenia interfejsu graficznego w naszych aplikacjach.
Pierwsze kroki w świecie gier dla systemu Android
Czyli chcesz tworzyć gry. Twój powód nie jest istotny - może podobają Ci się istniejące już gry, patrzysz na projektowanie jako środek wyrazu albo może masz niesamowity pomysł, który musi ujrzeć światło dzienne. Jedyne, co jest Ci potrzebne, to zapał i kreatywność. Jednakże zatrudnienie się w dużym studiu tworzącym gry jest często bardzo trudne. W biznesie tym stabilność zatrudnienia nie jest pewna, a 60-godzinne tygodnie pracy wcale nie są takie ekscytujące. Bycie niewielkim trybikiem w gigantycznej firmie, który pracuje nad tak niesamowitymi zadaniami jak ekran ekwipunku czy interaktywny drewniany wychodek, prawdopodobnie nie są szczytem twoich marzeń. Odpowiedzią może być tworzenie gier Indie.
Walidacja danych jest niezwykle ważnym tematem, jeżeli mówimy o aplikacjach przeznaczonych dla większej liczby użytkowników. Musimy być pewni, że nasza strona otrzymuje dane zarówno poprawne w kwestii formatu, jak i poprawne logicznie. Jest to istotny element naszego rozwiązania, ponieważ niepoprawne dane mogę wywoływać błędy zarówno na poziomie zapisu danych, jak i potem podczas ponownego wykorzystywania ich.
Część 1 – wymiary
Jest takie wspaniałe opowiadanie Henrego Kuttnera „Tubylerczykom spełły fajle”. Dwójka dzieci dzięki zdobytemu przypadkiem zestawowi zabawek pochodzącemu z innej planety unika powszechnego dla Ziemian „uwarunkowania Euklidesem” i rozpoczyna życie w innym wymiarze. Podobne uwarunkowanie intelektualne odczuł na własnej skórze każdy z nas, gdy z „normalnego” systemu dziesiętnego trzeba było przestawić się na system dwójkowy, ósemkowy czy szesnastkowy. Trzeba sporego doświadczenia, by nie tylko zrozumieć, lecz także poczuć, że dwójka, ósemka czy szesnastka jest tak samo „okrągłą” liczbą jak dobra, stara dziesiątka.
Programy kompresujące dane mają swoje początki w czasach, gdy zarówno przestrzeń dyskowa, jak i transfer danych były stosunkowo drogie. Ograniczenie rozmiaru danego pliku o kilkanaście procent powodowało równoważną redukcję kosztów, więc na rynku szybko zaczęły pojawiać się programy, które umożliwiały realizację takiego zadania. Z czasem pojawiły się nowe potrzeby – masowo przesyłane przez Internet multimedia wymusiły powstanie kolejnej kategorii algorytmów, potrafiących poradzić sobie z trudno kompresowalnymi danymi, jakimi są obrazy, dźwięk i filmy. Współcześnie kompresja danych jest wszechobecna – do tego stopnia, że mechanizmy kompresujące pliki, katalogi, czy nawet całe partycje wbudowane są w każdy system operacyjny. Spróbujmy przyjrzeć się bliżej algorytmice, która stoi za tym ciekawym zagadnieniem.
Aplikacje sterowane zdarzeniami – Event Broker
Jak uniezależnić moduły aplikacji między sobą? Jak odświeżyć poszczególne elementy interfejsu użytkownika bez wprowadzania zbędnego couplingu? Jak wysłać email czy sms w reakcji na zatwierdzenie rezerwacji?
„W dzisiejszym pędzącym, niezwykle konkurencyjnym świecie komercyjnego wytwarzania nowych produktów, szybkość i elastyczność są najbardziej istotne. Firmy coraz częściej zdają sobie sprawę, że stare, sekwencyjne podejście do wytwarzania nowych produktów po prostu nie przynosi efektów. Zamiast tego, firmy w Japonii i Stanach Zjednoczonych używają holistycznej metody – tak jak w rugby, gdzie piłka jest ciągle podawana w zespole, kiedy ten pokonuje pole gry jako jednostka.”
Co powinien właściwie umieć architekt, programista lub tester? Na język ciśną się technologie, frameworki, metodyki i inne narzędzia z branży IT i Informatyki. Ale czy to wystarczy?
Z całą pewnością dobrze stać się wysokiej klasy, certyfikowanym specjalistą od Spring Framework, standardu JSF, JPA, serwera baz Oracle, Javy, mieć studia wyższe za sobą oraz znać każdy najdrobniejszy detal techniczny tych narzędzi. Ale czy to wystarczy? Nie. Projekt potrzebuje czegoś więcej niż tylko czystej techniki na stanowiskach wykonawczych.
Część III: 4C – Zwinne podejście do odkrywania i dokumentowania architektury
W jaki sposób dokumentować architekturę systemu? Z jednej strony tak, aby zawrzeć wszystkie potrzebne informacje, z drugiej zaś, aby nie przeładować dokumentacji szczegółami, które czynią ją bezużyteczną. W artykule zostanie przedstawione jedno z podejść do dokumentowania architektury na 4 poziomach: Context, Containers, Components, Classes.
W poprzednim numerze wprowadziliśmy naszych czytelników do systemu CMS TYPO3. W tym wydaniu pokażemy, jak podłączyć szablon HTML do systemu i wyświetlić prostą stronę internetową. Przy okazji wprowadzimy w TypoScript oraz zaprezentujemy inne ciekawe elementy TYPO3.
Co trzeba wiedzieć, kiedy wprowadza się miary?
Marzeniem każdego lidera jest posiadanie kilku niezawodnych wskaźników, wspartych pięknymi wizualizacjami, dzięki którym łatwo będzie stwierdzić, jak efektywny jest jego zespół, kto jest bardzo dobry, a kto jest daleko w tyle za resztą zespołu, kogo nagrodzić premią, a komu przykładnie pogrozić palcem. Miary związane z efektywnością zespołu to przydatne narzędzie, jednak jest kilka rzeczy, które powinieneś wziąć pod uwagę, zanim zaczniesz je stosować.
W dniach 4-7 marca odbyła się w Poczdamie konferencja Agile Dev Practices 2013, w której miałem okazję wystąpić zww prezentacją „Life Coaching Techniques on Agile Projects”. Organizatorem była firma Diaz & Hilterscheid znana z konferencji Agile Test Practices oraz czasopism Testing Experience i Agile Record.