Jak nazywać zmienne?

Rozpoczynając naukę programowania nie skupiałem większej uwagi nazewnictwu zmiennych. Później, korzystając z różnych bibliotek, modułów czy też frameworków zwróciłem większą uwagę na konwencje nazewnictwa. To niemniej jednak jest tylko jedna z wielu kwestii, o których należy pamiętać. Jak zatem nazywać zmienne?

Raz napisany kod czyta się wiele razy. Powinno się więc zadbać o to, by jego czytanie było możliwie proste, szybkie i przyjemne. Nazwy symboli (zmiennych, klas, metod, itp.) odgrywają tu ważną rolę. Nie musisz zgadzać się ze wszystkimi wskazówkami, które są zamieszczone poniżej, niemniej jednak warto mieć je na uwadze podczas wymyślania nazw i stosować się choć do części z nich.

Twórz opisowe nazwy

Ile razy zdarzyło Ci się, że gdy czytałeś swój kod po kilku tygodniach, nie mogłeś sobie przypomnieć, co oznaczała dana zmienna? Mi to się przytrafiło nie raz i nie dwa. Nazwy zmiennych powinny zawierać tyle informacji, by móc dokładnie określić do czego jest ona wykorzystywana. Cytując Roberta Martina:

The name of a variable, function, or class, should answer all the big questions. It should tell you why it exists, what it does, and how it is used. If a name requires a comment, then the name does not reveal its intent.
Clean Code – A Handbook of Agile Software Craftsmanship

Powyżej zacytowany tekst zawiera w sobie sporo wskazówek, które zostały opisane poniżej.
Continue reading “Jak nazywać zmienne?” »

Jak postępuje profesjonalny programista?

W tym artykule zostały opisane niektóre z głównych zasad, do których osoba uważająca się za profesjonalistę powinna się stosować. Przedstawiona tu wiedza jest dość skondensowana, by nie wydłużać tego tekstu, więc po obszerniejsze opisy odsyłam książki w bibliografii. Artykuł jest kierowany głównie do osób średnio zaawansowanych i bardziej doświadczonych początkujących.

Kim jest profesjonalista?

Po pierwsze jest to osoba odpowiedzialna. Nie szkodzi ona innym, a w przypadku, gdy coś się jej nie uda, to nie ucieka, a ponosi konsekwencje swoich błędów i naprawia wyrządzone szkody nawet wtedy, gdyby były ogromne. By zminimalizować prawdopodobieństwo popełnienia błędów, profesjonalista testuje swój kod.
Po drugie jest to osoba, która zachowuje etykę pracy. Oznacza to, że zna ona swoje otoczenie. Wie, co potrafi i czego się podejmuje. Jest ona pokorna i świadoma tego, że nie zawsze ma rację, że może się mylić w pewnych kwestiach, więc powinna liczyć się także ze zdaniem innych.
Po trzecie jest to osoba świadoma tego, że rynek IT rozwija się bardzo dynamicznie, więc by pozostać wartościowym programistą ciągle się uczy, ćwiczy i doskonali.

Continue reading “Jak postępuje profesjonalny programista?” »

Twórz backupy! Nigdy nie wiesz, kiedy będziesz ich potrzebować.

Niedawno spotkała mnie bardzo nieprzyjemna sytuacja, a mianowicie software, który zainstalowałem jeszcze pod Windowsem 8 przed aktualizacją do Windowsa 8.1 uszkodził mi system. Partycja odzyskiwania stworzona przez system, punkty przywracania ani żadne narzędzie dołączone do instalatora nie pomogły. Męczyłem się cztery dni analizując szkody i działania programu, jednakże ostatecznie uratował mnie backup (kopia zapasowa) partycji systemowej, który wykonałem końcem grudnia zeszłego roku szczerze mówiąc bez żadnej racjonalnej przyczyny. W tym poście opiszę jak w prosty sposób tego dokonać.

Co konkretnie zrobimy i dlaczego to jest dobre rozwiązanie?

