Как реализовать свою JS библиотеку и предоставить API?

Привет!
Само тестовое задание звучит так:

Реализовать прототип библиотеки для отображения линейных графиков с использованием WEB Canvas, в том числе:
1. Представить свой API для задания массива «графиков». Каждый «график» должен иметь:
a. Наименование параметра;
b. Массив точек (X,Y).
2. Библиотека должна поддерживать следующие функции:
a. Отслеживать изменение собственных размеров и обеспечивать автовписывание;
b. Отображать оси, с указанием отображаемых на осях параметров;
c. Отслеживать положение мыши с отображением всплывающей подсказки по точкам;
d. Масштабирование области графиков.
Выполненные тестовые задания будут протестированы в том числе на больших массивах входных данных.


Возникает вопрос: это должна быть просто небольшая библиотека с набором методов для рисования линейных графиков? И что значит здесь АPI - сам внешний интерфейс для работы с библиотекой или что-то более сложное? Кто-то может сталкивался с таким? Сам я на джуна подавал, так что в некоторых моментах плаваю и каша в голове. Помогите разобраться.
Заранее спасибо за ответ!
  • Вопрос задан
  • 420 просмотров
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
Так как это тестовое задание, следует считать, что оно самодостаточное.
Все спорные вопросы вы разрешаете на свое усмотрение.

Таким образом мы видим, что нам надо иметь возможность нарисовать несколько графиков.

Прототипируем простой интерфейс

MyChart.init({
  charts: [
    {
      name: 'name',
      axis: {
        x: { /* параметры для оси X */ }
        y: { /* параметры для оси Y */ }
      },
      data: [ /* массив данных (точек) для отрисовки */
        {x:1,y:2},
        //...
      ],
    },
  ],
});


Для всплывающих подсказок можно завести отдельный параметр или добавить опцию в массив точек.

Все остальное — ресайз, масштабирование, — реализуете внутри библиотеки, без внешних интерфейсов (без настроек). Это все-таки тестовое задание, а не полноценная библиотека.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Bavashi
@Bavashi
В задании очень много не четко сформулированных требований. Попросите пару-тройку примеров как должна выглядеть "библиотека" и варианты работы с ней.
Ответ написан
@bkosun
Вам нужно написать библиотеку таким образом, чтобы другие программисты могли удобно использовать ее в своих приложениях не вникая в то, как реализована ее функциональность.

API (программный интерфейс приложения, интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай][1]) — описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой.


API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.


Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика и которые он может вертеть и дёргать.


https://ru.wikipedia.org/wiki/API
Ответ написан
Leo5878
@Leo5878
Улыбчивай, люблю учить и учиться
это должна быть просто небольшая библиотека с набором методов для рисования линейных графиков?

Да!

И что значит здесь АPI - сам внешний интерфейс для работы с библиотекой или что-то более сложное

Просто интерфейс для работы.

Кто-то может сталкивался с таким?

Я писал библиотеку для создания popup окон. Необходимо было написать простой api и достаточно гибкий api для работы с ней. Сам api я описывал с помощью class'ов и на вход принимал объект. Так же реализовывал функциональное (функциональный подход) api
Ответ написан
@Stol_ASU
Hi-Pyncho, привет!
Можешь рассказать как и на чем реализовал задачу?
Это задание на какую позицию (junior или midle)?
Я недавно получил на отклик по вакансии на HH точно такое же задание,
и мне показалось оно какое-то 'размытое'.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы