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

Компания ДоксВижн временно не ведёт блог на Хабре

Сначала показывать
  • Новые
  • Лучшие

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

Блог компании ДоксВижн Разработка веб-сайтов *Программирование *.NET *C# *
Tutorial

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


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

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

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

Блог компании ДоксВижн Разработка веб-сайтов *JavaScript *
Tutorial
Метапрограммирование — вид программирования, связанный с созданием программ, которые порождают другие программы как результат своей работы, либо программ, которые меняют себя во время выполнения. (Википедия)

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

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

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

Блог компании ДоксВижн Разработка веб-сайтов *JavaScript *TypeScript *
При разработке приложений на React довольно неудобно создавать независимые друг от друга компоненты, т.к. стандартным способом для обмена данными между ними является "Lifting State Up". Этот подход постепенно загрязняет ненужными свойствами промежуточные компоненты, делая их неудобными для повторного использования.

image

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

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

Блог компании ДоксВижн Разработка веб-сайтов *JavaScript *TypeScript *

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


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


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

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

Блог компании ДоксВижн Разработка веб-сайтов *JavaScript *HTML *

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


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

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

Блог компании ДоксВижн Разработка веб-сайтов *JavaScript *Программирование *Node.JS *
Tutorial

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


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


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

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

Блог компании ДоксВижн Разработка веб-сайтов *JavaScript *HTML *ReactJS *

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


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


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

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

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

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

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

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

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

Блог компании ДоксВижн Разработка веб-сайтов *JavaScript *Программирование *ReactJS *

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


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


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

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

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

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

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

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

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

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


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

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

Блог компании ДоксВижн Разработка веб-сайтов *JavaScript *Программирование *
Tutorial

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


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


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


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

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

Блог компании ДоксВижн Help Desk Software *ECM/СЭД *Service Desk *
Пользователь Василий обращается в техподдержку «Не выделяется номер при регистрации документа ошибка 1234, для исправления приходится перезапускать службу сервера приложений. Ошибка возникла 05.05 приблизительно в 15:10-15:50. Воздействие инцидента: Снижена эффективность работы пользователей».

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


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

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

Блог компании ДоксВижн Разработка веб-сайтов *JavaScript *Программирование *TypeScript *

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


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


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


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

Верстка: отображаем пользовательский контент

Блог компании ДоксВижн Разработка веб-сайтов *CSS *HTML *
Под пользовательским контентом в этой статье мы понимаем любой текст на странице, автором которого является пользователь. Чаще всего это комментарии, пользовательские записи «на стене» в микроблоге, информация «о себе» в профиле и все в таком роде. Задача не то чтобы очень сложная, но требует внимательности и хорошего понимания основ верстки. В этой статье сделана попытка собрать воедино то наиболее важное, что нужно знать о верстке, включающей пользовательский текст.


Читать дальше →
Всего голосов 57: ↑53 и ↓4 +49
Просмотры 32K
Комментарии 18

Приложения в системе электронного документооборота. Часть 5: Задания и маршрутизация документов в приложениях СЭД

Блог компании ДоксВижн ECM/СЭД *
Работа с заданиями — это, пожалуй, наиболее часто используемая функция системы электронного документооборота. Казалось бы, что может быть проще — доставить документ исполнителю и получить реакцию на его обработку, но практика показывает, что задание — один из самых сложных объектов в СЭД. Российские СЭД имеют мощные средства управления заданиями. Расскажем, как реализованы задания в Docsvision, и какие есть особенности их реализации.
Читать дальше →
Всего голосов 4: ↑2 и ↓2 0
Просмотры 3.3K
Комментарии 2

Актуальность модели PaaS для систем электронного документооборота

Блог компании ДоксВижн ECM/СЭД *
Про модель «СЭД в формате SaaS» сказано уже достаточно много. Напомним, примерно с 2010 года на российском рынке стали появляться игроки, создающие новые продукты и решения в таком формате. Они задали тренд. К 2011-2012 году на рынок вышли несколько крупных игроков с SaaS-решениями по проектному управлению, которые, в том числе, включали в себя элементы финансовых систем, CRM и системы электронного документооборота. Эти решения напрямую не являются СЭД в формате SaaS, но при этом частично решают задачи современных СЭД и даже позволяют в том или ином виде автоматизировать уникальные бизнес-процессы компании.
Читать дальше →
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 2.1K
Комментарии 2

Приложения в системе электронного документооборота. Часть 4: Конструктор бизнес-процессов

Блог компании ДоксВижн ERP-системы *ECM/СЭД *
Вторым важнейшим компонентом приложения СЭД, помимо документов или карточек документов (в модели приложения, реализованной в платформе Docsvision), являются процессы. Если машина состояний, контекстно-ролевая модель и скрипты определяют поведение и логику отдельного документа в системе, то бизнес-процессы предназначены для реализации сложных сценариев маршрутизации, взаимодействия с внешними по отношению к СЭД приложениями, для обработки событий, не связанных с активностью пользователей, и другой серверной активности в отношении документов.
Читать дальше →
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 4.8K
Комментарии 3

Прототипы как предчувствие продукта

Блог компании ДоксВижн Веб-дизайн *Интерфейсы *
Представьте себе: ваш ребенок умирает от редкой и неизлечимой болезни. Его бьют посторонние люди, и он страдает от жуткой боли. В самом конце он усыхает до размера кошки, становится совсем серым и, наконец, умирает. А потом случается хеппи-энд: вы узнаете, что в роддоме произошла ошибка… Ф-ф-фу, напугал, дур-рак!

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

Привет, друзья! Прототипы — это становой хребет продуктового дизайна. Я расскажу, почему мы в команде используем только hi-fi прототипы и отказались от всех прочих.

Ранее мы уже говорили про структуру приложений и определение принципов навигации. Кул. Но что со всем этим делать дальше? Не вопрос! Конечно, нужно разработать прототип. Прототип нужен для раннего тестирования MVP, для снижения рисков проектирования, для проверки пригодности предлагаемых решений, для показа акционерам, для краудфандинга и для экономии времени при общении с разработчиками. Отовсюду мы слышим стоны. Всем нужен прототип. Мы должны протянуть руку помощи, и мы ее протянем.
И тут у меня для вас 2 новости. Сначала хорошая: плохая новость могла бы быть намного хуже…

10 min read
Всего голосов 19: ↑12 и ↓7 +5
Просмотры 11K
Комментарии 13
1