28. Гугл 2 Что такое FactoryMethod? Что такое DDD? Что такое TDD? Что такое dump? Что такое Pool?

 

6. Що таке FactoryMethod?

Factory Method – паттерн проектування, широко використовується в коді Java для  забезпечення високого рівня гнучкості коду - вирішує проблему створення об’єктів продукту без визначення їх конкретних класів.

Фабричний метод визначає метод, який слід використовувати для створення об’єктів замість використання прямого виклику конструктора (оператор new). Підкласи можуть перевизначити цей метод, щоб змінити клас об’єктів, які будуть створені.

Фабричні методи можна розпізнати за методами створення, які створюють об’єкти з конкретних класів. Хоча конкретні класи використовуються під час створення об’єкта, тип повернення методів фабрики зазвичай оголошується або як абстрактний клас, або як інтерфейс.

 

 

7.  Що таке DDD?

Domain-Driven Design (DDD) – це набір принципів та патернів, які допомагають розробникам створювати елегантні об'єктні системи. При правильному застосуванні DDD може призвести до програмних абстракцій, які називаються моделями предметної області. Ці моделі інкапсулюють складну бізнес-логіку, усуваючи розрив між бізнес-реальністю та кодом.

Підхід DDD передбачає, що кожному учаснику проекту доступна повна та цілісна інформація про предметну область та бізнес-процеси. На початковому етапі при взаємодії всіх сторін, що беруть участь у проекті, розробляється модель предметної області. Оскільки неможливо скласти всеосяжну модель будь-якого більш менш складного бізнесу, зазвичай виділяють предметні підобласті (subdomains), серед яких виділяють смислове ядро ​​(core domain) — найбільш важливу, першорядну для бізнесу предметну підобласть, те, що робить організацію конкурентоспроможною.

Book: Domain-Driven Design: Tackling Complexity in the Heart of Software, by Eric Evans.

 

 

8.  Що таке TDD?

Test-driven development – розробка на основі тестування – методологія розробки програмного забезпечення, що базується на ітераційному циклі розробки, де робиться акцент на написанні тестових випадків перед написанням компоненту чи функції. TDD використовує повторення коротких циклів розробки. Він поєднує створення та тестування. Цей процес не тільки допомагає забезпечити правильність коду, але також допомагає опосередковано розвивати дизайн і архітектуру поточного проекту.

TDD зазвичай дотримується циклу «Червоно-зелений рефактор» («Red-Green-Refactor»):

1.      Додайте тест до набору тестів.

2.      (Червоний) Виконайте всі тести, щоб переконатися, що новий тест не пройдений.

3.      (Зелений) Напишіть код для проходження нового тесту.

4.      Виконайте всі тести.

5.      (Рефакторинг) Покращення початкового коду, зберігаючи тести зеленими.

6.      Повторіть цикл.

 

 

9.  Що таке dump?

Дамп (англ. dump — «купа сміття, звалище; викидати, звалювати») — знімок інформації про стан комп'ютерної системи. Java Dumps вважається дуже цікавою функцією в Java, оскільки вона надає програмістам і користувачам можливість виходити з небажаних і неочікуваних ситуацій під час зупинки запущеної програми.

Дампи Java — це деякі ядра Java, які створюються помилково, коли віртуальна машина несподівано зупиняється через проблеми з мережею, помилку пам’яті або коли користувач ініціює будь-яку комбінацію клавіш. Дамп Java можна легко створити, викликавши API дампа Java, який включено у вихідний код програми, або безпосередньо вказавши параметр -Xdump:java через командний рядок. Java Dump надає докладний звіт про першопричини проблеми для усунення несправностей і діагностики основної причини зупинки, яка виникає, коли програма несподівано припиняє роботу.

Спеціального синтаксису для дампів Java немає, оскільки потреба в дампах Java залежить від першопричини проблеми, яка може бути різною. Отже, цей синтаксичний потік використовується, коли користувачеві потрібно діагностувати першопричину та виконати аналіз за допомогою інструментів jcmd, надіславши необхідні запити до JVM, і обов’язково використовуючи ту саму систему під час виконання, яка використовується для надсилання цього запиту до машини та програми Java. Отже, синтаксис визначається наступним чином:

jcmd <process_ id> GC.heap_dump <pathname_for_file>

Де параметрами є:

<process_id>: ідентифікатор процесу, який виконується програмою Java.

<pathname_for_file>: шлях, до якого буде передано файл.

 

 

10.  Що таке Pool?

(Пули обєктів, пули з’єднань, пули потоків, пули пам’яті, пули даних).

Пул (англ. pool- це сукупність ресурсів, які зберігаються в пам’яті, готові до використання.

Ресурси можуть стосуватися системних ресурсів, таких як дескриптори файлів, які є зовнішніми щодо процесу, або внутрішніх ресурсів, таких як об’єкти. Користувач надсилає запит на ресурс із пулу та виконує над ним потрібні операції. По завершенні використання ресурс повертається до пулу (а не звільняється та не втрачається).

 

 

 

 

 

Коментарі

Популярні дописи з цього блогу

27 Гугл 1 goto. Зарезервовані (ключові) слова. wait не в блоці synchronized. happens-before. BlockingQueue. Методи BlockingQueue

28. Соб 1. Какие приоритеты нитей бывают? Можно ли остановить нить, снизив ее приоритет до 0? Зачем нужен класс ThreadGroup? В какой группе нитей состоит main-thread? Что такое паттерн ThreadPool?

27. Соб.2 Что происходит после вызова метода notifyAll? Какие выгоды получает объект, если он immutable? Что такое «thread-safe»? Что такое «happens-before»? Что такое JMM? Какое исключение вылетит, если вызвать wait не в блоке synchronized?