Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/0xataru/bad_test
Test task for BAD program
https://github.com/0xataru/bad_test
Last synced: 7 days ago
JSON representation
Test task for BAD program
- Host: GitHub
- URL: https://github.com/0xataru/bad_test
- Owner: 0xataru
- License: mit
- Created: 2024-02-28T15:23:03.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-03-05T09:33:13.000Z (11 months ago)
- Last Synced: 2025-01-02T21:32:34.531Z (15 days ago)
- Language: Go
- Size: 31.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bad_test
## Завдання для програми Become a Developer
##### Завдання - знайти наступні чотири/шість значень:
1. максимальне число в файлі;
2. мінімальне число в файлі;
3. медіану ( https://goo.gl/hiCwVw );
4. середнє арифметичне значення ( https://goo.gl/XJeAjZ );
5. найбільшу послідовність чисел (які ідуть один за одним), яка збільшується (опціонально)
6. найбільшу послідовність чисел (які ідуть один за одним), яка зменьшується (опціонально)__*Запропонований метод рішення повинен знаходити всі чотири/шість величин з файлу не більше ніж за 90 секунд.*__
###### Обмеження #1:
Будь-яка людина повинна мати можливість скористатися вашим методом. Це означає, наприклад, якщо для вирішення завдання Ви використовували свою власну програму, то будь-яка інша людина повинна мати можливість її скомпілювати/запустити і т.д.; якщо Ви використовували сторонні програми/утиліти, то будь-яка людина повинна мати можливість їх також встановити та користуватися; також будь-яка людина може взяти зовсім інший файл з іншим набором цілих чисел і знайти всі чотири вказані величини;
###### Обмеження #2:
при вирішенні задачі не можна використовувати нелегальне програмне забезпечення (пропрієтарне ПЗ, яке зазнало злому, піратські копії ПЗ, тощо). Також якщо ви запозичили ідею рішення, ПЗ або вихідні джерела (або якусь їх частину) у друга/колеги/в інтернеті/де-завгодно, то згадайте джерело.###### РІШЕННЯ:
_Рішення виглядає як API, що має лише один ендпоінт. Можна завантажити .txt файл, розміром __до 100мб__. Сервіс зчитає всі цілі числа з файлу та видасть відповіді разом з часом виконаня у вигляді JSON._
Сервіс задеплоїний у тестовий продакшн, тож він відповідає вимозі Обмеження #2 стосовно того що будь-хто має можливість скористатися методом. Для того щоб протестувати, перейдіть за посиланням:
https://bad-test.foradmin.pp.ua
Код сервісу пожна подивитись за посиланням:
https://github.com/markraiter/bad_testДля вирішення завдання використовується мова програмування Go (Golang), яка має потужний інструмент управління конкурентністю завдяки горутинам.
Цей код використовує горутини для обчислення максимального та мінімального значень, медіани та суми чисел одночасно, що дозволяє використовувати конкурентність для прискорення обчислень. Також використовується оптимальний алгоритм для пошуку медіани та обчислення суми чисел. Завдяки цьому, файл, який запропоновано в завданні (https://drive.google.com/file/d/1LxSB6UEAVK0NLgU0ah5y0CBbD0gL_oO9/) обробляється за __4,9 секунд__.