Programowanie

/Programowanie

Test Driven Development

Chciałbym popełnić kilka artykułów na temat Agile, ale zanim to zrobię, chcę wyjaśnić na czym polega Test Driven Development (TDD), które jest ściśle powiązane z tą metodologią. Test Driven Development – ogólny przegląd Programowanie oparte na testach (bo tak to można przetłumaczyć) różni się od tradycyjnego, że testy pisane są przed kodem. Ciężko to zrozumieć zanim się tego nie zrobi, a jeszcze ciężej zrozumieć, że ta metoda na prawdę działa. Otóż zanim weźmiemy się za programowanie jakieś funkcjonalności najpierw piszemy do niej test. Gdy go uruchomimy – wiadomo – oznaczony zostanie kolorem czerwonym jako błędny. Drugim krokiem jest napisanie „tak mało kodu jak to tylko możliwe, jednak wystarczająco, aby test przeszedł. Trzecim ostatnim krokiem, jest poprawienie kodu (zarówno programu jak i testu) aby zwiększyć jego czytelność i funkcjonalność, nie psując przy tym testu. Trzeci krok nie jest obowiązkowy. Metodologia ta mówi także, że ten proces nie powinien zająć mniej niż 10 minut. […]

By | Lipiec 13th, 2010|Categories: Programowanie|Tags: |Możliwość komentowania Test Driven Development została wyłączona

WebSocket Interface

Jedną z ciekawszych nowinek, które mają być wprowadzone wraz ze standardem HTML 5 jest (a może „są”…) WebSockets. To do czego WebSockets mają służyć idzie opisać jednym zdaniem: ” Strony internetowe za pomocą protokołu WebSockets mogą nawiązać DWUSTRONNE połączenie ze zdalnym serwerem.” Do tej pory, komunikacja była jednostronna. Ze strony zostało wysyłane zapytanie i serwer zwracał odpowiedź. Wprowadzenie technologii AJAX zautomatyzowało trochę ten proces, uruchomiony w przeglądarce javascript automatycznie wysyłał zapytanie i obsługiwał nadesłaną odpowiedź. Mimo iż to przypomina dwustronną komunikację – nadal jest ona jednostronna. Czasami takie zapytania są powtarzane w bardzo krótkich okresach czasu (20-30 sekund) – nazywa się to HeartBeating (bicie serca). Główny problem jednak pozostaje taki sam: generowane jest wiele zapytań, które serwer musi obsłużyć. Na szczęście AJAX pozwala na minimalizację pytania i aktualizację tylko części strony, a nie pobieranie całej strony co kilkadziesiąt sekund, jednak problem pozostaje problemem. […]

By | Lipiec 12th, 2010|Categories: Programowanie|Tags: , |Możliwość komentowania WebSocket Interface została wyłączona

Szybka instalacja Drupala za pomocą Drush

Z doświadczenia wiem, że wszystkie czynności, które mogę wykonać z konsoli zabierają mi mniej czasu niż w interfejsie graficznym. No może przesadziłem, że wszystkie – przynajmniej większość z nich. Jeżeli zatem jest alternatywa, to zawsze wybiorę rozwiązanie konsolowe. Dobrym przykładem jest narzędzie Drush. Jest to narzędzie, które pozwala nam z konsoli zainstalować drupala, moduły do niego, łączyć się z bazą danych i w pewnym stopniu administrować witryną z poziomu konsoli. Możliwości jest wiele, polecam zatem do samodzielnego ich sprawdzenia. Pierwszym krokiem, który musimy uczynić jest zainstalowanie drusha. Musimy go pobrać z tej strony, oraz rozpakować w dowolnym folderze. Następnie utworzyć link symboliczny do takiego miejsca, aby był w zasięgu zmiennej PATH. […]

By | Lipiec 9th, 2010|Categories: Programowanie|Tags: , |Możliwość komentowania Szybka instalacja Drupala za pomocą Drush została wyłączona

Pakowanie aplikacji za pomocą ChocTop

Aplikacje działające w systemie MacOS X charakteryzują się specyficznym modelem dystrybucji. Otóż aplikacje takie są spakowane jako obraz dysku typu DMG. Taki obraz montuje się jako zewnętrzny nośnik i dopiero widzimy co jest w środku. Dodatkowo folder widoczny po zamontowaniu możemy w dowolny sposób upiększyć. Można dowolnie ustawić tło okienka i jego wielkość, można zmienić domyśle położenie ikonki i programu i jej wielkość. Wszystko po to, aby system nie był taki „suchy i jednolity”. Dodatkowo tak przygotowany obraz dysku umieszczamy gdzieś w sieci aby był dostępny do pobrania. Wszystko to musimy jednak robić ręcznie …chyba, że korzystamy z narzędzia ChocTop. ChocTop jest specjalnie przygotowanym instalatorem działającym z lini poleceń, który przygotowany jest jako gem ruby’ego. […]

By | Lipiec 7th, 2010|Categories: Programowanie|Tags: , , , |Możliwość komentowania Pakowanie aplikacji za pomocą ChocTop została wyłączona

Jak powinna wyglądać dobra historyjka użytkownika?

W zwinnym procesie wytwarzania oprogramowania, ważnym elementem są historyjki użytkownika (user stories), na podstawie, których generowane są zadania do wykonania i testy akceptacyjne. Jakie cechy powinna mieć dobra historyjka? Przede wszystkim powinna być skierowana na klienta. W najlepszym wypadku powinna być napisana przez samego klienta, ale nie zawsze mamy taką możliwość. Przede wszystkim powinniśmy podczas definiowania historyjki używać zdań zrozumiałych dla klienta. Zdanie „zwiększenie przestrzeni wokół pola wyszukiwania” jest o wiele więcej mówiące dla większości czytelników niż „zmiana margin i padding w szablonie stylu strony”, które to zdanie jest zrozumiałe właściwie tylko dla programistów. Unikanie żargonów i skrótów myślowych jest kluczowe. Najlepiej jest gdy podczas definiowania historyjek „wcielimy się” w rolę klienta i z tej prespektywy będziemy je definiować. […]

