JavaRush /Java Blog /Random-IT /Stiamo scrivendo un vero progetto per un portfolio - "Pro...
Roman Beekeeper
Livello 35

Stiamo scrivendo un vero progetto per un portfolio - "Progetto Java dalla A alla Z"

Pubblicato nel gruppo Random-IT
Ciao a tutti, futuri ingegneri software senior ! Negli ultimi mesi ho scritto semplici articoli che descrivono parti importanti dello sviluppo. Oggi vi racconto la mia idea! Voglio aiutarti a trovare il tuo primo lavoro. Cosa è necessario per questo? Per fare questo è necessario acquisire esperienza. Capire in cosa consistono proprio questi progetti, su cui lavorano gli ingegneri e far avanzare il mondo dell'informatica.

Tutti i materiali della serie:

“Progetto Java dalla A alla Z”: scrivere un vero progetto per un portfolio - 1Come farlo? Ho bisogno di scrivere qualcosa. Pertanto, come parte di questa serie di materiali, scriveremo passo dopo passo il nostro bot Telegram (dettagli di seguito). E allo stesso tempo, comprenderemo lo stack tecnologico di cui ha bisogno anche uno sviluppatore Java alle prime armi.

Bersaglio

Scrivi un progetto che combini il lavoro con i database, la creazione della logica aziendale di cui abbiamo bisogno e l'impostazione del lavoro per implementare il progetto e testarlo. Cosa scriveremo? Se hai intenzione di scrivere, allora devi scrivere qualcosa di veramente utile in modo che ci sia interesse per il lavoro e qualcuno possa trarre vantaggio dal risultato. Sulla base di questi dati, verrà scritto un bot di Telegram che funzionerà con il sito web JavaRush. Sarà utile? Senza dubbio! Dato che i robot di Telegram non sono così difficili da scrivere, puoi ottenere rapidamente un progetto funzionante che può essere utile.

Tempo di sviluppo

Gli articoli verranno pubblicati una volta alla settimana, quindi ci sarà tempo sufficiente per padroneggiare/ripetere/scrivere le domande se qualcosa non è chiaro. I primi articoli costituiranno la base teorica che utilizzeremo nel progetto. E poi è solo pratica.

MVP (prodotto minimo vitale)

“Progetto Java dalla A alla Z”: scrivere un vero progetto per un portfolio - 2Cos'è l'MVP? Il termine, come al solito, non è nostro, ma potete trovare una ragionevole spiegazione sul wiki . Citiamo: MVP è un prodotto che ha funzioni minime, ma sufficienti a soddisfare le prime esigenze. Il compito principale è ricevere feedback per formulare ipotesi per l'ulteriore sviluppo del prodotto. Per noi questa descrizione calza perfettamente. Una breve descrizione di tutte le funzionalità: come utente Telegram, voglio potermi iscrivere a nuovi articoli nei gruppi e ricevere notifiche quando ne vengono pubblicati di nuovi. Adoro leggere il gruppo Success Story , mi motiva a continuare a imparare e imparare qualcosa di nuovo. Sono pigro e non voglio entrare e aggiornare la pagina ogni volta . Pertanto, come programmatore, voglio semplificarmi la vita e scrivere un programma che mi invii un messaggio su Telegram sulla pubblicazione di un nuovo articolo. Di più: questo non è l'unico gruppo che seguo. Vengo da Kharkov, quindi sono interessato a leggere gli articoli pubblicati lì. Come sviluppatore di questo prodotto, sarò molto interessato a sapere se qualcuno utilizza il mio lavoro, quindi aggiungeremo funzionalità per gli amministratori in modo che possano visualizzare le statistiche del bot di Telegram. È possibile farlo? Certamente! Come? Questo è ciò che mostrerò in una serie di articoli.

Nome in codice

Ogni progetto interessante dovrebbe avere un nome in codice. Il nostro non farà eccezione, quindi per ora sarà così: JRTB (JavaRush Telegram Bot). D'ora in poi verrà chiamato così.

Quali argomenti tratteremo?

“Progetto Java dalla A alla Z”: scrivere un vero progetto per un portfolio - 3

Banca dati

