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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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


Магия

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

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

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

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


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

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

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

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

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

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

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

Время на прочтение 5 мин
Количество просмотров 6.2K
При разработке приложений на 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 мин
Количество просмотров 12K

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


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


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

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

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

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


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


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

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

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

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

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

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

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

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

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


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


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

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

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

Время на прочтение 4 мин
Количество просмотров 7.3K
Все чаще и чаще мы стали выводить свои программы в облака. Хорошо это или плохо — рассуждать не станем, но вот о ситуации, когда необходимо состыковать локальные программы с облачными, мы сегодня с вами немного поговорим: в разрезе нашей СЭД 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 мин
Количество просмотров 5.9K
Пользователь Василий обращается в техподдержку «Не выделяется номер при регистрации документа ошибка 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