Introduktionskurs: Webbapplikationer i inbyggda system (IoT)
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
"... Här bör du använda klasser i klasser, dvs polymorfism. Deklarera klasserna i din konstruktör ..."
Först trodde jag du menade nästlade klasser, sen tänkte jag att det kanske var dependency injection du prata om. Men när jag fått tänka ett varv till så är det nog snarare så att du bara menar att dela upp koden i klasser.
Det är iofs vettigt, men det är inte polymorfism.
Först trodde jag du menade nästlade klasser, sen tänkte jag att det kanske var dependency injection du prata om. Men när jag fått tänka ett varv till så är det nog snarare så att du bara menar att dela upp koden i klasser.
Det är iofs vettigt, men det är inte polymorfism.
- tecno
- Inlägg: 27039
- Blev medlem: 6 september 2004, 17:34:45
- Skype: tecnobs
- Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
- Kontakt:
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Är det inte på sin plats att du visar dina egna alster?Så se så! Ut och lek! Skapa hemsidor nu!
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Jag är inte expert på namnge "data-saker". Men det är inte "dubbeklasser" i en fil jag menar. Jag menar att man har en klass och i denna klass finns det ett fält som är också är utav en klass.papabear skrev:"... Här bör du använda klasser i klasser, dvs polymorfism. Deklarera klasserna i din konstruktör ..."
Först trodde jag du menade nästlade klasser, sen tänkte jag att det kanske var dependency injection du prata om. Men när jag fått tänka ett varv till så är det nog snarare så att du bara menar att dela upp koden i klasser.
Det är iofs vettigt, men det är inte polymorfism.
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Vet du hur mycket jobb det är att skriva en hel kurs i text? Det krävs ofantligt många timmar. När jag var lärare så lärde jag mig att den bästa eleven är den elev som får en kort introduktion och sedan leker sig fram. På så sett så kan eleven start och testa och bilda egen uppfattning. Det är också den effektivaste sättet att lära ut - snabb och enkel introduktion. Det skulle inte fungera på gymnasiet, men här på forumet fungerar det utmärkt.tecno skrev:Är det inte på sin plats att du visar dina egna alster?Så se så! Ut och lek! Skapa hemsidor nu!
Jag är mycket införstådd att läsa sig till en kurs är drygt och svårt. Därför försöker jag endast visa lite enkelt hur man gör för att sätta upp projekt och få den första "lampan att blinka". Sedan är det upp till eleven att utveckla sig själv.
Den som är intresserad utav att lära sig att göra snygga hemsidor i Java kan följa denna tråd. Kommentera gärna om ni behöver någon hjälp.
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Vad tillför detta för möjligheter som inte finns om man helt enkelt kör lighttpd och, låt oss säga PHP?
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Jag är inge PHP-erxpert. Men syftet med att utveckla hemsidor i Java är att du kan använda Java som körs på servern. Java har dessutom stort stöd bland vanliga metoder och många bibliotek.
Exempelvis så kan PHP inte bygga en hemsida som styr enkortsdatorer. Detta kan Java. Trots Java är ett gammalt språk från 90-talet kan hade sin största revolution vid år 2000, så är det ändå ett språk som används hos industrin för Java är stabilt och robust samt säkert. Detta kan du tacka Oracle för.
Idag så är Java öppen källkod och vi kan säkerligen förvänta oss nya versioner utav Java 12, trots att Oracle's Java 11 har nyss släpps. Det har med att den öppna källkodssidan har mer utvecklare än den stängda källkodssidan. Det finns två versioner utav Java: OracleJDK som kostar pengar och OpenJDK som är exakt som OracleJKD, dock utan uppdateringar, som är gratis om man får faktiskt tjäna pengar på OpenJDK.
PHP är ett bra språk. Jag väljer helst Java, men PHP fungerar. Java är byggt för applikationer på nätet.
Så låt mig svara på din fråga. Jävligt synd att man inte kan citera det sista inlägget på detta forum. Vad är det för ......som har gjort en sådan inställning? Skadar ju ingen att citera inlägget.
Hur som helst.
Exempelvis så kan PHP inte bygga en hemsida som styr enkortsdatorer. Detta kan Java. Trots Java är ett gammalt språk från 90-talet kan hade sin största revolution vid år 2000, så är det ändå ett språk som används hos industrin för Java är stabilt och robust samt säkert. Detta kan du tacka Oracle för.
Idag så är Java öppen källkod och vi kan säkerligen förvänta oss nya versioner utav Java 12, trots att Oracle's Java 11 har nyss släpps. Det har med att den öppna källkodssidan har mer utvecklare än den stängda källkodssidan. Det finns två versioner utav Java: OracleJDK som kostar pengar och OpenJDK som är exakt som OracleJKD, dock utan uppdateringar, som är gratis om man får faktiskt tjäna pengar på OpenJDK.
PHP är ett bra språk. Jag väljer helst Java, men PHP fungerar. Java är byggt för applikationer på nätet.
Så låt mig svara på din fråga. Jävligt synd att man inte kan citera det sista inlägget på detta forum. Vad är det för ......som har gjort en sådan inställning? Skadar ju ingen att citera inlägget.
Hur som helst.
PHP är ett gammalt och beprövat språk. Men som det ser ut idag så har PHP inte stöd för att styra enkortsdatorernars I/O pinnar.Vad tillför detta för möjligheter som inte finns om man helt enkelt kör lighttpd och, låt oss säga PHP?
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Har läst inte om dependency injection, men har aldrig förstått vad det innebär. Om du vill, så kan du förklara det för mig på en nivå för folk som inte begriper något.papabear skrev:"... Här bör du använda klasser i klasser, dvs polymorfism. Deklarera klasserna i din konstruktör ..."
Först trodde jag du menade nästlade klasser, sen tänkte jag att det kanske var dependency injection du prata om. Men när jag fått tänka ett varv till så är det nog snarare så att du bara menar att dela upp koden i klasser.
Det är iofs vettigt, men det är inte polymorfism.
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Du kan kontrollera gpio på samma sätt som du kan med Java, finns bilblioteker för allt.
https://github.com/ronanguilloux/php-gpio
https://github.com/ronanguilloux/php-gpio
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Är det någon som har kört fast? Någon som skulle vilja ha lite hjälp?
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Ptja, vi ska väl inte skriva ner den här tråden allt för mycket om det.Al_Bundy skrev:Har läst inte om dependency injection, men har aldrig förstått vad det innebär. Om du vill, så kan du förklara det för mig på en nivå för folk som inte begriper något.papabear skrev:"... Här bör du använda klasser i klasser, dvs polymorfism. Deklarera klasserna i din konstruktör ..."
Först trodde jag du menade nästlade klasser, sen tänkte jag att det kanske var dependency injection du prata om. Men när jag fått tänka ett varv till så är det nog snarare så att du bara menar att dela upp koden i klasser.
Det är iofs vettigt, men det är inte polymorfism.
Men, i korta drag, eftersom du frågar så handlar det om att man inte vill ha beroenden till konkreta klasser.
Dels blir det lättare att anpassa programmet när behoven ändras och det är lättare att unit-testa mindre delar.
Om vi tänker oss att du har en klass som behöver kunna kommunicera med nåt på nåt sätt så kanske du gör nåt sånt här:
Kod: Markera allt
public class MyClass
{
private SerialCommunication _serial;
public MyClass()
{
_serial = new SerialCommunication();
}
/* ... */
}
Istället kan det vara fiffigare att injicera dina beroenden på ett eller annat sätt och programmera mot interface eller abstrakta klasser.
Ett sätt att göra det är att injicera beroenden via konstruktorn:
Kod: Markera allt
/*
public class SerialCommunication : ICommunicationsChannel
*/
public class MyClass
{
private ICommunicationsChannel _com;
public MyClass(ICommunicationsChannel ch)
{
_com =ch;
}
/* ... */
}
Att sen byta ut SerialCommunication mot nån annan klass blir då trivialt och kan göras via konfiguration av containern. Men exakt hur det ser ut beror på språk och container.
Man kan ju också utöka funktionaliteten, om vi tänker oss att vi vill skicka data åt två håll.
Bara att bygga en klass som implementerar ICommunicationsChannel och som i sin tur är tar två ICommunicationsChannel och delegerar inkommande anrop till båda dessa.
Men MyClass har ingen aning om detta och behöver heller inte ändras för att stödja fler kanaler.
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Just din senaste kodsnutt burkar jag alltid använda mig utav. Man får en väldigt fin struktur på sitt program Tack!
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Till helgen tänkte jag gå igenom hur man läser temperatur på nätet.
Jag tänkte att vi skulle börja sätta upp detta projekt som räknar hela tiden. Detta projekt innehåller @ApplicationScoped, vilket betyder att den är en applikation som ALLA kan komma åt. Alla kan se detta tal. ApplicationScoped är viktigt när det kommer till en applikation som ska ständigt läsa in data till användaren. Istället för att hemsidan skall anropa en analog- till digitalkonverterare och sedan ska värdet hamna på hemsidan. Tänk om två eller är inloggad på hemsidan då!! Det finns ju bara en ADC!
Då passar Tråd och @ApplicationScoped perfekt! Låt logiken styra, inte hemsidan!
Jag har bifogat projektet. Packa upp det och sedan i Eclipse: File -> Import -> Exsitisng Project into Workspace och sedan pekar du på mappen som du har nyss packat upp. Testa starta upp projektet och sedan så stänger du ned din webbläsare i Eclipse. Vänta ett tag, sedan gå in i den ordinarie Webbläsare. Då ska du se att talet har ändrats till ett högre tal då webbapplikationen körs i bakgrunden i hemsidan
Jag tänkte att vi skulle börja sätta upp detta projekt som räknar hela tiden. Detta projekt innehåller @ApplicationScoped, vilket betyder att den är en applikation som ALLA kan komma åt. Alla kan se detta tal. ApplicationScoped är viktigt när det kommer till en applikation som ska ständigt läsa in data till användaren. Istället för att hemsidan skall anropa en analog- till digitalkonverterare och sedan ska värdet hamna på hemsidan. Tänk om två eller är inloggad på hemsidan då!! Det finns ju bara en ADC!
Då passar Tråd och @ApplicationScoped perfekt! Låt logiken styra, inte hemsidan!
Jag har bifogat projektet. Packa upp det och sedan i Eclipse: File -> Import -> Exsitisng Project into Workspace och sedan pekar du på mappen som du har nyss packat upp. Testa starta upp projektet och sedan så stänger du ned din webbläsare i Eclipse. Vänta ett tag, sedan gå in i den ordinarie Webbläsare. Då ska du se att talet har ändrats till ett högre tal då webbapplikationen körs i bakgrunden i hemsidan
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Jag har inget emot Java & Tomcat, men det är bisarrt mycket mjukvara, komponenter och kod du behöver du blinka din lampa eller visa ditt värde (på en quad-core ARM dessutom).
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Det är enormt mycket C-kod också för att blinka med en lampa för ARM också. Plus massa krångel.
Re: Introduktionskurs: Webbapplikationer i inbyggda system (
Denna tråd kommer jag spara och läsa igenom när/om jag blir bättre på programmering.
Den är ju guld!
Den är ju guld!