Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
Come poter scegliere un framework da utilizzare in un progetto per una web applications? Durante questo workshop analizzeremo le parti fondamentali di AngularJs e React, in modo da capire pregi e difetti di ognungo dei due principali strumenti di sviluppo.
Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...Codemotion
Matteo Ronchi e Fabio Biondi ci spiegano come padroneggiare le tecniche per creare componenti ed architetture avanzate in AngularJS.
Iscriviti qui per partecipare ad altri Tech Webinar: http://goo.gl/iW81VD
Per info sul Bootcamp AngularJS Advanced Class clicca qui: https://goo.gl/NHbv9D
Scrivici a [email protected]
Tw: @codemotionTR
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
Cordova è la chiave di volta che consente agli sviluppatori web un ingresso rapido ed indolore negli store delle diverse piattaforme mobili. Vedremo come utilizzare questa chiave di volta sfruttando la potenza e semplicità del framework MVC di Google AngularJs in collaborazione con le caratteristiche responsive offerte dal framework di Twitter Bootstrap.
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
Introduzione al framework Java Spring e Maven per realizzare API REST.
Breve introduzione all'uso di Maven per configurare un progetto SpringBoot e realizzare un server REST.
Disponibile il codice dimostrativo su github (link nelle slide, attenzione alle branch).
Valerio Radice (valix85)
Luglio 2017
Come sviluppare app native per iOS a partire dal suo IDE di sviluppo Xcode per proseguire con un tutorial completo per realizzare una piccola rubrica di contatti.
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Antonio Gallo
Ionic è da anni uno dei framework basati su angular più famosi e più usati.
La versione 4 è una completa riscrittura della precedente versione usando tutta una serie di nuovi standard web con cui avremo a che fare sempre più spesso nei prossimi anni: Custom Element, Variabili CSS, Shadow DOM e non solo.
In questo talk, sia per esperti che principianti, vedremo come, grazie a Ionic, si può usare Angular per sviluppare un applicazione funzionante sia sul Web che sul Mobile.
GitHub Copilot:vediamo chi comanda - Commit University.pdfCommit University
Ogni giorno si parla di intelligenza artificiale, con chi sostiene che gli sviluppatori saranno completamente sostituiti e chi, invece, attende solo il momento in cui la bolla esploderà. Nel campo dello sviluppo software, GitHub Copilot si distingue come uno degli strumenti più utilizzati.
Ad oggi sono disponibili molte alternative, a testimonianza che lo strumento suscita un forte interesse… o preoccupazione.
Scopri l’impatto di questi strumenti, focalizzandoci su cosa è possibile fare con Copilot e su come utilizzarlo al meglio.
Nel mondo dello sviluppo software, i contratti non sono solo documenti burocratici ma veri e propri strumenti strategici per strutturare la comunicazione e l'interazione tra fornitori e clienti.
More Related Content
Similar to AngularJS On Rails by Daniele Spinosa (20)
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
Cordova è la chiave di volta che consente agli sviluppatori web un ingresso rapido ed indolore negli store delle diverse piattaforme mobili. Vedremo come utilizzare questa chiave di volta sfruttando la potenza e semplicità del framework MVC di Google AngularJs in collaborazione con le caratteristiche responsive offerte dal framework di Twitter Bootstrap.
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
Introduzione al framework Java Spring e Maven per realizzare API REST.
Breve introduzione all'uso di Maven per configurare un progetto SpringBoot e realizzare un server REST.
Disponibile il codice dimostrativo su github (link nelle slide, attenzione alle branch).
Valerio Radice (valix85)
Luglio 2017
Come sviluppare app native per iOS a partire dal suo IDE di sviluppo Xcode per proseguire con un tutorial completo per realizzare una piccola rubrica di contatti.
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Antonio Gallo
Ionic è da anni uno dei framework basati su angular più famosi e più usati.
La versione 4 è una completa riscrittura della precedente versione usando tutta una serie di nuovi standard web con cui avremo a che fare sempre più spesso nei prossimi anni: Custom Element, Variabili CSS, Shadow DOM e non solo.
In questo talk, sia per esperti che principianti, vedremo come, grazie a Ionic, si può usare Angular per sviluppare un applicazione funzionante sia sul Web che sul Mobile.
GitHub Copilot:vediamo chi comanda - Commit University.pdfCommit University
Ogni giorno si parla di intelligenza artificiale, con chi sostiene che gli sviluppatori saranno completamente sostituiti e chi, invece, attende solo il momento in cui la bolla esploderà. Nel campo dello sviluppo software, GitHub Copilot si distingue come uno degli strumenti più utilizzati.
Ad oggi sono disponibili molte alternative, a testimonianza che lo strumento suscita un forte interesse… o preoccupazione.
Scopri l’impatto di questi strumenti, focalizzandoci su cosa è possibile fare con Copilot e su come utilizzarlo al meglio.
Nel mondo dello sviluppo software, i contratti non sono solo documenti burocratici ma veri e propri strumenti strategici per strutturare la comunicazione e l'interazione tra fornitori e clienti.
La cybersecurity evolve e l'intelligenza artificiale sta assumendo un ruolo centrale nel trasformare le strategie di difesa digitale.
Esplora: Automazione dei penetration test in un gemello digitale e AI nei sistemi di Network Detection and Response.
Scopri quali illusioni dobbiamo sfatare e quali speranze possiamo nutrire per un futuro più sicuro.
Migliorare la Developer Experience in un mondo Cloud NativeCommit University
Sei pronto a rivoluzionare la tua Developer Experience? Scopri come Platform Engineering e AI RAG possono semplificare e potenziare il lavoro di dev e ops in ambienti cloud-native!
Scopri come sfruttare la potenza della RAG ibrida: un approccio che combina elaborazione simbolica e neurale per ottimizzare le performance del question answering.
Migliora l'output dei modelli linguistici (LLM) senza riaddestrarli, grazie all'integrazione di una knowledge base esterna.
Introduzione a AWS Forecast e SageMaker DeepAR: Prevedere la Domanda con il M...Commit University
La previsione della domanda è una sfida cruciale per aziende di ogni settore, dalla gestione delle scorte alla pianificazione della produzione e all'ottimizzazione della supply chain. In queste slide, esploreremo come AWS Forecast e SageMaker DeepAR possono essere utilizzati per sviluppare modelli di previsione accurati e scalabili, sfruttando le potenzialità del machine learning senza dover essere esperti di data science.
Oltre l'hype: vulnerabilità e limiti dell'intelligenza artificiale.pdfCommit University
Non è tutto oro quello che luccica, in questa presentazione esploreremo le principali criticità e i rischi associati all'intelligenza artificiale (IA). Come si può attaccare un sistema informatico allo stesso modo esistono gli attacchi ai modelli di machine learning, come l'avvelenamento dei dati e gli esempi avversariali, che minano l'integrità dei sistemi. Inoltre, si evidenzia come i bias nei dati di addestramento possano portare a decisioni discriminatorie, influenzando settori cruciali come la giustizia e l'occupazione. La necessità di una spiegabilità nell'IA viene sottolineata per garantire trasparenza, fiducia e un uso etico della tecnologia. L'obiettivo è fornire una visione equilibrata, sottolineando l'importanza di una vigilanza continua e di miglioramenti costanti per sfruttare il potenziale dell'IA in modo responsabile.
Come funzionano i Retrieval-Augmented Generators (RAG) e quanto i database vettoriali sono fondamentali per poter memorizzare e utilizzare le sorgenti dati aziendali e personali?
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
Open source, in Python, compatibile con vari LLM ed estendibile tramite plugin: queste sono solo alcune delle potenzialità del framework Cheshire Cat AI!
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfCommit University
This document contains slides from a presentation by Luca Del Puppo about building GraphQL servers using Fastify and Mercurius. The presentation introduces GraphQL and its advantages over REST APIs. It then discusses why Mercurius is a good choice for building GraphQL servers on Fastify and outlines some features it provides out of the box. The presentation concludes by providing resources for learning more about Fastify, Mercurius and building GraphQL servers.
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
Vuoi migliorare la gestione dei progetti a lungo termine con team multidisciplinari e prendere decisioni rischiose in modo sicuro e ponderato? Non perderti il nostro workshop gratuito!
Antonio Dell’Ava, Frontend Developer di eDreams Odigeo, condividerà strategie per aiutarti a ottimizzare la collaborazione nel tuo team, scegliere gli strumenti giusti per ogni situazione e garantire l’evoluzione del progetto nel tempo
A volte essere pigri è una qualità, evita (quasi) tutte le richieste di personalizzazioni lasciando "finestre aperte" nei tuoi componenti generici.
Gli slots sono un modo per passare il contenuto a un componente in Vue.js. Permettono di definire una sezione nel template di un componente che può essere sostituita dall'esterno.
È inoltre possibile assegnare un nome o uno "scope" agli slots, garantendo così maggiore controllo e personalizzazione sul contenuto. I "named slots" consentono di definire più slots nello stesso componente, assegnando dei nomi specifici.
Gli "scoped slots" ti consentono di accedere dall'esterno ai dati interni del componente.
Quante volte mi è capitato di migliorare applicazioni lente e difficili da ottimizzare, ma poi ho scoperto Qwik e tutto è cambiato.
Con il suo nuovo modello mentale è in grado di fare la differenza e scalare facilmente qualsiasi applicazione.
Non conosci questo framework? Nessuna paura...andiamo a scoprirlo assieme!
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
Backstage is an open source platform for building developer portals that unifies all tooling, services, apps, data, and documentation with a single consistent UI. It allows developers to focus on their work by providing a centralized location to create software, manage what they own, and explore the entire software ecosystem. Backstage has a customizable, extensible plugin architecture built with modern technologies to make it easy to develop for and contribute to developer portals in a cloud-agnostic, vendor-neutral way.
Nella giungla degli ORM node, Prisma sta prendendo sempre più piede. Ha migliorato la Developer Experience, si integra perfettamente con Typescript e funziona dannatamente bene con diversi provider. In questo talk, vedrai come Prisma può migliorare il tuo lavoro quotidiano e come ti permette di avere un maggior controllo della tua code base aiutandoti a prevenire fastidiosi errori nella tua applicazione nodejs.
Decision-making for Software Development Teams - Commit UniversityCommit University
Ti senti bloccato quando si tratta di prendere decisioni critiche su aspetti tecnologici? Vuoi conoscere i processi decisionali collaborativi e come applicarli al tuo team?
Francesco Strazzullo, Chief Operating Officer di Claranet Italia, ti insegnerà gli elementi chiave per prendere decisioni critiche su aspetti tecnologici, gestire i requisiti non funzionali e lavorare con processi decisionali collaborativi.
5. AngularJS: API racchiusa in un Service
definire una 'resource' intorno alla rotta della API
LegoSet = $resource("/api/v1/lego_sets/:id", {id: "@id"}, ...)
6. API + versioning
# routes.rb
namespace :api, defaults: {format: 'json'} do
namespace :v1 do
resources :lego_sets, only: [:index, :show] do
resources :lego_parts, only: [:show]
end
end
end
GET http://lego_app.com/api/v1/lego_sets/
GET http://lego_app.com/api/v1/lego_sets/21103
GET http://lego_app.com/api/v1/lego_parts/3001
7. app
`--controllers
|-- api
| `-- v1
| |-- lego_sets_controller.rb
| `-- lego_parts_controller.rb
|-- application_controller.rb
/app/controllers/api/v1/lego_sets_controller.rb
module Api::V1
class LegoSetsController < ApplicationController
respond_to :json
def index
respond_with LegoSet.all
end
def show
respond_with LegoSet.find(params[:id])
end
end
end
8. Rails 4 request params
Protezione dal mass-assignment spostata nel
controller.
Utile creare un helper method
def safe_lego_set_params
def safe_params
params.require(:lego_set).permit(:set_id, :piece_id, :num, ...)
end
end
9. Si puo agire direttamente nel Layout
app/views/layouts/application.html.erb
...
<head>
<%= javascript_include_tag "//ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js" %>
<%= javascript_include_tag "//ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular-resource.min.js" %>
</head>
Rapido ma molto da cinghiale...
10. Si può usare l'asset pipeline
I files di angular possono essere inseriti manualmente in
app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
...
//= require lib/angular.min
//= require lib/angular.resource
//= require <nome_app_angular>
...
11. La soluzione per tutte le stagioni
gem angularjs-rails
bundle
quindi
//= require angular
oppure, se si vuole usare la versione instabile
//= require unstable/angular
13. Proteggere il codice Angular (1)
1. Mangle: false
disabilitare il renaming delle variabili (mangle)
# nel file config/environments/production.rb
config.assets.js_compressor = Uglifier.new(mangle: false)
14. Proteggere il codice Angular (2)
2. depenency injection naming
Specificare i nomi degli argomenti in ogni funzione che
accetta 'services' ad es.:
@LegoCtrl = ("$scope", "LegoSet", $scope, LegoSet) ->
angular.module('LegoApp').factory 'LegoSet', [ $resource, ($resource) -> ...]
^ ^
15. Proteggere il codice Angular (3)
3. usare una gemma
gem 'ngannotate-rails'
https://github.com/kikonen/ngannotate-rails
16. Strutturare il codice JS (1)
require risorse angular dopo i turbolinks e prima di
tree
// app/assets/javascript/application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require lib/angular.min
//= require lib/angular.resource
//= require <nome_app_angular>
//= require tree
17. Strutturare il codice JS (2)
Ogni app. AngularJS consiste in un modulo principale,
controllers, directives e services. Suddividere il codice in
cartelle all'interno di app/assets/javascripts:
4 controllers
4 directives
4 services
...E lib per le tutte le altre dipendenze
18. Sfruttare la protezione CSRF di RoR
Proteggere l'applicazinone da attacchi cross-site
request forgery attraverso un token inserito nella
sezione head di ogni pagina. Usare quel token in tutte le
API requests.
application.js.coffee
LegoApp.config ($httpProvider) ->
authToken = $("meta[name="csrf-token"]").attr("content")
$httpProvider.defaults.headers.common["X-CSRF-TOKEN"] = authToken
19. Usare i turbolinks
Non usate il tag ng-app nell'html. Usate page:load
application.js.coffee
$(document).on 'page:load', ->
$('[ng-app]').each ->
module = $(this).attr('ng-app')
angular.bootstrap(this, [module])
In questo modo l'applicazione AngularJS verrà
inizializzata correttamente ogni volta che i turbolinks
fanno fetch&replace.
22. Yeoman
4 SPA (single page applications)
4 sviluppatori specializzati in JS
1. rails new lego_app && cd lego_app
2. mkdir angular && cd angular
3. npm install -g yo grunt-cli bower
4. npm install generator-angular generator-karma
5. yo angular
6. npm install && bower install
24. Bower + Grunt
(rails senza asset pipeline)
4 molto disaccoppiato
4 perfetto se si prevede un upgrade di Rails
25. rails-assets
Proxy tra Bundler e Bower: converte i componenti
Bower in rails gems.
1. aggiungere https://rails-assets.org come gem source
2. indicare i componenti Bower da convertire:
gem 'rails-assets-BOWER_PACKAGE_NAME'
3. bundle install: recupera il componente dal registro di
Bower e lo 'impacchetta' come gem
26. Non usare Rails
4 rails-api
4 Sinatra
4 AngularFire + Firebase
4 NodeJS
4 Go