Рубрика «javascript» - 192

До этого я никогда не сталкивался с CRM "Мегаплан" и не знал, что она существует. Один мой хороший знакомый предложил мне подработку, сказал, что один его знакомый ищет программиста, чтобы написать небольшую программу или скрипт для автоматизации работы.
Было сказано, что нужно из какой-то системы получить данные по API, обработать их и вывести в XLS. Мне предложение показалось интересным, я созвонился с Заказчиком и договорился о встрече.

Сразу хочу сказать, что я никак не связан с самим Мегапланом и не собираюсь его рекламировать.

Постановка задачи

Заказчик — предприятие, в котором примерно 50 сотрудников.

Сотрудники, проекты и задачи заведены в CRM.

Сотрудники выполняют поставленные задачи. При этом в комментариях к задаче они указывают количество отработанных часов. Кроме того, при выполнении задачи тратятся "ядро-часы" (часы машинного времени).

Они также указываются в каждой задаче в отдельном поле.

Заказчику нужно формировать отчёт в XLS по данным из Мегаплана за указанный временной период.

По каждому проекту, по каждой задаче, нужно знать, сколько было потрачено рабочих часов и "ядро-часов".

Т.е. затраты группируются вначале по проектам, далее по задачам, потом уже по каждому сотруднику.

Примерный вид отчёта представлен на рисунке ниже.

image

Получить такой отчёт средствами Мегаплана заказчик не смог. Поэтому было принято решение пригласить стороннего разработчика для разработки программы/скрипта, который решит задачу.

Срок: 1 неделя.
Цена: 20 тыс.руб.

Бюджет небольшой, информации в Интернете об опыте использования Мегаплан API — ещё меньше. Нашёл здесь, на Хабре, вот эту статью, и она совсем не вызывала оптимизма. Пахло проблемами, деньги были не сильно нужны, но было интересно и хотелось помочь людям в их рутине. Я согласился.

Читать полностью »

Библиотека React значительно облегчает жизнь разработчиков, которым приходится создавать сложные пользовательские интерфейсы. Программисту достаточно подготовить простые описания графических представлений для состояний приложения, а React, при изменении данных, будет эффективно обновлять и перерисовывать только те компоненты, на которые повлияли эти изменения. Однако, для того, чтобы создавать качественные проекты на React, программисту нужно приложить усилия, направленные на освоение этой библиотеки и вспомогательных средств разработки.

image

Автор статьи, перевод которой мы сегодня публикуем, хочет поделиться с аудиторией React-разработчиков девятью полезными советами, направленными на повышение качества кода. Эти советы затрагивают довольно широкий диапазон тем — от инструментальных средств до стиля программирования.
Читать полностью »

Сложный колл-центр на JavaScript - 1

Хорошо сделаный колл центр приносит пользу: подтверждает заказы, напоминает о конференциях и доставке готовой еды. У нас в Voximplant есть модуль ACD и концепция очередей, с их помощью на платформе можно за пару часов собрать простое решение для распределения звонков. Почему “простое”? Действительно сложные решения сильно отличаются друг от друга, невозможно сделать модуль, который бы подошел “всем и сразу из коробки”. Однако есть проверенная в бою схема, по которой клиенты реализуют логику очередей на своем бэкенде, а наше облако помогает с маршрутизацией входящих звонков и аналитикой. Под катом небольшая пошаговая инструкция: как и зачем делать колл центры на сотню операторв «под себя». “Схема рабочая, инфа 100%” (с)

Читать полностью »

Буквально вчера вышла 2-я версия молодого, но весьма многообещающего фреймворка SvelteJS. Версия мажорная, а значит содержит не только новые фичи и исправленные баги, но и соответствующие «breaking changes». Что новенького предлагает разработчикам новая версия и почему Svelte стал еще лучше, читайте под катом.
image
Читать полностью »

Вы как-нибудь задумывались, сколько версий одной и той же библиотеки затягивает ваша клиентская или серверная сборка? Мне вот в какой-то момент стало интересно. Навскидку найти для этого готовый инструмент не получилось, а смотреть глазами package-lock слишком утомительно. Как мы знаем — в любой непонятной ситуации нужно писать свой npm пакет, поэтому я именно это и сделал… Дальше в посте я рассмотрю результат анализа живого проекта и сделаю пару спорных выводов.

Ну и никак нельзя обойтись без этой классической картинки:

Ещё один инструмент для проверки ваших npm зависимостей — wtfwith - 1

Читать полностью »

Асинхронные циклы и Stream API в Node.js 10 - 1

В этом месяце выходит десятая версия Node.js, в которой нас ждет изменение поведения потоков (readable-stream), вызванное появлением асинхронных циклов for-await-of. Давайте разберемся что это такое и к чему нам готовиться.

Читать полностью »

В этой статье мы поговорим о классическом наследовании в JavaScript, распространённых шаблонах его использования, особенностях и частых ошибках применения. Рассмотрим примеры наследования в Babel, Backbone JS и Ember JS и попытаемся вывести из них ключевые принципы объектно-ориентированного наследования для создания собственной реализации в EcmaScript 5.

Статья для тех, кто знаком с наследованием в других языках и сталкивался с попытками эмулировать подобное поведение в JavaScript, а также для тех, кому интересно заглядывать «под капот» различных библиотек и фреймворков, сравнивая их реализацию. Оказывается, простую функцию extend можно реализовать очень по-разному. Нередко при этом допускаются ошибки (см. пункт «Самая распространённая ошибка» ниже).
Читать полностью »

Совсем недавно конструкция async/await в JavaScript выглядела как отличное средство для избавления от ада коллбэков. Однако неосмотрительное использование async/await привело к появлению нового ада.

Побег из ада async-await - 1

Читать полностью »

JavaScript, Java, какая теперь разница? - 1

На прошлом JPoint пообещал написать статью про использование GraalVM для смешивания Java и JS. Вот она.

В чем проблема? В повседневной практике часто встречаются приложения, состоящие из двух частей: JavaScript-фронтенд и Java-бэкенд. Организация интеропа между ними требует усилий. Как правило, делают их люди с разных сторон баррикад, и при попытке залезть в чужую область они начинают страдать. Еще есть фуллстек веб-разработчики, но про них всё понятно: они должны страдать всегда.

В этой статье мы рассмотрим новую технологию, которая может сделать процесс немного менее болезненным. Точнее, способ существует довольно давно, но как-то прошел мимо внимания широких народных масс.

Читать полностью »

Встречайте, противостояние двух фреймворков: Angular и React в формате поединка на примере конкретного простого приложения. За Angular выступает Евгений Гусев (@bunopus), за React — Илья Таратухин (@ilfa). Чтобы сделать честные выводы, они сначала поменялись технологиями и попробовали развернуть базовый проект. Старт на React породил 112 проблем, а вот с Angular дело обстояло гораздо проще, потому что это идеальное приложение для человека, который не особенно работал с фронтендом. Но, конечно, это было только начало, дальше пошел настоящий спор, все этапы которого под катом

Бешеные псы: Angular 2 vs React - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js