230 likes | 395 Views
Zwiększanie produktywności programisty PHP. Adam Puza. Wprowadzenie. Co oznacza termin produktywność indywidualna ? Produktywność indywidualna == maksymalne wykorzystywanie możliwości komputera. Jesteś programistą... ... potrafisz zrobić więcej - wykorzystaj to!
E N D
Wprowadzenie • Co oznacza termin produktywność indywidualna?Produktywność indywidualna == maksymalne wykorzystywanie możliwości komputera. • Jesteś programistą... ...potrafisz zrobić więcej - wykorzystaj to! ...pracuj na klawiaturze – sięgaj po mysz tylko gdy musisz. • Automatyzuj wszystko co jest możliwe. • Najwięksi wrogowie zwiększania produktywności:-- Nadmierna duma-- Nadmierne przyzwyczajenia-- Lenistwo
Praca z aplikacjami i projektem • Wielokrotny schowek np. ClipX
Szybkie uruchamianie/przełączanie/zamykanie aplikacjiHumanized Enso Launcher1. otwieranie open 2. przełączaniego3. zapamiętywanie (nauka) nowych komend learn as open 4. pozostałe przydatne komendymin max close quit
Enso Launcher - techniki zaawansowaneHumanized Enso Launcher + skrypty (np. AutoHotKey) - Uruchamianie programów/url w kontekście zaznaczonego tekstu http://dict.pl/dict?word=#s&words=&lang=EN - Uruchamianie programów z parametrami c:\windows\notepad.exe #s
Menadżer hasełKeepass - przechowywanie haseł- uruchamianie z automatycznym logowaniem (url, ssh...)
Wydajna praca z Total Commander • Wyszukiwanie zamiast nawigowaniaDlaczego nie zaczynać nazw od podkreśleń, cyfr i znaków specjalnych. • Skróty do często używanych folderówCtrl+\ + Enterc:\_katalog-skrotow\ esky projekt@ tool projekt@ pulpit@ moje dokumenty@
Total Commander – techniki zaawansowaneTotal Commander + AutoHotKey + Enso Launcher - synchroniczne poruszanie po katalogach (obydwa okna jednocześnie) - automatyczne uruchamianie oraz przełączanie do okna z otwartym katalogiem skrótów
Skróty klawiszowe • Naucz się tylu skrótów ile to możliwe • Łatwy sposób na naukę: cofnij i wykonaj ponownie skrótem • Pomocnik nauki na przykładzie KeyPromoter(PhpStorm)
AutoHotKey – wprowadzenie- możliwości języka--- operacje na plikach --- uruchamianie aplikacji--- otwieranie/pobieranie url--- przełączanie programów--- wysyłanie klawiszy do programów--- obsługa schowka- skróty zależne od aplikacji- sekwencje skrótów klawiszowychCtrl+A + Ctrl+SCtrl+A + Ctrl+A- rozwiązanie problemu nakładania się skrótów na skróty globalne
AutoHotKey – techniki zaawansowane (przykłady)- inteligentneuruchamianie skrótem (F1) pomocy (online) w zależności od aplikacji i/lub typu pliku (w kontekście symbolu pod kursorem)np.:IDE pliki *.php : php.netEdytor pliki *.ahk : manual online AutoHotKey- odświeżanie przeglądarki jednym skrótem bez wychodzeniaz programu (IDE, edytor, putty, total commander, itd.)- odświeżanie (wywołanie ostatniej komendy) putty, cmd, cygwin
AutoHotKey – hotstrings (ciągi znaków)- co to „hotstrings”?- ciągi globalne i zależne od aplikacji- przykłady użycia:--- url w przegladarkach --- często używane skróty (np. email)e]\ => mail@domena.pl--- puttycdxTAB => cd /wwwdocs/http/applikacjaX/sdTAB => svn diff –r HEAD | grep Index:- zaawansowane ciągi--- tworzenie nazwy klasy na podstawie nazwy pliku cl]\ w pliku library\Zend\Db\Adapter\Example.php=>class Zend_Db_Adapter_Example
Przeglądarki internetowe – nieodłączne dla PHPOptymalizacja wydajności pracy z przeglądarkami • autoodświeżanie (wspomniane powyżej) • ciągi znaków (wspomniane powyżej) • gesty myszy (skoro już używamy myszy to pracujmy wydajniej) • podpinanie makr pod klawisze myszyprzykład: standardowy fatal error w oknie przeglądarki kliknięcie w fatal error otwiera plik w IDE/edytorze i przechodzi do linii z błędem • Opera vs Firefox-- cache stronczas cofania wstecz i powrotu (10 stron, test.pl):Opera 38 sFirefox 53 s-- zapamiętywanie danych formularzy
Maksymalne wykorzystanie możliwości IDE • Cechy „produktywnego” środowiska-- wyszukiwanie zaawansowane-- podpowiadanie kodu-- automatyzacja np. (tworzenie zmiennych, wyodrębnianie metod)-- szablony kodu-- dobra obsługa skrótów klawiszowych-- szybkość działaniaprzykład produktywnego środowiska: PhpStorm • IDE == najważniejszy program == należy znać jego wszystkie (używane) skróty.Jak należy i jak nie należy uczyć się potrzebnych skrótów. • Wyszukuj zamiast nawigować-- Wyszukiwanie po nazwie klasy, pliku, metody-- Wyszukiwanie – użycie „camel humps” -- Wyszukiwanie i zastępowanie z użyciem wyrażeń regularnych
Live Templates - tradycyjne zastosowanie-- for, fore, if, ife, switch, try... forTAB =>for ($X$;$X$<$Y$;$X$++) {$END$ }for ($X$;$WARUNEK$;$ZMIANA$) { $END$ }
Live templates – niekonwencjonalne zastosowanietTAB=> $this->cTAB=> class0TAB=> falserTAB=> return; r0TAB=> return false; arTAB=> array($END$),=TAB=> => $END$,pTAB=> publicvTAB=> privateoTAB=> protectedpfTAB=> public function $NAME$() {$END$} psfTAB=> public static function $NAME$() {$END$} • Inteligentne live templates (AutoHotKey)- DocComment (/]\)
Praca z tekstem - edytor • Cechy dobrego edytora tekstu- makra- wyrażenia regularne- wykrywanie zmian w plikach- działanie na dużych plikach- kolorowanie składni
Automatyzacja • „Szybkie Skrypty PHP”Dlaczego używać PHP jako języka skryptowego do zastosowań offline?Sposób automatyzacji użycia skryptów PHP. • SeleniumSelenium IDE a zwiększanie wydajności programowania PHP.
Sprzęt • Używaj szybkiego sprzętu • Używaj dwóch monitorówSytuacje w których warto rozważyć użycie trzeciego
Ogólne metody zwiększenia produktywności • Nie wynajduj na nowo koła-- Framework - Twój najlepszy przyjaciel-- korzystaj z gotowych rozwiązań-- wykorzystuj kod wielokrotnie • Nie twórz nadmiarowego kodu • System kontroli wersji- do pracy z projektami PHP- do przechowywania wszelkiego rodzaju skryptów
Wirtualne maszyny • Testowanie nowych rozwiązań • Zamrażanie środowiska i zmiany w „starych” projektach
Na zakończenie...ciekawostka • Formatowanie kodu pod kątem wydajności
PODSUMOWANIE Stale się rozwijaj i ciągle szukaj nowych sposobów na zwiększanie swej produktywności. --------------- Materiały dostępne na stronie: WebDemon.org.pl