Как стать автором
Обновить

Компания Docsvision временно не ведёт блог на Хабре

Сначала показывать

Применение ЭП в электронном документообороте: что уже можно, а что пока не определено законом?

Время на прочтение4 мин
Количество просмотров3.4K

Электронный документооборот становится не только выгодным, но и безопасным с точки зрения рисков судебных споров. Компании могут обмениваться электронными документами с контрагентами и даже сотрудниками. Что уже легально в части работы с электронной подписью (ЭП), а что пока не определено – рассказываем в этой статье.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии9

Переезд хуже пожара, но не всегда. Опыт миграции портала технической поддержки с Zendesk

Время на прочтение5 мин
Количество просмотров1.5K

Весной портал технической поддержки «ДоксВижн» экстренно переехал с Zendesk на платформу ITSM 365 — всего за 3 недели. Говорят, переезд хуже пожара. Однако весной полыхало у многих — многие ИТ-службы столкнулись с вызовом, когда требовалось быстро перевести привычные сервисы на новые платформы с сохранением бизнес-процессов и функций. В этой статье я хочу рассказать, как мы выбирали новый инструмент для реализации портала технической поддержки и быстро мигрировали.

Читать далее
Всего голосов 5: ↑3 и ↓2+1
Комментарии6

Бухгалтеры и юристы хранят документы по 50 лет – как будем организовывать для них хранение?

Время на прочтение5 мин
Количество просмотров3.4K

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

Рассказываем, какие технологии помогают решить такие задачи.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии6

Повторное использование кода с помощью React-компонентов

Время на прочтение9 мин
Количество просмотров4.7K

Как часто рано или поздно при решении новой задачи приходит мысль: а нельзя ли для неё переиспользовать код из реализованной ранее аналогичной задачи? Думаю, что в такой момент нами движет что-то среднее между ленью и здравым смыслом. Ну не писать же всё с нуля? Далее появляется подлая мыслишка: а может, просто «скопипастить» и не заморачиваться?

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Кровь, пот и слезы: как я переделал навигацию на сайте документации и в чём профит переделки

Время на прочтение13 мин
Количество просмотров2.3K

Привет! Меня зовут Владимир, но вы можете звать меня просто Иннокентий Алексеевич. Я люблю эксперименты. Сегодня я расскажу, как можно улучшить навигационное меню на сайте документации, сократить время сборки и размер сайта больше чем в два раза. В качестве примера возьму сайт документации, собранный при помощи Antora.


Кому будет полезен материал: техническим писателям, разработчикам сайтов документации и просто любителям опенсорса и красивых вещей.


Antora — генератор статических HTML сайтов из исходных AsciiDoc файлов. Antora бесплатная и имеет открытый исходный код.


Магия

Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии2

Напиши мне GraphQL сервер на C#

Время на прочтение7 мин
Количество просмотров24K

Как-то выдалась у меня пара выходных, и я набросал GraphQL сервер к нашей Docsvision платформе. Ниже расскажу, как все прошло.


Постер - по щучему велению

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии12

Метапрограммирование в JavaScript

Время на прочтение17 мин
Количество просмотров23K
Метапрограммирование — вид программирования, связанный с созданием программ, которые порождают другие программы как результат своей работы, либо программ, которые меняют себя во время выполнения. (Википедия)

Говоря более простым языком, метапрограммированием в рамках JavaScript можно считать механизмы, позволяющие анализировать и менять программу в режиме реального времени в зависимости от каких-либо действий. И, скорее всего, вы так или иначе используете их при написании скриптов каждый день.

Всего голосов 41: ↑38 и ↓3+35
Комментарии16

Как мы общаемся с React-компонентами при помощи декораторов в TypeScript

Время на прочтение5 мин
Количество просмотров6.3K
При разработке приложений на React довольно неудобно создавать независимые друг от друга компоненты, т.к. стандартным способом для обмена данными между ними является "Lifting State Up". Этот подход постепенно загрязняет ненужными свойствами промежуточные компоненты, делая их неудобными для повторного использования.

image