Pokażę, jak zrobić kopię zapasową partycji systemowej i jak ją przywrócić, choć równie dobrze w ten sposób można zbackupować cały dysk. Dla niewtajemniczonych: dysk (ten który znajduje się fizycznie w komputerze) dzieli się na tzw. partycje. W systemach z rodziny DOS/Windows osobna partycja najczęściej jest reprezentowana jako osobny „dysk lokalny” z własną literką w „Mój Komputer” tudzież „Komputer” w zależności od wersji systemu.
Wadą tego rozwiązania jest wielkość kopii zapasowej* i – dla osób niewtajemniczonych – trochę nieoczywiste działania z naszej strony.
Zalety? Mamy konsystentną kopię całej partycji systemowej! To oznacza, że po przywróceniu systemu dzięki tej kopii odzyskamy idealnie taki sam stan systemu! Nie będziemy musieli na nowo konfigurować systemu, personalizować własnego profilu czy instalować od nowa programów**.
* wprawdzie na partycję systemową nie trzeba wcale sporo miejsca, ale przeciętny użytkownik pewnie nie myśli jak sensownie podzielić dysk i wszystko umieszcza w tym jednym miejscu (co szczerze mówiąc wcale nie jest mądrym rozwiązaniem); poza tym zawsze backup można skompresować 🙂
** lokalizacja instalacji programu: partycja systemowa = program zostanie odzyskany, inna lokalizacja = przywracamy partycje systemową, czyli ta inna lokalizacja nie jest naruszona

Continue reading “Twórz backupy! Nigdy nie wiesz, kiedy będziesz ich potrzebować.” »

Prosty sposób na przyspieszenie komputera – RAM Dysk

Dyski są wąskim gardłem komputerów. To z ich powodu system uruchamia się długo. Można to prosto sprawdzić dowolnym programem monitorującym wykorzystanie dysku podczas startu systemu – ujrzysz wdzięczne 99-100%. Dysk również spowalnia uruchamianie się programów. W przypadku lżejszego oprogramowania nie trzeba czekać długo, jednakże gdy korzystamy z „cięższego oprogramowania” to jesteśmy zmuszeni poczekać chwilkę, aby program wczytał wszystkie potrzebne zasoby. Dysk nie spowalnia tylko włączania się programów – spowalnia także działanie niektórych z nich. Spora ich część bowiem doczytuje dane podczas korzystania z nich (np. gry), a inna część cache’uje dane (np. przeglądarki internetowe). Jak tego wszystkiego uniknąć albo przynajmniej ograniczyć w pewnym stopniu?

Dyski SSD

Przeciętne dyski magnetyczne (HDD) umożliwiają odczyt na poziomie około 100 MB/s. Mój dysk wewnętrzny osiąga prędkość średnią w granicach 120 MB/s, natomiast zewnętrzny na USB 3 około 110 MB/s (przy podkręceniu portu USB poprzez sterowniki płyty głównej – około 130 MB/s).
Wydajniejsze dyski SSD na SATA III (powszechnie wykorzystywaną magistralę do podłączania dysków) osiągają prędkość w granicach aż 500 MB/s! Na takim dysku system uruchomi się dużo szybciej, a programy nie będą ładować zasobów tak wolno, jak na zwykłym dysku HDD, przez co będą działać szybciej.
Niedawno pojawiły się na polskim rynku dyski SSD na PCI-E (magistralę wykorzystywaną do m.in. podłączania kart graficznych). Modele, które widziałem, osiągały prędkość odczytu rzędu 800-900 MB/s. To spore przyspieszenie, choć da się uzyskać jeszcze większe.
Dyski SSD niestety nie należą do najtańszych. Te tańsze nośniki o pojemności 128 GB, w dniu publikacji tego postu, można było nabyć za cenę 300-400 zł. Dysk o tej pojemności spokojnie zmieści system, częściej wykorzystywane programy, wszelaki cache oraz trochę danych. Resztę można trzymać na zwykłym dysku HDD.

Istnieje jednakże alternatywne rozwiązanie, które potrafi przynieść może nie aż tak spore korzyści, jak dyski SSD, ale niemalże za darmo.

RAM Dyski

