Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agile development with JHipster

Agile development with JHipster

https://oscal.openlabs.cc/
OSCAL is the annual international Open Source Free Software Conference in Albania dedicated to empowering Software

Avatar for Edmond

Edmond

May 13, 2017
Tweet

More Decks by Edmond

Other Decks in Programming

Transcript

  1. Ardi Goxhaj twitter.com/ArdiGoxhaj VAS Sr Specialist at Plus Communication, that

    likes new technologies focused at making software development faster, safer and funny. Edmond Cukalla twitter.com/ecukalla Works @PlusCommunication as VAS Senior Specialist and is exploring the fascinating world of software development.
  2. https://jhipster.github.io/ JHipster is a fully Open Source, widely used application

    generator. Easily create high-quality Spring Boot + Angular projects!
  3. Node.js is an open-source, cross-platform JavaScript runtime environment for executing

    JavaScript code server-side, and uses the Chrome V8 JavaScript engine Features: • I/O Asynchronous and Event Driven • Very Fast • Single Threaded (Event Looping) but Highly Scalable • No Buffering https://nodejs.org
  4. npm is the package manager for JavaScript and the world’s

    largest software registry. Discover packages of reusable code — and assemble them in powerful new ways. https://www.npmjs.com
  5. Yeoman.io The web’s scaffolding tool for modern webapps Yeoman helps

    you to kickstart new projects, prescribing best practices and tools to help you stay productive. Used cases of Yeoman: • Rapidly create a new project • Create new sections of a project, like a new controller with unit tests • Create modules or packages • Bootstrapping new services • Enforcing standards, best practices and style guides • Promote new projects by letting users get started with a sample app http://yeoman.io
  6. It’s: • Fast • Reliable • secure dependency management. Yarn

    is a package manager for your code. It allows you to use and share code with other developers from around the world. https://yarnpkg.com/
  7. AngularJS is a structural framework for dynamic web apps. It

    lets you use HTML as your template language and lets you extend HTML's syntax to express your application's components clearly and succinctly. AngularJS's data binding and dependency injection eliminate much of the code you would otherwise have to write. And it all happens within the browser, making it an ideal partner with any server technology. Features: • AngularJS is a powerful JavaScript based development framework to create RICH Internet Application(RIA). • AngularJS provides developers options to write client side application (using JavaScript) in a clean MVC(Model View Controller) way. • Application written in AngularJS is cross-browser compliant. • ... data-binding, ccope, controller, services , filters, directives, templates, routing, MVW, deep linking, dependency injection https://angularjs.org/
  8. The WebSocket Protocol enables two-way communication between a client running

    untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The protocol consists of an opening handshake followed by basic message framing, layered over TCP. The goal of this technology is to provide a mechanism for browser-based applications that need two-way communication with servers that does not rely on opening multiple HTTP connections. http://stomp.github.io
  9. Protractor is an end-to-end test framework for Angular and AngularJS

    applications. Protractor runs tests against your application running in a real browser, interacting with it as a user would. Test Like a User Protractor is built on top of WebDriverJS, which uses native events and browser-specific drivers to interact with your application as a user would. For Angular Apps Protractor supports Angular-specific locator strategies, which allows you to test Angular-specific elements without any setup effort on your part Automatic Waiting You no longer need to add waits and sleeps to your test. Protractor can automatically execute the next step in your test the moment the webpage finishes pending tasks http://www.protractortest.org/
  10. Cucumber is a tool that supports Behaviour-Driven Development (BDD) -

    a software development process that aims to enhance software quality and reduce maintenance costs. Cucumber reduces the effort to keep requirements specifications, tests and documentation in sync - with Cucumber they are all the same documents - a single source of truth for everyone on the team. https://cucumber.io/
  11. Apache Maven is a software project management and comprehension tool.

    Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. • Making the build process easy • Providing a uniform build system • Providing quality project information • Providing guidelines for best practices development • Allowing transparent migration to new features https://maven.apache.org
  12. Monolithic vs. Microservices A monolithic application describes a single-tiered software

    application in which the user interface and data access code are combined into a single program from a single platform. Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of loosely coupled services
  13. Spring Boot Spring Boot makes it easy to create stand-alone,

    production-grade Spring based Applications that you can "just run". Takes an opinionated view of building production-ready Spring applications. https://projects.spring.io/spring-boot/ Spring Boot starters Aggregate common groupings of dependencies into single dependencies that can be added to a project’s Maven or Gradle build. Autoconfiguration Support for conditional configuration to make reasonable guesses about the beans your application needs and automatically configure them. Command-line interface Takes advantage of the Groovy programming language along with autoconfiguration to further simplify Spring application development. Actuator Adds certain management features to a Spring Boot application. https://www.manning.com/books/spring-in-action-fourth-edition
  14. Application developed for this session https://github.com/goxhaj/gastronomee Matt Raible 21-points app

    & JHipster Book https://github.com/mraible/21-points https://www.infoq.com/minibooks/jhipster-2-mini-book Special thanks to JHipster contributors!!!