Как стать автором
Обновить
АО «ГНИВЦ»
Драйвер цифровой трансформации
Сначала показывать

Reconciliation в React, обновления виртуального DOM: что это и как работает под капотом простыми словами

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2K

Привет, меня зовут Дмитрий, я React-разработчик и в статье хочу снова рассмотреть тему, которая у всех на слуху, однако «подкапотной» информации по ней не так много. Всем известно, что React обновляет компоненты, когда это необходимо, но как это происходит на самом деле, «под капотом»? Давайте разберемся вместе — что мне удалось узнать.

Читать далее

Фантастическая стратегия тестирования и места, где она обитает

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров976

Привет, дорогой читатель! Меня зовут Мария Вавилова, я начальник управления обеспечения качества в компании «ГНИВЦ» и занимаюсь созданием комфортных сервисов для взаимодействия с государством.

В этой статье хочу поговорить о must have в тестировании — об артефактах. В конце поделюсь небольшим подарком в виде шаблона одного из таких документов. Чтобы добавить чуть больше динамики, давайте ответим на несколько вопросов:

Знаете ли вы, что такое стратегия тестирования? Применяется ли она на ваших проектах?

Знаете ли вы, что такое план тестирования? Применяется ли он на ваших проектах?

Предположу, что многие ответили утвердительно, но вот к чему я веду…

Читать далее

От хаоса к системе: как мы создавали корпоративный фронтенд-фреймворк

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров7.2K

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

Эта статья не совсем обычная.
Мы будем смотреть на тему создания платформенных решений с разных ракурсов: управление, дизайн, проектирование, разработка и так далее. Чтобы передать вам как можно больше мыслей из первых рук, мой рассказ будут разрезать небольшие вставки-интервью от реальных участников нашей команды.

Меня зовут Сергей Шахов, я долгое время занимался развитием корпоративного фреймворка в нашей компании. Наш фреймворк помогает создавать командам пользовательские интерфейсы, иными словами, это фронтенд-фреймворк.

Статья адресована особенно тем, кто неравнодушен к разработке платформенных решений, а также может быть интересна всем, кто имеет отношение к фронтенд-разработке, проектированию интерфейсов, созданию дизайн-систем или комплексных модульных веб-приложений.

Вы узнаете, стоит ли затевать разработку корпоративного фреймворка, а также о том, как неопределённое может быть управляемым, а скучное — прекрасным. В качестве бонуса дадим вам запретный рецепт, как спасти демонстрацию вашим заказчикам за десять минут до её начала, которому ни в коем случае нельзя следовать. Поехали!

Читать далее

Как MobX делает объекты реактивными с помощью Proxy

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.2K

Привет! На связи снова Дмитрий — React-разработчик, который стремится разобраться, как всё устроено, и делится информацией с вами.

В прошлой статье мы подробно разобрали, что такое Proxy и как он работает, поэтому повторяться не будем. Сегодня поговорим о том, как MobX использует Proxy, создавая свою "реактивную магию".

Как MobX делает объекты реактивными?

MobX превращает обычные объекты JavaScript в реактивные, что позволяет автоматически отслеживать изменения их свойств и обновлять зависимости. В основе этого механизма лежат два ключевых инструмента: makeAutoObservable и observable. 

Читать далее

Использование Proxy и Reflect для создания реактивных объектов в JavaScript

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров2K

Привет, на связи снова Дмитрий, React-разработчик, и сегодня захотелось написать про Proxy и Reflect.

Что такое Proxy в JavaScript?

Proxy — это встроенный объект в JavaScript, который позволяет создавать обертки для объектов и перехватывать стандартные операции с ними, такие как: доступ к свойствам, их изменение, удаление и другие. Это мощный инструмент, который можно использовать для реализации различных паттернов, например, для создания реактивных объектов, создания ленивая инициализации свойств, проверки прав доступа и выполнения других задач.

Читать далее

Автоматизированное тестирование с помощью Selenium

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

