Java >> Java tutorial >  >> Tag >> Stack

Techstack Framework for lejereFeedback

Som udvikler træffer vi forskellige valg baseret på, hvad der er tilgængeligt for os, og hvad vi ved. Men er disse valg altid bedre? Det kan de ikke eller de kan. Det kommer virkelig an på. I dette indlæg beskriver jeg den techstack-ramme, som jeg brugte til at bygge lejers feedback.

Du kan læse mit indlæg, hvordan jeg kom på en idé til at bygge en ansøgning til lejere-feedback.

Jeg ønskede at beskrive processen med de valg, jeg traf for at vælge en tech stack-ramme til opbygning af applikationen. I betragtning af min ekspertise inden for Spring Boot, var det et standardvalg at bruge til at bygge denne applikation. Der er andre faktorer, jeg har taget i betragtning, såsom den nemme kodning, nem implementering som en mikroservice-baseret applikation i skyen og docker.

Feedback af udviklingsramme for lejere

Til udviklingen af ​​applikationen var mit fokus på genbrug af kode. Da jeg har skrevet få applikationer som en del af denne blog ved hjælp af Spring Boot, var der godkendelse, login-formularer, tilmeldingsformularer, det meste af den kode var let tilgængelig. En ting, jeg skal tænke igennem for LejereFeedback var databasemodellering.

Feedback af databaseramme for lejere

Til udvikling af en databasebaseret applikation brugte jeg mysql som udviklingsdatabase. I produktionen ændrede jeg det til postgresql .

Hvorfor ændres databasen?

Heroku-understøttelse af mysql var ikke ligetil, så jeg foretrak det, der var tilgængeligt som standard, og det var postgresql . Jeg er nødt til at lave et par ændringer til mysql-scripts. Jeg kunne have automatiseret disse scripts gennem liquibase, men det foretrak jeg ikke for den første version af produktet. Når jeg i fremtiden planlægger at tilføje flere ændringer til databasemodellen, vil jeg tilføje liquibase-baserede scripts.

Godkendelsesskema

Der var nogle spørgsmål om, hvorfor en bruger skal logge ind på en RentersFeedback internet side. Nå, nogen skal sende disse anmeldelser, før folk kan gennemse dem. Du skal logge ind, hvis du vil skrive en anmeldelse.

Det nemmeste valg var at have formularbaseret login, selvom det er ved at blive gammelt og ikke sikkert. Jeg føler stadig, at de fleste brugere ville bruge e-mail til at logge på. Brugeradgangskoder gemmes i et krypteret og hashed format i databasen.

En anden mekanisme, jeg besluttede at tilføje, var OAuth2 OpenId protokol ved at bruge Google API til det samme. Det var nemt at implementere og noget jeg har ekspertise i.

Jeg kunne tilføje andre sociale logins, men jeg foretrækker at holde det enkelt, og hvis behovet opstår, vil jeg tilføje disse logins i fremtiden.

Ved at bruge Google API fik jeg mig til at bruge Redis Cache. Jeg havde ikke tænkt mig at bruge cache, da applikationen stadig er i begyndende stadier, men nu er den der, så fremtidig skalering ville være nemmere fra et ydeevneperspektiv.

Brugergrænseflade

Brugergrænsefladen blev bygget ved hjælp af Spring Boot-leverede thymeleaf-skabeloner sammen med Twitters Bootstrap CSS-bibliotek og javascript-bibliotek. Til søgefunktionen har jeg brugt javascript-biblioteket med Google-søge-API'er.

Efter at have implementeret applikationen på Heroku stødte jeg på et par problemer med at have formularer offentligt tilgængelige. For at undgå spams vil jeg tilføje Captcha på disse formularer. Jeg vil vise, hvordan man bruger reCaptcha API'er i næste indlæg.

For at give brugerne mulighed for at nulstille adgangskoden, har jeg brugt Spring Boot Email-systemet. Dette var en nem implementering, når du først ved, hvordan forgot your password flow virker.

Implementeringsmiljø

Jeg brugte Heroku til at implementere min applikation. Heroku har god dokumentation. Det er meget nemt at synkronisere med dit GitHub-lager. Så hvis du skubber dine ændringer til GitHub, synkroniseres den for at bygge og implementere på Heroku.

Spørgsmål

At vælge den rigtige tech stack-ramme til din applikation kan være en vanskelig opgave, hvis du er nybegynder. Da jeg har erfaring med at bygge applikationer, var valget af denne techstack-ramme til lejere-feedback et ligetil valg. Hvis du har spørgsmål om implementering, hvorfor jeg brugte bestemt teknologi, og hvordan den kan forbedres, kan du skrive en kommentar på denne blog, og jeg vil besvare disse spørgsmål.


No
Java tag