fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
7 minut

Nie będziesz brał myszki, wroga swego, nadaremno


04.02.2013

Kolega przeprowadzał kiedyś zdalne interview z programistą. W teorii wszystko było jak należy – ziomek interesował się zagadnieniami spoza pracy czysto zawodowej, prowadził bloga, używał Resharpera…

No i właśnie przy Resharperze pojawiło się pierwsze zaskoczenie: używał go za pomocą MYSZKI! WTF? Normalnie Mouse Driven Development In Practice, 3rd Edition Complete! Po kilku tygodniach okazało się, że trzeba niestety podziękować mu za współpracę.

Nie twierdzę, że to był powód. Ale mogło uchodzić za znak ostrzegawczy. Tutaj małe wtrącenie: jeśli masz Resharpera a czujesz, że nie wykorzystujesz nawet 10% jego możliwości to zapraszam do mojej trzyczęściowej serii postów “C# via R#“. Co prawda napisałem to w roku 2008, ale nadal może stanowić świetny wstęp do tego genialnego narzędzia. A potem – dodatkowych kursów, tutoriali i list skrótów w R# jest w necie co nie miara.

Ile czasu codziennie marnuje średnio programista sięgając po myszkę i klikając po mikro-ikonkach? Rozwijając plusiki w Solution Explorerze? Niechcący przeciągając pliki między folderami a potem próbując je powrzucać w poprzednie miejsca?

Może się wydawać, że jest to zbyt banalny temat na dedykowanego posta, i to jeszcze w tak ewangelistycznym cyklu. Ale wbrew pozorom kwestia ta jest niesamowicie istotna… a dodatkowo można ją rozszerzyć na ogólnie rozumianą “produktywność”.

Jak bardzo może usprawnić pracę znajomość dziesiątków skrótów klawiaturowych w ulubionych narzędziach? Mega-bardzo. Jeśli dodamy do tego możliwość definiowania własnych skrótów, nagrywania/pisania makr, właściwie całkowitego dostosowania wszelkich programów do swoich potrzeb to praca staje się nie tylko bardziej wydajna, ale też o wiele przyjemniejsza!

Czas spędzony na poznaniu tricków przybliżających nas do celu nawet o sekundę prawie zawsze się zwróci.

Choćby takie durne otwarcie pliku w Visualu… Resharper ze swoją boską nawigacją jest z nami od wielu, wielu lat. Nawet goły VS posiada możliwość wyszukania dowolnego pliku z poziomu klawiatury od wersji 2010 (skrót ctrl + , o czym pisałem w roku 2009). Albo zamknięcie aktualnego okienka narzędziowego w VS – czy znacie skrót shift+esc który robi właśnie to, eliminując konieczność celowania w krzyżyk w jego prawym górnym rogu? Co do samego Visuala to skrobnąłem kiedyś notkę o wdzięcznym tytule “11 brudnych sekretów Visual Studio” – może komuś się przyda.

A uruchamianie programów? Niesamowicie dziwi mnie narzekanie, i to w programistycznej społeczności, na brak Menu Start w Win8. Do kilku rzeczy w tym systemie można się przyczepić, ale czy naprawdę usunięcie Menu Start jest jedną z nich? Czy ktoś faktycznie sięgał po myszkę, klikał w “Start” a potem kursorem najeżdżał na wybraną pozycję i ją klikał? U mnie osobiście wykorzystywanie Menu Start ograniczało się do wciśnięcia “win”, napisania kilku liter do wyszukania aplikacji i ENTER. I w Win8 to się nie zmieniło.

Ale jak już przy tym jesteśmy – dlaczego nie usprawnić odpalania aplikacji jeszcze bardziej? Od tego są w końcu Launchy czy SlickRun. Używam obu, oba polecam.

A jak już uruchomimy masę aplikacji to przydałoby się sprawnie między nimi przełączać. Klikanie w ikonki na pasku zadań można bardzo prosto wyeliminować stosując niesamowicie wręcz użyteczne skróty “win+1” – “win+0” wprowadzone w Windows 7 – przeniosą one focus na aplikację znajdującą się na danej pozycji na pasku lub uruchomią odpowiedni program do niego przypięty. A jeśli mamy programów naprawdę sporo (czyli zawsze?) to warto rozejrzeć się za alternatywą dla wciskania alt+tab+tab+tab+tab… miliard razy dziennie – ja znalazłem Vista Switcher i to jest jedna z pierwszych aplikacji jakie instaluję na świeżym systemie.

