Angular to jeden z najpopularniejszych frameworków frontendowych. Poza jego licznymi zaletami przyczyn popularności może się doszukiwać w tym, że jest to technologia, która zawiera dużo podobieństw spotykanych w rozwiązaniach backendowych. Dlatego programiści Java nie mają problemów z nauką Angulara, a przy jego eksplorowaniu można dobrze się bawić 🙂
W tym artykule wskazuje podobieństwa pomiędzy Angular, a Java, natomiast jeśli interesuje Cię praktyczny poradnik jak z lekkością przyswoić Angulara w 45 min to zapraszam Cię do obejrzenia mojego materiału na YouTube:
1. Dobre praktyki w Angular
Angular posiada podzieloną strukturę na klasy, interfejsy, komponenty, serwisy i pozostałe elementy w zależności od odpowiedzialności jakie pełnią.

Ponadto jasny podział odpowiedzialności wymusza tworzenie rozwiązań zamkniętych na modyfikacje, a otwartych na rozbudowę. Podobnie całość uzupełniają modyfikatory dostępów, które umożliwiają na odpowiednie zarządzanie zależności.
2. Silne typowanie i wnioskowanie typów
Przede wszystkim język – TypeScript, który jest wykorzystywany do tworzenia kodu projektu Angular’owego, jest składniowo zbliżony do Java. Wspiera on silne typowanie, a również konwencja jest bliska Javie, ponieważ wykorzystywany jest camelCase:
result: string; messageForUser = 'Hello!'; // wnioskowanie typu
// przyklad metody checkValue(value: number) { if (value > this.rootObject.rates.PLN) { this.result = 'podales wartość za dużą'; } else { this.result = 'udało się, gratulacje!'; } }
3. Angular i wstrzykiwanie zależności
Rzeczą często wykorzystywaną w pracy ze Spring Boot, EJB czy podobnym rozwiązaniu jest możliwość wykorzystywania wstrzykiwania zależności. Podobnie Tworząc aplikacje w Angular również możesz ze swobodą korzystać z mechanizmu Dependency Injection.
A oto przykład wstrzyknięcia klienta HTTP do konstruktora w TypeScript
constructor(private httpClient: HttpClient) { }
4. Repozytorium zależności Maven vs NPM
Z wykorzystaniem systemu budowania możemy w łatwy sposób zarządzać fazami budowania lub zautomatyzować pobieranie zależności w projekcie. Znany plik Java developerom – pom.xml zawierający szczegółowe informacje na temat projektu, oraz wszystkie uwzględnione w nim zależności. Ma on również swój odpowiednik w Angular, co prawda nie jest to XML, ale równie czytelny JSON:
{ "name": "currency-game", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "~9.1.0", "@angular/common": "~9.1.0", "@angular/compiler": "~9.1.0", "@angular/core": "~9.1.0", "@angular/forms": "~9.1.0", "@angular/platform-browser": "~9.1.0", "@angular/platform-browser-dynamic": "~9.1.0", "@angular/router": "~9.1.0", "rxjs": "~6.5.4", "tslib": "^1.10.0", "zone.js": "~0.10.2" }
Natomiast managerem odpowiadającym za zarządzanie paczkami jest NPM – Node package manager.
5. IntelliJ IDEA
Przede wszystkim IntelliJ IDEA daje pełne wsparcie do zakładania i zarządzania projektem. Jego wsparcie wręcz prowadzi programistów za rączkę.

Dlatego świetnie sprawdza się w podpowiadaniu składni, dawania sugestii rozmieszczenia kodu i wiele innych rad, które na początkowym etapie nauki są na cenę złota 🙂
Podsumowanie
Podobieństw jest znacznie więcej – czy to na poziomie składniowym czy też architektonicznym. Jednak korzystanie z tego rozwiązania dostarcza wiele radości i warto spróbować w ramach oderwania się od ciągłej walki z Javą i napisanie przykładowego projektu, który na pewno wciągnie na dużo dłużej niż wstępnie zakładaliśmy 🙂
Oczywiście zapraszam Cię do obejrzenia mojego video, które jest na początku artykułu, aby zapewnić sobie szybki start w ten framework 🙂
A jakie podobieństwa Ty jeszcze widzisz? Co najbardziej urzeka Cię w tym frameworku? Jestem ciekawy dyskusji 🙂