Nekromanti Webserverprogrammering -- vad ska jag lära mig?

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,183
Location
Rissne
Jag har ett nytt projekt på gång. Det är en webapp där man som lärare kan lägga in uppgifter man ger till elever, och de svar man får in, och markera vilka betygskriterier som testas på varje uppgift (och vilken nivå) och så få en sammanfattning av vilka kriterier varje elev visat (och på vilken nivå och hur många gånger). Det är en funktion som borde vara inbyggd i alla skolplattformar enligt mig, men det är den inte och jag orkar inte sitta och flytta data mellan excellblad och wordfiler och skit manuellt.

Grejen är att jag gärna ser det här som ett tillfälle för mig att lära mig något nytt. Jag vet att det finns andra datornördar här som säkert har åsikter i frågan...

Alternativ #1: PHP + MySQL. Jag ä'r lite ringrostig, men jag kan både PHP och MySQL hyfsat. Jag har byggt fungerande system med dem förut. Det här skulle egentligen inte vara varken utmaning eller lärande, men det går inte att utesluta att det skulle kunna bli färdigt snabbare.

Alternativ #2: Node.js och någon databas, kanske MySQL. Jag kan javascript hyfsat, och Node.js verkar ju rätt poppis. Och det finns såklart fördelar med att köra samma grejer både i frontend och backend. Nackdelen är att jag egentligen inte gillar javascript.

Alternativ #3: Django. Jag kan Python rätt hyfsat sedan innan. Och det verkar lite ballt att få en massa gratis, även om jag verkligen inte är hemma vad gäller MVC-design. Nackdel: Django är ett komplett framework, som jag blir tvungen att anpassa allting till. Och jag kommer att behöva göra saker i commandline. och det känns jobbigt att t.ex. flytta en sida från en server till en annan, men det kanske bara är en illusion.

Alternativ #4: Ruby on Rails. Samma som Django, utom att jag aldrig ens tittat på Ruby.

Så... Vad tycker ni? Vad är lättast att lära sig? Vad är roligast? Vad är mest användbart? Vad är mest lärorikt? Vad skulle passa mitt projekt bäst? Finns det för-/nackdelar jag missat?
 

Eksem

Champion
Joined
19 Feb 2001
Messages
7,615
Location
Stockholm
Node är roligt men jag gillar ju faktiskt javascript asmycket. Paras gärna med nån docudb typ Mongo. Blir bra för dig om du vill testa nåt hippt, snarare än att bara "bli färdig". Vill du bara riva av det, kör på PHP+MySQL som du redan kan.

Django och Ruby är inte alternativ i min värld så jag ska inte uttala mig om dem.
 

Snow

Swashbuckler
Joined
17 May 2000
Messages
2,617
Location
Klippan
Jag avråder från ruby då det är en mardröm deploy mässigt.

Jag föreslår php + Mysql som exponerar ett restapi. Front-end skriver du i javascript med tex angularjs. Lägg mesta krutet på Front-end.

Du blir snabbt färdig med backend. Sen får du också testa ny teknik i Front-end. Front-end kan skrivas om eller bytas ut. Likaså backend.

Jag kan inget om pyton på webbserver men språket är ju bra. Backend kan ju skrivas i pyton också.

Mongo har jag kört mycket i tunga applikationer och det funkar mycket bra. Med rätt serializing blir backend mycket tunn få du slipper all SQL.
 

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,183
Location
Rissne
Snow;n58380 said:
Jag föreslår php + Mysql som exponerar ett restapi. Front-end skriver du i javascript med tex angularjs. Lägg mesta krutet på Front-end.

Du blir snabbt färdig med backend. Sen får du också testa ny teknik i Front-end. Front-end kan skrivas om eller bytas ut. Likaså backend.
Just "bli färdig snabbt" är inte riktigt det jag fokuserar på iofs, och jag känner inget jättestarkt behov av frameworks på frontendsidan (programmera frontends är inte min favoritsak att göra, och då dessutom behöva anpassa mig till ett ramverk någon annan skrivit...)

Men jag ska överväga saken. Tack för idéer =)

Mongo har jag kört mycket i tunga applikationer och det funkar mycket bra. Med rätt serializing blir backend mycket tunn få du slipper all SQL.
Jag tycker iofs att SQL kan vara ganska roligt =)
 

stenhöna

tellstory
Joined
5 Oct 2002
Messages
964
Location
Hamburg
AngularJS är också ett alternativ om man vill ha mer logik på klientsidan.
Jag rekommenderar i alla fall att använda jQuery, jQueryUI och ett färdigt stilpaket, t.ex. Bootstrap eller Foundation.
 

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,183
Location
Rissne
stenhöna;n58550 said:
AngularJS är också ett alternativ om man vill ha mer logik på klientsidan.
Jag rekommenderar i alla fall att använda jQuery, jQueryUI och ett färdigt stilpaket, t.ex. Bootstrap eller Foundation.
Kan du motivera den rekommendationen? Är det för att det går snabbare eller är det av någon annan anledning?
 

Snow

Swashbuckler
Joined
17 May 2000
Messages
2,617
Location
Klippan
krank;n58551 said:
Kan du motivera den rekommendationen? Är det för att det går snabbare eller är det av någon annan anledning?
Det blir asmycket enklare att se till att det fungerar likadant i alla browsers. Någon annan har redan gjort det jobbet.

Plus att det (bootstrap) fungerar bra i telefon/platta. Vilket verkar vara bra för ditt projekt. Läraren kollar snabbt statusen på klassen innan han går in i klassrummet.
 

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,183
Location
Rissne
Snow;n58566 said:
Det blir asmycket enklare att se till att det fungerar likadant i alla browsers. Någon annan har redan gjort det jobbet.

Plus att det (bootstrap) fungerar bra i telefon/platta. Vilket verkar vara bra för ditt projekt. Läraren kollar snabbt statusen på klassen innan han går in i klassrummet.
Hm. Ska fundera på saken, men det skulle fortfarande betyda att jag i nån mån behövde vara instängd i ett framework, och eftersom defaultstilen på bootstrap är fugly så skulle jag ÄNDÅ behöva bygga mitt eget tema...

Men ja, layouten ska såklart vara responsiv och mobilvänlig. Jag har gjort en responsiv grundlayout och tror mig ha hyfsad koll på hur jag ska göra resten (+ testning på vägen)...

I dunno. Tillfredsställelsen i att göra saker själv från grunden vs. snabbheten i att använda något nån annan redan gjort... Jag har aldrig haft lätt att ta det beslutet.
 

Snow

Swashbuckler
Joined
17 May 2000
Messages
2,617
Location
Klippan
krank;n58570 said:
Hm. Ska fundera på saken, men det skulle fortfarande betyda att jag i nån mån behövde vara instängd i ett framework, och eftersom defaultstilen på bootstrap är fugly så skulle jag ÄNDÅ behöva bygga mitt eget tema...

Men ja, layouten ska såklart vara responsiv och mobilvänlig. Jag har gjort en responsiv grundlayout och tror mig ha hyfsad koll på hur jag ska göra resten (+ testning på vägen)...

I dunno. Tillfredsställelsen i att göra saker själv från grunden vs. snabbheten i att använda något nån annan redan gjort... Jag har aldrig haft lätt att ta det beslutet.
Att bygga själv ger en oöverträffad insikt i problem och möjligheter. Lite som huvudräkning, bra att förstå men sen använder man i praktiken miniräknaren när man väl kan det. Kör på och visa vad du bygger. :)
 

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,183
Location
Rissne
Appropå visa vad jag bygger:

Nu får vi se om forumet resizar de här bilderna ordentligt...



 

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,183
Location
Rissne
Status: Har gått igenom en helt onödig javascript-tutorial för att fräscha upp minnet en smula; imorgon kör jag en tutorial för node.js.

Parallellt sitter jag och second-guessar mig, kollar sidor om för- och nackdelar och så. En del kör node.js till precis allting, andra kör det bara till saker som chattrutor och så och PHP till att servera vanliga content-sidor.

Jag kollar också upp saker som frameworks till node, express.js t.ex. Och så råkade jag på Meteor, som ser... intressant ut.

Jag har inte bestämt mig för om mitt usecase passar bäst med en nosql eller en traditionell relationell databas. Jag lutar ju åt traditionell MySQL, men det är ju för att jag har hyfsad koll där, vet hur man kan göra halvkomplexa queries och sånt som jag ju kommer att behöva. Snabba googlekollar ger vid handen att jag BORDE kunna bygga något med node + express.js + mysql.

Men min plan är typ:
1) grundläggande node.js-kunskap.
2) kolla upp express, utvärdera om det verkar sunt.
3) kolla upp nån template engine, Swig har rekommenderats, utvärdera om det verkar sunt.
4) Kanske kolla lite på något mer komplext ramverk, typ Sails.
5) Possibly kolla närmare på Meteor.

Jag har ju inte direkt bråttom i utvecklingen även om jag gärna skulle komma igång, så jag tänker att jag nog kan lägga lite tid på efterforskningar. Skulle jag finna att jag inte orkar sättas mig in i node.js tillräckligt mycket för att kunna bygga det jag vill såpass bra som jag vill... Tja, då finns ju gamla onda PHP där som en backup.
 
Top