By | Lipiec 6th, 2010|Categories: Programowanie|Tags: , |Możliwość komentowania Jak powinna wyglądać dobra historyjka użytkownika? została wyłączona

Zdalne, współdzielone repozytorium GIT.

Kilka miesięcy temu opisałem jak pracować ze zdalnym repozytorium Git. Został tam opisany najprostrzy sposób jak swój projekt umieścić na serwerze. Jednak gdy chcemy ten projekt współdzielić z innymi programistami możemy napotkać kilka problemów. Chciałbym jako uzupełnienie tamtego artykułu napisać krok po kroku jak skonfigurować zdalne repozytorium tak aby kilku programistów mogło się z nim łączyć przez ssh. Czynności, które musimy wykonać po stronie serwera: Wybieramy miejsce na repozytorium, np. „/opt/repos/git” i przechodzimy do niego.

Tworzymy grupę systemową git i dodajemy do niej użytkowników, którzy mają dostęp do repozytorium Zmieniamy uprawnienia plików w ten sposób, aby członkowie tej grupy mieli prawo zapisu we wszystkich podfolderach tego katalogu. Zablokować zapis dla innych.

[…]

By | Marzec 15th, 2010|Categories: Programowanie|Tags: |Możliwość komentowania Zdalne, współdzielone repozytorium GIT. została wyłączona

Rails Template

Idąc za ciosem postanowiłem wydłubać własny szablonik do startu z aplikacjami. Jest on dostępny na githubie i można śmiało z niego korzystać. Co robi szablonik? inicjuje repozytorium Git, dodaje niektóre miejsca i pliki do ignore’a po czym zatwierdza resztę. instaluje platformę testową RSpec, RSpec-Rails, Cucumber, Factory_Girl i Webrat. instaluje authologic i declarative_authorization, tworzy model do dodawania artykułów oraz cruda do niego. tworzy model użytkownika, ról  i sesji tworzy widoki dla artykułów, panel logowania i edycja profilu. tworzy dwie początkowe role: user i admin. nadaje uprawnienia: gość może czytać artykuły, założyć konto i się zalogować, użytkownik może się wylogować, dodać artykuł, edytować lub usunąć własny artykuł, edytować swój profil, admin może wszystko. […]

By | Marzec 5th, 2010|Categories: Programowanie|Tags: , |Możliwość komentowania Rails Template została wyłączona

Automatyczny start czyli Rails Templates

Jeżeli tworzymy kilka aplikacji w ruby on rails, to przeważnie początkowe etapy są do siebie bardzo podobne. Np. inicjalizacja kontroli wersji (np. w sposób jaki jest opisany w poprzednim artykule), instalacja ulubionych pluginów, usuwanie zbędnych plików, Czy też inne operacje. Na szczeście do pomocy przychodzą nam Templates, które zostały wprowadzone w rails 2.3. Teplate to nic innego niż plik ruby, w którym wpisujemy komendy w przygotowanym do tego języku domenowym (DSL). Po przygotowaniu takiego szablonu inicjujemy projekt rails z parametrem -m ścieżka_do_szablonu.rb. Rails od razu po wykonaniu inicjacji projektu od razu uruchomi podany plik.

tak samo jak URI, możemy uzywać URL:

(powyższy plik nie istnieje więc nie testujcie ;) ) ostatnim sposobem jest inicjacja szablonu przed odpowiednie zadanie rake z ustawienie zmiennej LOCATION:

[…]

By | Grudzień 12th, 2009|Categories: Programowanie|Tags: , |Możliwość komentowania Automatyczny start czyli Rails Templates została wyłączona

Objęcie kontrolą wersji Git nowej aplikacji Rails

Za każdym razem, gdy rozpoczynam pracę z projektem, muszę skonfigurować Git, aby repozytorium nie zawierało zbędnych plików. Cała operacja jest wykonywana w kilku krokach, gdzie pierwszym z nich będzie stworzenie nowej aplikacji rails na naszym komputerze. Następnie musimy zaiinicjować kontrolę wersji.

[…]

By | Grudzień 11th, 2009|Categories: Programowanie|Tags: , |Możliwość komentowania Objęcie kontrolą wersji Git nowej aplikacji Rails została wyłączona

Nowe trendy programowania

Patrząc na rynek pracy, a obecnie mam taką sytuację zawodową, że patrzeć muszę, zauważyłem pewną nową tendencję. Otóż jeszcze kilka lat temu, programistów szukało sie po języku programowania, w którym potrafi pracować. Szukało się programistów Java (ew. J2EE), PHP, C++ i innych. Po kilku latach, pojęcie języka programowania stało się zbyt ogólne, więc ogłoszenia stały się bardziej specjalistyczne, uzywano nazw frameworków czy technologii bezpośrednio z tym językiem związane, np. widziałem takie warunki: Struts, JSF, Hibernate, JPA, J2ME (to javowe), albo takie: CakePHP, Zend, Symphony, Smarty (to php-owe). W sumie nic dziwnego, języki rozwijają się, dołączone do nich biblioteki rosną w postępie logarytmicznym. Poza tym znajomość języka to raz, a znajomość konkretnego frameworka to dwa. Dając ogłoszenie o programisty JSF jakoby normalny staje się fakt, że potrafi on Javę samą w sobie. […]

By | Grudzień 10th, 2009|Categories: Programowanie|Możliwość komentowania Nowe trendy programowania została wyłączona