Gå til innhold

Hvilke teknologier benyttes ved utvikling av en moderne webapplikasjon?


Anbefalte innlegg

Jeg har noen idéer til webportaler og webapplikasjoner som jeg har lyst til å realisere. Jeg drev en del med utvikling av nettsider og programmering på hobbybasis for 10-15 år siden. Jeg har altså litt erfaring innenfor HTML, PHP og MySQL, men er nok generelt veldig utdatert på området.

 

Jeg ønsker å komme i kontakt med noen kompetente freelancere som kan hjelpe meg med å utvikle disse idéene i praksis. Det jeg lurer på er da hvilken kompetanse jeg egentlig er på jakt etter. Når jeg ser på GetApp.com (http://www.getapp.com/) har jeg inntrykk av at disse applikasjonene i stor grad utvikles etter en felles mal/teknologi. Er det noen som kan fortelle meg hva som benyttes?

Endret av Gullars
Lenke til kommentar
Videoannonse
Annonse

Jeg har noen ulike idéer av forskjellig kompleksitetsgrad. Tanken er å teste noen av de enklere idéene mot potensielle samarbeidspartnere før vi eventuelt går videre med de litt tyngre.

 

Men jeg ønsker å holde meg til det som regnes som etablerte standarder innen utvikling av denne typen applikasjoner. Det er derfor jeg spør hvilke typer teknologier som ligger bak dem, slik at jeg kan henvende meg til utviklere med riktig kompetanse.

Endret av Gullars
Lenke til kommentar

Ta en titt på skjermbilder etc. på disse sidene:

 

http://www.getapp.com/freshbooks-application

http://www.getapp.com/mavenlink-professional-services-automation-application

http://www.getapp.com/jobber-application

http://www.getapp.com/proworkflow-project-management-software-application

http://www.procurify.com/

 

...eller hvilken som helst av de andre applikasjonene på getapp.com.

 

Disse applikasjonene har veldig mye til felles i form av "look and feel". De er også en del av et stort økosystem med tanke på integrasjoner etc.

 

Mitt inntrykk er at det er etablert en eller annen form for "standard" (eller mer i retning av utviklende beste praksis) for hvordan slike applikasjoner skal utvikles har noe til felles når det kommer til teknologien de er bygd på. I så tilfelle, hva er enhetlig? Er alle bygd med PHP som programmeringsspråk og MySQL som database? Hva benyttes for å lage animasjoner og dynamiske løsninger i front-end?

Endret av Gullars
Lenke til kommentar
Gjest Slettet+1523

Det er selvfølgelig viktig å presisere at look and feel ikke nødvendigvis har så mye med det funksjonelle å gjøre her; du kan få et godt grensesnitt ved å basere applikasjonen på Bootstrap uansett hva du har i bunnen.

 

Og noen universell etablert standard for hvordan apper bygges er det absolutt ikke. Det finnes mange ulike språk, teknologier og rammeverk som kan brukes litt avhengig av hva du trenger; det finnes flere PHP-rammeverk som kan gjøre jobben godt (f.eks Laravel eller CakePHP), du kan bygge backend'en i Java, du kan lage applikasjonen i Python, du kan bruke full-stack JavaScript (Node.js, Express, AngularJS and the like)... Mulighetene er utallige.

 

Personlig foretrekker jeg en JavaScript-stack over PHP selv om jeg kan begge og ofte bruker begge i mine prosjekter, både personlig og profesjonelt. Anbefaler å ta en titt på Node og Angular, veldig spennende og morsomme saker å jobbe med.

Lenke til kommentar

Bootstrap er i vinden for tiden og mye brukt, men er på ingen måte en standard utover det. Skal du utvikle moderne webapplikasjoner er det gjerne "mobile first" som er et av de viktigste konseptene å tenke på. Angular er et godt tips for applikasjonsutvikling, men er bare et av flere lignende ramerverk. Avhengig av hva du skal lage holder det med front-end, men mest sannsynlig trenger du en solid back-end i tillegg. Django og Node er to som kan være verdt å sjekke litt ut :)

Lenke til kommentar

Takker for gode svar, @hernil og @OneFatCat!

 

Jeg har nå forsøkt å lese meg litt opp på nevnte rammeverk og teknologier. For en som bare har brukt HTML/PHP/MySQL fra scratch i Notepad (for 10-15 år siden) er det mye ny terminologi å sette seg inn i, men det er veldig interessant. Forstår jeg det riktig hvis jeg oppsummerer som følger?

 

Front-end:

  • Brukergrensesnittet (look and feel) kan lages med Bootstrap (jeg velger nok å gå for dette).
  • Dynamisk funksjonalitet og annet "fiksfakseri" kan lages ved hjelp av f.eks. Angular, som jeg forstår er mer som et front-end-rammeverk å regne(?).
  • Er det slik å forstå at dette er en kombinert utgave av Bootstrap og Angular? http://angular-ui.github.io/bootstrap/
  • Hvordan bruker man Angular og Bootstrap i praksis? Snakker vi koderedigering eller tilbyr disse verktøyene et form for WYSIWYG-GUI?

