Naturalny Porządek Refaktoryzacji Java Developer Days 2012

Podobne dokumenty
NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Ewolucyjna architektura

KARTA PRZEDMIOTU. Projekt zespołowy D1_10

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Projekt zespołowy D1_10

Ekspert MS SQL Server Oferta nr 00/08

Programowanie Zespołowe

Inżynieria oprogramowania - opis przedmiotu

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Michał Olejnik. 22 grudnia 2009

Inżynieria Oprogramowania w Praktyce

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat


Zaawansowane programowanie w języku C++

Podstawy modelowania programów Kod przedmiotu

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

MEDYCYNA A TECHNOLOGIA XXI wiek czy 1984

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Projekt. Młodzi dla Środowiska

znajomość języka programowania w stopniu podstawowym (np. C/C++, Java), umiejętność obsługi aplikacji Excel, OpenOffice Calc, itp.

Wzorce projektowe. dr inż. Marcin Pietroo

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

System statlook nowoczesne zarządzanie IT w praktyce SPRZĘT * OPROGRAMOWANIE * INTERNET * UŻYTKOWNICY

ZAKODUJ SWOJĄ PRZYSZŁOŚĆ. Zostań programistą i zacznij dobrze zarabiać w IT, jednej z najlepiej rozwijających się branży w Polsce i na Świecie!

Aplikacje dedykowane IT-Consulting Outsourcing usług IT

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

ZAKODUJ SWOJĄ PRZYSZŁOŚĆ. Zostań programistą i zacznij dobrze zarabiać w IT, jednej z najlepiej rozwijających się branży w Polsce i na Świecie!

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Testowanie oprogramowania

Egzamin / zaliczenie na ocenę*

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Od Kodera przez Developera do Lidera

SOLSOFT SOFTWARE DEVELOPMENT

Łatwa czy niełatwa droga do celu? - wdrożenie COSMIC w ZUS

