Pull to refresh
  • by relevance
  • by date
  • by rating

Партнёрская программа Минкомсвязи России

Lumber room
Все организации, которым нужно привлечь кого-то к сотрудничеству, создают партнёрские программы. Суть таких программ зависит от типа сотрудничества – кому-то требуется «привязать» разработчиков к своим технологиям, а кто-то хочет замкнуть производителей программного обеспечения на его потребителей. Мне кажется, что нашему Министерству связей и массовых коммуникаций могла бы пригодиться партнёрская программа.

Вы слышали про ЛИНТЕР? Многие без колебаний ответят: «Нет». Если же спросить так: «Вы слышали про Oracle?», утвердительных ответов будет значительно больше. А тем временем, есть коммерческая отечественная СУБД, называемая ЛИНТЕР и ведущая свою историю с начала 80-х годов прошлого века. Сегодня ЛИНТЕР управляет движением самолётов, ЛИНТЕР пропускает людей в метро, ЛИНТЕР качает нефть, ловит преступников, контролирует космическое пространство, защищает атомные реакторы, хранит музыку в домашних кинотеатрах и сотовых телефонах, работает на российских подводных лодках и много ещё где.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Views304
Comments 26

Модель ветвления и управления модулями git для большого проекта

РЕЛЭКС corporate blogGitVersion control systems
Без малого два года назад мы начали использовать в разработке нашего флагманского проекта СУБД ЛИНТЕР новую модель ветвления и управления подмодулями git-а. Десятки тысяч коммитов, сделанные за это время группой разработчиков, позволяют с определенной долей уверенности считать нововведения успешными. Эта статья — краткий обзор принципов организации хранилища исходных кодов в большом проекте на базе альтернативной реализации модулей git, сложившейся стратегии ветвления и инструментария linflow.


Читать дальше →
Total votes 29: ↑26 and ↓3+23
Views33K
Comments 8

Использование возможностей git-а в системе сборки модульного проекта

РЕЛЭКС corporate blogWebsite developmentGitVersion control systems
В нашем блоге мы уже рассказывали о принципах организации репозитория большого проекта как совокупности независимых модулей, что позволяет организовать извлечение исходных кодов в произвольную файловую структуру рабочей копии. Разумеется, такой подход не мог не отразиться на системе сборки проекта, поскольку потребовал создание механизма отслеживания зависимостей между модулями с учетом их фактического размещения. Эта статья посвящена тому, как можно использовать возможности git-а для решения не только этой задачи, но и для извлечения фрагмента проекта с автоматическим учетом внутренних межмодульных зависимостей.


Читать дальше →
Total votes 15: ↑13 and ↓2+11
Views12K
Comments 4

Система сборки для больших модульных проектов

РЕЛЭКС corporate blogWebsite developmentGitVersion control systems
На страницах нашего блога мы уже писали о преимуществах организации репозитория крупного проекта способом, предполагающим возможность извлечения исходников в изменяемую структуру рабочей копии. Использование такого подхода вкупе с потребностями простого конфигурирования, фрагментарной сборки, поддержки несколько десятков ОС под широкий спектр аппаратных платформ стали причиной разработки нами собственной системы сборки. Эта статья рассказывает о найденных нами решениях, которые могут быть интересны разработчикам, сталкивающимися с трудностями поддержки инфраструктуры больших проектов.


Читать дальше →
Total votes 12: ↑9 and ↓3+6
Views10K
Comments 4

Мониторинг под рукой на IxoraRMS. Быстро и со вкусом

РЕЛЭКС corporate blogWebsite developmentJava
image
Иногда проблема с приложением выливается в небольшой кошмар, ребус. Назовите, как хотите. Хочу поделиться об опыте использования средств мониторинга разработчиками на одном из проектов. Хабр многолик и уже существуют десятки статей о продуктах, которые облегчают понимание происходящего: cacti — habrahabr.ru/post/179391; zabbix — habrahabr.ru/post/137641; collectd — habrahabr.ru/post/93205; штатные средства JVM — habrahabr.ru/post/147008 (дополняйте).

Попробую рассказать о еще одном небольшом универсальном и легковесном продукте в этой категории — IxoraRMS.
Всем интересующимся, добро пожаловать под кат.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Views8.2K
Comments 0

СУБД ЛИНТЕР Бастион успешно протестирована на ReactOS

Фонд ReactOS corporate blogReverse engineeringDevelopment for Windows
Добрый пятничный вечер, уважаемые читатели Хабра!

Коллектив разработчиков ReactOS представляет вашему вниманию свой первый совместный пресс-релиз с компанией ЗАО НПП «РЕЛЭКС».

Специалистами ЗАО НПП «РЕЛЭКС» успешно завершены работы по тестированию СУБД ЛИНТЕР Бастион на операционной системе ReactOS.

Замеры показали, что Линтер под управлением ReactOS дает прирост производительности на 10-15% по сравнению с Windows XP на идентичной аппаратной конфигурации. В ходе работ были выявлены недостатки в ОС, которые были оперативно устранены сообществом разработчиков при непосредственном и активном участии российского фонда ReactOS.
Читать дальше →
Total votes 41: ↑27 and ↓14+13
Views20K
Comments 73

СУБД ЛИНТЕР и ReactOS, технические детали

РЕЛЭКС corporate blogDevelopment for Windows
Recovery mode
Во многом благодаря активности фонда ReactOS не будет большой ошибкой предположить, что любой постоянный читатель Хабра слышал о весьма амбициозном проекте «свободного Виндоуcа». Я не стал исключением, и еще в ходе работ по созданию системы сборки для СУБД ЛИНТЕР идея включить поддержку этой операционной системы меня посещала не раз. Совсем недавно ее удалось воплотить в жизнь.



Под катом вас ждут технические детали работ, включая опыт развертывания ReactOS на реальном железе, и немного моего субъективного мнения об этом проекте.
Читать дальше →
Total votes 36: ↑30 and ↓6+24
Views14K
Comments 55

Все люди не умеют писать код

Конференции Олега Бунина (Онтико) corporate blogPythonPerfect codeDevelopment Management
В преддверии Moscow Python Conf ++ мы поговорили с Никитой Соболевым, CTO компании «Мы делаем сервисы», о глобальной проблеме управления сложностью кода в разрезе развития языков программирования. А также о том, почему тут со временем ситуация становится только хуже. Плюс расспросили, зачем ему потребовалось создавать собственный линтер.


Читать дальше →
Total votes 77: ↑58 and ↓19+39
Views33K
Comments 55

Холиварный рассказ про линтеры 

Конференции Олега Бунина (Онтико) corporate blogOpen sourcePythonProgrammingPerfect code
Все мы пишем код. Много кода. Само собой, бывают ошибки. Иногда это просто кривой код, а иногда цена ошибки — взорванный космический корабль. Конечно, никто не делает намеренных косяков, все в меру возможностей стараются следить за качеством, но без инструментов статического анализа вряд ли можно быть уверенным, что всё идеально.

Линтеры помогают приводить код к единому стилю и избегать ошибок. Правда, только в том случае, если вы готовы к страданиям, а не отмахиваетесь в конце концов «pylint: disable», только чтобы оно отстало. Какой должен быть линтер, и почему таки не обойтись Pylint, знает Никита Соболев (sobolevn), который понимает и любит линтеры настолько, что даже свою компанию назвал так, чтобы их не расстраивать — wemake.services.

image

Ниже текстовая версия доклада на Moscow Python Conf++ про линтеры, как их делать правильно и как не нужно. В выступлении было много интерактива, онлайна и общения с аудиторией. Спикер по ходу дела проводил опросы и старался переубедить слушателей: смотрел на тренд, и как в дебатах, пытался выровнять соотношение и поменять общественное мнение. Какая-то часть с опросами попала в расшифровку, но не вся, поэтому для полноты картины прилагается видео.
Читать дальше →
Total votes 30: ↑26 and ↓4+22
Views28K
Comments 15

О линтерах, качестве кода, качестве вообще и управлении качеством

Website developmentJavaScriptProgrammingDevelopment Management
Бойтесь своих желаний, они могут исполниться.
Народная мудрость.

Одна пара пожелала пожениться и обрести вечное счастье. Я взорвал их машину у церкви сразу после венчания.
One Wish Grant, фильм Трасса 60.

image

Ещё одна философская заметка про управление, а данном случае качеством, состоит из трёх частей: очень абстрактной, в меру абстрактной, конкретной и отдельного вывода. Содержит критику существующей практики применения линтеров.
Читать дальше →
Total votes 43: ↑34 and ↓9+25
Views14K
Comments 23

Линтеры в Go. Как их готовить. Денис Исаев

IT systems testingGo

Предлагаю ознакомиться с расшифровкой доклада Дениса Исаева jirfag "Линтеры в Go. Как их готовить."


В go 50+ линтеров: в чем их профит и как эффективно встроить их в процесс разработки? Доклад будет полезен как тем, кто еще не использует линтеры, так и тем, кто уже применяет их: я раскрою малоизвестные трюки и практики работы с линтерами.



Кому интересно, прошу под кат.

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Views14K
Comments 3

Blameless environment: никто не должен писать качественный код

Конференции Олега Бунина (Онтико) corporate blogIT systems testingSystem Analysis and DesignPerfect codeDevelopment Management
На РИТ++ Никита Соболев (sobolevn) выступил, как он сам назвал это, с проповедью на тему качества кода и процессов в компании. Особо впечатлительных просим налить себе ромашкового чаю, но отойти от экранов не предлагаем. Вы можете не соглашаться ни с одним из тезисов, настаивать, что трёп о сериалах — залог здоровой атмосферы в коллективе, и утверждать, что вам не нужны строгие рамки линтера и CI, чтобы писать хороший код. Но если вы хоть раз винили окружающих в неудачах на работе, вам стоит прочитать или посмотреть рассказ Никиты.

Работали ли вы когда-нибудь на плохой работе?

Я работал и долго. Моя компания была ужасна. Все было очень плохо, за что ни возьмись — все из рук вон. У нас были отвратительные процессы, ненавистные клиенты и неумелые разработчики. С этим ничего нельзя было поделать. Когда все так плохо, просто не знаешь, за что взяться, с чего начать. Чувствуешь себя жалким винтиком, который не может ни на что влиять.



Когда я говорю, все плохо, я имею в виду, что у нас был:

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

Да, это была аутсорс-разработка, но не это делало её плохой. Люди сделали ее такой.
Читать дальше →
Total votes 53: ↑44 and ↓9+35
Views17K
Comments 51

ruleguard: динамические проверки для Go

Open sourcePerfect codeCompilersGoDevelopment Management


В этой статье я расскажу о новой библиотеке (и утилите) статического анализа go-ruleguard, которая адаптирует gogrep для использования внутри линтеров.


Отличительная особенность: правила статического анализа вы описываете на особом Go-подобном DSL, который на старте ruleguard превращается в набор диагностик. Возможно, это один из самых легко конфигурируемых инструментов для реализации кастомных инспекций для Go.


В качестве бонуса, мы поговорим об go/analysis и его предшественниках.

Читать дальше →
Total votes 21: ↑19 and ↓2+17
Views3.6K
Comments 16

NoVerify: PHP-линтер, который работает быстро

Конференции Олега Бунина (Онтико) corporate blogWebsite developmentOpen sourcePHPProgramming
Для PHP есть хорошие утилиты статического анализа: PHPStan, Psalm, Phan, Exakat. Линтеры хорошо выполняют свою работу, но очень медленно, потому что почти все написаны на PHP (или Java). Для личного использования или небольшого проекта это нормально, но для сайта с миллионами пользователей — критический фактор. Медленный линтер замедляет CI pipeline и не даёт возможности использовать его в качестве решения, интегрируемого в текстовый редактор или IDE.



Сайт с миллионами пользователей — это ВКонтакте. Разработка и добавление новых функций, тестирование и починка багов, ревью — все это должно проходить быстро, в условиях жестких дедлайнов. Поэтому хороший и быстрый линтер, который сможет проверять кодовую базу на 5 млн строк за 5−10 секунд, незаменимая вещь. 

Подходящих линтеров на рынке нет, поэтому Юрий Насретдинов (youROCK) из ВКонтакте написал свой в помощь командам разработки — NoVerify. Это линтер для PHP, который написан на Go. Он работает в 10-30 раз быстрее аналогов, может находить то, о чем не предупредит PhpStorm, легко расширяется и хорошо интегрируется в проекты, в которых раньше не слышали о статическом анализе. 

Об этом линтере расскажет Искандер Шарипов. Под катом:как выбирали линтер и предпочли написать свой, почему NoVerify такой быстрый и как устроен изнутри, почему написан на Go, что может находить и как расширяется, на какие компромиссы пришлось пойти ради него и что можно построить на его базе.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Views9K
Comments 9

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

Wrike corporate blogOpen sourceProgrammingDartFlutter

Привет! Меня зовут Дима, я frontend-разработчик в компании Wrike. В этой статье я расскажу про то, как написать плагин для анализа кода на Dart. Текст будет полезен тем, кому не хватает текущей функциональности дартового анализатора по статическому анализу или если вам просто захочется попробовать написать простой анализатор самостоятельно.

Читать далее
Total votes 20: ↑20 and ↓0+20
Views1.3K
Comments 2

Повышаем качество кода с Dart Code Metrics

Wrike corporate blogOpen sourceProgrammingDartFlutter

Dart Code Metrics — это инструмент статического анализа кода, который позволяет собирать метрики по коду и предоставляет дополнительные правила для анализатора. Основная задача — помогать разработчикам следить за качеством кода и улучшать его. В этой статье мы хотим поделиться возможностями инструмента с сообществом. Он помог нам в Wrike решить часть проблем на фронтенде, и, надеемся, поможет и вам.

Читать далее
Total votes 20: ↑20 and ↓0+20
Views2.9K
Comments 2