Edycja plików? Jeżeli sprawia ci to jakąkolwiek trudność – poszukaj innego edytora. Np błyskawicznego Sublime Text, i obejrzyj tutorial do niego. Albo pójdź krok dalej i naucz się Vim, może nawet zdecydujesz się na dorzucenie takiej funkcjonalności do Visuala? A, należy pamiętać że VS posiada obsługę wyrażeń regularnych w trybie “find and replace”.

Nawet pisanie na klawiaturze może zostać zredukowane do minimum. Po co klepać w kółko te same komendy, na przykład w Git Bash, jeśli mogą wklepać się same? Po szczegóły zapraszam do notki “Skrypt AutoHotkey ułatwiający pracę z Git“, a zapoznanie się z AutoHotkey polecam każdemu mającemu styczność z komputerami.

W obcowaniu z narzędziami staram się wyznawać zasadę: za pierwszym razem po prostu zrób co chcesz zrobić, za drugim – przypomnij sobie, że już to robiłeś, a za trzecim – znajdź sposób na przyspieszenie całego procesu. Tak też się stało gdy musiałem co i rusz czyścić cache w Firefoxie – najpierw przeklikiwałem się przez opcje, potem doinstalowałem Clear Cache Button. Podobnie rzecz się miała przy tworzeniu i aktualizowaniu http://msmvp.pl – tak jak pisałem w poście intro, na system składają się dwie bazy SQL CE i raz na jakiś czas trzeba jedną ściągnąć z FTP, skopiować 2x na dysku i wrzucić na inny FTP. 2x poczyniłem to przez Total Commandera, za trzecim razem napisałem skrypt Powershell, który to robi. Kilka chwil mi to zajęło, ale zwróciło się już wielokrotnie.

Jak już doszedłem niechcący do Total Commandera to przy nim zostanę. Wiem jak wiele osób przyzwyczaiło się do Windows Explorer i tkwi w tym bagnie. Wiem też, że niektórzy dali szansę TC a mimo to zostali przy Explorerze… Serio, zainstalujcie sobie ten magiczny soft, przeczytajcie co on potrafi (Beginners tutorial, Advanced tutorial), i przez tydzień nie otwierajcie explorera. Nigdy do tych inwalidzkich okienek nie wrócicie.

Wiadomo, od myszki raczej nie ucieknie się w 100%. A w takich przypadkach bardzo, ale to bardzo polecam trackballa. O czym pisałem kilka tygodni po jego zakupie w poście “Ja, trackball i ja“. Teraz nawet czynności “myszkowe” nie trwają tyle ile trwały.

Podsumowanie jest bardzo krótkie: zawsze warto zainwestować kilka minut w polepszenie swoich umiejętności pracy z narzędziami wykorzystywanymi na co dzień. Im więcej “sięgania-po-myszkę” wyeliminujemy, tym więcej pracy wykonamy w ciągu dnia. “As simple as that”. Także jeśli właśnie siedzisz w pracy i spędziłeś kilka chwil na lekturze tego posta – poświęć ich jeszcze parę nad zastanowieniem się “jak mogę przyspieszyć każdą czynność wykonywaną codziennie setki razy?”. A potem to zrób. Opłaci się.

Mam nadzieję, że w komentarzach pojawią się kolejne wskazówki jak można “wyeliminować myszkę” lub ogólnie zwiększyć produktywność. Ciekawe skróty? Przydatne narzędzia? Dzielcie się, aby świadomość w narodzie rosła!

0 0 votes
Article Rating
60 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
KC
KC
11 years ago

IDE to jedna sprawa, można sięgnąć jeszcze dalej i odstawić mysz na większość iterakcji z przeglądarką. Efekt niesamowity, zwłaszcza na laptopach :) http://vimium.github.com/

