Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe

Model-driven development (MDD) - подход к проектированию корпоративных приложений, при котором цифровая модель разрабатываемой системы становиться основным источником информации для разработки всех необходимых компонентов приложения. Однако, сложность применения MDD часто превышает все преимущества данного подхода, поэтому данный подход по-прежнему не находит широкое применение при разработке.
Но все изменилось, когда во вселенной Java появился Mr. JHipster. JHipster - это полнофункциональный MDD инструмент с открытым кодом, позволяющий разработчику быстро и просто создавать современные WEB - приложения со сложной масштабируемой архитектурой и не требующий наличия у разработчика глубоких знаний обо всем применяемом стеке технологий.
Я поделюсь с вами моим многолетним опытом применения MDD в корпоративной разработке. Я покажу вам на реальном примере, как можно использовать мощные возможности JHipster для быстрого создания WEB - приложений. Я расскажу вам о всех плюсах и минусах JHipster и раскрою секреты, как с помощью данного инструмента достигнуть максимальной продуктивности и не выстрелить себе в ногу.

  • Be the first to comment

  • Be the first to like this

JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe

  1. 1. 1 1 Model-Driven Development in the Open Java Universe May 2020
  2. 2. 2 About me Age: Specialty: Total-experience: Company: Java & RDBMS developer Anton Lem
  3. 3. 3 What are we going to talk about today? ・ Modeling of information systems ・ Model-driven development approach ・ My experience of using MDD in real enterprise development. ・ Who is Mr. Java Hipster? ・ Development session ・ JHipter’s cons & pros ・ What awaits us in the future?
  4. 4. 4 What is it modeling and model? Model is a strictly formalized idea that has been visualized by some graphical notations
  5. 5. 5 Model Driven Development (MDD) ・ Model is a primary source of all other artifacts in the project ・ CASE-tools (Computer-Aided Software Engineering) are intended to generate all derivative artifacts CI CD Code Architecture Documentation Cloud Interface Database Tests Backend
  6. 6. 6 How can MDD help developers? ・ Developers begin to communicate with customers in a common formal language ・ Model is the best strictly formalized documentation for developers ・ Effectiveness of external and internal communication growths dramatically ・ MDD significantly reduces the amount of manual coding ・ Using of MDD extends the professionalism of developers
  7. 7. 7 UML modeling ・ Founder: Grady Booch ・ UML was intended to standardize the notational systems and approaches to software design ・ In 1997, UML was adopted as a standard by the Object Management Group (OMG) ・ UML object class diagrams widely are being used in requirements models more focused on object-oriented software engineering Modern UML Object class diagram
  8. 8. 8 Enhanced Entity-Relationships modeling ・ Founder: Peter Chen ・ Originally used as only one available basis for the first Computer-Aided Software Engineering (CASE) tools and RDBMS ・ Enhanced by the concepts of inheritance, stereotypes, union types ・ It is an ANSI standard ・ Widely using in real CASE-tools, mostly oriented on relationships database design Modern Enhanced Entity Relationships Conceptual diagram
  9. 9. 9 Modeling in nowadays Enhanced ER Conceptual diagramUML Object class diagram VS
  10. 10. 10 My first experience of using MDD PowerDesigner - CASE-tool that really works: ・ enhanced ER-models ・ management of models ・ drawing diagrams ・ checking consistency ・ generation of derivative artifacts ・ and a lot of drawbacks
  11. 11. 11 The first results of using MDD Problems I encountered: ・ Conceptual models are too abstract ・ PowerDesigner doesn’t cover the questions of architecture, building and delivery ・ There is no way to transform a conceptual model into the code directly Positive results: ・ Changing my vision and my mind ・ Increasing the quality of work ・ Improving the performance of all my team ・ Bootstrapping of new projects ・ Bringing new approaches and solutions
  12. 12. 12 Second attempt to apply MDD ・ Eclipse contained a lot of scattered MDD components, but there was no ready-made CASE-tool ・ Assembling the components of the Eclipse modeling project into a ready-made CASE-tool was unreasonably expensive and complicated ・ PowerDesigner was still excellent but expensive
  13. 13. 13 Hi, I am JHipster!!! … or a miracle happens when you do not expect it at all
  14. 14. 14 What can Mr. JHipster give us? ・ Scaffolding of projects ・ Assembly of the back-end and front-end architecture ・ Stack of modern technologies and frameworks ・ Support authentication, configuration, microservices infrastructure ・ Integration of all components in a ready-made application ・ Several project building, CI, and deployment options ・ MDD tool, but he doesn’t know it
  15. 15. 15 JHipster features Backend technologies
  16. 16. 16 JHipster features Front-end technologies
  17. 17. 17 JHipster features Project building Continuous integration Deployment
  18. 18. 18 JHipster’s MDD features ・ Own structural data model ・ Custom model definition language ・ Model visualization tool ・ Model-to-code generator
  19. 19. 19 JHipster’s MDD features Artifacts generated from model: ・ UI components & tests ・ API & its documentation ・ Security layer & authentication ・ Backend: REST-controllers, services, DAO layer ・ Business models and DTO ・ Database schema ・ Tests: unit, integration, performance, behaviour
  20. 20. 20 Real example of business requirements
  21. 21. 21 Real example of business requirements ・ Build a ready-made web-application from scratch. ・ Implement CRUDL operations for entities from the provided schema. ・ Stateless authentication and authorization. ・ Full-text search, Open-API documentation, internationalization: English, German. ・ Assembly all layers from a data storage to UI. ・ Test coverage of all layers is mandatory. Performance tests too.
  22. 22. 22 JHipster in action ・ Project generation and assembly of modern integrated architecture. ・ Model building, code, and test generation. ・ Overview of the ready application.
  23. 23. 23 JHipster usage cases ・ Scaffolding of your new real projects from scratch ・ Prototyping of ideas ・ Building mock-implementations of services for integration tasks ・ Learning purposes
  24. 24. 24 JHipster Pros & Cons Advantages: ・ A large stack of modern technologies integrated into the one ready-made project ・ The best approaches and using advanced frameworks ・ Adjusted project builder, CI, deployment ・ Marketplace and community ・ Real MDD in the open-source Java universe ・ JHipster is extremely simple and accessible
  25. 25. 25 JHipster Pros & Cons Areas of improvement: ・ Very primitive model ・ Ill-conceived UI: ‑ synthetic ID as a screen name for objects ‑ lack of support of large lookup datasets ・ Not-OOP approach in code
  26. 26. 26 Conclusion ・ Modeling brings a lot of benefits to developers ・ JHipster can save your time and teach you ・ Use JHipster and advanced modeling tools together ・ MDD the most promising candidate for the entire automation ・ I expect the emergence of dedicated modeling platforms and servers
  27. 27. 27Privileged and confidential Q & A
  28. 28. 28 28 Thank you! Skype: antonlem78