[ADV] Online Java Academy 2016 - S02 E01 Overzicht Volgende deel Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • zeef
  • Registratie: Januari 2000
  • Laatst online: 08-10 20:47
Java is een van de populairste programmeertalen, die tegenwoordig veel gebruikt wordt voor de ontwikkeling van Android-apps, maar het lukt maar een handjevol enthousiastelingen om deze taal zelf onder de knie te krijgen. Vorig jaar leerde je bij de Online Java Academy, powered by Tweakers en Capgemini, hoe je een android app maakte, maar om echt de volgende stap te zetten heeft jouw app een "backend" nodig.

Maak een RESTful API en serverapplicatie in Java.
In deze reeks van 12 tutorials leer je hoe je data verzamelt en opslaat in een database, en hoe je deze data uiteindelijk in een mobile of web applicatie kan laten zien. We laten zien wat de cloud is en hoe je je server toegankelijk maakt voor alle apparaten op het internet. Om ervoor te zorgen dat je app interessant blijft, laten we de applicatie zelfstandig nieuwe data op internet ontdekken via verschillende integraties met bijvoorbeeld youtube.

Praktische info
Alle 12 afleveringen zijn per vandaag beschikbaar op deze pagina, zodat je in je eigen tempo de hele serie kunt bekijken. In iedere video geven we je makkelijke en moeilijke challenges voor extra verdieping en uitdaging. Bij iedere aflevering is een apart forumtopic beschikbaar waar vragen gesteld kunnen worden en/of kennis gedeeld.

Winactie
Ook dit keer hebben we weer een mooie winactie geregeld. Bekijk de video’s, geef de juiste antwoorden op een vijftal vragen en maak zo kans op een Java Track naar keuze, beschikbaar gesteld door Capgemini Academy. Bekijk hier de vragen, spelregels en voorwaarden.

Tutorial 1: Development Environment and Java Spring: “hello Backend Server”
In deze eerste tutorial gaan we direct van start met het inrichten van de ontwikkelomgeving en het schrijven van de eerste regels applicatie code.

Wat vind je van deze tutorial? Loop je ergens tegenaan of wil je meer weten? Laat het ons weten!

[ Voor 37% gewijzigd door zeef op 01-08-2016 11:20 ]


Acties:
  • +1 Henk 'm!

  • berlinko
  • Registratie: December 2014
  • Laatst online: 30-09-2020
Bij det tutorial staat dat je de Community Edition moet installeren, Spring werkt echter alleen met de Ultimate edition, waarvoor je een license nodig hebt.

Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 08-10 23:48

Ventieldopje

I'm not your pal, mate!

Waarom is hier gekozen voor een Java backend en niet een NodeJS backend? Java != javascript maar dat lijkt mij een stuk beter te behappen dan Spring, ook qua deployment.

Verder niets dan lof dat er aandacht aan wordt besteed aan dit soort courses! _/-\o_

[ Voor 20% gewijzigd door Ventieldopje op 05-08-2016 14:50 ]

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • nappie87
  • Registratie: Juli 2011
  • Laatst online: 02-09 18:43
Het is voor mij een lange tijd geleden dat ik wat met java heb gedaan. Gradle is voor mij nieuw, de stappen volgen lukt wel, maar voor een niet JAVA ontwikkelaar had het even vermelden wat je daarmee doet denk ik wel meerwaarde.

Mijn oplossingen voor de challenges plaats ik hieronder, commentaar hoe ik het beter kan aanpakken is natuurlijk welkom, juist daar leer je van.


Eenvoudige challenge

Java: SimpleController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
package tutorial.api.controllers;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Simple Challenge (S02E01)
 */

@RestController
public class SimpleController extends ApiController {

    @RequestMapping(value="/simple", method= RequestMethod.GET)
    public String simple() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        //get current date time with Date()
        Date date = new Date();
        return dateFormat.format(date); }

}




Advanced challenge

Java: SimplePOJOObject.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
package tutorial;

public class SimplePOJOObject {

    private String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}


Java: AdvancedController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
package tutorial.api.controllers;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import tutorial.SimplePOJOObject;


/**
 * Advanced Challenge (S02E01)
 */

@RestController
public class AdvancedController extends ApiController {

    @RequestMapping(value="/advanced", method= RequestMethod.GET)
    public SimplePOJOObject advanced() {
        SimplePOJOObject pojoObject = new SimplePOJOObject();
        pojoObject.setValue("abracadabra");
        return pojoObject; }

}

Acties:
  • 0 Henk 'm!

  • luukw
  • Registratie: April 2014
  • Laatst online: 30-03-2023
Ik vraag mij af waarom hier gebruik gemaakt wordt van IntelliJ IDEA en niet van Google Android Studio 2.1

Acties:
  • +1 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ventieldopje schreef op vrijdag 05 augustus 2016 @ 14:49:
Waarom is hier gekozen voor een Java backend en niet een NodeJS backend? Java != javascript maar dat lijkt mij een stuk beter te behappen dan Spring, ook qua deployment.

