{"id":13503,"date":"2018-04-03T16:54:36","date_gmt":"2018-04-03T14:54:36","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=13503"},"modified":"2018-04-03T16:58:47","modified_gmt":"2018-04-03T14:58:47","slug":"programmare-con-java-9-guida-completa","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/programmare-con-java-9-guida-completa\/","title":{"rendered":"Programmare con &#8220;Java 9. Guida completa&#8221;"},"content":{"rendered":"<p>La conoscenza del\u00a0<strong>linguaggio Java<\/strong> rappresenta da molti anni una delle principali risorse che il programmatore\u00a0pu\u00f2 spendere per puntare ad una buona collocazione nel mondo del lavoro. Ci\u00f2 che gli conferisce tanta importanza non \u00e8 solo la sua validit\u00e0 tecnologica, ma anche il numero e la rilevanza dei settori di impiego: <strong>sviluppo di applicazioni Android<\/strong> e desktop, web service, applicazioni Internet, robotica e molto altro. E&#8217; fondamentale per\u00f2 affidarsi alle risorse giuste come il libro &#8220;<strong><a href=\"http:\/\/amzn.to\/2H95kf8\" target=\"_blank\" rel=\"noopener\">Java 9. Guida completa<\/a><\/strong>&#8220;, pubblicato da <strong>Edizioni LSWR<\/strong> nel mese di febbraio 2018.<\/p>\n<p><strong><a href=\"http:\/\/amzn.to\/2H95kf8\" target=\"_blank\" rel=\"noopener\">ACQUISTALO SU AMAZON IN VERSIONE CARTACEA O IN FORMATO KINDLE<\/a><\/strong><\/p>\n<h2>Un libro &#8220;pratico&#8221;<\/h2>\n<p>Uno dei principali pregi di questo testo \u00e8 l&#8217;<strong>approccio pratico<\/strong>: si procede per esempi ed<strong>\u00a0<\/strong>i necessari approfondimenti teorici sono accompagnati da tanta sperimentazione, ideale <strong>per chi vuole trasformare Java nella sua professione di domani<\/strong>.<\/p>\n<p><strong>L&#8217;autore \u00e8 docente<\/strong> da molti anni di corsi in aula e <a href=\"http:\/\/devacademy.it\" target=\"_blank\" rel=\"noopener\">videocorsi<\/a> dedicati sia alla formazione di neo-programmatori sia al perfezionamento di professionisti gi\u00e0 navigati: possiede\u00a0 pertanto la necessaria esperienza nell&#8217;organizzazione di contenuti per fruitori di vario livello.<\/p>\n<h2>Struttura del testo<\/h2>\n<p>Gli argomenti trattati seguono un percorso che va dalle <strong>basi della programmazione<\/strong> (non \u00e8 richiesta alcuna conoscenza pregressa) fino all&#8217;esplorazione delle novit\u00e0 pi\u00f9 recenti di Java 9 passando per <strong>Programmazione Orientata agli Oggetti<\/strong>, elaborazione di strutture dati e interazione con sistemi esterni (file, Rete e database). Pi\u00f9 in dettaglio, si parla di:<\/p>\n<ul>\n<li><strong>fondamenti del linguaggio<\/strong> e primo approccio al codice: come strutturare un programma, quali gli elementi base della sintassi, i tipi di dato fondamentali per descrivere le informazioni e gli operatori aritmetici e bitwise per trattarli;<\/li>\n<li>costrutti di <strong>controllo del flusso<\/strong> di esecuzione: dopo i necessari concetti di logica booleana, operatori di confronto e logici si approfondiscono <strong>cicli<\/strong> (<em>for<\/em>, <em>while<\/em>, <em>do&#8230;while<\/em>) e programmazione <strong>condizionale<\/strong> (<em>if<\/em>, <em>switch&#8230;case<\/em>);<\/li>\n<li><strong>primo approccio agli oggetti<\/strong> vedendo al lavoro <strong>stringhe<\/strong> e <strong>array<\/strong> per la costruzione di tipi di dato pi\u00f9 complessi;<\/li>\n<li>definizione di <strong>classi <\/strong>e oggetti nonch\u00e8 illustrazione dei concetti fondamentali di <strong>Programmazione Orientata agli Oggetti<\/strong> (incapsulamento, ereditariet\u00e0 e polimorfismo);<\/li>\n<li><strong>eccezioni<\/strong> e <strong>Generics<\/strong>: le prime per una corretta gestione di errori e situazioni anomale; i secondi per sfruttare a pieno la flessibilit\u00e0 della Programmazione Orientata agli Oggetti;<\/li>\n<li>creazione di reti di informazioni efficienti e navigabili con le <strong>strutture dati<\/strong> del Collections Framework (liste, set, mappe, code, pile, etc.);<\/li>\n<li><strong>gestione dei dati<\/strong>: uso di espressioni regolari, trattamento delle informazioni numeriche, utilizzo delle date sia con approccio tradizionale sia con le pi\u00f9 recenti Datetime API ma anche espressioni lambda, interfacce funzionali e Stream API;<\/li>\n<li><strong>Input\/Output<\/strong>: lettura e scrittura di file, interpretazione dei dati raccolti, interazione con la Rete e sfruttamento di dati reperibili in Internet;<\/li>\n<li>integrazione di <strong>database<\/strong> sia relazionali (MySQL, Sqlite, etc.) sia NoSQL (MongoDB);<\/li>\n<li>novit\u00e0 di <strong>Java 9<\/strong>: in particolare, strutturazione a <strong>moduli<\/strong> (Java Module Platform System) e <strong>JShell<\/strong>.<\/li>\n<\/ul>\n<h2>Principali punti di forza<\/h2>\n<p>Ecco alcuni aspetti che ci hanno particolarmente colpito del testo:<\/p>\n<ul>\n<li>si avverte la <strong>volont\u00e0 di rendere &#8220;operativo&#8221; il lettore<\/strong>\u00a0al pi\u00f9 presto possibile con esempi immediati e casi di sperimentazione graduali fondati su ci\u00f2 che man mano viene spiegato. Ogni capitolo si conclude con un esempio riepilogativo<strong style=\"color: #333333; font-style: normal;\">\u00a0<\/strong><span style=\"color: #333333; font-style: normal; font-weight: 300;\">che si ispira a reali problematiche professionali<\/span>;<\/li>\n<li>la <strong>via concreta<\/strong> viene privilegiata anche <strong>nell&#8217;introduzione alla Programmazione ad Oggetti<\/strong>: piuttosto che passare per fondamenti teorici, viene scelto di vedere al lavoro oggetti come stringhe e array in modo da rendere pi\u00f9 agevole la concezione di proprie classi;<\/li>\n<li>gli anni di docenza dell&#8217;autore si evidenziano maggiormente nel continuo tentativo di <strong>mettere in guardia il lettore contro le pi\u00f9 comuni trappole<\/strong> in cui il neofita rischia di incorrere;<\/li>\n<li>c&#8217;\u00e8 attenzione a seguire l&#8217;<strong>evoluzione di Java<\/strong> illustrando le versioni del linguaggio in cui sono apparse determinate caratteristiche. Viene dato grande risalto alle importanti innovazioni di Java 8 e soprattutto di Java 9 cui il volume \u00e8 dedicato;<\/li>\n<li>interessante anche che il capitolo riguardante i database sia in una parte consistente dedicato al <strong>mondo NoSQL<\/strong> realt\u00e0 ormai ampiamente affermata nei moderni scenari informatici. Per una guida sul linguaggio Java tale caratteristica pu\u00f2 essere considerata unica. In questo capitolo, risulta molto utile anche l&#8217;introduzione all&#8217;argomento &#8220;database&#8221; in generale con alcuni paragrafi che si soffermano su una panoramica di concetti chiave riguardanti sia il paradigma relazionale sia l&#8217;emisfero NoSQL.<\/li>\n<\/ul>\n<h2>Giudizio finale<\/h2>\n<p>Il giudizio sul libro \u00e8 <strong>assolutamente positivo<\/strong> considerando la completezza di contenuti, la carica innovativa del testo e la validit\u00e0 didattica. <strong><a href=\"http:\/\/amzn.to\/2H95kf8\" target=\"_blank\" rel=\"noopener\">Java 9. Guida Completa<\/a>\u00a0<\/strong>pu\u00f2 essere indicato per ogni genere di lettore: per chi muove i primi passi nella programmazione, per chi gi\u00e0 ha esperienza di Java ma vuole strutturare meglio le proprie conoscenze ma anche per lo sviluppatore avviato che sente il bisogno di seguire un percorso di aggiornamento.<\/p>\n<p><strong><a href=\"http:\/\/amzn.to\/2H95kf8\" target=\"_blank\" rel=\"noopener\">ACQUISTALO SU AMAZON IN VERSIONE CARTACEA O IN FORMATO KINDLE<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La conoscenza del\u00a0linguaggio Java rappresenta da molti anni una delle principali risorse che il programmatore\u00a0pu\u00f2 spendere per&#8230;<\/p>\n","protected":false},"author":1,"featured_media":13528,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[870],"tags":[2073,2084,2085],"class_list":["post-13503","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-libri-e-manuali","tag-java-9","tag-manuale-java","tag-programmare-in-java"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=13503"}],"version-history":[{"count":13,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13503\/revisions"}],"predecessor-version":[{"id":13531,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13503\/revisions\/13531"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13528"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=13503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=13503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=13503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}