Systemy kontroli wersji (ang. version control systems, VCS) znane są w informatyce od dawna. Pierwszym z nich był system SCCS (ang. Source Code Control System) opracowany w 1972 r. dla systemu IBM System/370. Fakt, iż programy będące ideowymi następcami tego systemu są nadal szeroko stosowane, świadczy o dużym znaczeniu praktycznym tego rozwiązania.
Zapewne większość z tych, którzy nie mieli do czynienia z językiem Ruby, zadaje sobie pytanie: Po co mam znać kolejny język programowania? Znam już przecież C++/Javę/C#/PHP etc. i nie mam potrzeby uczyć się nowego języka. Parafrazując wypowiedź pewnej pani na Youtube: „A komu to potrzebne?!”. Postaram się pokazać w skrócie, czym jest język Ruby, co odróżnia go od pozostałych oraz jak dużo zabawy i przyjemności może sprawiać programiście.
Programując w językach C lub C++, bardzo łatwo jest popełnić błąd. Powodów można wymienić kilka. Po pierwsze, oba języki są stosunkowo niskopoziomowe, a więc wymagają ręcznego zarządzania pamięcią dynamiczną, dbania o poprawność wskaźników, jak i dbania o wiele innych aspektów. Po drugie, nie wszystkie zachowania obu języków są w pełni zdefiniowane - standardy C i C++ wskazują zachowania nie zdefiniowane w ogóle (ang. Undefined Behavior, dalej UB), nie zdefiniowane w standardzie, ale definiowane przez konkretne implementacje (ang. Implementation-Defined Behavior), oraz takie, które mogą zostać zaimplementowane na więcej niż jeden sposób, ale niekoniecznie muszą zostać jawnie zdefiniowane w dokumentacji (ang. Unspecified Behavior). Niniejszy artykuł ma na celu przedstawienie czytelnikowi kilku przykładów, w których pomimo iluzorycznej trywialności kodu, znajdują się subtelne błędy lub niejasności.
Druga odsłona kursu „Wprowadzenie do języka C# i platformy .NET”. W tej części kontynuujemy opisywanie podstawowych zagadnień języka C#, takich jak operatory, rzutowanie, zmienne, tablice, instrukcje sterujące, przestrzenie nazw. W kolejnej części przybliżymy zasady programowania obiektowego w języku C#.
Dowiesz się, jak zainstalować, skonfigurować CMS eZ Publish oraz jak szybko stworzyć serwis www z panelem administracyjnym, nie pisząc nic w PHP.
OpenGL to podstawowy standard przeznaczony do tworzenia grafiki 3D, taki sam dla wielu różnych systemów operacyjnych, także dla systemu Android. W artykule zostaną przedstawione informacje o użyciu OpenGL w aplikacjach dla Androida pisanych w języku Java. Zaprezentowany zostanie także bardziej skomplikowany przykład, stanowiący prototyp gry, gdzie gracz porusza się w labiryncie, w stylu starych (i ciągle dobrych) gier typu Dungeon Master.
Direct3D jest API bardzo niskopoziomowym – nawet napisanie programu wyświetlającego prostą animację wymaga sporo pracy. Jednak dzięki temu programista ma dużą kontrolę nad całym procesem renderowania, co z kolei pozwala mu efektywnie wykorzystywać możliwości karty graficznej. Jednym z ważniejszych elementów API jest mechanizm shaderów, o którym chciałbym opowiedzieć w tym artykule.
Niektóre domeny podlegają ciągłym zmianom. Poprzez nadanie odpowiedniej struktury naszemu rozwiązaniu jesteśmy w stanie stosunkowo szybko zmienić reguły rządzące modelem. Niestety problem pojawia się w momencie, gdy te zmiany są zbyt częste i niepotrzebnie absorbują zespół programistyczny. Zazwyczaj powstaje wtedy wiele różnych strategii, reguł dla różnych klientów, którymi trzeba zarządzać. A co jeśli tę odpowiedzialność przerzucilibyśmy na klienta? Jako rozwiązanie w tym artykule zostanie zaproponowana budowa prostego języka dziedzinowego (DSL), który pozwoli klientowi końcowemu, bądź wdrożeniowcowi na zmianę zachowania części systemu.
Chociaż pracuję w Agile od 2007 roku i wielokrotnie widziałem, że ta metoda działa, to nie mam Cię zamiaru przekonywać, żebyś ją teraz wprowadził w swojej firmie. Nikt nie wie lepiej od Ciebie, czy warto to zrobić i jakie mogą być konsekwencje takiego posunięcia. Niewątpliwie jest to ważna decyzja, którą prędzej czy później będziesz musiał/musiała podjąć i jest to dopiero początek drogi. Mam nadzieję, że ten artykuł pomoże Ci przejść przez proces decyzyjny.
Jak uniknąć autobałaganu?
W tym artykule zajmiemy się niby prostym zagadnieniem takim jak dokumentowanie architektury za pomocą diagramu klas. Problem w tym, że potrzeba stworzenia dokumentacji pojawia się nagle, w pewnym momencie. Dość często nie jest to moment, gdy projekt się rozpoczyna, raczej gdy już trwa, a nawet gdy się kończy. W tym stadium na system składa się wiele setek (tysięcy) klas.