ebook img

Jak odmienić sposób programowania używając refaktoryzacji PDF

55 Pages·2009·0.571 MB·Polish
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Jak odmienić sposób programowania używając refaktoryzacji

Mistrz Programowania(cid:13)R BNS IT, http://www.bnsit.pl Mariusz Sieraczkiewicz Ksiaz˙ka z serii Mistrz Programowania(cid:13)R (cid:44) Jak ca(cid:32)lkowicie odmieni´c spos´ob programowania uz˙ywajac refaktoryzacji (cid:44) Przedmowa Micha(cid:32)l Bartyzel BNS IT (cid:13)c 2009 (cid:13)c Copyright for Polish edition by BNS IT s. c. Data: 09.03.2009 Wersja 151 Tytu(cid:32)l: Jak ca(cid:32)lkowicie odmieni´c sposo´b programowania uz˙ywajac refaktoryzacji (cid:44) Autor: Mariusz Sieraczkiewicz Wszystkie znaki firmowe bad´z towarowe wystepujace w tek´scie sa zastrzez˙onymi (cid:44) (cid:44) (cid:44) (cid:44) znakami firmowymi bad´z towarowymi ich w(cid:32)la´scicieli. (cid:44) Pierwszetrzyrozdzia(cid:32)lytejksiaz˙kisaudostepnianebezp(cid:32)latnie.Pozosta(cid:32)lerozdzia(cid:32)ly (cid:44) (cid:44) (cid:44) dostepne sa w p(cid:32)latnej wersji ksiaz˙ki. Zabronione sa jakiekolwiek zmiany w zawar- (cid:44) (cid:44) (cid:44) (cid:44) to´sci publikacji bez pisemnej zgody BNS IT s. c. Zabrania sie jej odsprzedaz˙y. (cid:44) Aby dowiedzie´c sie wiecej o pe(cid:32)lnej wersji, kliknij tutaj (cid:44) (cid:44) Autor oraz BNS IT s. c. do(cid:32)loz˙yli wszelkich staran´, aby zawarte w tej ksiaz˙ce infor- (cid:44) macje by(cid:32)ly kompletne i rzetelne. Nie biora jednak z˙adnej odpowiedzialno´sci za ich (cid:44) wykorzystanie, ani za zwiazane z tym ewentualne naruszenie praw patentowych (cid:44) lub autorskich. Autor oraz BNS IT s. c. nie ponosza ro´wniez˙ z˙adnej odpowie- (cid:44) dzialno´sci ze ewentualne szkody wynik(cid:32)le z wykorzystania informacji zawartych w ksiaz˙ce. (cid:44) BNS IT s. c. ul. Wyszyn´skiego 22 lok. 17 94 - 042 L(cid:32) ´od´z www.bnsit.pl [email protected] Wszelkie prawa zastrzez˙one. All rights reserved. Mistrz Programowania(cid:13)R BNS IT, http://www.bnsit.pl Mojej najwspanialszej z˙onie Kamili i co´rce Poli, kto´ra juz˙ nied(cid:32)lugo zobacze (cid:44) (cid:44) Mariusz Sieraczkiewicz Trener, konsultant, menedz˙er projekto´w IT, coach. Za(cid:32)loz˙yciel zespo(cid:32)lu programi- st´ow Equilibrium. Wsp´o(cid:32)linicjator JUGa L(cid:32) ´od´z. Autor artyku(cid:32)l´ow o inz˙ynierii opro- gramowania. Wspo´(cid:32)lw(cid:32)la´sciciel firmy szkoleniowej BNS IT. Z jezykiem Java ma do czynienia od dziewieciu lat na stanowiskach programisty, (cid:44) (cid:44) projektanta, architekta, analityka biznesowego, kierownika projekt´ow i kierownika zespo(cid:32)lu. Jego pasja jest programowanie i aspekty psychologiczne pracy programist´ow. Po- (cid:44) szukuje wyznaczniko´w efektywno´sci programisty szczego´lnie w obszarze zarza- (cid:44) dzania czasem, inteligencji emocjonalnej, przekonan´, pracy w zespole, motywacji i ich wp(cid:32)lywu na codzienna prace. (cid:44) (cid:44) Mistrz Programowania(cid:13)R BNS IT, http://www.bnsit.pl SPISTRES´CI Spis tre´sci Przedmowa 7 Wstep 9 (cid:44) Zacza´c od siebie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 (cid:44) Dla kogo jest ta ksiaz˙ka . . . . . . . . . . . . . . . . . . . . . . . . . 10 (cid:44) Podziekowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 (cid:44) 1 Refaktoryzacja - o co tyle krzyku 13 Czym jest refaktoryzacja? . . . . . . . . . . . . . . . . . . . . . . . . 14 Postulaty nowoczesnej inz˙ynierii oprogramowania, czyli odpowied´z na pytanie Dlaczego?” . . . . . . . . . . . . . . . . . . . . . . . . 14 ” Postulaty dotyczace wspo´(cid:32)lczesnej inz˙ynierii oprogramowania . . . 14 (cid:44) Koszt wytwarzania oprogramowania . . . . . . . . . . . . . . . . 15 Entropia wzrasta . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Refaktoryzacja w locie . . . . . . . . . . . . . . . . . . . . . . . 16 Refaktoryzacja ewolucyjna . . . . . . . . . . . . . . . . . . . . . 17 Najwaz˙niejsza ze wszystkich zasad - wydzielanie odpowiedzialno´sci 17 Antywzorce w kodzie . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Don’t repeat yourself (DRY) - likwiduj powt´orzenia . . . . . . . 19 D(cid:32)lugie metody i duz˙e klasy . . . . . . . . . . . . . . . . . . . . 19 Zmiana lub dodanie funkcjonalno´sci powoduje konieczno´s´c wielu zmian w systemie . . . . . . . . . . . . . . . . . . . . . 20 Metoda danej klasy wykonuje zbyt wiele operacji na innych klasach 20 Analogiczne instrukcje warunkowe w r´oz˙nych miejscach w projekcie 20 Nie two´rz byt´ow ponad miare . . . . . . . . . . . . . . . . . . . 20 (cid:44) Pola tymczasowe . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Klasa przechowujaca tylko i wy(cid:32)lacznie dane . . . . . . . . . . . . 21 (cid:44) (cid:44) Komentarze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Testowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Mistrz Programowania(cid:13)R BNS IT, http://www.bnsit.pl SPISTRES´CI 2 Kod, kt´ory czyta sie jak ksiaz˙ke - techniki, kt´ore ca(cid:32)lkowicie (cid:44) (cid:44) (cid:44) odmienia twoje z˙ycie programisty 23 (cid:44) Co to znaczy - czyta´c jak ksiaz˙ke . . . . . . . . . . . . . . . . . . . . 24 (cid:44) (cid:44) Przyk(cid:32)lad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Bardzo kro´tkie wprowadzenie do wyraz˙en´ regularnych . . . . . . 30 Analiza struktury strony . . . . . . . . . . . . . . . . . . . . . . 31 Podstawowa zasada - wydzielanie odpowiedzialno´sci . . . . . . . . . . 36 Refaktoryzacja: Wydzielenie metody . . . . . . . . . . . . . . . . . . . 37 Refaktoryzacja: Zmiana nazwy klasy, metody, atrybutu lub zmiennej . . 41 Refaktoryzacja: Wydzielenie zmiennej tymczasowej . . . . . . . . . . . 47 Nazywanie warunk´ow . . . . . . . . . . . . . . . . . . . . . . . 49 Z(cid:32)lote regu(cid:32)ly refaktoryzacji . . . . . . . . . . . . . . . . . . . . . . . . 51 Kod trudny w testowaniu prawdopodobnie nadaje sie do refaktoryzacji 52 (cid:44) 3 Jak uz˙ywa´c refaktoryzacji do tworzenia w pe(cid:32)lni obiektowych aplikacji 55 Nawyki skutecznej refaktoryzacji . . . . . . . . . . . . . . . . . . . . 55 Aby zrozumie´c, musisz do´swiadczy´c . . . . . . . . . . . . . . . . 55 To nie techniki dzia(cid:32)laja — to ludzie dzia(cid:32)laja . . . . . . . . . . . 56 (cid:44) (cid:44) Racjonalizacja . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Przekonania . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Co nagle, to po diable . . . . . . . . . . . . . . . . . . . . . . . . . . 58 D(cid:32)lugie metody nie sa wcale dobre . . . . . . . . . . . . . . . . . . . . 58 (cid:44) Refaktoryzacja: Zastapienie metody przez obiekt reprezentujacy metode 60 (cid:44) (cid:44) (cid:44) Refaktoryzacja: Zmiana algorytmu na pisany ludzkim jezykiem . . . . . 62 (cid:44) Refaktoryzacja: Wprowadzenie klarownej obs(cid:32)lugi wyjatko´w . . . . . . . 66 (cid:44) D(cid:32)lawienie wyjatko´w . . . . . . . . . . . . . . . . . . . . . . . . 66 (cid:44) Refaktoryzacja: Zmiana nazwy metody . . . . . . . . . . . . . . . . . 69 Refaktoryzacja: Zastapienie metody poruszania sie po z(cid:32)loz˙onej struk- (cid:44) (cid:44) turze wzorcem Iteratora . . . . . . . . . . . . . . . . . . . . . . 74 Refaktoryzacja: Przeniesienie metody i przeniesienie pola . . . . . . . . 74 Kon´cowe porzadki czyli refaktoryzacja: Zmien´ implementacje algorytmu 80 (cid:44) (cid:44) Strategia najlepszych programist´ow: Ma(cid:32)le kroki . . . . . . . . . . . . . 83 Mistrz Programowania(cid:13)R BNS IT, http://www.bnsit.pl SPISTRES´CI 4 Tajemnica mistrz´ow refaktoryzacji 85 Refaktoryzacja: Wydzielenie interfejsu . . . . . . . . . . . . . . . . . . 85 Kierunek wprowadzania interfejso´w . . . . . . . . . . . . . . . . . . . 86 Inny przyk(cid:32)lad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Strategia skutecznych programisto´w: Usuwaj powto´rzenia . . . . . . . 90 Refaktoryzacja: Wydzielenie klasy abstrakcyjnej . . . . . . . . . . . . . 90 Najwaz˙niejsze odkrycie! . . . . . . . . . . . . . . . . . . . . . . . . . 91 Mistrzostwo ...zobacz co sie zmieni(cid:32)lo . . . . . . . . . . . . . . . . . 92 (cid:44) 5 Pragmatyzm przede wszystkim 95 Dlaczego refaktoryzacja nie jest dobra na wszystko . . . . . . . . . . . 95 Dziesie´c przykazan´ dotyczacych refaktoryzacji . . . . . . . . . . . . . . 96 (cid:44) (cid:44) 6 I co dalej ...- inne ´zr´od(cid:32)la 97 Warsztaty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Szkolenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Trening indywidualny . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Ksiaz˙ki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 (cid:44) Inne ´zro´d(cid:32)la w sieci . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Mistrz Programowania(cid:13)R BNS IT, http://www.bnsit.pl Przedmowa Wiekszo´s´c programisto´w wie, co to refaktoryzacja, zna zalety wynikajace z jej (cid:44) (cid:44) stosowania, zna ro´wniez˙ konsekwencje zaniedbywania refaktoryzacji. Jednocze- ´snie wielu programist´ow uwaz˙a, z˙e refaktoryzacja to bardzo kosztowny proces, wymaga wysi(cid:32)lku i brak na nia czasu w szybko zmieniajacych sie warunkach biz- (cid:44) (cid:44) (cid:44) nesowych. W tej niesamowitej ksiaz˙ce, Mariusz zaprezentuje Ci kilka bardzo prostych (cid:44) sposobo´w refaktoryzacji kodu. Dowiesz sie, jak w (cid:32)latwy spos´ob stosowa´c refak- (cid:44) toryzacje w twoim projekcie. Ostrzegam, z˙e legna w gruzach twoje z trudem (cid:44) (cid:44) wypracowane przekonania. By´c moz˙e zaczniesz uwaz˙a´c, z˙e refaktoryzacja jest niezwykle prosta, zajmuje bardzo ma(cid:32)lo czasu i nie sprawia trudno´sci. Ze zdziwie- niem bedziesz sie zastanawia´c, jak to sie sta(cid:32)lo, z˙e wcze´sniej nie uz˙ywa(cid:32)le´s tych (cid:44) (cid:44) (cid:44) technik. Powodzenia! Micha(cid:32)l Bartyzel 7 Mistrz Programowania(cid:13)R BNS IT, http://www.bnsit.pl PRZEDMOWA 8 Mistrz Programowania(cid:13)R BNS IT, http://www.bnsit.pl

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.