Cloud Music
Cloud Music
Pre neki dan mi je jedan čitalac privatno poručio: „Upravo sam završio sa učenjem Spring Boot-a, želeo bih da nađem neki projekat za vežbu, spremam se za traženje pripravničkog mesta."

Autor je tako pažljiv — zahteve čitalaca uvek ispunjava bez izuzetka, na svako pitanje odgovara. Zato sam morao da se potrudim i pronađem 2 pristojna Java projekta za vežbu, a ključno je da budu osnovni, ne previše teški 😆.
Ranije sam već preporučivao projekte vhr, mall i miaosha sa GitHub-a, ali ovog puta pomislih: zašto ne potražiti na Bilibili-u?
I zaista, Autor je našao! Bilibili je stvarno najbolji!
1. Yun E Ban (Cloud E kancelarija)
Ovo je projekat koji vas vodi da od nule izgradite Java projekat sa odvojenim front-endom i back-endom u Spring Boot-u + Vue. Epizode do P71 pokrivaju front-end, a od P72 do P131 back-end.

Tehnologije na front-endu uključuju komplet Vue ekosistema i ElementUI; na back-endu su u pitanju Spring Boot, SpringMVC, MyBatisPlus, SpringSecurity, Swagger, Redis, EasyPOI, RabbitMQ, FastDFS itd.
Video je u celosti dobar — glas autora je jasan i prijatan za slušanje.
Da bih proverio da li je u pitanju institut za obuku, i usput sačuvao vas od ulaska u zamku, dodao sam WeChat malog asistenta onako kako se tražilo:

Već po avataru pri zahtevu za prijateljstvo — slično onim reklamnim botovima koji se kriomice uvlače u grupe, hahaha.
Nakon prijateljstva, kad sam pretražio ključnu reč „Le Zijie", ispostavilo se da je zaista institut za obuku. Ali pošto su video snimke objavljene javno, a kvalitet je sasvim prihvatljiv, onda je sasvim ugodno odlučiti se da ih besplatno pogledate.
Ponekad video kursevi koje instituti za obuku objave javno mogu biti bolji od plaćenih kurseva od po nekoliko desetina hiljada juana — jer ono što se iznese javno ne sme da bude previše loše, inače bi se ugrozio sopstveni ugled.
Štaviše, Autor je ušao u jazbinu tigra i umesto vas proverio teren — izvorni kod i predavanja su dobijeni, tako da ne morate ponovo da dodajete WeChat asistenta, slobodno ih koristite.
Kako vam se čini, nije li Autorova bezbednosna intervencija lepa?
2. Mali sajt koji imitira NetEase Cloud Music
Ovo je front-end i back-end odvojen projekat koji je pružio čitalac. Pitao me je kako mu se čini projekat — a kad sam ga otvorio, ispostavilo se da je u pitanju sajt prijatelja jednog autora.

Klijentska i administratorska strana sajta realizovane su pomoću Vue okvira, server pomoću Spring Boot + MyBatis, a kao baza korišćen je MySQL. Preporučujem da ga „konzumirate" u barem 1,5× brzini.

Struktura celokupnog front-end i back-end projekta je takođe prilično jasna — evo back-enda:
├── avatorImages // korisnički avatari
├── img
│ ├── singerPic // slike izvođača
│ ├── songListPic // slike plejliste
│ └── songPic // slike pesama
├── song // čuvanje pesama
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com.example.demo
│ │ │ ├── config // konfiguracija (CORS)
│ │ │ ├── controller // kontrolni sloj, prima zahteve i vraća odgovore
│ │ │ ├── dao // sloj za rad sa podacima
│ │ │ ├── domain // klase entiteta
│ │ │ ├── service
│ │ │ │ └── impl // interfejsi Service sloja
│ │ │ └── HwMusicApplicationTests.java // ulazna tačka projekta
│ │ └── resources
│ │ ├── mapper // mapper.xml fajlovi, rad sa bazom
│ │ ├── static // čuvanje statičkih resursa
│ │ ├── templates
│ │ ├── application.properties // povezivanje sa bazom
│ │ └── generatorConfig.xml // automatsko generisanje koda pomoću MyBatis Generator
│ └── test
│ └── java
│ └── com.example.demo // za testiranje
├── pom.xml // dodavanje odgovarajućih zavisnosti i plaginova
└── targetCelokupna ideja je jednostavna: kada front-end želi da pristupi podacima, back-end pruža odgovarajući interfejs. Controller sloj osluškuje zahteve, obrada podataka se prepušta Service sloju, a Service sloj zatim preko Mapper sloja operiše nad bazom. Po završetku obrade, podaci se sloj po sloj vraćaju nazad i konačno se dostavljaju front-endu.
Autor je takođe pošten — izvorni kod je objavio kao open-source na GitHub-u.
https://github.com/Yin-Hongwei/music-website
Evo još dva prikaza efekata projekta.


Osnovne funkcije projekta su takođe potpune:
- Reprodukcija muzike
- Prijava i registracija korisnika
- Izmena korisničkih informacija i avatara
- Pretraga pesama i plejlisti
- Ocenjivanje plejliste
- Komentarisanje plejlisti i pesama
- Paginirani prikaz liste plejlisti i liste izvođača
- Sinhronizovani prikaz tekstova pesama
- Omiljeno, preuzimanje, kontrola povlačenja i kontrola jačine zvuka za muziku
- Administratorsko upravljanje korisnicima, pesmama, izvođačima i informacijama o plejlistama
Kao projekat za vežbu, sasvim je odgovarajući.
Najveća prednost rada na projektu za vežbu praćenjem videa je to što u realnom vremenu možete da vidite proces ručnog kucanja koda od strane autora, a usput možete da iskusite i radost proizvodnog menadžera — tako što autoru postavljate zahteve, haha.
Ovde delim Autorovu najveću radost tokom gledanja videa: review koda, hahaha. Posebno kada vidim da autor pogreši pri kucanju i pojavi se bag — u sebi sam izuzetno radostan (u mukama), jer me to podseća na neugodnost kad sam, kao pripravnik, od lidera dobio oštre kritike..
Nije potrebno da projekti za vežbu tokom studentskih dana budu previše ambiciozni, niti da teže „tri visoka": visokoj konkurentnosti, visokoj dostupnosti i visokim performansama. Neka budu jednostavni — unesite u njih stečena znanja, i ako postignu cilj provere rezultata učenja, to je to.
