Programowanie

W tym dziale znajdziemy wszelakie informacje związane z programowaniem, językami programowania, narzędziami wspomagającymi.

Jak napisać dobry kod?

Jak napisać dobry kod?

Planuj swoje działania.

Postaw sobie cel jaki chcesz osiągnąć na koniec swoich działań. Za nim zaczniesz pisać kod warto sobie zadać kilka pytań: Co jest przedmiotem twoich działań? Jakich technologii najlepiej użyć do rozwiązania danego problemu? Jak osiągnąć swój cel?

Określaj funkcjonalność jaką ma spełniać twój kod. Jeżeli nie zrobisz tego wcześniej w przyszłości może się okazać, że kod będzie wymagał dużo przeróbek lub zmian. W trakcie trwania projektu lub pisania kodu czasem mogą następować jakieś zmiany założeń lub wymogów dlatego im twój kod będzie bardziej elastyczny i uniwersalny tym lepiej.

 

 

Przyjazny kod dla ciebie i innych.

Dany program powinien działać – jest to podstawa osiągnięcia swojego celu. Staraj się pisać czytelny i zrozumiały kod, bardzo istotnym elementem jest stosowanie komentarzy w kodzie. Odpowiedz sobie na pytanie: Czy dzisiaj napisany przeze mnie kod, będzie zrozumiały dla mnie za miesiąc? Często zdarza się, że po dłuższym czasie gdy wracamy do jakiegoś fragmentu kodu, nawet jeżeli został on napisany przez nas zastanawiamy się o co tam w ogóle chodziło.

Wyobraź sobie, że do projektu dołącza kolejny programista i jest potrzeba rozbudowy aplikacji o nowe funkcjonalności. Jeżeli nowa osoba zajrzy w twój kod może być jej ciężko tak od razu zrozumieć o co tam chodzi, ale gdy będą tam komentarze może szybciej zrozumieć co się w nim dzieje i to zaoszczędzi sporo czasu.

 

Nazwy zmiennych, funkcji, procedur.

Podczas tworzenia zmiennych lub funkcji trzymaj się wcześniej ustalonego nazewnictwa. Jeżeli przyjmujesz lub przyjmujecie w grupie ludzi, że wszystkie funkcje zaczynacie od małej litery to dobrze jest się trzymać tej zasady przez cały czas tworzenia programu. Takie podejście do tematu sprawi, że kod stanie się łatwiejszy w zarządzaniu.

Praca w grupie jest dość specyficzna, i dobrze jest za nim podejmiemy jakiekolwiek działania ustalić kto czym się zajmuje, rozdzielić obowiązki i ustalić spójny format i sposób pisania kodu aplikacji.

Dobrze jest też stosować takie nazwy procedur czy funkcji, aby po jej nazwie można było się domyśleć co ona robi. Łatwiej na pewno jest się domyśleć sposób działania funkcji o nazwie: dodajProdukt() niż dodPrd().

 

Formatowanie kodu.

Stosuj wcięcia w swoim kodzie – sprawi to, że będzie bardziej czytelny i przejrzysty. Dzięki strukturze wcięć i akapitów poprawi się zrozumienie funkcjonalności kodu w przyszłości. Gdy jakaś linijka kodu zaczyna być bardzo długa podziel ją na kilka linijek – taki prosty zabieg może sprawić, że analiza kodu jest łatwiejsza i szybsza, gdyż od razu widzimy co się dzieje i nie ma potrzeby skrolowania kodu w bok ekranu.

 

Który kod wydaje się bardziej czytelniejszy?

   

 

Struktura projektu.

Warto jest dzielić pisany kod na pliki i moduły w zależności od funkcjonalności jakie spełnia.

Zawsze dobrze jest zakładać, że nasz kod trzeba będzie rozbudować w późniejszym czasie. Takie myślenie i postępowanie sprawi, że możemy uniknąć frustracji gdy nagle się okaże, że będzie trzeba w naszym programie bardzo dużo zmienić i dodać jakieś nowe funkcjonalności. Twoim głównym celem powinno być organizowanie kodu tak, aby łatwo było wprowadzać w nim poprawki.

 

Debugowanie kodu.

Pisząc kod każdy popełnia błędy czy pomyłki nie sposób tego uniknąć. Stosowanie metody prób i błędów na dłuższą metę i przy dużym projekcie mija się z celem. Co więc zrobić, aby szybko znaleźć błąd i go wyeliminować? Z pomocą przychodzą nam wszelakie narzędzia do debugowania kodu.

Takie narzędzia umożliwiają nam np. zatrzymanie działania programu w jakimś momencie i sprawdzeniu aktualnego stanu zmiennych, lub zbadania miejsca, w którym aplikacja rzuca wyjątek i przerywa swoje dalsze działanie.

 

 

Wersje kodu.

Dobrą praktyką, zwłaszcza przy większych projektach jest stosowanie systemu wersjonowania kodu. Może się okazać, że w trakcie pracy nad projektem trzeba będzie wrócić do jakiegoś stanu kodu np. z przed tygodnia bo znaleźliśmy w obecnym kodzie jakiś bardzo rażący błąd.

Także podczas pracy grupowej system kontroli wersji jest nam bardzo pomocny, bo dzięki niemu kilka osób może pracować np. nad jednym modułem aplikacji, ale pisząc różne fragmenty kodu tego modułu odpowiedzialne za różne funkcje. Na rynku istnieje wiele systemów kontroli wersji kodu, miedzy innymi: Git czy SVN.