Verder niets dan lof dat er aandacht aan wordt besteed aan dit soort courses! _/-\o_
Omdat het gesponsord is door een partij die Java developers heeft/zoekt misschien? Zomaar een gok ;)

Acties:
  • 0 Henk 'm!

  • appendto
  • Registratie: Januari 2014
  • Laatst online: 22-07-2022
Mocht iemand geen zin hebben om IntelliJ te gebruiken om wat voor reden dan ook. Je kan ook heel makkelijk Spring Tool Suite(STS: https://spring.io/tools) gebruiken, op basis van Eclipse. De tutorials zijn prima te volgen. Ik gebruik zelf: 3.8.1.

Zorg wel dat je van de 'Eclipse Marketplace' (Help > Eclipse Marketplace), 'Gradle Buildship' installeert. Na de installatie even STS herstarten en je kan beginnen: File > New > Spring Starter Project. Selecteer bij type: Gradle(Buildship) en done.

Eclipse runnen met alternatieve JRE (Windows)
Mocht je geen zin hebben om Java(JRE/JDK) te installeren op je systeem dan kan je ook de server runtime downloaden van de Oracle site. Ga vervolgens naar de installatiemap van je STS en open STS.ini. Voeg helemaal bovenaan deze file het volgende toe:

code:
1
2
3
-vm
[pad naar je jre map]\bin\javaw.exe
....rest van het bestand....

Acties:
  • 0 Henk 'm!

  • Backspace-NL
  • Registratie: Januari 2001
  • Laatst online: 14-09 10:31

Backspace-NL

New and Improved!

berlinko schreef op vrijdag 05 augustus 2016 @ 14:01:
Bij det tutorial staat dat je de Community Edition moet installeren, Spring werkt echter alleen met de Ultimate edition, waarvoor je een license nodig hebt.
Spring kan prima met de Community Edition. Je mist wat extra zaken, die wel handig kunnen zijn en beschikbaar zijn in IntelliJ Ultimate, maar die heb je niet per se nodig voor de tutorials.

Acties:
  • 0 Henk 'm!

Verwijderd

Ventieldopje schreef op vrijdag 05 augustus 2016 @ 14:49:
Waarom is hier gekozen voor een Java backend en niet een NodeJS backend? Java != javascript maar dat lijkt mij een stuk beter te behappen dan Spring, ook qua deployment.

Verder niets dan lof dat er aandacht aan wordt besteed aan dit soort courses! _/-\o_
Dat vroeg ik me dus ook al af. NodeJS is voor dingen zoals dit naar mijn mening veel geschikter voor.

Acties:
  • 0 Henk 'm!

  • Oyster
  • Registratie: Januari 2003
  • Niet online

Oyster

Prince

Ventieldopje schreef op vrijdag 05 augustus 2016 @ 14:49:
Waarom is hier gekozen voor een Java backend en niet een NodeJS backend? Java != javascript maar dat lijkt mij een stuk beter te behappen dan Spring, ook qua deployment.

Verder niets dan lof dat er aandacht aan wordt besteed aan dit soort courses! _/-\o_
Of polyglot VertX.io met Java, JavaScript, Groovy, Ruby en Ceylon. Draai het op de Graal JVM en je kan met behulp van Truffle zelfs helemaal los gaan met allerlei AST interpreters for allerhande stack-based talen. This is Sparta, op de JVM zeg maar. :D

Leuk! Java is ooit in een ver verleden mijn lievelingetje geworden en heeft die status sindsdien niet meer kwijtgeraakt. Ik ga zeker even meekijken!

Acties:
  • +1 Henk 'm!

  • Jeroen.Abeelen
  • Registratie: April 2008
  • Laatst online: 15-07 17:15
Ik weet niet precies wat ik moet vinden van deze tutorials. Ik met mijn HTML, CSS (PHP) kennis die graag wat meer over Java wil leren heeft hier vrij weinig aan.

Ik zou het godsgruwelijk graag leren en ik wil hier ook echt wel de moeite in steken maar in deze tutorials leer je niet veel anders dan code knippen en plakken.

Waarom worden regels niet gewoon geschreven met hierbij een uitleg over elke regel die je schrijft?

Acties:
  • +2 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Jeroen.Abeelen schreef op vrijdag 02 september 2016 @ 12:03:
Ik weet niet precies wat ik moet vinden van deze tutorials. Ik met mijn HTML, CSS (PHP) kennis die graag wat meer over Java wil leren heeft hier vrij weinig aan.
Ik zou gewoon voor de officiele Spring Boot tutorial gaan. Die geeft veel betere uitleg. Ik snap ook niet zo waarom mensen tutorials schrijven zonder uitleg; op deze manier verdun je alleen de hoeveelheid goede content online.

Later in de tutorial gaan ze in op integration tests maar zonder de ingebouwde Spring MockMvc mogelijkheden te gebruiken. Ze gebruiken ook RestAssured zonder de MockMvc wrapper. Ik heb dus mijn twijfels over hoe 'up to date' de schrijver van deze tutorial is.

Mocht je vragen hebben laat maar weten. Ben zelf Java dev en werk dagelijks met Spring Boot microservices.
Verwijderd schreef op dinsdag 16 augustus 2016 @ 00:57:
Dat vroeg ik me dus ook al af. NodeJS is voor dingen zoals dit naar mijn mening veel geschikter voor.
Want?

Bedrijven zijn juist hard aan 't terugkomen op Node. JavaScript is gewoon een baggertaal. In de front-end ontkom je er niet echt aan (een beetje dankzei transpilers) maar Node heeft echt geen enkel voordeel t.o.v. de verschillende Java frameworks. Met dynamically typed talen ga je je in complexe applicaties gewoon in je voet schieten. Het is niet voor niets dat ze bij Angular 2 op TS overgaan.

[ Voor 40% gewijzigd door Hydra op 05-09-2016 15:53 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 12:40

aex351

I am the one

Hydra schreef op maandag 05 september 2016 @ 15:33:
[...]


Ik zou gewoon voor de officiele Spring Boot tutorial gaan. Die geeft veel betere uitleg. Ik snap ook niet zo waarom mensen tutorials schrijven zonder uitleg; op deze manier verdun je alleen de hoeveelheid goede content online.

Later in de tutorial gaan ze in op integration tests maar zonder de ingebouwde Spring MockMvc mogelijkheden te gebruiken. Ze gebruiken ook RestAssured zonder de MockMvc wrapper. Ik heb dus mijn twijfels over hoe 'up to date' de schrijver van deze tutorial is.

Mocht je vragen hebben laat maar weten. Ben zelf Java dev en werk dagelijks met Spring Boot microservices.


[...]


Want?

Bedrijven zijn juist hard aan 't terugkomen op Node. JavaScript is gewoon een baggertaal. In de front-end ontkom je er niet echt aan (een beetje dankzei transpilers) maar Node heeft echt geen enkel voordeel t.o.v. de verschillende Java frameworks. Met dynamically typed talen ga je je in complexe applicaties gewoon in je voet schieten. Het is niet voor niets dat ze bij Angular 2 op TS overgaan.
Java is niet altijd even toegankelijk. En voor een front-end scripter/programmeur is JavaScript dan net iets makkelijker te doorgronden. Maar ik deel de mening dat JavaScript op de manier hoe het nu veelal ingezet wordt niet even handig is. Typescript als een abstracte laag bovenop JavaScript lost dan wel het e.e.a. op, en benaderd bepaalde Java eigenschappen dan, maar het is geen Java.

Het punt is veelal dat NodeJs / Javascript / Angular toegankelijker is voor beginners en het biedt wat complexiteit. Waardoor een nieuwe gebruiker nog lekker kan puzzelen. En problemen aan het oplossen is, wat binnen Java allang opgelost is. Maar juist de toegankelijkheid en de puzzel-factor zorgt ervoor dat ook Angular populair is. Maar programmeurs met wat meer kennis op zak weten dat Angular 1 geclassificeerd kan worden als niet handig.

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

Verwijderd

Modbreak:Nee.

[ Voor 98% gewijzigd door NMe op 06-03-2017 15:03 ]


Acties:
  • 0 Henk 'm!

  • rvt1
  • Registratie: Juni 2015
  • Laatst online: 08-10 09:58
Verwijderd schreef op dinsdag 16 augustus 2016 @ 00:57:
[...]


Dat vroeg ik me dus ook al af. NodeJS is voor dingen zoals dit naar mijn mening veel geschikter voor.
Verwijderd schreef op dinsdag 16 augustus 2016 @ 00:57:
[...]


Dat vroeg ik me dus ook al af. NodeJS is voor dingen zoals dit naar mijn mening veel geschikter voor.
Spring is natuurlijk veel meer dan alleen Rest. Wil je dingen als authenticatie en autorisatie dan zit dat er standaard in. Verbinden met een CAS or SAML, service? geen probleem.

Wil je bepaalde routines beveiligen:
code:
1
@PreAuthorize("hasAnyRole('ROLE_ABC_ADD', 'ROLE_ABC_UPDATE'')")


Wil je een bepaalde functie cachen??
code:
1
@Cacheable(value = "getTimeZones")


Dan configureer je ergens anders waard e cache comt, local in je FS of in mongo DB, maakt niet uit...

Zo zijn er een hele hoop zaken die binnen Spring standaard zijn (geen 10 in een dozijn oplossingen), en al jaar en dag standard.

Wil je json terug sturen ipv text?
@ResponseBody

en je retourneert gewoon je Object en die wordt dan correct geserialiseerd.

Wel je taken regelmatig uitvoeren op de achtegrond (eens per minute, een per seconds, twee keer per dag, eerste dag van de maand..)? Dan is daar ook een annotatie voor..

Dat je rest doet wil nog niet zeggen dat Node.js gelijk de meest geschikte oplossing is... Voor ontzettend veel applicaties voldoet java uitermate goed.
Pagina: 1