Witam wszystkich, przyszłych starszych inżynierów oprogramowania ! Przez ostatnie kilka miesięcy pisałem proste artykuły opisujące ważne elementy rozwoju. Dziś opowiem Wam o moim pomyśle! Chcę Ci pomóc w zdobyciu pierwszej pracy. Co jest do tego potrzebne? Aby to zrobić, musisz zdobyć doświadczenie. Zrozum, na czym polegają te właśnie projekty, nad którymi pracują inżynierowie i popychają świat technologii informatycznych do przodu.
Jak to zrobić? Muszę coś napisać. Dlatego w ramach tej serii materiałów krok po kroku napiszemy własnego bota telegramowego (szczegóły poniżej). Jednocześnie zrozumiemy stos technologii, którego potrzebuje nawet początkujący programista Java.
Cel
Napisz projekt, który połączy pracę z bazami danych, utworzenie potrzebnej nam logiki biznesowej oraz skonfigurowanie pracy w celu wdrożenia projektu i jego przetestowania. Co będziemy pisać? Jeśli zamierzasz pisać, musisz napisać coś naprawdę przydatnego, aby było zainteresowanie pracą i ktoś mógł skorzystać z wyniku. Na podstawie tych danych zostanie napisany bot telegramowy, który będzie współpracował z witryną JavaRush. Czy to będzie przydatne? Bez wątpienia! Dzięki temu, że pisanie botów telegramowych nie jest tak trudne, można szybko uzyskać działający projekt, który może się przydać.Czas rozwoju
Artykuły będą publikowane raz w tygodniu, więc będzie wystarczająco dużo czasu na opanowanie/powtórzenie/napisanie pytań, jeśli coś będzie niejasne. Pierwsze artykuły będą stanowić podstawę teoretyczną, którą wykorzystamy w projekcie. A potem to już tylko praktyka.MVP (minimalnie opłacalny produkt)
Co to jest MVP? Termin jak zwykle nie jest nasz, ale rozsądne wyjaśnienie można znaleźć na wiki . Cytujemy: MVP to produkt, który ma minimalne funkcje, ale wystarczające do zaspokojenia pierwszych potrzeb. Głównym zadaniem jest otrzymanie informacji zwrotnej w celu postawienia hipotez dotyczących dalszego rozwoju produktu. Dla nas ten opis pasuje idealnie. Krótki opis wszystkich funkcjonalności: Jako użytkownik Telegramu chcę móc subskrybować nowe artykuły w grupach i otrzymywać powiadomienia o publikacji nowych. Uwielbiam czytać grupę Historia Sukcesu , motywuje mnie to do dalszej nauki i uczenia się czegoś nowego. Jestem leniwy i nie chcę za każdym razem wchodzić i odświeżać strony . Dlatego ja, jako programista, chcę ułatwić sobie życie i napisać program, który wysłałby mi wiadomość na Telegramie, że ukazał się nowy artykuł. Co więcej: nie jest to jedyna grupa, którą śledzę. Pochodzę z Charkowa, więc chętnie czytam artykuły tam publikowane. Jako twórca tego produktu będę bardzo zainteresowany tym, czy ktoś korzysta z mojej pracy, dlatego dodamy funkcjonalność dla administratorów, aby mogli przeglądać statystyki bota telegramu. Czy jest to możliwe? Z pewnością! Jak? To właśnie pokażę w serii artykułów.Kryptonim
Każdy fajny projekt powinien mieć kryptonim. Nasz nie będzie wyjątkiem, więc na razie będzie tak: JRTB (JavaRush Telegram Bot). Dalej będzie się to tak nazywać.Jakie tematy będziemy poruszać?
Baza danych
Musisz od razu zrozumieć, że w aplikacji nie można przechowywać stanu (danych i informacji). Dane muszą być przechowywane w bazie danych. Ponieważ na szkoleniu nie ma o tym żadnej informacji (o ile pamiętam :D), postaram się uzupełnić potrzebne nam luki w wiedzy. Postaram się maksymalnie uprościć schemat bazy danych, aby nie było żadnych nieporozumień. Ta część będzie obejmować:- Teoria pracy z SQL w oparciu o MySQL.
- Narzędziem do pracy z MySQL jest MySQL Workbench.
- Wersjonowanie bazy danych. Flyway i baza płynna.
- Tworzenie schematu bazy danych.
- Utwórz rysunek schematu bazy danych.
Git
Istnieją już artykuły na ten temat. Oczywiście nic nie będzie działać bez systemu kontroli wersji. Aby rozpocząć pracę nad JRTB, musisz zrozumieć git. Możesz to zrobić sam lub możesz przeczytać moje artykuły na ten temat: Jeśli chcesz, możesz także przeczytać o strategiach rozgałęziania, ale tutaj nie jest to krytyczne i można je pominąć.Mavena
Porozmawiamy tutaj o systemie montażu, do czego służy, jak będziemy z niego korzystać, na co zwrócić uwagę i zasadach dobrych manier. Porozmawiamy tutaj również o wersjonowaniu i o tym, jak dokładnie to zrobimy.Doker
Aby uczynić nasze życie prostszym i łatwiejszym oraz maksymalnie uprościć proces wdrażania, będziemy korzystać z Dockera. Aby to zrobić, porozmawiajmy o tym, czym jest Docker i jakie są przydatne polecenia. Od razu chcę powiedzieć, że korzystam z Dockera na poziomie użytkownika i być może czegoś nie wiem lub nie umiem)) Zatem jeśli ktoś zasugeruje jak usprawnić/ułatwić pracę z Dockerem, to będę się tylko z tego cieszył. Ta część będzie obejmować:- Teoria i praktyka Dockera.
- Tworzenie kopii zapasowych/przywracanie danych za pomocą okna dokowanego.
- Konfigurujemy nasz projekt tak, aby działał w Dockerze.
Skrypty Basha
Aby zautomatyzować pracę, czasami warto napisać jeden lub dwa skrypty. Skrypty Bash to skrypty, które wszyscy programiści rozumieją w takim czy innym stopniu, ponieważ zasadniczo działają w systemie Linux z wiersza poleceń i są po prostu zapisywane w osobnym pliku.Tworzenie aplikacji
Cały napęd będzie tutaj. Bazując na dotychczasowej wiedzy zbudujemy aplikację Spring Boot, która będzie zawierała obiekt bota telegramu. Co będziemy tutaj robić?- Stworzenie pełnego opisu funkcjonalności, która powinna się tam znaleźć.
- Krótki opis tego, czym jest bot telegramowy.
- Tworzenie aplikacji Spring Boot.
- Opis pracy z Lombokiem.
- Opis pracy z UniRest.
- Implementacja wzorca Command + praca z tworzeniem własnych adnotacji do poleceń administratora.
- Stworzenie klienta do pracy z zapytaniami JavaRush (takimi jak lista grup, lista artykułów w grupie) przy użyciu UniRest.
- Testowanie. Napiszmy wszystkie możliwe testy sprawdzające naszą funkcjonalność.
- Skonfigurowanie systemu sprawdzania jakości kodu i automatycznego budowania na GitHubie.
- Podłączenie bazy danych wraz z wersjonowaniem bazy danych.
GO TO FULL VERSION