Back-end:

  • Her forstår jeg det slik at jeg står helt fritt til å velge teknologi/rammeverk uavhengig av front-end?
  • Gode PHP-alternativer: Laravel og CakePHP
  • Gode JavaScript-alternativer: Node, Express og Django
  • Database: Er det fortsatt MySQL som gjelder?

Beklager om disse spørsmålene fremstår noe dumme, men som dere nok sikkert forstår var jeg helt selvlært på området - og nå er jeg ganske så utdatert...

Lenke til kommentar

Database: Alt etter hva man trenger. NoSQL er jo veldig inn for tiden, men for folk flest er mySQL fortsatt mer enn godt nok.

 

Du lister Django under JavaScript-alternativer. Django er et python-rammerverk for å skrive backend i.

Lenke til kommentar
Gjest Slettet+1523

Database: Alt etter hva man trenger. NoSQL er jo veldig inn for tiden, men for folk flest er mySQL fortsatt mer enn godt nok.

 

Det er også verdt å merke at det er en ganske stor forskjell også her: noSQL-systemer er ofte document storages, mens MySQL er en relasjonsdatabase. Dersom du er vant med MySQL og måten relasjonsdatabaser fungerer på er det generelt lite å hente fra et bytte til for eksempel MongoDB, annet enn for den lettere syntaksen.

 

Ellers stemmer det nokså greit som du sier, Gullars: Bootstrap kan brukes på toppen av det meste, slik at det gjelder å velge noe som passer til formålet. Dersom du trenger høy grad av interaktivitet og dynamisk uthenting/innlegging av data ville jeg basert meg på Angular med en REST-service i bunnen. Dersom det ikke er noe problem med statiske sider og at nye sider lastes for hvert museklikk, kan du klare deg helt fint på PHP. Ikke tilpass applikasjonen du vil lage etter teknologien du vil bruke, men gjør det heller omvendt; Angular ville for eksempel duge dårlig til et CMS bare fordi det er asynkront av natur, for eksempel.

 

Det å skrive kode fra bunnen er fortsatt det beste du gjør, WYSIWYG er like kjipt da som nå. Bruk en god editor, f.eks Sublime Text eller Atom, begge kan utvides med plugins som er veldig nyttige. Den greieste måten å teste på er å kjøre opp en webserver lokalt på PCen din, for eksempel ved å bruke Vagrant eller en annen virtualiseringsløsning, særlig hvis du bestemmer deg for å prøve deg på Node.js. Da slipper du å styre med opplastninger til en ordentlig server via FTP.

 

Håper dette var litt til hjelp!

Endret av Slettet+1523
Lenke til kommentar

  • Hvordan bruker man Angular og Bootstrap i praksis? Snakker vi koderedigering eller tilbyr disse verktøyene et form for WYSIWYG-GUI?

Back-end:

 

Angular-bootstrap koder du manuelt. Men det fins sikkert wysiwyg-verktøy som ikke løper i beina på disse rammeverkene, om de er noe særlig brukt blir et annet spørsmål. For å få fart i utviklinga er det viktigere å sette seg inn i andre typer verktøy som Yeoman, Bower, Grunt el. Gulp, npm osv. Uten disse er du vel igrunnen ganske hjelpeløs, og disse er også noe av årsaken til at javascript tar sånn av på alle bauger og kanter.

 

Backend: Fordelen med Node.js er blant annet at du fortsetter å kode backend i samme språk som frontend. Ulempene - det kommer jo først og fremst an på hva man mener om javascript på backend generelt, og så er utbudet av rammeverk - selv om det fins mange alternativer - tross alt ikke så modent som på mer "modne" plattformer. Men det fins jo allerede mange gode rammeverk - Breeze for persistens, Karma og Jasmine for test osv.

 

PHP ville jeg styrt unna, både språk, rammeverk og økosystem har etter min mening alltid hengt på etterskudd, etter min personlige mening, vel å merke. Men det går an å gjøre det i PHP også, bare vær kritisk ifm. valg av rammeverk. Dessuten - det har skjedd ting på de siste ti åra, så det blir uansett en del nytt å sette seg inn i.

 

Jeg ville heller valgt en backendløsning basert på Java. Angular frontend som snakker med et REST-api basert på Java og Spring eller JEE med et ORM-rammeverk som Hibernate. Mange vil nok mene dette er en for "tung" løsning, så det må jo da vurderes i det enkelte tilfelle. Det er min preferanse først og fremst fordi det er en stabil plattform med et svært økosystem å velge løsninger fra. Her har du også veldig bra tooling-support i form av f.eks. Maven/Gradle/Ivy for bygging, Cucumber for testing, Jenkins for kontinuerlig leveranse osv. osv.

 

Når det gjelder database har vi fått NoSQL, og f.eks. MongoDB er mye brukt sammen med Node. Her ville jeg vurdert nøye hva som faktisk skal lagres i databasen før jeg gjorde et valg. For mange løsninger fungerer begge deler, men når du begynner å stange hodet i veggen, så gjør du det hardt hvis du har valgt feil.

 

MySQL har vært og er en database hvor du må vite hva du driver med for å unngå å skyte deg selv i foten, jeg syns det bare er frustrerende å måtte forholde seg til alle de merkelige valgene som er gjort ift. å forholde seg til standarder mv. Og med alt surret og forkinga til Oracle og Monty på toppen ... Ville heller valgt PostgreSQL.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...