JavaRush /Blog Java /Random-PL /Przerwa kawowa #70. Jak szybciej pisać kod Java za pomocą...

Przerwa kawowa #70. Jak szybciej pisać kod Java za pomocą Lomboka. Lista szkoleń dla początkujących programistów

Opublikowano w grupie Random-PL

Jak przyspieszyć pisanie kodu Java za pomocą Lomboka

Źródło: Dev.to W każdej aplikacji piszemy ten sam standardowy kod. Na przykład:
  • Gettery;
  • Setery;
  • Projektanci;
  • Wzór projektowy konstruktora;
  • i wiele więcej…
Czy nie byłoby miło, gdyby tę rutynową pracę można było komuś powierzyć? I tutaj Lombok może nam pomóc.Przerwa kawowa #70.  Jak szybciej pisać kod Java za pomocą Lomboka.  Moja lista szkoleń dla początkujących programistów - 1

Co on robi?

Generuje kod bajtowy dla tych typowych zadań (gettery, settery itp.) i umieszcza je w .class, dzięki czemu można je wykorzystać w kodzie, który piszemy.

Jak to się stało?

Musisz dodać zależność Lombok do swojej kompilacji Mavena. Następnie musisz opatrzyć żądane klasy, pola kilkoma adnotacjami Lombok. Spójrzmy na kod! Bez Lomboka:
public class Human {
    private int id;
    private String name;
    private int ageInYears;

    public Human() { }

    public Human(int id, String name, int ageInYears) {
        this.id = id;
        this.name = name;
        this.ageInYears = ageInYears;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAgeInYears() {
        return ageInYears;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAgeInYears(int ageInYears) {
        this.ageInYears = ageInYears;
    }

    // Builder pattern
  public Human id(int id){
        this.id = id;
        return this;
    }
    public Human name(String name){
        this.name = name;
        return this;
    }
    public Human ageInYears(int ageInYears){
        this.ageInYears = ageInYears;
        return this;
    }

    @Override
  public String toString(){
        return String.format("Human(id=%s, name=%s, ageInYears=%s)",
                this.id, this.name, this.ageInYears);
    }
}
Teraz użyjmy Lomboka:
import lombok.*;
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
@Builder @ToString
public class Human {
    @Setter(AccessLevel.NONE)
    private int id;
    private String name;
    private int ageInYears;
}
Zależność Mavena wygląda następująco:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
    <scope>provided</scope>
</dependency>
Uwaga: część dotycząca wersji ulegnie zmianie w zależności od najnowszej wersji Lombok.

Co my zrobiliśmy?

Użyliśmy adnotacji do tworzenia modułów pobierających, ustawiających, konstruktorów, wzorca projektowego Builder i implementacji toString. Możemy także wprowadzić zmiany w niektórych adnotacjach, np. w ustawianiu pola id. Ustawiamy jego poziom dostępu na Brak: oznacza to, że nie tworzymy dla niego modułu ustawiającego.

Czy warto było to zrobić?

Kiedy nie korzystaliśmy z Lomboka, napisaliśmy 52 linie . Napisaliśmy 8 linii za pomocą Lomboka. Lombok pomógł nam zmniejszyć rozmiar kodu prawie 4 razy . Wynik ten można poprawić, jeśli w naszych klasach będzie więcej zmiennych. Lombok ma o wiele więcej adnotacji z mnóstwem przydatnych informacji. Aby je zobaczyć należy wejść na stronę internetową .

Wniosek

Lombok pomaga Ci skupić się na kodzie biznesowym i nie martwić się drobnymi szczegółami (gettery/settery/konstruktory/ogólne wzorce projektowe i inne konstrukcje Java).

Lista szkoleń dla początkujących programistów

Źródło: DZone Moja koleżanka ma syna, który niedługo skończy szkołę średnią. Zna się trochę na programowaniu i zastanawia się, czy zostać programistą. Niedawno zapytał mnie: „Czego mam dalej uczyć?” Przerwa kawowa #70.  Jak szybciej pisać kod Java za pomocą Lomboka.  Moja lista szkoleń dla początkujących programistów - 2Kiedy zaczynałem uczyć się programowania, założyłem, że odpowiedzią na pytanie „Czego powinienem się dalej uczyć” będzie nowa technologia programowania, nowy język, nowa biblioteka lub coś w tym rodzaju. W miarę rozwoju kariery zmieniłem zdanie. Oprócz doskonalenia umiejętności programowania i uczenia się nowych języków, początkujący programiści powinni studiować na pokrewnych kierunkach (wyjaśnię to poniżej). W tym tekście chcę zebrać listę umiejętności, które poleciłbym programistom do opanowania. Moim celem nie jest wyszczególnianie całej aktualnej wiedzy ani udostępnianie linków do tutoriali. Zamiast tego chcę pomóc nowicjuszom w zaznajomieniu się z zestawem narzędzi, technik i umiejętności, które mogą pomóc im w pisaniu programów.

Wiersz poleceń

Myślę, że według niektórych standardów jestem już uważany za „starego”. W moich czasach korzystanie z komputera oznaczało siedzenie w DOS-ie i wpisywanie poleceń. Od tego czasu wiele się zmieniło. Bardzo ważne jest, aby nauczyć się korzystać z wiersza poleceń. Wiele narzędzi udostępnia jedynie interfejs wiersza poleceń. W niektórych przypadkach możesz pracować szybciej w wierszu poleceń. Powinieneś być w stanie wykonać podstawowe czynności, takie jak:
  • Przeglądanie katalogów.
  • Zarządzanie plikami (kopiuj/przenieś/usuń).
  • Kompilowanie i/lub uruchamianie kodu źródłowego.
Jeśli korzystasz z systemu Windows, polecam zapoznać się z Linuksem, być może używając WSL2 zamiast pełnej maszyny wirtualnej. Jeśli korzystasz z komputera Mac, możesz użyć powłoki wbudowanej w system operacyjny. Możesz także uzyskać dobre wrażenia, instalując maszynę wirtualną z systemem Linux.

Kontrola wersji

Musisz nauczyć się śledzić swój kod źródłowy za pomocą kontroli wersji. Oprogramowanie do kontroli wersji umożliwia śledzenie historii wersji projektu, co może być istotne przy debugowaniu. Ułatwia to także współpracę nad bazą kodu. GitHub i GitLab to dwie popularne witryny do hostowania projektów open source. Obaj używają Gita (jak sądzę, że sugerują nazwy). Git jest obecnie najpopularniejszym narzędziem, dlatego polecam zapoznać się z używaniem Gita w wierszu poleceń z GitHubem lub GitLabem jako repozytorium.

Sieci

Większość dzisiejszych programów wymaga przynajmniej pewnego poziomu sieci. Ważne jest zrozumienie, jak działają sieci. Powinieneś przynajmniej zrozumieć podstawy, takie jak adresy IP, porty i protokoły. Nauka o firewallach, równoważeniu obciążenia i proxy opłaci się później. I to nie tylko w karierze programistycznej. Zgadzam się, wspaniale jest zrozumieć pytanie „dlaczego Wi-Fi nie działa?” Polecam również naukę podstaw usług chmurowych takich jak AWS i Azure. Próba skonfigurowania wirtualnej chmury prywatnej AWS z podsieciami, regułami logowania i bramami zapewni Ci wrażenia z pracy w sieci.

Testowanie

Integralną częścią pisania dobrego oprogramowania jest nauczenie się testowania oprogramowania. Wielu z nas uczy się programować, a następnie „testuje” swój kod. Testowanie jednostkowe i integracyjne to niezbędne umiejętności, które można zastosować w prawie każdym oprogramowaniu, nad którym pracujesz. Chociaż testowanie może początkowo wydawać się nudne, ta umiejętność się opłaci i pozwoli Ci pracować szybciej i pewniej.

Ciągła integracja

Ciągła integracja, czyli CI, łączy testowanie i kontrolę wersji. Za każdym razem, gdy tworzysz nową iterację kodu, masz zestaw testów, które uruchamiają się automatycznie. Narzędzia CI znacznie się poprawiły w ciągu ostatnich 10 lat. GitHub i GitLab mają wbudowane rozwiązania CI (odpowiednio GitHub Actions i GitLab CI) i łatwo jest z nich zacząć. Podobnie jak w przypadku testowania, rozpoczęcie pracy z CI będzie trudne. Ale kiedy już nauczysz się podstaw, problemy znajdziesz znacznie łatwiej i szybciej. Polecam poszukać szczegółowego samouczka z przykładami dla języka programowania, którego używasz.

Umiejętności pisania

To chyba ten obszar, którego najbardziej nie doceniłem zaczynając pracę jako programista. Nie przesadzam: obecnie uważam, że najważniejszą umiejętnością, jaką programista może dodać do swojego arsenału, jest pisanie. Dobre umiejętności pisania oznaczają, że możesz jasno wyjaśnić pomysł, używając minimalnej liczby słów. Kiedy uczysz się programować, zwykle pracujesz samodzielnie, więc pisanie nie jest konieczne. Ale kiedy zaczniesz pracować w zespołach, będziesz musiał napisać:
  • Dokumentacja;
  • Zgłaszanie błędów;
  • Prośby o funkcje;
  • Sugestie klientów;
  • Dokumenty z wymaganiami;
  • E-maile (dużo e-maili!);
  • Wiadomości SMS;
  • Posty na blogu (prawdopodobnie);
Uczyć się pisać. Ćwiczenia. Weź udział w kursie pisania. Zaprocentuje to do końca życia. Także: naucz się dobrze czytać. Kiedy zaczynałem rozwój zawodowy, byłem onieśmielony dokumentami dotyczącymi wymagań. Teraz zdaję sobie sprawę, że poświęcenie kilku godzin na dokładne przestudiowanie tych informacji pozwoli Ci zaoszczędzić miesiące zmarnowanego budowania niewłaściwej rzeczy.

Inne języki programowania

W dzisiejszych czasach nie wystarczy znać tylko jeden język programowania. Prawie każdy programista powinien znać przynajmniej kilka. Ważne jest, aby uczyć się innych języków, aby uczyć się nowych technik. Polecam naukę kilku różnych kategorii języków. W kolejności malejącej: Programowanie funkcjonalne. Większość szkół nadal nie uczy programowania funkcjonalnego (FP). FP to potężne podejście, które ułatwia pisanie wielu typów kodu. Jestem stronniczy, ale poleciłbym Haskell jako najlepszy język do nauki, ponieważ pomoże ci zrozumieć FP lepiej niż wiele innych języków. Przydatna jest także nauka języka z rodziny LISP. Nauka programowania funkcjonalnego pomoże Ci napisać lepszy kod w niemal każdym języku. Programowanie systemu. Języki systemowe należą do niższego poziomu i pozwalają na lepszą kontrolę nad działaniem programu. Studiując je, dowiesz się, jak program działa w systemie, co może być bardzo przydatne do zrozumienia i debugowania problemów w innych językach. Polecam nauczyć się Rusta, potem C i C++. Języki obiektowe. Java i C# to dwa najpopularniejsze języki obiektowe w tej rodzinie. (Tak, Python i C++ są również popularne, ale podkreślę je osobno). OOP wprowadziło wiele nowych paradygmatów i prawdopodobnie nadal jest najpopularniejszym podejściem do programowania, chociaż osobiście preferuję podejścia do programowania funkcjonalnego. Jednakże można się wiele nauczyć z programowania obiektowego i istnieje duże prawdopodobieństwo, że w swojej karierze napiszesz kod obiektowy. Pisanie scenariusza. Python i Ruby to dwa popularne języki skryptowe w rodzinie aplikacji obiektowych. W szczególności Python jest szeroko stosowany w pokrewnych dziedzinach, takich jak DevOps i nauka o danych. Dodatkowo jest to prosty język, z którym dość łatwo jest zacząć.

Metody programowania

Niezależnie od tego, jakiego języka programowania używasz, warto zapoznać się z dodatkowymi technikami, które wykraczają poza Twój specyficzny język, m.in.:
  • Programowanie baz danych. Gorąco polecam naukę SQL. SQLite i PostgreSQL to dwa systemy DBMS typu open source, które warto poznać.
  • Programowanie równoległe i asynchroniczne. Dziś staje się to coraz ważniejsze.
  • Programowanie sieciowe , w szczególności tworzenie serwerów i klientów HTTP.
  • Tworzenie interfejsu internetowego przy użyciu HTML/CSS/JavaScript.
  • Serializuj dane w formatach takich jak JSON, YAML i pliki binarne.

Wniosek

Powyższe informacje mogą wydawać się skomplikowane. Nie musisz myśleć, że musisz się tego wszystkiego nauczyć, aby zostać programistą. To jest źle. Zostanie świetnym programistą wymaga czasu i praktyki zawodowej. Jeśli jeszcze nie zacząłeś programować, polecam zacząć od kilku projektów domowych. Rozważ udział w projektach open source. Dzięki temu poczujesz się komfortowo i będziesz mógł uczyć się od doświadczonych programistów. Wielu programistów uwielbia dzielić się swoją wiedzą z początkującymi.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION