dbwebb-se / webapp

Coursematerial for webapp
Other
2 stars 10 forks source link

Tankar om kursutveckling #4

Closed mosbth closed 6 years ago

mosbth commented 6 years ago

Allmänt

litemerafrukt commented 6 years ago
emilfolino commented 6 years ago

Tycker det kan vara viktigt att vi tar in backend/nodejs server med express, så de inte bara får se fördelarna med JavaScript frontend utveckling, men även några av nackdelarna såsom dubbla datarepresentationer, stora mängder duplicerad kod, stora datamängder javascript kod i klienten, istället för en HTML sida som genereras på servern osv.

Jag tycker samtidig att det är viktigt att studenterna lär sig ett frontend ramverk när det nu är så bra att ha på CV't och att de blir klart mer anställningsbara.

Sen känns det som vi behöver ta ett beslut ungefär 2:a januari om vi ska hinna lära [INSERT NAME OF FRAMEWORK] tillräckligt bra för att kunna utveckla och undervisa i det 13 veckor senare.

emilfolino commented 6 years ago

Kanske att man gör kursen mer lik oophp där man jobbar i samma "miljö" hela tiden och lägger till nya istället för som det var förra året en del hattande i små olika projekt där mycket av tiden gick åt repetition.

mosbth commented 6 years ago

Någon liten backend känns inte orimligt. Express eller eventuellt någon produkt som har fokus i att snabbt sätta upp JSON-baserade server tjänster.

Men, jag är rädd för att (för mycket) fokus på backend minskar möjlighet att fokusera på frontend.

Jag strävar efter lite mer fokus på frontend, GUI, GUI-moduler, användargränssnitt och ser webapp som den naturliga kursen för detta.

Backend-kurser (som vi kan jobba vidare med) finns i linux (inget ramverk), ramverk2 (express + andra ramverk) och dbjs/dataweb (express). dbjs/dataweb (fokus databas/backend) ingår ännu inte i programmet, men ambitionen är att göra dem en del av programmet. De kan då eventuellt bli en naturlig fortsättning på linux, eller ersätta js-delen i linux och kanske en naturlig förkunskap till webapp.

Sammantaget har vi gott om kurser som fokuserar på serversidan, men möjligen inte så mycket fokus på klientsidan/användargränssnitt (som jag kan önska). Vi behöver också någon kurs som kan "lablas" mobil med tydliga kopplingar till mobilapp och native kopplingar.

Några nyckelord jag vill fokusera på:

Jag antar det är en avvägning om vi vinner något på att ta in serversidan och isåfall hur mycket och på vilket sätt. Jag har inga problem att se kursen renodlad klient och ingen server-del.

Att bygga vidare på samma projekt/applikationsidé genom hela kursen låter vettigt. Det kan ge ett bra flöde genom kursen och man kan jobba och finslipa på sin applikation i kmom efter kmom. En tanke kan vara att köra på det spåret och se hur det skulle kunna se ut.

Det känns bra om vi kan hitta ett rent fokus i kursen, något som kan ge ett extra djup (man jobbar med samma tekniker men mer). Finns det tekniker vi kan undvika så låter det bra. Renodla, rensa, i den mån det behövs.

mosbth commented 6 years ago

En annan sak, närrelaterad, är att jag funderar över kursen linux och dess position i flödet som kurs innan webapp. Jag leker med tanken att byta den mot dataweb/dbjs (node, express + databas). Det hade givit en helt annan bas för serverprogrammering med node.js, inför kursen webapp. Det är något som behöver funderas på. Jag har nyligen börjat tänka i sådana banor. En konsekvens av ett sådant val hade blivit att en ny renodlad linux-kurs hade behövts, någon som bygger vidare på kmom01-03 i samma anda, och inte tar spåret till nuvarande kmom04-06. Det kans ses som en indikation att försöka hålla webapp ren mot klientsidan.

emilfolino commented 6 years ago

Låter som en vettig utveckling av våra kurser, då linux just nu till stor del inte är en kurs om linux och vi fick många kommentarer om detta förra året. Kanske dra linux mer åt devops, då det verkade som att många var förvånade över att det försvann bort.

Om vi på sikt skapar en JavaSccript backend kurs likt dbjs tycker jag det är helt rätt att fokusera enbart på frontend i webapp. Frågan är ju främst hur vi få plats med en kurs till...

litemerafrukt commented 6 years ago

Valbar linx + devops sista vårterminen för 120p och motsvarande för 180p?

emilfolino commented 6 years ago

En stor fördel med linux kursen är bash-labbarna där studenterna faktisk lär sig att använda terminalen på riktigt, detta ger en stor fördel till senare, men annars borde den helt klart ligga som en av slut kurserna. Kanske går att få in grundläggande terminal användning på ett annat sätt i kurserna under första hösten.

litemerafrukt commented 6 years ago

Vilket javascript framwork är en intressant fråga. Egentligen känns det inte som om det spelar någon större roll vilket men det är potentiellt svårt att kommunicera varför det är så. En nackdel jag personligen upplevde med mithril var bristen "utbildningsmaterial" och exempelkod utanför kursen och https://mithril.js.org/. Å andra sidan tvingades jag därigenom till mer lek och experiment med ramverket för att lära mig det.

React är ju annars bra att ha på CV:t förmodligen några år framöver och problemet med material är snarast det omvända mot mithril. Fetch och jsx skulle komma in naturligt. Om man börjar på en nivå som Kent Dodds gör i sin egghead serie är studenterna snabbt igång och tekniker kan kopplas tillbaka mot javascript1.

litemerafrukt commented 6 years ago

Att lära sig grunderna i bash borde absolut ligga tidigt. Går det att trycka in i python?

emilfolino commented 6 years ago

Går hemma och fyller diskmaskinen och så börjar hjärnan jobba på högvarv.

Ideer til webapp fokus baserade lite på vad jag jobbade mest med och det jag tror många studenter kommer jobba med. Order/affärssystem med olika klienter beroende på vem som är slutanvändare. Lagerarbetaren får upp packlistor i en app, ekonomiansvarig får upp fakturor att skicka ut (eventuellt i desktop och mobil miljö), beställaren får uppdateringar på status i en annan app och så vidare.

Kopplas också mot det som görs simultant i oophp där det är webbshop. Under min karriär utanför högskolan var webbshop och affärssystem ungefär 90%, så kan vara bra att ge studenterna en titt in bak om skalet.

Gillade denna artikel av tidigare utvecklare på Github: https://zachholman.com/posts/javacript-haters

emilfolino commented 6 years ago

Kanske mer att vi kopplar bash-grunden till labbmiljön och att https://dbwebb.se/kunskap/20-steg-for-att-komma-i-gang-med-unix-och-terminalen blir obligatorisk på ett helt annat sätt än vad den är i dag.

Jaha då tror jag det blir egghead och react när Melker är på förskolan imorgon ;)

emilfolino commented 6 years ago

Fler tanker såhär på dag 1 efter pappaledigheten.

Tror det kan bli bra om vi ser till att ha ett GUI spår där vi även har inslag av design för små enheter. Inputfältens typ, storlek på typsnitt för läsbarhet, storlek på bilder för snabbare laddning, lazyload osv.

Vad jag minns finns det inte mycket accessibility i någon annan kurs vi har? Rätta mig om jag har fel. Hade nog varit bra som de medvetna och ansvariga utbildare vi är, att vi utbildar för färgblindhet, nedsatt syn, nedsatta motoriska förmågor och så vidare?

mosbth commented 6 years ago

Accessability nämns (knappt) i design-kursen. Både Usability och Accessability är relevant webapp-kursen och eftersom det är en av få kurser med fokus på GUI så lämpar det sig där. Det hade skapat en tydligare röd tråd mellan design-webapp ur den aspekten.

litemerafrukt commented 6 years ago

Så här i slutet på ramverk2-kursen, hackandes på projektet, och egentligen för första gången uppleva det som Emil skrev om:

så de inte bara får se fördelarna med JavaScript frontend utveckling, men även några av nackdelarna såsom dubbla datarepresentationer, stora mängder duplicerad kod, stora datamängder javascript kod i klienten, istället för en HTML sida som genereras på servern osv.

så går mina tankar lite såhär:

mosbth commented 6 years ago

Att lyfta bort docker från ramverk2 är inget jag direkt nappar på, däremot kan vi förenkla docker-resan genom kursen, nu när allt finns på plats så går det enklare att dra en tydlig röd tråd genom kursen.

Om valfriheten i ramverk2 skall styras upp, rörande klienten, låter jag vara osagt. Jag passar tills vidare. Nu innehåller ju kursen stora delar valfrihet rörande teknikval av klient.

Hela grunden för SPA-tänk (och JSON, REST) bör finnas i webapp. Det finns flera delar vi kan täcka bättre. Det som JWT hanterar är en del jag gärna hade täckt.

Att erbjuda en JSON-server för CRUD prototyping, REM-ish, känns relevant. Gärna en som de kan köra lokalt (Node.js), men jag kan också tänka mig en egen rem.dbwebb.se som stöd/test/labbmiljö under kursen. En egen rem-server kan vi fylla med diverse JSON-content som kan användas i kursen. Där hade vi även kunnat implementera JWT för dem att labba på.

Om vi inte får in JWT-ish i webapp så känns det som det borde täckas i ramverk[1,2].

I webapp ser jag gärna att SPA-kunnandet byggs på steg för steg, eventuellt först AJAX/fetch, sen mithril-ish, JSX, sen eventuellt större ramverk (REACT native, eller inte). Men, det får slutligen bero av hur kursens flöde/fokus blir.

emilfolino commented 6 years ago

"Härligt" att server/klient problematiken kommer fram i ramverk2. Borde kunna ge några bra reflektioner i redovisningstexten för projektet nu när studenterna har 1,5 års erfarenhet från simpel html hela vägen till avancerade grejer.

Jag har mest för egen skull (lära mig express och uppdatera mig på node) gjort embryot till en liten POC för ett order_api där man med hjälp av en api-nyckel styr vilken data man kan komma åt. https://github.com/emilfolino/order_api ev något vi kan använda om vi vill gå åt det hållet.

Har precis skrivit ner JWT på min skiss över webapp version ny. Tycker att JWT har en nästan given plats i webapp kursen.

Tycker att vi försöker ta vid ungefär där js1 släptes, borde ge studenterna en bättre utgångspunkt för att förstå varför vi går från vanillaJS till ett ramverk. Känns som vi aldrig svarade på frågorna "Varför behövs ett ramverk?" och "Vilka fördelar och nackdelar ger ett ramverk?" i förra versionen. Var mer bara här är ett ramverk kör på nu och sen kan du ju skapa en android app nu när du ändå håller på.

@litemerafrukt gick du kursen våren 2017? Är det samma känsla du har?

litemerafrukt commented 6 years ago

@emilfolino Jag gick webbapp 2016. Övergången från jquery mobile till mithril var för mig en ögonöppnare.

Tänker ni att studenterna börjar med att göra spa i vanilla js och sedan introducera ett ramverk? Eller mer gradvis med script-inkluderande och sedan fortsätta mot saker som vue-cli eller create-react-app?

Det börjar låta som en kurs jag skulle vilja gå om. Behövs det betatestare och rättare så anmäler jag mig frivillig :)

emilfolino commented 6 years ago

just nu är tanken att börja där js1 slutade och visa i en "mos-monster-övning"TM hur man bygger ett SPA och sakta men säkert få in [INSERT_NAME_OF_FRAMEWORK].

Sen med en rejäl dos GUI och a11y, känns som en naturlig kurs för detta.

Det behövs nog definitivt betatestare :)

mosbth commented 6 years ago

Apropå native/Cordova.

Det jag vill uppnå (ursprungsvis) är att man bekantar sig med mobilen som "target-plattform" delvis genom att lära sig använda några mobilspecifika resurser (kamera, gps, annat). Och UX saker.

Tekniken får baseras på HTML, CSS, JavaScript och diverse befintliga API:er.

Jag vill ha en plattformsoberoende teknik, en och samma app till många olika devices med olika os.

Jag vill gå steget längre än en webapp, jag vill att man skall kunna "installera" på mobilen så appen ser ut att vara en native app.

Cordova känns rätt. React native är eventuellt ett alternativ. Jag har inte följt med vad som händer mer än det.

Allt eftersom gränsen suddas ut mellan mobil/desktop etc kan arbetet i W3C Mobile Web Applications vara värt att beakta. Relevant i kursen kan tex vara Mobile Web Application Best Practices

Man kan argumentera att det vi gör går att göra utan mobilen. Att nå externa resurser (kamera, gps) via API:er gäller även en vanlig dator. Ett sådant fokus kategoriserar jag under desktop-spa och är inte mitt primära fokus med kursen webapp, så jag håller krav i mobilen och mobil-spa.

Mobil-SPA webapplikation, installerad som en native app på mobilen, byggd med HTML, CSS (-ish) och JavaScript (-ish) jobbandes mot REST tjänster och JSON data. Ramverk är ej prio, de får komma i senare kurser.

mosbth commented 6 years ago

Osäker på om vi nämner Progressive Web App i kursmaterialet, ytterligare ett relevant koncept att bevaka.

NiklasAurora commented 6 years ago

Jag tyckte det var lärorikt att jobba mot andras API, så som vi gjorde med Nobel-priset och valfria API:er i kmom02. Att ta reda på och veta hur man ska ställa frågor och hantera det svar som kommer tillbaka tyckte jag överlag var en riktigt bra övning.

emilfolino commented 6 years ago

Stänger ner detta issue så det inte krockar med kursutveckling lp4.