orientman
11 years ago
Reply to  KC

Thx. Muszę spróbować, do tej pory używałem http://thegleebox.com/, ale sama nazwa mnie kusi :)

Srebrny
11 years ago

Co prawda nie używam Windowsa ani .Net’u, ale aby maksymalnie przyspieszyć dostęp do konsoli w linuksie zainstalowałem guake. Teraz po wciśnięciu F12 pokazuje mi się konsola – prawie jak w quake’u :) Dodatkowo zainstalowałem Tmux – teraz nie wychodząc z konsoli mogę podzielić widok na kilka części. Zmieniłem także standardowego basha na zsh i nie zamierzam wracać do basha :)

trackback
11 years ago

Nie będziesz brał myszki, wroga swego, nadaremno | Maciej Aniserowicz o programowaniu…

Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl…

Człowiek o niewidzialnym nicku
Człowiek o niewidzialnym nicku
11 years ago

Fajnie że resharper jest taki super, tudzież że VS ma ciekawe skróty klawiaturowe. Ale niestety, na VS Express nie działa ani reshaprer, ani połowa z tych ciekawych skrótów…

Jarosław Bajak
Jarosław Bajak
11 years ago

Od zawsze powtarzam, że używanie myszki to strata czasu. Niestety, smutne to jest jak wiele ludzi marnuje swój czas i nie jest w stanie przekonać się do zaprzestania używania myszy. Ale cóż.. ich strata :) Ważne, że ja tego błędu nie popełniam i trzymam się od myszki jak najdalej.

Antek
Antek
11 years ago

W poprzedniej robocie mieliśmy kiedyś inspekcję stanowisk pracy przez fizjoterapeutkę. Ona mówiła, że korzystanie z myszki niszczy nadgarstek. A więc to nie tylko produktywność, ale i zdrowie.

Łukasz K.
11 years ago

“Bądź jak komandos – odstaw myszkę!”

Znajomość skrótów klawiaturowych jest bossskie. Dla mnie śmiganie po VS bez muszki i wykorzystywanie przy tym setki skrótów (przecie od tego są) jest szpanem;)

Dodam jeszcze, że niesamowicie przydatnym programem/narzędziem jest ArsClip (http://www.joejoesoft.com/vcms/97/), który przechowuje skopiowane do schowka teksty. Polecam go nawet osobom, które nie programują.

Dawid Kowalski
11 years ago

Podobala mi sie anegdota Johannesa Brodwalla podczas WeActuallyBuildStuff jak jego kolega gdy programuje w parze z kims kto za duzo uzywa myszki to ja po prostu odlacza :-)

Antek
Antek
11 years ago

Procent. też się zastanawiam nad przesiadką na trackballa. Poza tym, faktycznie spróbuję tydzień bez Explorera się obyć.

jj
jj
11 years ago

Dawid,
Mam lepszy pomysł: zamiast odłączać myszkę, lepiej walić mokrą szmatą w pysk…

Wg moich obserwacji średni czas korzystania z myszki (u programistów) ciągle rośnie. Masakra jak widzę dev’a który nie używa alt+tab, tab, shift+tab, alt-f4… i mega perełka na koniec: nie używać F5 w visualu (tego nie zniesę…)

xvirk
xvirk
11 years ago

Kiedy na .NETowym blogu pojawia się sugestia żeby nauczyć się VIMa to wiedz, że coś to znaczy.

Pawel
Pawel
11 years ago

Można pójść jeszcze dalej i zamienić zwykłą klawiaturę na coś takiego: http://www.typematrix.com/ . Od razu miną bóle od używania strzałek na zwykłej klawiaturze. Idąc dalej, można zacząć używać układ klawiatury DVORAK, jednak pod VS nie polecam ze względny na kombinację skrótów klawiatury, które są układane pod QWERTY.

mr_question
mr_question
11 years ago

O jakim wrogu mówi tytuł? :)

Pawel
Pawel
11 years ago
Reply to  procent