В своей практике много раз сталкивался с крупными и древними проектами, которые поддерживаются и в полном объеме эксплуатируются лет по 10, а то и более. А бывает, что и довольно новый проект был сделан на основе того, старого и древнего. Команды разработчиков менялись с годами, а проект все разрастался и разрастался. У каждого разработчика свой стиль, видение, идеи. И вот такой проект все рос и рос. Появлялась новая функциональность, методы. А старые обрастали условиями, комментариями. Да и заказчики все время подгоняли по срокам. Все же сталкивались с ситуацией, когда заказчик говорит что-то наподобие: «Ну, я задание еще не сформулировал, но оно должно было быть выполнено еще вчера»? Сроки горят, а, соответственно, приходится чем-то жертвовать. И это что-то — модульные тесты. Ведь на тестирование может уходить до 60% от общего времени разработки. А дальше на написание тестов опять времени нет. Оно же и так работает, заказчик не жалуется, а значит, все хорошо. И в результате получаем ситуацию, когда уже непонятно, что и как друг с другом связано, что лишнее, а что критичное. Модульными тестами уже давно никто в этом проекте не пользуется, а те, что есть, падают с ошибками, ибо их тоже никто не обновлял. А сами методы порой занимают строк по 800 и более, включающих в себя десятки условий. Любая попытка взяться за исправление такой ситуации навевает чувство тоски и отчаяния.

Читать далее

LocaleCompare в JavaScript: правильная и удобная сортировка строк с учетом языка

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.9K

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

Читать далее

Опыт разработки на доработанном pgTap

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.1K

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

pgTap – это расширение PostgreSQL для разработки юнит-тестов. Сами тесты, как, собственно, и pgTap, пишутся на plpgSQL, что означает низкий порог вхождения для разработчиков PG.

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

Читать далее

Envoy в Legacy-среде: использование протоколов xDS для управления Data Plane

Уровень сложностиСложный
Время на прочтение15 мин
Количество просмотров995

Привет, Хабр! Давайте продолжим изучать возможности Envoy, но уже в контексте динамической конфигурации. В первой статье мы рассматривали настройку статической конфигурации, однако она имеет свои особенности. Статическая конфигурация подходит, когда ваши upstream (серверы, к которым Envoy отправляет запросы) редко изменяются. Envoy работает как прокси, и каждый запрос проходит через него. Чтобы правильно обработать запрос, Envoy должен иметь актуальную информацию о бэкенд-серверах, такую как их IP-адреса и порты. Когда информация о бэкенде меняется, необходимо обновить конфигурацию в статическом файле и перезапустить Envoy, что не всегда удобно.

Читать далее

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

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров9.7K

Привет, Хабр, это моя первая статья. Меня зовут Константин, я системный инженер в компании ГНИВЦ. Здесь я хотел бы вам рассказать, что такое Envoy и как с его помощью можно упростить жизнь разработчикам и повысить надёжность взаимодействия микросервисов, минуя инфраструктуру для кого-то страшного и непонятного Kubernetes, а используя простой и старомодный Docker. Также эта статья поможет познакомиться с Envoy поближе и узнать, как он шагает в ногу с таким проектом как Istio.

Читать далее

О внутренних аспектах внешних ключей

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров1.8K

Эта история начиналась с процесса валидации FK на очень больших таблицах (1TB+).
Далее я расскажу, какие нетривиальные проблемы встретились по пути, как я их решал, и каким образом можно исследовать довольно сложные проблемы производительности базы данных Postgres.

Читать далее

Что происходит, когда вы вводите адрес сайта и нажимаете Enter?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров26K

Вновь привет, меня зовут Дмитрий, я Middle-React-разработчик. Сегодня хочу поговорить о фундаментальных процессах, которые происходят при загрузке сайтов.

На собеседованиях я иногда задаю один, казалось бы, простой вопрос: «Что происходит после того, как вы вводите URL сайта в адресную строку браузера и нажимаете Enter?» Этот вопрос подходит как для Junior, так и для Middle-разработчиков, а иногда и для Senior, потому что, несмотря на его фундаментальность, в нем многие ошибаются или не могут дать точного ответа.

Считаю, что каждому веб-разработчику, а также просто интересующемуся человеку полезно понимать, как обрабатываются URL-запросы. Эти знания являются базовыми и важными для общего развития, независимо от уровня и опыта. Они помогают не только понять, сколько времени и ресурсов требуется для загрузки страницы, но и как это влияет на взаимодействие пользователя с сайтом, его производительность и оптимизацию.

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

Читать далее

Отладка и мониторинг в MobX: trace, introspection и spy

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров1.8K

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

Читать далее

