@Hi-Pyncho

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

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

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


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

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

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

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


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

Все остальное — ресайз, масштабирование, — реализуете внутри библиотеки, без внешних интерфейсов (без настроек). Это все-таки тестовое задание, а не полноценная библиотека.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы