Java, PHP
Debugowanie aplikacji to proces związany z naprawą błędów w kodzie, przez co jest zazwyczaj bardzo nielubiany przez programistów. Postaram się jednak przybliżyć ten temat tak, by stał się bardziej zrozumiały oraz pokazać kilka sztuczek, które powinny sprawić, że będzie on dużo szybszy i bardziej efektywny. Wprowadzenie Zgodnie z definicją debugowanie to proces polegający na systematycznej redukcji liczby błędów w oprogramowaniu. Przeprowadzany jest zazwyczaj z kontrolowanym wykonaniem kodu aplikacji przy wykorzystaniu debuggera. Samo słowo bug (z ang. robak), rozumiane jako błąd po raz pierwszy zostało…
Klonowanie jest to mechanizm polegający na duplikowaniu, czyli kopiowaniu jednego obiektu na drugi. Jednak w Javie na obiekty wskazują referencje i to właśnie przy ich pomocy można manipulować obiektami. Przypisanie obiektu do innej referencji duplikuje samą referencję, a nie obiekt, na który wskazuje. Mechanizm klonowania i metoda clone() jest jednym z potencjalnych rozwiązań dla brakującej funkcjonalności kopiowania obiektów. Jak działa clone() i Clonable w Javie Metoda clone() ma swoją implementację już w klasie Object. Jednak żeby móc sklonować obiekt danej klasy, trzeba jeszcze implementować interfejs Cloneable.…
Książka “4 godzinny tydzień pracy” opowiada historię życia autora oraz jego dążenie do osiągnięcia niezależności finansowej i poszukiwania szczęścia w życiu. Intrygujący jest w niej nawet sam tytuł. Po jego przeczytaniu człowiek zastanawia się, jakim cudem można pracować tylko 4 godziny tygodniowo!? W świecie, gdzie większość ludzi pracuje 40 godzin, a nierzadko i więcej, taka informacja musi przykuć uwagę. Jest w tym oczywiście trochę gry słownej i przesady, ale o tym nieco później. O autorze: Timothy Ferriss Timothy Ferriss (ur. 20 lipca 1977) – to amerykański…
Jednym z częstszych zarzutów wobec Javy jest jej rozwlekłość oraz potrzeba generowania dużych ilości kodu. Jednak bardzo często programiści poprzestają na samych zarzutach, nie zastanawiając się, jak można sobie z tym poradzić, a możliwości jest naprawdę całkiem sporo. W tekście pokażę, jakie mogą być dla projektu konsekwencje nierobienia niczego z obecnym stanem rzeczy oraz porównam ze sobą istniejące rozwiązania na radzenie sobie z boilerplate code. Co to jest boilerplate code? Zacznijmy od wyjaśnienia samego problemu. Kod, który tak nas denerwuje, ogólnie można nazwać “boilerplate…
Metody hashCode i equals to jedne z podstawowych metod wykorzystywanych w Javie. Ich deklaracja znajduje się już w klasie Object. Mimo iż obie metody posiadają domyślną implementację, to wykorzystanie jej lub próba napisania własnej, może przysporzyć programistom nie lada problemów. public boolean equals(Object obj) public int hashCode() Porównywanie typów prostych w Javie Do porównywania typów prostych, takich jak liczby całkowite, liczby zmiennoprzecinkowe czy wartości boolean przeznaczony jest standardowy operator porównania ==. 1 == 1 1.5 == 2.5 true == false Porównywanie obiektów w Javie W przypadku obiektów…
Lombok to stosunkowo niewielka biblioteka, rozwijana na zasadach wolnej licencji (MIT license). Najbardziej jest znana z automatycznego generowania getterów i setterów, jednak jej możliwości są dużo większe. Głównym celem jej powstania jest chęć poprawy niedogodności językowych Javy. Biblioteka udostępnia zbiór adnotacji pozwalających na automatyczne generowanie kodu, w celu ograniczenia kłopotliwego boilerplate code. Funkcjonalności Lombok Funkcjonalności udostępnione są z wykorzystaniem adnotacji na poziomie klas i metod, pełna ich lista dostępna jest na stronie projektu. @Getter/@Setter Adnotacje dodają gettery oraz settery dla wybranych pól lub dla wszystkich, jeżeli zostały dodane na poziomie…
AutoValue to rozwijana przez Google na zasadach wolnej licencji (Apache 2.0) biblioteka pozwalająca łatwiej i przyjemniej obchodzić się z klasami typu value object. Dzięki niej w bardzo prosty sposób można uniknąć czasochłonnego i błędogennego pisania oraz utrzymywania metod equals, hashCode oraz toString. Poniższy kod przedstawia prostą klasę napisaną z wykorzystaniem AutoValue. [crayon-5bb9a8b8e0beb661379557/] [crayon-5bb9a8b8e0bf1663605206/] W celu wygenerowania w pełni funkcjonalnej klasy value object, wystarczy zdefiniować abstrakcyjną klasę (interfejsy nie są wspierane) i dodać dla niej adnotację @AutoValue oraz statyczną metodę fabryczną, która utworzy nowy obiekt. Całą resztą zajmie się AutoValue.…
Protocol buffers (protobuf) to rozwijany przez Google, niezależny od języka programowania i platformy, rozszerzalny sposób na binarną serializację strukturalnych danych. Z powodzeniem można go przedstawić jako jedną z alternatyw dla XML’a. Pracę z biblioteką rozpoczynamy od określenia struktury danych oraz utworzenia na jej podstawie kodu źródłowego klas w wybranych języku programowania. Wygenerowany kod służy do przechowywania tych danych oraz ich obsługi. Geneza powstania Google w ramach swoich systemów przesyła dane w tysiącach różnych formatów. Dotychczasowo znane formaty, jak np. XML nie spisywały się dobrze w…
Niezależność finansowa i to, co z nią związane, jest jednym z najczęstszych marzeń. Kto by nie chciał przestać przejmować się codziennymi wydatkami oraz uniezależnić się od swojej nudnej, frustrującej pracy i uciążliwego szefa? Dzisiejszy świat daje nam taką możliwość. Trzeba jedynie wiedzieć, jak z niej skorzystać. Kim jest Mark? Mark Anastasi, autor poradnika, jest przedsiębiorcą internetowym oraz założycielem Inspired Marketing Group. Przypadkowe spotkanie na seminarium sprawiło, że bezrobotny wówczas ochroniarz założył swój pierwszy biznes internetowy. Już w przeciągu pierwszego miesiąca zarobił na nim 10…
Jak powstał język Java? Java wywodzi się głównie z dwóch bardzo popularnych języków programowania C++ oraz Smalltalk, czerpiąc z nich to, co najlepsze. Koncepcja zarządzania pamięcią oraz pomysł maszyny wirtualnej zostały zaczerpnięte ze Smalltalka, a znaczna część składni oraz słów kluczowych z C++. Zrezygnowano natomiast z bardziej skomplikowanych i kłopotliwych elementów, takich jak wielokrotne dziedziczenie, przeciążenie operatorów i operacje na wskaźnikach. Język ten został zaprojektowany i zaimplementowany w laboratoriach Sun Microsystems w Mountin View (Kalifornia) pod kierownictwem Jamesa Goslinga. James Gosling jest również autorem…
Co to jest komentarz? Komentarze to swego rodzaju zapiski programisty w kodzie aplikacji. Ich celem jest przekazanie jakiejś informacji dla siebie samego lub dla innych osób czytających ten kod. Komentarze są widoczne tylko w kodzie źródłowym i przy kompilacji są pomijane, dlatego nie mają wpływu na samo działanie wynikowej aplikacji. Jednak jest to integralna część każdego programu i nie powinna być pomijana. Dzięki nim można lepiej zrozumieć intencje programisty, co jak w praktyce się okazuje, nie zawsze jest takie oczywiste ? W Javie mamy…
Pierwszy program Java Umiejętność kompilacji aplikacji javowej z wykorzystaniem „czystej” konsoli jest niezmiernie ważna, mimo iż w praktyce dość rzadko się z niej korzysta. Jednak dzięki temu ćwiczeniu zwiększa się świadomość developera i w przyszłości może to pozwolić uniknąć wielu potencjalnych problemów. Przykładowa aplikacja będzie składała się z jednej klasy o nazwie: HelloWorld, która będzie umieszczona w pliku tekstowym o nazwie: HelloWorld.java. Nazwa pliku ma bardzo duże znaczenie. W Javie w jednym pliku może znajdować się tylko jedna klasa publiczna, a plik musi mieć…
Java IDE IDE (Integrated Development Environment) – czyli zintegrowane środowisko programistyczne jest to aplikacja lub zespół aplikacji (środowisko) projektowany z myślą o maksymalizacji produktywności programisty. IDE charakteryzuje się tym, że udostępnia bardzo dużo różnorakich funkcjonalności, np. edycję kodu źródłowego, jego kompilację, automatyzację procesu budowania aplikacji, tworzenie baz danych, podpowiadanie składni, debugger, profiler, zarządzanie wersją kodu oraz wiele innych. Większość tych czynności można wykonać bez pomocy IDE, wykorzystując inne zewnętrzne narzędzia, jednak dzięki wykorzystaniu zintegrowanego środowiska praca z kodem staje się dużo przyjemniejsza i bardziej…
Instalacja Java Do pracy na lokalnym komputerze z Javą niezbędne jest zainstalowanie JDK (Java Development Kit), czyli zbioru narzędzi dostarczonego za darmo przez Oracle. Java JDK W skład JDK wchodzi między innymi: javac – kompilator jar – archiwizator javadoc – generator dokumentacji javah – generator plików nagłówkowych javap – deasembler jdb – debugger Dodatkowo razem z paczką JDK na komputerze zostanie zainstalowane JRE (Java Runtime Environment) – czyli środowisko uruchomieniowe dla programów napisanych w języku Java, składające się z JVM (Java Virtual Machine) –…
Co to jest technika pomodoro? Pomodoro to jedna z najprostszych, a zarazem jedna z najskuteczniejszych technik zarządzania własnym czasem i uwagą, poprawiająca efektywność wykonywanej pracy. Technika została opisana na stronie PomodoroTechnique Historia Twórcą techniki jest Włoch, Francesco Cirillo, natomiast sama nazwa pochodzi od kuchennego czasomierza, który bardzo często jest w kształcie pomidora. Jak działa ta cudowna technika? Przygotuj listę zadań – Zadania powinny być ułożone według priorytetów, w kolejności w jakiej mają być wykonywane. Zadania powinny być możliwie małe, żeby dało się zrealizować je…