Używam jej od ponad roku, w układzie DVORAK. W celu lepszego używania polskich znaków zamieniłem w Windows Lewy Alt na Prawy. Jednak znacznie więcej piszę w języku Szekspira, w końcu mówimy o używaniu klawiatury przez programistów. Po polsku mało kiedy piszę, fora + mail, jakieś 10%. Co do klawiatury, to ma 2 wady: klawisze mogłyby być wykonane w technologii mechanicznej oraz brakuje nóżek do regulacji wysokości, co dla niektórych jest ważne. Największą zaletą jest położenie klawiszy ENTER, SPACE i BACKSPACE.

Damian Sobczak
11 years ago
Reply to  Pawel

Pawel,
Dzięki za link do klawiatury, bardzo interesująca rzecz. Przyciski faktycznie są na gumkach ale z nożycowym mocowaniem, czyli dokładnie takie jakie posiada moja aktualna klawiatura :)

xevaquor
xevaquor
11 years ago

Skoro mowa o klawiaturach, sprawiłem sobie niedawno MS Natural Ergonomic Keyboard i wzdrygam się na samą myśl powrotu do normalnej :)

orientman
11 years ago

Jest darmowy emulator VIM i pisze go – w F#! – gość z Microsoftu:

http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329

Używam go prawie od początku istnienia (chyba ze 2 lata) i jest świetny. Z R# się nie gryzie. Pod względem kompletności trudno mi porównywać do ViEmu, którym bawiłem się dawno i krótko (bo jednak 99$ szkoda), ale daje radę większości przykładom z książki Practival Vim (http://pragprog.com/book/dnvim/practical-vim). Jedyny minus jest taki, że jak już mi się trafi “normalny” edytor – to gubię się jak ciotka w Czechach i szlag mnie trafia ;-)

Dawid Kowalski
11 years ago

orientman: thx za info o tym emulatorze VIM, niedlugo tez chyba wskocze na ten wagon, http://vim-adventures.com/ mi pomoglo :-)

orientman
11 years ago

@Dawid Zajebiste!

Filip Zawada
Filip Zawada
11 years ago

Czasami nie ma luksusu pair programmingu i kolegi, który może nas lać szmatą za każdorazowe użycie myszki. Niezłym rozwiązaniem jest wtedy odwrócenie myszki do góry nogami. Pomaga, kiedy na początku odruchowo ręka sięga po myszkę. U mnie sprawdziło, się dużo lepiej niż brutalne odłączenie, które jest mało praktycznie. Czasami trzeba przecież coś poklikać w browserze.
Przejście na VIMa chyba faktycznie jest kolejnym poziomem bo przemieszczanie się ze standardowego ułożenia rąk do strzałek i z powrotem jest dość uciążliwe…

“Wiem też, że niektórzy dali szansę TC a mimo to zostali przy Explorerze”
How is that even possible o.O?

Hubert Trzewik
Hubert Trzewik
11 years ago

A ja polecam FarManager. To prawdziwy kombajn napędzany skrótami klawiszowymi i niech klasyczny interfejs Nortona Commandera nikogo nie zmyli.

Hubert Trzewik
Hubert Trzewik
11 years ago
Reply to  procent

Nie patrz na obrazki. Uruchom. Zawstydzi TC.

unodgs
unodgs
11 years ago
Reply to  procent

Ja też nałogowo używam FarMenagera. Moim zdaniem dużo bardziej przejrzysty niż TC. Poza tym dla ciebie jako fana konsoli w farmanager naciskasz ctrl-o i już ją masz i działasz. Jest ona integralną częścią programu. W TC otworzy się okienko z cmd… Nie mówię już o wbudowanym edytorze :)
PS: Dzięki za VistaSwitcher – zaczynam się przyzwyczajać.

Hubert Trzewik
Hubert Trzewik
11 years ago
Reply to  unodgs

Do FM dorzucam możliwość tworzenia NTFS junction points, skrótów klawiszowych do folderów, wkładki FTP/SCP, zarznaczanie plików po typach, możliwość przeskoczenia na uprawnienia administratora w czasie edycji pliku, historia poleceń w command line, zliczanie objętości wskazanego folderu, doskonałą wyszukiwarkę plików, włażenie do plików ISO, MSI, RAR, ZIP..

Bartłomiej Skwira
Bartłomiej Skwira
11 years ago