Techniki efektywnego testowania kodu dla programistów Java (Spock

Wykład 1 Inżynieria Oprogramowania

Przebieg i organizacja kursu

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Projektowanie: architektura informacji

Jak patrzymy na testy czyli Jak punkt widzenia zależy od punktu siedzenia. Click Piotr Kałuski to edit Master subtitle style

Zapytanie ofertowe (RFP)

Brakujący element Agile: Świadomy zespół

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

X-DRIVEN DESIGN, Y-DRIVEN DEVELOPMENT NICZEGO NIE ZMIENIĄ

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

E-Urzędnik, pomysł na bardziej przyjazne strony e-urzędów. Dobra praktyka. Wpisany przez RR Nie, 12 lut 2012

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Wzorce projektowe i refaktoryzacja

Czego nauczysz się wybierając tą specjalność?

INFORMATYKA PLAN STUDIÓW NIESTACJONARNYCH. Podstawy programowania Systemy operacyjne

Wymagania edukacyjne z języka angielskiego klasy 4-6

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Podstawy frameworka Spring

Narzędzia CASE dla.net. Łukasz Popiel

Kilka faktów o szkoleniach. W małych i średnich przedsiębiorstwach

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

ORGANIZACJA Z CHARAKTEREM OFERTA WSZECHNICY UJ. Jak świadomie kształtować kulturę organizacyjną firmy?

Cennik. Szkolenia zintegrowane. Java

kolorami komplementarnymi.

ATRAKCYJNE PREZENTACJE

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Zabawa z prawem Conway a. Łukasz Januszek Żółw

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/17

Program 5S - - podstawowe narzędzie LM

PRZEWODNIK PO PRZEDMIOCIE

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

Komunikacja nastawiona na współpracę indywidualną i zespołową

Sztuka tworzenia prezentacji multimedialnej

INŻYNIERIA ZARZADZANIA,

Adaptywny kod : zwinne programowanie, wzorce projektowe i SOLID-ne zasady / Gary McLean Hall. Gliwice, cop Spis treści

Pomagaj biednemu, a nie żebrzącemu!

ĆWICZENIE: MAPA DZIENNYCH PRIORYTETÓW

Bezpieczeństwo systemów internetowych

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Programowanie obiektowe

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

STANISŁAW WOJNICKI KANDYDATURA DO ZARZĄDU STOWARZYSZENIA INTERIM MANAGERS NA KADENCJĘ Prezentacja na Walne Zebranie SIM, czerwiec 2015.

Podstawy programowania III WYKŁAD 4

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

lider projektu: finansowanie:

KIEROWANIE ZESPOŁAMI LUDZKIMI

KRYTERIA OCENIANIA Z JĘZYKA ANGIELSKIEGO W KLASACH IV - VI

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

SPIS TREŚCI Rozdział 1 Wstęp, czyli o zarządzaniu przez rozwój Rozdział 2 Rozwój organizacyjny szkół

KLASY I-III &3. 4. Ocenianie bieżące ucznia dokonywane jest za pomocą cyfr 1-6.: Dopuszcza się komentarz słowny lub pisemny typu:

Etapy życia oprogramowania

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

LEAN MANAGEMENT - DOSKONALENIE PROCESÓW

Na drabinę wchodzi się szczebel po szczebelku. Powolutku aż do skutku... Przysłowie szkockie

Brakujący element Agile

Inżynieria oprogramowania (Software Engineering) Wykład 1

Program szkolenia: Jenkins - Continuous Integration

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

kolorami komplementarnymi.

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Przyspieszenie obróbki CNC z edytorem ścieżki. narzędzia w ZW3D. ZW3D CAD/CAM Biała księga

Transkrypt:

Naturalny Porządek Refaktoryzacji Java Developer Days 2012 W slajdzie tytułowym szare tło zastąp fajnym zdjęciem lub obrazkiem adekwatnym do szkolenia czy modułu (dwa typowe dla nas slajdy tytułowe znajdziesz dalej)

Dlaczego refaktoryzacja jest jak seks? Naturalny Porządek Refaktoryzacji

Naturalny Porządek Refaktoryzacji Refaktoryzacja jest jak seks, ponieważ... Kończysz dopiero wtedy, gdy już jesteś kompletnie wyczerpany! Jedna pomyłka i jesteś umoczony do końca życia! Naturalny Porządek Refaktoryzacji (R) 3

Naturalny Porządek Refaktoryzacji Refaktoryzacja jest jak seks, ponieważ... Więcej się o tym mówi niż robi. Można to robić dla przyjemności lub dla pieniędzy. Przydaje się druga osoba, żeby uzyskać pełną satysfakcję. Naturalny Porządek Refaktoryzacji (R) 4

Naturalny Porządek Refaktoryzacji Refaktoryzacja jest jak seks, ponieważ... Początkujący robią wokół tego dużo szumu. Niektórzy w tym obszarze są szczególnie utalentowani,.. ale niektórzy są w tym bardzo kiepscy i obrzucą Cię błotem, jeśli im to wytkniesz. Naturalny Porządek Refaktoryzacji (R) 5

Naturalny Porządek Refaktoryzacji Refaktoryzacja jest jak seks, ponieważ... Słabo idzie po pijanemu, ale wtedy masz na to największą ochotę. Będzie Ci tego brakować, jeśli będziesz miał dłuższą przerwę. Naturalny Porządek Refaktoryzacji (R) 6

Jak jest (w Polsce)? Naturalny Porządek Refaktoryzacji

Refaktoryzacja dawniej i dziś Dawniej (>5 lat temu) Mało kto o tym mówił Mało kto to robił Nie było zrozumienia u menedżmentu Nie było wiadomo jak to robić z sensem Dziś Wszędzie się o tym mówi Mało kto to robi na poważnie Często menedżment (IT) rozpoznaje to hasło, ale ciągle nie ma przyzwolenia Robi się to nieregularnie. Nie wiadomo jak to robić w dużych odziedziczonych projektach Naturalny Porządek Refaktoryzacji (R) 8

Obecnie refaktoryzują w sposób regularny i konsekwentny tylko jednostki Fascynaci! CZAS TO ZMIENIĆ! Naturalny Porządek Refaktoryzacji (R) 9

Mistrzostwo to ćwiczenie podstaw Naturalny Porządek Refaktoryzacji

Co utrudnia dalsze modyfikacje oprogramowania? wprowadzanie.dozmian!a,!aczkolwiek!anazywanych,oprogramowania,iczesto!i!!progresywnymizwykle.poniekad,!pierwotn a.strukturenarusza.a.!programu.kumulacja,z mian a.ten,i!proces!,,i.tylko,liczba,nasila,,aczkolwiek,powiazaniinterakcji poniekad!!roznymi!poniekad!,i!pomiedzymod ulamiw,systemiezwiekszasie!.a, co!,a,utrudniazrozumienie!!a,!aczkolwiek!i!..go,t akze!jego..modyfikacje..dalsze, Naturalny Porządek Refaktoryzacji (R) 13

Co utrudnia dalsze modyfikacje oprogramowania? Wprowadzanie zmian do oprogramowania (nazywanych często progresywnymi) zwykle narusza pierwotną strukturę programu, a kumulacja zmian tylko ten proces nasila. Liczba powiązań i interakcji pomiędzy różnymi modułami w systemie zwiększa się, co utrudnia zrozumienie go, a także jego dalsze modyfikacje. Naturalny Porządek Refaktoryzacji (R) 14

Problem leży w pierwszej kolejności w czytelności kodu, a nie w kompetencjach programistów! Naturalny Porządek Refaktoryzacji (R) 15

Rozwój - technolgie JSF 2 UI Struts 2 Spring Webflow JDBC EJB ORM... Hibernate Spring/JDBC Template ibatis Naturalny Porządek Refaktoryzacji (R) 16

Rozwój narzędzia mentalne Czysty kod Styl Wzorce projektowe Mistrzostwo programowania Refaktoryzacja TDD NOR... Naturalny Porządek Refaktoryzacji (R) 17

Rozwój technologiczny nie daje spełnienia! Rozwój w obszarze narzędzi mentalnych daje pełną satysfakcję! Naturalny Porządek Refaktoryzacji (R) 18

Sztuki walki Mistrzostwo osiąga się poprzez ciągłe doskonalenie podstawowych technik. Naturalny Porządek Refaktoryzacji (R) 19

Programowanie podstawowe techniki # Nazwy # Nazwy # Nazwy # Komponowanie metod # Pojedyncza odpowiedzialność i kompozycja # Wzorce projektowe # *Orientacja we wzorcach architektonicznych Naturalny Porządek Refaktoryzacji (R) 20

Programowanie podstawowe techniki Naturalny Porządek Refaktoryzacji (R) 21

To dlaczego refaktoryzacja się nie udaje? Naturalny Porządek Refaktoryzacji (R) 22

Dlaczego nie robimy refaktoryzacji? # Bo nie ma na to czasu # Bo biznes się nie chce zgodzić na refaktoryzacje # U nas jest taki burdel, że to nie ma sensu Naturalny Porządek Refaktoryzacji (R) 23

Żeby zaczęło się dziać # Musi stać się ważne # Musi to być wysiłek zespołowy # Trzeba mieć odwagę # Musi być lider zmiany Będzie trudno na szczęście głównie tylko na początku Naturalny Porządek Refaktoryzacji (R) 24

Refaktoryzacja musi być nawykiem, żeby się działa. Naturalny Porządek Refaktoryzacji (R) 25

Naturalny Porządek Refaktoryzacji

Krok 0. Zrozum kod Naturalny Porządek Refaktoryzacji (R) 27

Krok 1. Wyraź algorytm Naturalny Porządek Refaktoryzacji (R) 28

Krok 2. Wydziel odpowiedzialności Naturalny Porządek Refaktoryzacji (R) 29

Krok 3. Wprowadź wzorzec projektowy Naturalny Porządek Refaktoryzacji (R) 30

Krok 4. Wzbogać architekturę Naturalny Porządek Refaktoryzacji (R) 31

Kilka uwag! # To jest model # Duże klasy i duże metody mają kod na różnym poziomie wg NOR # Bardzo rzadko kod jest na poziomie Skomponowanej metody # Kolejne kroki procesu dzieją się odpowiednio rzadziej niż poprzednie Naturalny Porządek Refaktoryzacji (R) 32

Kilka uwag! # 85 % twoich refaktoryzacji powinna dotyczyć zmian nazewnictwa, komponowania metod i upraszczania warunków # W większości mogą być one automatyczne # Czasami kroki można zamienić Naturalny Porządek Refaktoryzacji (R) 33

Co muszą znać członkowie zespołu? PODSTAWY Naturalny Porządek Refaktoryzacji (R) 34

Jak wdrożyć? 1. Przekonaj siebie, że to jest ważne 2. Przekonaj zespół, że to jest ważne 3. Przekonaj kierownika, że to jest ważne 4. Określ plan wdrożenia procesu 5. Znajdź przynajmniej 3 sposoby, jakie zapewnią, że inicjatywa przeżyje trudności lub przekonaj kierownika, żeby zatrudnił nas ;-) Naturalny Porządek Refaktoryzacji (R) 35

Pytania? Naturalny Porządek Refaktoryzacji (R) 36