Наиболее популярными средствами решения этой проблемы (и некоторых других) являются такие библиотеки как Redux и Mobx, позволяющие хранить данные в отдельном месте и передавать их компонентам напрямую. В этой статье я хочу продемонстрировать наш подход к решению данного вопроса.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии3

Нативная инверсия зависимостей в TypeScript и React

Время на прочтение5 мин
Количество просмотров18K

Когда я задумался о внедрении зависимостей в TypeScript, то первое, что мне посоветовали — inversify. Я посмотрел эту и другие библиотеки, реализующие паттерн Service Locator, и даже сделал свою собственную — typedin.


Но когда я работал над версией typedin 2.0, то в конце концов понял, что вообще никакой библиотеки не нужно. В TypeScript есть все необходимое.


Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии32

Не вебпаком единым

Время на прочтение4 мин
Количество просмотров7.3K

Представляем лог доклада с OrelJS о настройке удобной среды разработки с использованием SystemJS. У сборки на основе Webpack полно недостатков, в докладе представляется альтернативный подход на основе SytemJS и JSPM.


Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии22

Вжух и готово — генерируем документацию из TypeScript кода с Typedoc

Время на прочтение5 мин
Количество просмотров13K

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


Что у нас получилось — можно посмотреть здесь.


Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии10

Заменяй и властвуй — подход SOLID для разработки повторно используемых компонентов в вебе

Время на прочтение9 мин
Количество просмотров18K

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


Эта статья во многом вдохновлена докладом Павла Силина на РИТ 2017, однако здесь много моего собственного опыта и размышлений. Примеры будут на React + TypeScript, однако подход не привязан к какой-либо технологии.


Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии166

Как сервис push-уведомлений помог нам сделать более посещаемым портал техподдержки

Время на прочтение9 мин
Количество просмотров9.1K
Всем привет. Инструмент push-уведомлений сегодня активно используется компаниями в разных целях — для рассылки новостей, оповещений о рекламных акциях и т.д. Мы решили использовать этот канал для коммуникации с пользователями нашего портала технической поддержки, с которыми мы общаемся в helpdesk системе. Сейчас я расскажу, как мы внедрили в тестовом режиме систему push-уведомлений для нашего портала ТП, и к чему в итоге это привело. Моя статья может быть полезна как техническим (сервисным) специалистам, так и руководителям.

Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии10

Приложения в системе электронного документооборота. Часть 6: Представления

Время на прочтение7 мин
Количество просмотров3.8K
Продолжая серию статей про приложения СЭД, остановимся на таком объекте, как представления. Представления – это элемент системы, который позволяет просматривать списки документов и заданий, организованные определенным образом в контексте приложения. На мой взгляд, это наиболее специфичный объект, который возможно отличает систему электронного документооборота от других типов систем, давайте рассмотрим его подробнее.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Ужасный import кракен — как использовать ES6-модули и не сойти с ума

Время на прочтение7 мин
Количество просмотров22K

Глобальная область видимости (aka namespace в TypeScript) — уже давно не круто. Можно долго перечислять преимущества модулей (ES6 модулей, в частности), но лично для меня решающим стала возможность использовать SystemJS для динамической загрузки исходников и Rollup, для сборки бандла.


Однако, первое, с чем пришлось столкнуться при внедрении ES6-модулей- безумное количество import выражений, с безумным количеством точек внутри:


import { FieldGroup } from "../../../Common/Components/FieldGroup/FieldGroup";

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии108

«Сим-Сим, откройся!», или как открыть ссылку через RemoteApp

Время на прочтение4 мин
Количество просмотров7.4K
Все чаще и чаще мы стали выводить свои программы в облака. Хорошо это или плохо — рассуждать не станем, но вот о ситуации, когда необходимо состыковать локальные программы с облачными, мы сегодня с вами немного поговорим: в разрезе нашей СЭД Docsvision и установленного локально на пользовательский ПК любого почтового клиента. Представим себе задачу: открыть ссылку на «карточку» Docsvision, которая пришла по почте пользователю в почтовый клиент, установленный локально на его компьютере. Изучив вопрос, проанализировав опыт наших партнеров, мы нашли решение, которым и хотим с вами поделиться.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии2