Posted by superkoder in Programowanie
Blockchain – programowanie

Blockchain – programowanie

Czym  jest blockchain?

Blockchain to system, który dokonuje rewolucji w zapisywaniu, zawieraniu i rozliczaniu transakcji. Transakcje przechowywane są w postaci ciągu bloków informacji. W takim jednym bloku przechowuje się dane o zdefiniowanej ilość transakcji. Gdy taki blok zostanie zapełniony do końca tworzy się kolejny. Szereg następujących  po sobie bloków tworzą łańcuch.

Rodzaj przechowywanych transakcji w takich łańcuchach bloków może być różny, mogą to być np.:

  • informacje handlowe
  • transakcje kupna/sprzedaży
  • wytworzenia energii elektrycznej
  • informacje o walutach (kryptowaluty)

 

 

Jak funkcjonuje blockchain?

Ideą tej technologi jest decentralizacja przechowywania informacji. Środowisko utrzymuje współdzieloną cyfrową zbiorową księgę transakcji, która jest rozproszona w całej sieci w takiej samej formie. Każdy węzeł w sieci może uczestniczyć w zatwierdzaniu i przesyłaniu transakcji. Księga transakcji jest zabezpieczona za pomocą algorytmów kryptograficznych. Użytkownik ma dostęp tylko do transakcji utworzonych przez siebie. Dzięki takiemu podejściu wszystkie operacja są publiczne, ale ograniczają je prawa dostępu danego użytkownika. W ten sposób można przeglądać całą historię transakcji od początku powstania „łańcucha bloków„.

 

Do czego można wykorzystać blockchain?

Ta technologia może mieć zastosowanie w wielu dziedzinach gospodarki, energetyki, bankowość, itp. Wszystkie transakcje, które zawierane są przy użyciu łańcucha bloków mogą odbywać się bez udziału instytucji zaufania publicznego (tranzakcje są zawierane bezpośrednio między użytkownikami systemu). Blockchain może gromadzić transakcje różnych typów. Jednym z ostatnio głośniejszych zastosowań tej technologi są kryptowaluty.

 

Programowanie i technologia

Przy użyciu obecnej technologii i biorąc pod uwagę moc obliczeniową komputerów tak naprawdę księgi transakcji nie da się podrobić. Nie którzy uważają, że aby złamać system oparty na blockchain potrzebna by była moc obliczeniowa połowy urządzeń które są podłączone do globalnej sieci. Raz zapisanych transakcji w łańcuchu bloków nie da się już odwrócić – pozostają tam już na zawsze.  Wszelkiego rodzaju próby manipulacji w blokach zostaną od razu wykryte, wynika to z budowy systemu (blockchain w procesie weryfikacji i walidacji wykryje próbę nieautoryzowanych manipulacji).

 

Sposób działania i całą ideę tej technologi można zaobserwować tutaj: https://anders.com/blockchain

 

W wielu już środowiskach czy platformach mamy dostęp do szeregu bibliotek wspierających tą technologię (.NET, PHP, Java, Node.js i wielu innych). Powstaje też coraz więcej publikacji czy książek na ten temat. Pod tym adresem można znaleźć dużo ciekawych informacji na ten temat wraz z darmową książką jak rozpocząć swoją przygodę z blockchainem w C#.

Open Source Book: Programming the Blockchain in C#

 

Jak rozwinie się ta technologia i co się stanie w przyszłości tego nikt nie jest wstanie przewidzieć, ale na pewno warto się tym interesować i wiedzieć co nie co o tej technologii.

Posted by superkoder in Nowe technologie, Programowanie
Programowanie komputerów kwantowych

Programowanie komputerów kwantowych

Firma Microsoft udostępniła swoją nową platformę: Quantum Development Kit. Umożliwia ona zupełnie nowe podejście do programowania i obliczeń komputerowych. Jednym ze składników tego środowiska jest język programowania Q# i choć do łatwego dostępu do komputerów kwantowych jeszcze daleka droga, to pomału już należy myśleć o takich rzeczach :D. Mimo, że nie posiadamy takiego sprzętu platforma umożliwia nam programowanie maszyny kwantowej tak jakbyśmy ją posiadali.

 

 

Czym jest komputer kwantowy?

W tradycyjnych komputerach z jakich korzystamy na codzień dane są reprezentowane przez
fizyczny zapis dwóch stanów (cyfr: zera i jedynki) – zapis binarny. Czyli najmniejszą jednostką informacji jest bit.

W maszynach kwantowych rzecz ma się nie co inaczej. Dane są tam reprezentowane przez tzw.
stan kwantowy układu. Tam najmniejszą jednostką informacji jest tzw. kubit (eng. quantum bit).  Kubit różni się tym od swojego „młodszego brata” bita, że nie ma on ustalonej wartości 1 czy 0. Zgodnie z zasadami mechaniki kwantowej jest on w tzw. stanie pośrednim (superpozycja).  Jest to stan między „jedynką”, a „zerem”. Dopiero gdy następuje zbadanie kubitu przyjmuje on jeden z ustalonych wartości 0 lub 1.

Algorytmy (programy) kwantowe pozwalają – „w teorii” osiągnąć wyniki efektywniej i dużo szybciej niż programy uruchomione na tradycyjnym komputerze.

Co przyniesie przyszłość to się okaże, ale może to być mega krok na przód.

 

Posted by superkoder in Nowe technologie, Programowanie