IDE Projekto surinkimas Versijų kontrolės sistema...
Transcript of IDE Projekto surinkimas Versijų kontrolės sistema...
IDE IntelliJ IDEA
Mokama; mano subjektyvia nuomone geriausia Java IDE
VU turi nemokamą prieigą
Eclipse
Nemokama
Universali, bet reikia „susikomplektuoti“ įskiepius
NetBeans
Nemokama, Oracle
Geras Java EE specifikacijų palaikymas
Instrumentinės priemonės 2
Projekto surinkimo (build) įrankiaihttps://karussell.wordpress.com/2009/09/29/evolution-of-build-systems/
Instrumentinės priemonės 3
Projekto surinkimo (build) įrankiai Ant (http://ant.apache.org)
Imperatyvus – jam reikia apibrėžti „receptus“, susidedančius iš paprastų komandų
Projekto katalogų struktūrą reikia susigalvoti pačiam
Apie saugyklas (repositories) buvo pradėta galvoti per vėlai
Praktiškai nebesutinkamas
Maven (http://maven.apache.org) Deklaratyvus – pasakomi norai
Apibrėžia standartinę projekto katalogų struktūrą
Apibrėžia modulio sąvoką; moduliai privalo būti talpinami saugyklose (repositories)
Bene populiariausias šiandien Java pasaulyje
Instrumentinės priemonės 4
Versijų kontrolės sistemos Populiariausios:
Centralizuota: SVN (Subversion)
Decentralizuotos: Git
Mercurial (hg)
Nemokamos projektų saugyklos: GitHub (https://github.com)
GitLab (https://gitlab.com)
VU projektų saugykla (GitLab pagrindu): https://git.mif.vu.lt/
Instrumentinės priemonės 5
Technologinės platformos sąvoka Toks technologijų rinkinys, kad įgalinamas
visapusiškas:
Funkcinių reikalavimų įgyvendinimas:
UI, dalykinis funkcionalumas (business logic), prieiga prie DB duomenų (data access / persistence)
Nefunkcinių (kokybinių) reikalavimų įgyvendinimas:
Saugumas, plečiamumas / modifikuojamumas, darna (consistency), išlygiagretinimas (concurrency), asinchroninis komunikavimas, ...
Technologijos integruotos tarpusavyje
(branda) platformą įmanoma plėsti
Instrumentinės priemonės 6
Technologinių platformų pavyzdžiai Java EE (http://www.oracle.com/technetwork/java/javaee/overview/index.html)
Oracle + Java Comunity Process (JCP)
Spring (https://spring.io/projects/) Pivotal
.Net (https://www.microsoft.com/net)
Lagom (https://www.lightbend.com/lagom) Lightbend (creators of Scala)
OSGi Enterprise (https://www.osgi.org/business/markets-and-solutions/enterprise/)
Ruby on Rails (http://rubyonrails.org/)
...
Instrumentinės priemonės 7
Java EE 7
Instrumentinės priemonės 8
Connector
1.6
Managed Beans 1.0 EJB 3.2
Servlet 3.1
Portable
Extension
s
JSF 2.2JAX-RS
2.0
Bean
Valid
ati
on
1.1
JMS 2.0JPA 2.1
EL 3.0
JTA 1.2
JSP 2.2
Interceptors 1.1 CDI 1.1Common
Annotations 1.1
UpdatedMajor
Release
New
Concurrency Utilities
(JSR 236)
Batch Applications
(JSR 352)
Java API for JSON
(JSR 353)
Java API for WebSocket
(JSR 356)
Lagom(http://www.lagomframework.com/documentation/1.3.x/scala/Technologies.html) Java and Scala
Immutability
Event Sourcing and CQRS Cassandra (NoSQL DB)
JDBC and JPA Relational DBMS
Google Guice – Dependency Injection technologija
Akka – toolkit for building concurrent, distributed, and resilient message-driven systems
Clustering
Instrumentinės priemonės 11
Brandžių platformų bruožas DI – Dependency Injection (priklausomybių
įterpimas)
Java EE – CDI (http://cdi-spec.org/)
Spring – Spring Framework IoC
.Net - Core Microsoft.Extensions.DependencyInjection
Lagom – Google Guice
DI sudaro prielaidas įgalinti modifikuojamumą / plečiamumą
Pvz.; Java EE „Portable extensions“ yra CDI standarto dalis.
Instrumentinės priemonės 12
Java EE dalykiniai serveriai (Java EE Application Servers) Nemokami:
TomEE – http://tomee.apache.org (Apache)
Payara – http://www.payara.fish (C2B2)
WildFly – http://wildfly.org (Red Hat)
WAS Liberty –https://developer.ibm.com/wasdev/websphere-liberty/(IBM)
Mokami:
WebLogic – Oracle
Kiti
Instrumentinės priemonės 13