• Strona główna
  • Curriculum Vitae
  • O mnie
  • Mapa strony
  • Kontakt
Niebieski Pomarańczowy Zielony Różowy Fioletowy

Kompendium programisty #1

Opublikowane 15 sierpnia 2010. Autor: Kamil Brenk. Wizyt: 1 524.

Kategorie: Inne
Tematyka: Agile Development, Canvas, HTML5, JavaScript, kompendium programisty, PHP, refaktoryzacja kodu, Test driven development, unit testy, wykresy UML, wzorce projektowe

sie 15

Wpisem tym chciałbym rozpocząć serię wpisów, w których będę publikował od czasu do czasu zbiory ciekawych artykułów, darmowe e-booki oraz inne strony, które powinen poznać każdy programista!

Prezentowane materiały mają charakter edukacyjny, traktują o tematach zarówno dla zaawansowanych, jak i początkujących. Materiały, które mają stanowić inspirację, uczyć dobrych praktyk programistycznych oraz pomagać ciągle się rozwijać.

Jako, iż podstawowym językiem programisty jest język angielski to materiały tutaj zamieszczone będą w większości właśnie w tym języku. Dla obeznanych z językiem nie ma to żadnego znaczenia, jednak dla tych słabszych i wciąż się uczących (w tym mnie) materiały te będą stanowiły doskonałą lekcję :D Lets go!

Essential Skills for Agile Development

Pierwszą prezentowaną tutaj książką jest „Essential Skills for Agile Development”, napisana przez Ka Iok Tong. Omawia ona technikę zwinnego programowania zwaną również Agile Development (niestety na przykładzie Javy, lecz myślę, że to nie stanowi większego problemu – inżynieria oprogramowania jest dla większości języków taka sama).

Zawartość książki wygląda bardzo obiecująco. Omawiane są tutaj przykłady refaktoryzacji kodu, wykonywanie unit testów czy tworzenia oprogramowania z wykorzystaniem techniki TDD (Test driven development). Wszystko to wypełnione mnóstwem praktycznych przykładów.

Essential Skills for Agile Development

Spis treści:

  1. Removing duplicate code.
  2. Turning comments into code.
  3. Removing code smells.
  4. Keeping code fit.
  5. Take care to inherit.
  6. Handling inappropriate references.
  7. Separate database, user interface and domain logic.
  8. Managing software projects with user stories.
  9. OO design with CRC cards.
  10. Acceptance test.
  11. How to acceptance test a user interface.
  12. Unit test.
  13. Test driven development.
  14. Team development with CVS.
  15. Essential skills for communications.
  16. Pair programming.

Essential Skills for Agile Development by Tong Ka Iok
(pdf, 2.19 MB)

Sztuka wojenna Sun Zi

Sztuka wojenna Sun Zi - Chińskie wydanie z XVIII wieku

Opracowanie to jest zbiorem wojennych reguł i zasadach, które właściwie wykorzystane mogą pomóc wygrać każdą wojnę i bitwę.

Dlaczego umieszczam tutaj link do tego opracowania? Jest to bowiem zbiór uniwersalnych reguł, które równie dobrze można stosować w „potyczkach” z każdym innym problemem, jak nauka programowania. Ponadto uczy cierpliwości i wytrwałości w dążeniu do realizowania własnych pomysłów i zadań, co również jest niezwykle ważne w życiu programisty.

W oparciu o opracowanie „Sztuka wojenna” zostało napisanych wiele innych książek, w tym np. „SQL. Sztuka programowania” Stéphane Faroult, Peter Robson. Autorzy tutaj porównują zarządzanie bazą danych do pola bitwy, co wychodzi im raz lepiej, raz gorzej. Niemniej jednak książka warta przeczytania!

Sztuka wojenna Sun Zi
(pdf, 704 KB)

CanvasDemos.com

Ogromny zbiór nowoczesnych aplikacji i gier internetowych napisanych w technologii Canvas! Jeśli więc jesteś developerem JavaScript i HTML5/CSS3, interesujesz się nowymi technologiami i budujesz gry/aplikacje (lub dopiero chcesz zacząć) przy pomocy Canvas to koniecznie powinieneś odwiedzić tą stronę.