È necessario comprendere immediatamente che non è possibile memorizzare lo stato (dati e informazioni) nell'applicazione. I dati devono essere archiviati in un database. Poiché non ci sono informazioni al riguardo nella formazione (per quanto ricordo :D), cercherò di colmare le lacune conoscitive di cui avremo bisogno. Cercherò di rendere lo schema del database il più semplice possibile in modo che non ci sia confusione. Questa parte includerà:
  1. Teoria di lavorare con SQL basato su MySQL.
  2. Uno strumento per lavorare con MySQL è MySQL Workbench.
  3. Versionamento del database. Flyway e base liquida.
  4. Creazione di uno schema di database.
  5. Creare un disegno dello schema del database.

Idiota

Ci sono già articoli su questo argomento. Naturalmente, nulla funzionerà senza un sistema di controllo della versione. Per iniziare a lavorare su JRTB, devi comprendere git. Puoi farlo da solo, oppure puoi leggere i miei articoli su questo argomento: Se lo desideri, puoi anche leggere informazioni sulle strategie di ramificazione, ma questo non è fondamentale in questo caso e può essere saltato.

Esperto di

Qui parleremo del sistema di assemblaggio, a cosa serve, come lo utilizzeremo, a cosa prestare attenzione e regole di buona educazione. Parleremo anche del controllo delle versioni qui e di come lo faremo esattamente.

Docker

Per rendere la nostra vita più semplice e facile e per rendere il processo di distribuzione il più semplice possibile, utilizzeremo Docker. Per fare questo, parliamo di cos'è Docker e quali comandi utili ci sono. Voglio dire subito che utilizzo Docker a livello utente e potrei non sapere o non essere in grado di fare qualcosa)) Quindi se qualcuno suggerisce come migliorare/più facile lavorare con Docker, ne sarò solo felice. Questa parte includerà:
  1. Teoria e pratica di Docker.
  2. Backup/ripristino dei dati tramite finestra mobile.
  3. Configurare il nostro progetto in modo che venga eseguito in Docker.

Script Bash

Per automatizzare il lavoro, a volte è utile scrivere uno o due script. Gli script Bash sono script che tutti gli sviluppatori comprendono in un modo o nell'altro, perché sono essenzialmente lavori da riga di comando in Linux, semplicemente salvati in un file separato.

Creazione di un'applicazione

Tutto il viaggio sarà qui. Sulla base delle conoscenze precedenti, creeremo un'applicazione Spring Boot che conterrà un oggetto bot di Telegram. Cosa faremo qui?
  1. Creare una descrizione completa delle funzionalità che dovrebbero essere presenti.
  2. Una breve descrizione di cosa è un bot di Telegram.
  3. Creazione di un'applicazione Spring Boot.
  4. Descrizione del lavoro con Lombok.
  5. Descrizione del lavoro con UniRest.
  6. Implementazione del modello di comando + lavoro con la creazione della propria annotazione per i comandi dell'amministratore.
  7. Creazione di un client per lavorare con le query JavaRush (come un elenco di gruppi, un elenco di articoli in un gruppo) utilizzando UniRest.
  8. Test. Scriviamo tutti i test possibili per coprire la nostra funzionalità.
  9. Impostazione di un sistema per il controllo della qualità del codice e creazione automatica su GitHub.
  10. Connessione del database insieme al controllo delle versioni del database.
Tutti questi passaggi verranno eseguiti passo dopo passo, in modo da comprendere meglio cosa sta succedendo.

Risultati futuri

Di conseguenza, otterremo un vero progetto che chiunque legga gli articoli potrà realizzare. Il bello di un bot di Telegram è che puoi collegare questo progetto a qualsiasi bot, in modo da non dipendere dal bot che sarà negli articoli. Dirò di più: questo è solo l'inizio di JRTB. Nuove funzionalità potranno essere discusse/aggiunte in futuro. Realizza questo bot in modo che sia utile a tutti gli studenti del progetto JavaRush. E la sensazione che altre persone utilizzino e apprezzino la tua creazione vale molto! E tu, come lettori di questa serie di articoli, potrai acquisire una vera esperienza lavorando su un progetto reale. Tradizionalmente suggerisco di iscrivermi al mio account su Github , in cui pubblico soluzioni e progetti. Tutto il lavoro su JRTB verrà svolto tramite GitHub, quindi ti consiglio di registrarti se non l'hai già fatto. Grazie a tutti per aver letto, a presto :)“Progetto Java dalla A alla Z”: scrivere un vero progetto per un portfolio - 5
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION