Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  6 4851
Hei

jeg er en jente med bachelor i informatikk fra uio. Der har jeg hatt litt diverse emner som til slutt ikke helt har gjort meg forberedt for sommerjobben jeg har fått meg i sommer.

Her skal vi kode i java, samtidig som vi skal kommunisere med databaser og dette skal ut på en nettside, og vi skal da også bruke javascript til dette.

Det jeg føler meg tryggest i er java, og det kun ut til terminal. Jeg har også hatt om databaser, modellering og sql-spørringer.

Det jeg trenger hjelp til er å se sammenhengen mellom disse komponentene, da jeg kun har brukt java og sql hver for seg. Og hvordan skal jeg tilpasse meg i java mtp at dette skal ut på nettet og ikke terminal?

Noen tips på filmer eller bøker jeg burde røre så jeg kan begynne å forstå sammenhengen og flyten?

Setter pris på all hjelp.
Gratulerer med sommerjobb!

Nå er det litt vanskelig å svare på et slikt åpent spørsmål, og hvordan man arbeider mot en nettside med java/database og javascript avhenger veldig av hva slags rammeverker (om noen) som blir benyttet.
Et godt sted å starte vil jeg si er å lære om MVC (Model view controller) modellen av webutvikling. Det går kort sagt ut på tankegangen bak de forskjellige komponentene av en webside, hvor model tilsvarer database, controller tilsvarer backend logikken og view er HTML/CSS/Javascript
Trådstarter
4 0
Takk for det!

Forstår at innlegget mitt var veldig lite spesifikt, men det er også derfor jeg trenger hjelp.
Det brukes express som rammeverk lærte jeg meg nå. Foreløpig sier det meg veldig lite.
Express er et rammeverk til Node.js. Altså JavaScript.

Det er masse tutorials og bøker om Node.js:

https://stackoverflow.com/questions/...d-with-node-js
Limited edition
Moff's Avatar
Jeg begynner å lure på om noen kanskje har vært utydelig da de beskrev denne jobben. Jeg jobber mye med web-applikasjoner selv, og jeg kan ikke helt skjønner hvorfor noen i 2017 ønsker å lage en web-applikasjon bygget med Java. Java kan brukes til mye rart, for all del, men jeg tror det er sannsynlig at det de ønsker er en web-applikasjon bygget med Node.JS (JavaScript), ikke Java. Selv om navnene er like, så er det jo ganske stor forskjell på Java og JavaScript.

JavaScript er et språk som i all hovedsak brukes i front-end av en web-applikasjon. Det vil si at det kjøres i nettleseren til brukeren som besøker nettsiden, og det har da tilgang til å manipulere alle grafiske elementer som brukeren ser. Node.JS er en back-end, en webserver, som bruker JavaScript som sitt programmeringsspråk. En stor fordel med å bruke Node.JS er da at man kan skrive mer eller mindre samme språk for både front- og back-end, noe som ikke var mulig i gamle dager. Alt som foregår back-end har tilgang til å gjøre ting med filer du har på server-maskina di, og det inkluderer typisk databaser.

Om jeg forstår spørsmålet riktig, så vil det være sånn at databasen og SQL hører til det som er back-end. Du skriver kode i Node.JS som sørger for å kjøre SQL-spørringer mot databasen, og hente ut den informasjonen brukeren spør etter. Dette printes da ut til brukeren i form av en nettside i stedet for en terminal.

Nettsider har gjerne en litt anderledes flyt enn et Java-program har (eller et annet PC-program for den del). Forskjellen er at et vanlig program starter opp og går inn i en loop, som holder programmet i live til brukeren velger å avslutte det. Det er relativt vanlig at programmet åpner en tilkobling mot en eventuell database, og holder denne tilkoblingen i live så lenge programmet kjører. Når det kommer til nettsider, så er de gjerne med A til Å-orientert. Brukeren åpner nettsiden, og dette gjør at webserveren din (Node.JS) starter en prosess. Det er ingen loop som holder dette i live, den starter bare på toppen og kjører gjennom helt til den er ferdig med koden sin. Det siste som skjer her er som regel at den ferdige nettsiden sendes tilbake til brukeren og vises i en nettleser. Det betyr at du som regel gjør database-tilkoblinger, SQL-spørringer og deretter avslutter alle ressurser du har brukt hver gang brukeren åpner en ny side (eller refresher siden han/hun står på).

(Og her må jeg hive inn en teknisk kommentar, fordi noen ellers vil pirke på det: Moderne webservere bruker connection-pooling og vil derfor ikke åpne en ny database-tilkobling ved hver eneste page load, men dette er som regel noe som skjer automatisk i bakgrunnen, og derfor ikke noe du trenger å tenke på når du skriver koden. Det vil i mange tilfeller derfor være fordelaktig om du ikke stenger database-tilkoblingene du har brukt. Er litt usikker på hvordan Node.JS håndterer dette, men det finner du sikkert ut av.)

Long story short, dette er en web-applikasjon:

Kode

1 - Brukeren åpner nettleseren sin og går til din nettside
2 - Webserveren din (Node.JS) mottar forespørselen om å åpne nettsiden
3 - Webserveren starter opp filene du har skrevet, og de sørger for å klargjøre informasjon som skal sendes til brukeren. I dette tilfellet så skal du sikkert hente noe info fra en database, så da er det naturlig at koden din åpner en forbindelse til databasen, kjører noen SQL-spørringer og slike ting
4 - Når koden din er ferdig å kjøre sender webserveren den informasjonen du har klargjort tilbake til brukeren
5 - Brukeren får opp nettsiden du har satt sammen i nettleseren sin. Hvis nettsiden inkluderer JavaScript (altså front-end-JavaScript), så vil dette kjøre nå
6 - Alle prosesser er ferdige, brukeren er klar for å trykke seg videre til en annen nettside via en link eller noe sånt
En liten P-PS: MVC er litt oldschool nå. MVVM er det nye. Tåpelige forkortelser, I know, men det går i praksis ut på at du gjør mer behandling av data i front-end enn tidligere, og har en ekte, fungerende view-model i nettleseren. Det er vanlig (og praktisk) å bruke tredjeparts biblioteker for å få til dette. Jeg bruker KnockOut.JS selv, og er storfornøyd med det. Facebook har sitt eget rammeverk som heter React.JS, som er det de bruker på Facebook (obviously). Google har også et eget rammeverk som heter Angular, som antakeligvis er det største og mest populære av dem.
Vil bare slenge en kommentar på det han/hun forrige skrev, mye bra men det om at java ikker er egnet til webapps er nok ganske feil. Tvert imot er java ett av de mestse brukte språkene i verden for webapplikasjoner og har bred støtte for mange rammeverk, metoder å kjøre samt sikkerhet på hjemmesider. Hvordan bedriften du jobber i implementerer i vet jeg ikke, men det er vanlig å bruke tomcat server, Java Spring og Java WebSockets, ta en titt p[ det. Det finnes og mange andre gode javarammeverk for webutvling.

Har noen venner i de store konsulenthusene og jobber selv med programmering, de sier at rundt 90% av alle webapp prosjektene de gjør blir gjort i Java. Så det er absolutt relevant, da med noe javascript krydder oppå som feks React.

Det du trenger mest er nok fundamental erfaring, få på bilblioteket til UiO eller kjøp en javabok der de har eksempler med java og database sammen, gjør dem! Det er viktig å forstå hvordan disse snakker sammen og hvordan de forskjellige lagene er separert (og spesielt front og back end!)
Trådstarter
4 0
Mye gode tips som jeg skal ta til meg her.
For å rette på mitt tidligere innlegg er det ikke express som skal brukes i denne sammenhengen, men spring boot.
Og jeg skrev ikke feil da jeg forklarte vi skal skrive i java, det stemmer.