Декретный отпуск в IT, или как не потерять себя в профессии

Время на прочтение6 мин
Количество просмотров15K
3 месяца назад я вышла из декретного отпуска и, вновь приступив к работе бизнес-аналитика, прочувствовала на себе одну прописную истину. Было бы легче возвращаться к работе, заранее продумав, как сохранить себя «в профессиональной форме» за время декрета. IT-сфера настолько изменчива, что порой не успеваешь за новыми методологиями и технологиями, даже постоянно находясь внутри процесса, а уж выпадение из него — как минимум, на год — и вовсе может сыграть злую шутку.

Не стоит думать, что вовлечение в процесс поможет быстро восстановиться. Никто вам не даст на это времени. Задачи повалятся снежным комом, их надо будет решать, совмещая работу с воспитанием ребенка (я это к тому, что вариант, «поработаю еще над этим дома» уже не сработает). Так что риски нужно оценивать и закладывать заранее.

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


Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии0

Angular — настройка среды разработки и production сборки с AOT-компиляцией и tree-shaking (Gulp, Rollup, SystemJS)

Время на прочтение10 мин
Количество просмотров29K

Одна из особенностей Angular, присущая и первой и новой версии — высокий порог вхождения. Новый Angular, помимо всего прочего, трудно даже запустить. А и запустив, легко получить 1-2 Мб скриптов и порядка нескольких сотен запросов при загрузке hello world страницы. Можно, конечно, использовать всякие стартеры, seed'ы или Angular CLI, но для использования в серъезном проекте нужно самому во всем разбираться.


В этой статье я постараюсь описать, как настроить удобную среду разработки с использованием SystemJS, и production сборку Angular приложения на основе Rollup, с выходом около 100кб скриптов и нескольких запросов при открытии страницы. Использовать будем TypeScript и SCSS.


Попробовать все в деле можно в моем angular-gulp-starter проекте.


Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии32

Битва экстрасенсов в технической поддержке, или как помочь пользователю правильно проставить приоритет инцидента

Время на прочтение4 мин
Количество просмотров6K
Пользователь Василий обращается в техподдержку «Не выделяется номер при регистрации документа ошибка 1234, для исправления приходится перезапускать службу сервера приложений. Ошибка возникла 05.05 приблизительно в 15:10-15:50. Воздействие инцидента: Снижена эффективность работы пользователей».

А на самом деле Василий не сказал, что перезапуск службы сервера приложений приводит к ошибкам при обновлении пользовательских онлайн отчетов у всех работников компании. Другими словами, ни один пользователь не может посмотреть актуальные онлайн отчеты по существующим документам, что равносильно остановке документооборота в компании в принципе. Получается, Василий не дал необходимой информации для того, чтобы его обращению присвоили правильный приоритет – и это несмотря на то, что у него была такая возможность. И, если реальный приоритет ниже заявленного — это не так страшно, то в противоположном случае это может иметь опасные последствия. В связи с чем встает закономерной вопрос: как узнать, что хотел донести пользователь, но по какой-то причине застеснялся и в последний момент сообщил совсем другое?


Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии19

Темная сторона TypeScript — @декораторы на примерах

Время на прочтение18 мин
Количество просмотров60K

Декораторы — это невероятно круто. Они позволяют описывать мета информацию прямо в объявлении класса, группируя все в одном месте и избегая дублирования. Ужасно удобно. Однажды попробовав, вы уже никогда не согласитесь писать по-старому.


Однако, несмотря на всю полезность, декораторы в TypeScript (заявлены также на стандарт) не так просты, как хотелось бы. Работа с ними требует навыков джедая, так как необходимо разбираться в объектной модели JavaScript (ну, вы поняли, о чем я), API несколько запутанный и, к тому же, еще не стабильный. В этой статье я немного расскажу об устройстве декораторов и покажу несколько конкретных приемов, как поставить эту темную силу на благо front-end разработки.


Помимо TypeScript, декораторы доступны в Babel. В этой статье рассматривается только реализация в TypeScript.


Читать дальше →
Всего голосов 60: ↑58 и ↓2+56
Комментарии33