Автоматический перезапуск службы 1С на Windows Server с очисткой кеша-сеансов

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6.2K

Доброго дня, коллеги. Рубрика — администрирование серверов 1С: Предприятие.

Свою статью я хотел бы начать с видов тестирования, применяемых в продукте «1С:Предприятие» для проверки информационной системы (ИС) на технологическое качество и масштабируемость.

Читать далее

pg_pathman vs декларативное секционирование — что лучше?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.1K

Добрый день, коллеги! Как известно, компания "Postgres Professional" более не рекомендует использовать секционирование с использованием pg_pathman, а рекомендует использовать вместо него декларативное секционирование. Однако помимо синтаксического сахара и утилитарного кода по поддержке интервального (в стиле Oracle) секционирования, я обнаружил для себя ещё одну проблему в такой миграции (переходе). Надеюсь, коллеги из PGPro доработают декларативное секционирование к моменту окончательного выпиливания pg_pathman.

Читать далее

Использование метода «почти бесконечного» запроса для сопоставления CPU интенсивных операций в Oracle

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров660

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

Возникла довольно естественная идея использовать этот метод для сопоставления CPU интенсивных задач в БД Oracle. Например, если мы встраиваем такую прожорливую CPU-функцию в наш пайплайн исполнения SQL-запроса так, чтобы она выполнилась более миллиарда раз, то получаем возможность сравнить затраты на CPU в разных случаях.

В данном случае мы будем сравнивать по производительности различные функции хеширования в Oracle: ORA_HASH и различные варианты STANDARD_HASH.

Читать далее

Дизайн-система: друг или враг?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.8K

Привет всем. Меня зовут Диана Осипова. Я являюсь амбассадором АО «ГНИВЦ» в Чувашском государственном университете города Чебоксары. Кроме того, с недавнего времени я присоединилась к команде компании в качестве junior-дизайнера.

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

Читать далее

Аналитика на госпроектах – это не страшно

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.6K

Как часто вам приходилось слышать на собеседованиях, что аналитики-кандидаты отказывают вашему проекту из-за нежелания работать в государственном секторе, так как считают, что бюрократия будет сильно мешать работе, их развитию, выпуску качественного продукта?

Сегодня я хотел бы поделиться с вами нашим опытом, подчеркнув, что работа аналитиком на государственных проектах не так страшна, как может показаться. Меня зовут Георгий Доделия, и я руковожу международными ИТ-проектами в компании АО «ГНИВЦ», работаю в отрасли ИТ уже более 12 лет. Начинал как бизнес-аналитик, потом проникся системным анализом, а уже после ушел в проектный менеджмент.

Читать далее

Как создать онлайн-митап для коллег, который им полюбится

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.2K

Всем привет! Меня зовут Марина, и в этой статье я расскажу вам про свой опыт развития направления DevRel в компании ГНИВЦ. Речь пойдет об онлайн-митапе, который помог нашей компании сплотить сотрудников и стал одним из источников передачи информации между подразделениями.

В ГНИВЦ работает более полутора тысяч человек, компания насчитывает несколько департаментов, а отделов настолько много, что их сложно сосчитать. Структура компании многосложная, а проекты разносторонние и различного масштаба. 

Одна из проблем крупных компаний – это недостаток коммуникации между обособленными сообществами аналитиков, тестировщиков, Go-разработчиков, Java-разработчиков, JS-разработчиков и т.д. Члены одного сообщества не знают, чем могут быть полезны другому и наоборот. 

В нашем же случае проблема коммуникации осложнялась и географией компании.
У ГНИВЦ восемь регионов присутствия: Москва, Нижний Новгород, Чебоксары, Уфа,  Волгоград, Санкт-Петербург, Кемерово и Новосибирск.

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

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

Читать далее

Из науки в системный анализ

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.6K

Вы тоже хотите в IT? В этой статье я поделюсь, как можно поменять сферу деятельности (или обрести новую сферу вдобавок к уже имеющейся) с науки на аналитику и присоединиться к увлекательному миру IT. Я расскажу про знания и навыки, которые пригодятся начинающему аналитику в первую очередь, а также ключевые ошибки.

Читать далее
1

Информация

Сайт
www.gnivc.ru
Дата регистрации
Дата основания
1977
Численность
1 001–5 000 человек
Местоположение
Россия