Pamięć RAM – powstała, by komputer mógł szybko wykonywać operacje na aktualnie wykorzystywanych danych. Dzisiejsze komputery stacjonarne i laptopy posiadają zazwyczaj 4 GB RAM-u, czasem nawet i 8 GB. 1 GB RAM-u w smartfonach to także rzecz, którą można spotkać każdego dnia. Sam jestem szczęśliwym posiadaczem komputera z 16 GB RAM-u od niemalże dwóch lat. Pamięć DDR3 o powszechnie spotykanym taktowaniu 1333 MHz umożliwia przesył danych z prędkością 10600 MB/s. Szybko, nieprawdaż? Dlaczego by tego nie wykorzystać? Niżej opisano sposób, jak tego dokonać.
Continue reading “Prosty sposób na przyspieszenie komputera – RAM Dysk” »

Wprowadzenie do biblioteki SFML – narzędzia do szybkiego, wygodnego i przyjemnego pisania gier

Jeżeli pisałeś wcześniej jakąkolwiek grę w języku C++ to zapewne spotkałeś się z takimi bibliotekami jak SDL czy Allegro. Pisząc w którejkolwiek z nich pewną niedogodnością jest to, iż są napisane w języku strukturalnym, przez co tworzenie kodu bywa czasem uciążliwe i męczące. Istnieje jednakże lepsze rozwiązanie – SFML. Jest to prosta i szybka biblioteka do obsługi multimediów zorientowana obiektowo.

Przedmowa

Artykuł został napisany dla Magazynu Programista z tego powodu, iż bardzo go polubiłem i bardzo go sobie cenię. Powstał na samym początku maja br. (tak, pół roku temu!). Włożyłem w go naprawdę sporo wysiłku, by był jak najlepszy (choć teraz wiem, jak można by napisać o wiele lepiej). Niestety, współpraca z redakcją pozostawiała wiele do życzenia – gwoli ścisłości tej współpracy prawie nie było. Kontakt z osobami wyznaczony stricte do współpracy ze mną zazwyczaj urywał się po kilku mailach. Postanowiłem więc opublikować ten artykuł, by moja ciężka praca nie poszła na marne i by inni mogli znaleźć coś wartościowego. Continue reading “Wprowadzenie do biblioteki SFML – narzędzia do szybkiego, wygodnego i przyjemnego pisania gier” »

Google Chrome – tips & tricks

Google Chrome jest jedną z najbardziej popularnych przeglądarek i wiele użytkowników korzysta z niej nawet nie wiedząc, jaki potencjał ona kryje w sobie. W tym poście przedstawię kilka ciekawych ‚tricków’ i porad, które mogą pomóc jeszcze wygodniej korzystać z tej przeglądarki niemalże każdemu.

Omnibox

czyli pasek adresu. Prawdopodobnie myślałeś do tej pory, że jedyne czemu służy to pobieranie nazwy strony, z którą ma się połączyć. Omnibox jest jednakże dużo bardziej inteligentniejszy!

Kalkulator

Wystarczy tylko wpisać konkretne wyrażenie, np. sqrt(4*pi^2/(log(4)+1.3)-3!) i pole niżej pojawi się odpowiedź. Można tu korzystać z wielu stałych matematycznych jak liczby pi i e, użyć wiele funkcji, przykładowo tangensa czy pierwiastokowanie, a nawet wykonywać operacje na liczbach zespolonych!

Chrome - omnibox kalkulator

Chrome – omnibox kalkulator

Konwerter jednostek

Omnibox umożliwia konwertowanie najróżniejszych jednostek, od dystansów, poprzez waluty, czas, temperaturę po jeszcze inne, o których pewnie większość z Was nigdy nie słyszała. Wystarczy tylko napisać „2.4 kilometers in meters” albo krócej „2.4 km in m„. Wprawdzie trzeba podać całość w języku angielskim, ale skoro można korzystać ze skrótów, to myślę, iż większych problemów z tym nie będzie. Nic nie stoi na przeszkodzie, by podać bardziej złożoną formułę: „2 years + 5 months + 10 days + 11 hours = days„.

Chrome - konwerter jednostek

Chrome – konwerter jednostek

Wklej i szukaj/otwórz

W momencie, gdy w schowku znajduje się adres jakiejś strony można nacisnąć PPM (prawym przyciskiem myszy) na omniboksa i pojawi się pole „Wklej i otwórz”. Podczas gdy zawartość schowka jest tekstem, ale nie adresem strony, pojawi się możliwość wyszukania owej frazy.

Continue reading “Google Chrome – tips & tricks” »