Znajdziesz tutaj bowiem ogrom inspiracji i będziesz mógł przyjrzeć się temu, jak inni wykorzystują tą technologię (a naprawdę jest na co patrzeć).

Ponadto w serwisie agregator najlepszych z Sieci tutoriali, jak tworzyć te proste, jak i zaawansowane efekty z wykorzystaniem Canvas! Polecam.

http://www.canvasdemos.com/

Wzorce projektowe – teoria, UML, przykłady

Patterns of Enterprise Application Architecture

Większości pewnie dobrze znany, całkiem spory katalog wzorców projektowych opracowany przez Martin Fowlera.

Katalog podzielony na kategorie wzorców, zawierający wykresy UML oraz krótkie omówienia wzorców.

http://martinfowler.com/eaaCatalog/

PHP Design Patterns Reference and Examples

Kolejny katalog wzorców projektowych z wieloma obszernymi przykładami napisanymi w języku PHP. W katalogu tym główny nacisk położony został na kod, a pominięto wykresy UML i wszelkie informacje teoretyczne (poza kilkoma słowami wstępu do każdego wzorca).

http://www.fluffycat.com/PHP-Design-Patterns/

phpPatterns.com

Cały serwis poświęcony wzorcom projektowym dla języka PHP. Znajdują się tutaj obszerne opisy z dokładnym zastosowaniem każdego wzorca, dobrymi radami, własnymi uwagami, etc. Jedyne czego brakuje to wykresy UML, które umożliwiają szybkie zapoznanie się z wybranym wzorcem. Niemniej jednak po wykresy można zasięgnąć do katalogu P of EAA (Patterns of Enterprise Application Architecture).

http://www.phppatterns.com/docs/?idx=design

SourceMaking.com

Strona, z której osobiście się uczyłem wzorców projektowych. Zawiera pełne opisy każdego z wzorców, szczegóły dotyczące zastosowania i wykorzystania w praktycznych projektach, ładne schematy i rysunki ozdabiające i ułatwiające naukę, a ponadto przykładowe źródła w wielu językach (w tym także PHP).

http://sourcemaking.com/design_patterns

Jakby tego było mało, na stronie tej znajduje się katalog metod refaktoringu. Również i tutaj większość sposobów jest dokładnie opisana i opatrzona kodem źródłowym (niestety już nie jest to PHP, aczkolwiek inżynieria oprogramowania dla większości języków się nie zmienia i istotna jest sama idea).

http://sourcemaking.com/refactoring

Wikipedia.org – Wzorce projektowe

Także dla osób nie znających języka angielskiego znajdzie się dobre źródło nauki wzorców projektowych – Wikipedia.

Znajdują się tutaj 33 wzorce, wraz z opisami w języku polskim. Nie są to zbyt wspaniałe opisy – często bez żadnych wykresów i schematów, opatrzone niewielką ilością tekstu (kilka zdań wstępu). Ponadto przykładowe źródła są napisane z wykorzystaniem różnych języku, co powoduje tylko mętlik w głowie.

http://pl.wikipedia.org/wiki/Kategoria:Wzorce_projektowe

Również anglojęzyczna Wikipedia posiada co nieco informacji o wzorcach projektowych (na pewno więcej niż polskie wydanie):

http://en.wikipedia.org/wiki/Design_pattern_(computer_science)

PHP 5 Power Programming

Trochę starawa książka, bowiem z 2005 roku. Jak na tak aktywnie rozwijającą się dziedzinę wiedzy, jaką jest informatyka, 5 lat stanowią multum czasu.

Niemniej jednak książka zawiera kilka ciekawych rozdziałów, tj. wykorzystanie pakietów PEAR i PECL, pisanie skryptów w PHP pod Shell’a, opisuje użycie i składnię phpDocumentor’a, omawia kilka wzorców projektowych.

Taka wiedza nieprędko się jednak przeterminuje, dlatego zamieszczam link znaleziony w Sieci do darmowej książki – „PHP 5 Power Programming” napisanej przez Andi Gutmans, Stig Sather Bakken oraz Derick Rethans.

