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!
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/
Thx. Muszę spróbować, do tej pory używałem http://thegleebox.com/, ale sama nazwa mnie kusi :)
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 :)
KC,
Cool. W Operze bez dodatków da się nawigować klawiaturą po stronach, to chyba jedyny powód dla którego ciągle w niej siedzę pomimo tego że robi się coraz gorsza i gorsza.
Nie będziesz brał myszki, wroga swego, nadaremno | Maciej Aniserowicz o programowaniu…
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl…
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…
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.
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.
“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ą.
Antek,
Ja ten problem rozwiązałem trackballem, nadgarstek mi dosłownie życ nie dawał i dlatego sięgnąłem po trackballa. Po kilku dniach ból minął. A okazało się że ma milion innych zalet przy okazji.
Łukasz,
Nice, używałem kiedyś innego narzędzia do zarządzania schowkiem, ale już nie pamiętam nawet jak się nazywało:).
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 :-)
Procent. też się zastanawiam nad przesiadką na trackballa. Poza tym, faktycznie spróbuję tydzień bez Explorera się obyć.
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ę…)
Kiedy na .NETowym blogu pojawia się sugestia żeby nauczyć się VIMa to wiedz, że coś to znaczy.
http://blog.jetbrains.com/blog/2012/11/02/resharper-viemu-productivity-webinar-recording/
to Maciek widzial ? :D
Lubie,
Widzial, nawet w niniejszym poscie umiescil linka do http://www.viemu.com/ :)
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.
O jakim wrogu mówi tytuł? :)
Pawel,
Interesujaca klawiatura, ciekaw jestem jak sie sprawdza w praktyce. Co do Dvoraka – abstrahujac uz od programowania, przy jezyku polskim z tego co czytalem to srednio sie sprawdza. Dlatego tez zarzucilem pomysl nauki.
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.
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 :)
mr_question,
O myszce :)
Skoro mowa o klawiaturach, sprawiłem sobie niedawno MS Natural Ergonomic Keyboard i wzdrygam się na samą myśl powrotu do normalnej :)
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 ;-)
orientman: thx za info o tym emulatorze VIM, niedlugo tez chyba wskocze na ten wagon, http://vim-adventures.com/ mi pomoglo :-)
@Dawid Zajebiste!
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?
A ja polecam FarManager. To prawdziwy kombajn napędzany skrótami klawiszowymi i niech klasyczny interfejs Nortona Commandera nikogo nie zmyli.
xevaquor,
Miałem kiedyś jakąś ergonomiczną Natural klawiaturę od MS, masakra. Obrazki w Guglu pokazują mi że to chyba właśnie ta… wytrzymałem miesiąc, potem dosłownie na samą myśl o pracy bolały mnie ręce. Może taki delikatny jestem po prostu;), ale od tamtej pory albo gdzieś leży zakurzona albo wyrzuciłem.
orientman,
Thx, chyba zrobię kolejne podejście do VIMa i tym razem z tego skorzystam. Kiedyś ViEmu właśnie bardzo mi się z R# gryzło więc po kilku godzinach się poddałem.
Filip Zawada,
Można myszkę wysmarować miodem (albo jakoś bardziej hardkorowo) i też pewnie zadziała:).
A co do TC i Explorera.. też nie mogłem uwierzyć.
Hubert,
Lansersko ten FarManager wygląda, ale z czymś podobnym nie miałem do czynienia od podstawówki i jednak przy TC zostanę:).
Nie patrz na obrazki. Uruchom. Zawstydzi TC.
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ć.
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..
Dawid,
Właśnie sprawdziłem, wypas!:)
Gra fajna jako ciekawostka, ale do nauki polecałbym może
– VimCasts http://vimcasts.org/
– interaktywny tutek http://vim-adventures.com/
EDIT: dobry link do tutka http://www.openvim.com/tutorial.html
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
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 :).
Bartłomiej,
Thx, może przyda się na przyszłość.
Piotrek,
Kiedyś pobieżnie się zapoznawałem z dodatkowymi możliwościami basha, a potem po prostu zautomatyzowałem sobie wszystko autohotkey. Ale dzięki za linki, na pewno się zapoznam i może praca z gitem będzie jeszcze fajniejsza niż jest;)
Tomek,
Ale wyobraź sobie ile w fimie byłoby frajdy gdyby tak nagle szmaty zaczęły latać:). Co do prawa klikania “ile chce” to moim zdaniem nie do końca tak…. po co robić coś gorzej skoro można lepiej? Równie dobrze każdy móglby pisać programy na kartach perforowanych, jak 40 lat temu, ale przecież chodzi o rozwój i postęp.
To że firmy nie kupują programistom resharpera – jest mi wiadome, ale niezrozumiałe. Ale samo kupienie go też nie na wiele się zda, jeśli ludzie nie będą z niego korzystać i jedyne co zyskają to kręcące sie kółko w prawym dolnym rogu i ubytek RAMu.
Z Expressem niestety nic mądrego nie powiem, jednemu ziomkowi udało się kiedyś stworzyć plugin działający w Expressach (Test Driven .NET) to mu Microsoft zabrał MVP i zagroził procesem:).
Ale w poście chodziło mi o się więcej niż tylko R# – o ogólne podejście do każdego etapu pracy, nie tylko wtedy gdy VS ma focus.
No dobra, to zamiast marudzić biorę się za poznanie R# :).
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?
Adrian,
No takiego to bym nie kupił, ja mam Logitech Cordless Optical TrackMan z 8 przyciskami i scrollem i jest wypasiony, ale chyba nie można go już dostać.
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.
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.
Hubert,
To wszystko akurat jest też w TC
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.
Łukasz, ol3j,
Nie kupuję takiego gadania “koduję przez 10% czasu a pozostałe 90% myślę”. Myślisz nad czym i o czym? Żeby zacząć myśleć najczęściej trzeba się zapoznać z jakimś kodem który wymaga rozwinięcia (a tylko pierwszy dzień projektu to dzień bez rozwijania kodu). Potem zaplanować jak się sensownie w ów kod wcisnąć.
Gdyby praca programisty polegała tylko na pisaniu FizzBuzz, codziennie w innym języku, to faktycznie tablica z markerami i klawiatura+myszka to wszystko czego potrzeba. Ale w normalnym życiu znajomość narzędzi – i umiejętność ich wykorzystania – zdecydowanie jest jedną z perspektyw postrzegania programisty.
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..
Bez odrzucenia mychy nigdy nie osiągnie się programistycznej nirwany ;)
http://psygrammer.com/2011/02/10/the-flow-programming-in-ecstasy/
@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.
Którego trackball polecacie? Który rodzaj ? tj. sterowanie kciukiem czy palcem wskazującym oraz środkowym