Code Monkey home page Code Monkey logo

profitsoftvdata-internship-hw-3's Introduction

ProfITSoftVData-Internship-HW-3

3rd homework (internship)

Домашня робота складається з двох завдань:

  1. Модифікувати завдання з попереднього блоку (у папці є перелік текстових файлів, кожен із яких є "зліпок" БД порушень правил дорожнього руху протягом певного року...) таким чином, щоб різні файли з папки завантажувалися асинхронно за допомогою пулу потоків, але загальна статистика однаково формувалася. Використовувати CompletableFuture і ExecutorService. Порівняти швидкодію програми, коли не використовується параллелизація, коли використовується 2 потоки, 4 і 8. Файлів в папці повинно бути 10+, їх розмір повинен бути достатнім, щоб заміри були цікавими. Результати порівняння прикласти коментарем до викононаго завдання.

  2. Розробити класс-утиліту зі статичним методом, який приймає параметр типу Class і шлях до properties-файлу, створює об'єкт цього класу, наповнює його атрибути значеннями з properties-файлу (викоистовуючи сеттери) і повертає цей об'єкт.

Приклад сигнатури метода:
public static T loadFromProperties(Class cls, Path propertiesPath)

Properties-файл має формат:
stringProperty=value1
numberProperty=10
timeProperty=29.11.2022 18:30

Метод має вміти парсити строки, цілі числа (int та Integer) і дати з часом (Instant). Створити аннотацію @Property, за допомогою якої можна було б опціонально перезадати назву property (акщо назва атрибуту класу відрізняється від ключу property в файлі), а для полів типу дата/час задати - очікуваний формат дати. Наприклад, клас, який ми читаємо з файлу вище, міг бі мати такі трибути:

private String stringProperty;

@Property(name="numberProperty") private int myNumber

@Property(format="dd.MM.yyyy tt:mm") private Instant timeProperty;

Складені ключі (prefix.propertyKey) в цьому завданні можуть використовуватися тільки якщо ми задаємо їх в аннотації @Property(name="prefix.propertyKey"). Якщо щось розпарсии/заповнити не вдалося (не підтримується тип, неправильний формат, тощо), метод повинен кидати відповідний Exception. Створити unit-тести для цього метода.

profitsoftvdata-internship-hw-3's People

Contributors

ivanfromodesa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.