Gra fajna jako ciekawostka, ale do nauki polecałbym może
– VimCasts http://vimcasts.org/
– interaktywny tutek http://vim-adventures.com/

BS
BS
11 years ago

EDIT: dobry link do tutka http://www.openvim.com/tutorial.html

Piotrek
Piotrek
11 years ago

procent,
Świetny post. Sam jestem zwolennikiem pracy z minimalizacją użycia myszy. Jeśli używasz Git Bash, to nie wiem, czy znasz skróty klawiszowe basha (np. Ctrl + r, czy Alt + . ) ? Poniżej linki do filmików, które prezentują kilka przydatnych sztuczek tej powłoki:
http://www.youtube.com/watch?v=Zz3v4G_xDp4
http://www.youtube.com/watch?v=unkfd0rTClw

Tomek
Tomek
11 years ago

Walenie mokrą szmatą w pysk, odłącznie myszki, odwracanie, smarowanie miodem, dżemem, kremem, czy czym kolwiek innym – czemu to ma służyć ? Już sobie wyobrażam, że wykonuję o kilka kliknięc za dużo, a nagle kolega z biurka na przeciwko wykręca szmajorę we wiadrze pełnym brunatnej wody i trzaska mnie w mordę … . Nie o to chodzi.

Myślę, że każdy ma pełne prawo do klikania ile chce i jak chce – jego sprawa. Zamiast karać, lepiej organizować wspólne spotkania i prezentować różne klawiszowe triki. To nie jest tak, że ludzie nie chcą używać klawiatury, bardziej wynika to z braku świadomości, przede wszystkim skrótów klawiszowych Windows.

Co do R#, to na rozmowie rekrutacyjnej raczej nie brał bym faktu znajomości tego narzędzia jako coś znaczącego. Resharper nie jest niestety standardowym narzędziem developerskim. Mam na myśli fakt, że pracowałem w dwóch sporych korporacjach i w żadnej z nich nie mieliśmy R#. W aktualnej pracy mam Resharpera, więc korzystam. W domu mam VS Express więc kontakt z R# nie wchodzi w grę. Podsumowując: jak ktoś ma doświadczenie z R# to super, jak nie, to nie :).

Tomek
Tomek
11 years ago

No dobra, to zamiast marudzić biorę się za poznanie R# :).

Adrian Ciura
Adrian Ciura
11 years ago

W celu zwiększenia wydajności o +10, zakupiłem w te pędy TrackMan Marble Logitecha i jakież było moje zaskoczenie jak się okazało, iż nie ma to scrolla! Ani middle-clicka! Jak żyć?
Ale przede wszystkim jak linki otwierać w nowej zakładce?

Łukasz
11 years ago

Korzystam na co dzień ze środowiska wysokoproduktywnego i skierowanego na klawiaturę (menadżer okien z tailingiem, Emacs, zsh..), jednak argumenty o stracie czasu na używaniu myszy w ogóle mnie nie przekonują. Dla mnie, w całym tym korzystaniu tylko z klawiatury chodzi o wygodę, komfort pracy i ograniczenie frustracji – klawiatura jest po prostu… bardziej deterministyczna niż mysz.
Nie wiem dokładnie nad jakimi projektami pracują komentujący tutaj, ale u mnie co najmniej 90% czasu pracy nad kodem to myślenie, planowanie, eksperymenty myślowe, “szkicowanie” na tablicy, <10% to faktyczne pisanie kodu… i no sorry, czas wtedy nie gra żadnej roli jeśli w ciągu godziny 6 minut stukam w klawisze… klikanie myszką przez dodatkową minutę (albo 4) nic nie zmienia. Po takich doświadczeniach wydaje mi się, że projekty, gdzie szybkość pisania (pracy w środowisku) się liczy… są dziwne, albo po prostu jest coś z nimi nie tak.
Konkludując, klawiatura to dla mnie komfort, a nie oszczędność czasu.

orientman
11 years ago

Dziś mi robota nie szła, to oddelegowałem godzinkę na ćwiczenia z R# – wielki dzięki za te posty!

Resharpera używam od niedawna – skusiła mnie promocja “na koniec świata”. Narzędzie jest świetne. IMHO całą moc objawia przy utrzymywaniu starego kodu lub refaktoringu juniorów ;-). Z nowym kodem sprawa prosta: TDD i wio (tutaj największym odkryciem jest dla mnie NCrunch – bez zielonej kropki w rogu już nie potrafię :). A na koniec robi się generalne porządki i dopieszczenia: klasy lądują we własnych plikach (często zaczynam pisząc wszystko na kupie w pliku z testami), nazewnictwo itp. itd. To się dzieje niejako z rozpędu i nie boli mnie robienie tego ręcznie, nawet bez pomocy IDE (wystarczą testy). Gorzej ze starym kodem, który przy okazji jakiejś łaty warto by trochę przeczyścić… ale się nie chce. Podobnie, gdy robię code review i widzę “Generalnie hula, ale to bym przeniósł tam, tu bym zmienił parametry, a tam zły namespace”. Czasami na takie duperele macha się ręką, ale R# pozwala je błyskawicznie naprostować. Innym razem mam do nadgonienia kilka dni i muszę przejrzeć kupę kodu pisanego przez 4 osoby. I tutaj nawigacja R# jest zajebista.

ol3j
ol3j
11 years ago

Nie no, patrzenie na programistę, developera, architekta, przez pryzmat używania myszki i skrótów, mega mocne. Fakt jest to przydatne, ale żeby robić z tego wielkie halo.

Hubert Trzewik
Hubert Trzewik
11 years ago

F5 – najbardziej killerski shortcut w SQL Server Management Studio – gdy już zdążysz napisać DELETE FROM MyTable, a zanim zdążysz dopisać WHERE… ;)

Boję się, że to kiedyś się zdarzy..

orientman
11 years ago

Bez odrzucenia mychy nigdy nie osiągnie się programistycznej nirwany ;)

http://psygrammer.com/2011/02/10/the-flow-programming-in-ecstasy/

Łukasz
11 years ago

@procent
Podam przykłady z mojego życia (kilka ostatnich projektów), które nie wymagają wielkich szybkości używania/pisania na klawiaturze aka 10% kodzenia/90% myślenia:

– platforma do HFT – cały projekt ma kilka tysięcy linii i napisanie go ot tak nie jest wyzwaniem, tutaj jednak liczą się mikro i nano sekundy (bez przesadzania), więc momentami siedzi się nad funkcją liczącą 10 linii i myśli, co zmienić, żeby zyskać parę [mikro|nano]sekund, ew. przepisuje wszystko z ręki do assemblera. Wymyślenie efektywnej, lock-free struktury danych to zadanie myślowe na dni, bo szablonowe podejścia to za mało. Szybkie pisanie nic tu nie pomaga, a nawet przeszkadza, bo każda dodatkowa linijka, to zwykle duży koszt (liczony w walucie).
– modyfikacja standardowych narzędzi UNIX-owych – tutaj trudność polegała na przeanalizowaniu kodu i dodaniu paru linijek tu i tam, przewaleniu dużej ilości kodu z innego projektu do własnego, refactoring (bardziej skomplikowany niż rename, extract function itd.) etc. Znów pisania zajmowało niewiele czasu, a zdecydowana większość to analiza istniejącego, marnie udokumentowanego kodu (tylko pojedyncze komentarze).
– bebeszki Linuksa (jądra) – moduł ~300 linii zajął mi miesiąc. Zmiany pojedynczych linijek wymagały testowania (oczywiście napisanie testów jednostkowych niemożliwe), potrzebne były eksperymenty, pewnego rodzaju dowody poprawności dla różnych przebiegów równoległych i ponownie analiza istniejącego kodu (niekoniecznie udokumentowanego).

I nie mówię, że przy tych projektach klikałem myszką (bo nie klikałem praktycznie wcale ;)), ale nie przyniosło mi to żadnej zauważalnej zwiększonej efektywności pracy.

marcin
marcin
11 years ago

Którego trackball polecacie? Który rodzaj ? tj. sterowanie kciukiem czy palcem wskazującym oraz środkowym

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również