Sporo przydatnej wiedzy za darmo, myślę więc, iż warto skorzystać.

PHP 5 Power Programming by Andi Gutmans, Stig Sather Bakken and Derick Rethans
(pdf, 704 KB)

Podobne wpisy

  • Kompendium programisty #3
  • Boilerplate 2.0
  • Kompendium programisty #2
  • HTML5: Atrybut download
  • Tworzenie aplikacji z HTML5 Offline

Komentarze (1)

  1. luq 26 sierpnia 2010

    Nigdy wcześniej nie „wpadłem” na canvasdemos.com, nie ukrywam, że bardzo mi się przyda. Dzięki wielkie za tego linka, który już leży u mnie w zakładkach :)



Dodaj komentarz

XHTML: Możesz użyć następujących tagów
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Kamil Brenk Blog

PHP, JavaScript, SQL, HTML

  • Informacje o blogu

    Kamil Brenk

    Blog o tworzeniu aplikacji na potrzeby sieci Web.

    Praktyczne przykłady, porady i sztuczki. PHP, SQL, AJAX, JavaScript, HTML i pochodne.

    Kanał RSS

    • Najnowsze
    • Komentarze
    • Popularne
    • Gramatyka w HTML i CSS
    • PHP kontra Microsoft Office, part I
    • Cross-Domain JavaScript: CORS
    • Wysyłanie wiadomości SMS w PHP
    • Boilerplate 2.0
    • Własne selektory w jQuery
    • Kamil Brenk: @Michał:1) jak już otrzymam dyplom to zrobię serię o...
    • Michal Wachowski: Po pierwsze - tyle czekania i tylko to? A bu! :) Po drugie -...
    • Kamil Brenk: @CapaciousCore: języki kompilowane są szybsze niż...
    • CapaciousCore: @Kamil Brenk wiem, że komentarze i post nie są uber świeże....
    • Kamil Brenk: @CapaciousCore: post i komentarze napisane ponad rok temu;...
    • CapaciousCore: Przebrnąłem przez te wszystkie komentarze i mam trochę...
    • Kamil Brenk: @arhiman: dzięki za komentarz :)A to dziwne co piszesz, bo...
    • Przyszłość PHP
    • Niestandardowe czcionki na stronie
    • Gramatyka w PHP, część 1
    • Umowa i zaliczka dla freelancera
    • Projekt aplikacji po stronie klienta
    • Własny mechanizm Feed
    • jQuery.extends dla PHP
  • Szukajka
    Wpisz co chcesz wyszukać na stronie…
  • Kategorie
    • Apache
    • Freelancer
    • Front-end Development
    • HTML5 & CSS3
    • Inne
    • JavaScript
    • Książki
    • PHP
    • Po godzinach
    • Pozycjonowanie
    • Protokół HTTP
    • SQL
    • Wyrażenia regularne
  • Moje serwisy
    • Testy zawodowe
    • Miłość, uczucia i seks
  • Czytane blogi
    • Wojciech Sznapka
    • Wojciech Soczyński
    • Michał Wachowski
    • Tomasz Kowalczyk
    • JavaScript po polsku | Code42
  • Archiwum
    • Luty 2012
    • Listopad 2011
    • Październik 2011
    • Wrzesień 2011
    • Sierpień 2011
    • Lipiec 2011
    • Maj 2011
    • Kwiecień 2011
    • Marzec 2011
    • Luty 2011
    • Styczeń 2011
    • Grudzień 2010
    • Listopad 2010
    • Październik 2010
    • Wrzesień 2010
    • Sierpień 2010
    • Lipiec 2010
    • Czerwiec 2010
    • Maj 2010
    • Kwiecień 2010
    • Marzec 2010
    • Luty 2010
    • Styczeń 2010
  • Strona główna
  • Curriculum Vitae
  • O mnie
  • Mapa strony
  • Kontakt

Kamil Brenk © 2010. All rights reserved.

Designed by FTL Wordpress Themes brought to you by Smashing Magazine.

Do góry ∧