<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://opencarbon.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://opencarbon.ru/feed.php">
        <title>OpenCarbon правила_разработки:как_не_надо_делать</title>
        <description></description>
        <link>https://opencarbon.ru/</link>
        <image rdf:resource="https://opencarbon.ru/lib/tpl/bootstrap3/images/favicon.ico" />
       <dc:date>2026-04-21T11:46:33-04:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:213?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-02-07_глухая_отправка_уведомлений_об_ошибках_из_приложения?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-03-20_попутно_ничего_нельзя_менять?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-04-01_избыточное_решение?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-04-12_не_протестировал_код?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-06-06_обработка_лог.файлов?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-07-18_использование_не_популярного_сахара?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-09-04_всегда_нужно_проверять_свои_изменения?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-09-24_подстели_подушку_заранее_при_опасных_операциях?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-11-19_вредный_хардкод?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-12-04_молчаливые_ошибки?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-12-04_скрытие_экспериментальных_опций?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-12-11_непродуктовые_опции_в_конфигурации?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-01-11_отображение_ошибок_пользователю?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-04-04_требуется_проверять_наличие_новой_функции_в_конце_работы?rev=1558379903&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-06-03_настороженно_относиться_к_необкатанным_решениям?rev=1559577288&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-07-17_нельзя_использовать_nice?rev=1563377465&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-08-26_нельзя_использовать_механизм_ошибок_для_бизнес-логики?rev=1566811647&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-09-23_обработка_результата_пайпом?rev=1571508293&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-01-14_параметры_в_bash_без_кавычек?rev=1579011756&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-01-28_использовать_импорт_переменных_вместо_параметров?rev=1580195590&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-01-28_не_плодить_переменные_в_баше?rev=1582101587&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-06-16_не_правильное_использование_tail_и_grep?rev=1592817771&amp;do=diff"/>
                <rdf:li rdf:resource="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2021-07-07_все_пользовательские_данные_в_учетных_системах?rev=1625661501&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://opencarbon.ru/lib/tpl/bootstrap3/images/favicon.ico">
        <title>OpenCarbon</title>
        <link>https://opencarbon.ru/</link>
        <url>https://opencarbon.ru/lib/tpl/bootstrap3/images/favicon.ico</url>
    </image>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:213?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:213</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:213?rev=1558379903&amp;do=diff</link>
        <description>Текст удален без Утверждения, обратитесь к Owner

~~OWNERAPPROVE~~</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-02-07_глухая_отправка_уведомлений_об_ошибках_из_приложения?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-02-07_глухая_отправка_уведомлений_об_ошибках_из_приложения</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-02-07_глухая_отправка_уведомлений_об_ошибках_из_приложения?rev=1558379903&amp;do=diff</link>
        <description>Ошибка: Код бекапа проверяет свободное место и если его не хватает - шлет alarm и падает.


if [ $node_backup_freespace -le $mysize ]; then
        /node/bin/alarm &quot;no free space for bk $VM_NODE_BACKUP $VM_DIR $node_backup_freespace $mysize&quot;
        exit 1
fi</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-03-20_попутно_ничего_нельзя_менять?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-03-20_попутно_ничего_нельзя_менять</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-03-20_попутно_ничего_нельзя_менять?rev=1558379903&amp;do=diff</link>
        <description>Нарушено правило: никогда ничего нельзя править попутно при решении задачи.

Постановка задачи: добавить текст сообщения «Демо-версия».</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-04-01_избыточное_решение?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-04-01_избыточное_решение</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-04-01_избыточное_решение?rev=1558379903&amp;do=diff</link>
        <description>Нарушено правило: Не нужно решать простую задачу слишком хорошо с запасом на будущее.

Постановка задачи: Добавить проверку, если было более 3 FATAL задач обращений в тех.поддержку то создать задачу для проведения аудита клиента руками разработчика.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-04-12_не_протестировал_код?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-04-12_не_протестировал_код</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-04-12_не_протестировал_код?rev=1558379903&amp;do=diff</link>
        <description>Нарушено правило: Тестировать код после любых изменений.

Постановка задачи: Использовать в функции определения выходного техподдержки функции из библиотеки date_lib.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-06-06_обработка_лог.файлов?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-06-06_обработка_лог.файлов</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-06-06_обработка_лог.файлов?rev=1558379903&amp;do=diff</link>
        <description>Нарушено правило: Полная обработка лог.файлов неизвестного размера в неконтроллируемой системе.

Постановка задачи: Анализировать в системе мониторинга /var/log/messages на предмет ошибок raid, дисковой и файловой подсистемы.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-07-18_использование_не_популярного_сахара?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-07-18_использование_не_популярного_сахара</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-07-18_использование_не_популярного_сахара?rev=1558379903&amp;do=diff</link>
        <description>Использование не всем известного сахара усложняет чтение кода и приводит к потенциальным ошибкам в будущем


--- [ &quot;$date_now&quot; -le &quot;$date_min&quot; ] &amp;&amp; echo NIGHT &amp;&amp; return 0
+++ [ &quot;$date_now&quot; -le &quot;$date_min&quot; ] &amp;&amp; { echo NIGHT; return 0; }

--- if [ &quot;$method&quot; == &quot;auth&quot; ] || [ &quot;$method&quot; == &quot;web&quot; ] || [ &quot;$method&quot; == &quot;xml&quot; ]; then
+++ if [ &quot;$method&quot; = &quot;auth&quot; -o &quot;$method&quot; = &quot;web&quot; -o &quot;$method&quot; = &quot;xml&quot; ]; then

---[ -n $cert_date_new_start ] &amp;&amp; [[ &quot;$cert_date_new_start&quot; -gt &quot;$CERT_DATE_CUR&quot; ]] &amp;&amp; return 0…</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-09-04_всегда_нужно_проверять_свои_изменения?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-09-04_всегда_нужно_проверять_свои_изменения</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-09-04_всегда_нужно_проверять_свои_изменения?rev=1558379903&amp;do=diff</link>
        <description>Нарушено правило: нужно тестировать любые изменения.

Постановка задачи: мигрировать виртуальную машину на другой сервер.

Ошибка: мигрировал, понадеявшись что все будет работать штатно.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-09-24_подстели_подушку_заранее_при_опасных_операциях?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-09-24_подстели_подушку_заранее_при_опасных_операциях</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-09-24_подстели_подушку_заранее_при_опасных_операциях?rev=1558379903&amp;do=diff</link>
        <description>Ошибка: Изменение правил iptables на удаленном сервере без плана на случай ошибок. Добавили правило, из-за которого пропал доступ к продакшен-серверу.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-11-19_вредный_хардкод?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-11-19_вредный_хардкод</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-11-19_вредный_хардкод?rev=1558379903&amp;do=diff</link>
        <description>Проблема:  в коде сайта «захардкожен» его адрес. Например, в коде crm на странице со ссылками на различные отчеты:


&lt;a href='http://example.com/crm/carbon/report1.php'&gt;Подробный отчет о клиентах&lt;/a&gt;&lt;br/&gt;
&lt;a href='https://example.com/crm/carbon/report2.php?month=&amp;year='&gt;Отчет оценки&lt;/a&gt;&lt;br/&gt;
&lt;a href='http://example.com/crm/carbon/report3.php'&gt;Просроченные задачи&lt;/a&gt;&lt;br/&gt;…</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах?rev=1558379903&amp;do=diff</link>
        <description>Что произошло: Нельзя полностью перенаправлять вывод утилит в лог. Это нарушение strongbash020.

Постановка задачи:
Сделать вменяемый вывод /app/reductor/service restart .</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-12-04_молчаливые_ошибки?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-12-04_молчаливые_ошибки</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-12-04_молчаливые_ошибки?rev=1558379903&amp;do=diff</link>
        <description>Постановка задачи:  Добавить опцию в продукт Reductor, которая включает экспериментальные модули ядра.

Проблема:  Выяснилось, что модули несовместимы с некоторыми версиями ядра.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-12-04_скрытие_экспериментальных_опций?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-12-04_скрытие_экспериментальных_опций</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-12-04_скрытие_экспериментальных_опций?rev=1558379903&amp;do=diff</link>
        <description>Постановка задачи:  Добавить опцию, включающую экспериментальный функционал

Проблема:  Разработчик решил скрыть опцию из интерфейса конфигурации, чтобы пользователь не смог активировать ее, что может привести к проблемам</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-12-11_непродуктовые_опции_в_конфигурации?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2018-12-11_непродуктовые_опции_в_конфигурации</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2018-12-11_непродуктовые_опции_в_конфигурации?rev=1558379903&amp;do=diff</link>
        <description>Постановка задачи: у клиента понадобилось повысить размеры таблицы conntrack и таблицы маршрутов в ядре для повышения производительности. При этом, текущие значения уже регулируются скриптами.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-01-11_отображение_ошибок_пользователю?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2019-01-11_отображение_ошибок_пользователю</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-01-11_отображение_ошибок_пользователю?rev=1558379903&amp;do=diff</link>
        <description>Короткая версия статьи:

Ситауция: на сайте мониторинга есть список сенсоров и их состояний «ОК» или «Есть проблема». Какое должно быть состояние, если в код сенсора завершился с ошибкой? При этом, сенсор выполняется на наших серверах, а не клиентских.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-04-04_требуется_проверять_наличие_новой_функции_в_конце_работы?rev=1558379903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-20T15:18:23-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2019-04-04_требуется_проверять_наличие_новой_функции_в_конце_работы</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-04-04_требуется_проверять_наличие_новой_функции_в_конце_работы?rev=1558379903&amp;do=diff</link>
        <description>Постановка задачи: требовалось сделать резервный файл выгрузки, чтобы у клиентов не происходило проблем из-за старого файла выгрузки. При этом, в некоторых случаях происходила замена файла резервным.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-06-03_настороженно_относиться_к_необкатанным_решениям?rev=1559577288&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-03T11:54:48-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2019-06-03_настороженно_относиться_к_необкатанным_решениям</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-06-03_настороженно_относиться_к_необкатанным_решениям?rev=1559577288&amp;do=diff</link>
        <description>Постановка задачи: Нужно было добавить LOG-правило в iptables для логирования определенного трафика.

Как сделали: Чтобы защитить логи от флуда - было решено использовать лимит, наиболее гибко под задачу можно было настроить hashlimit. Так и сделали:</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-07-17_нельзя_использовать_nice?rev=1563377465&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-17T11:31:05-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2019-07-17_нельзя_использовать_nice</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-07-17_нельзя_использовать_nice?rev=1563377465&amp;do=diff</link>
        <description>Планировал использовать nice на ресурсоёмкие задачи, что-бы они не роняли слабые машины.

Правило: Запрещено использовать nice

Почему: Спросить OSV</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-08-26_нельзя_использовать_механизм_ошибок_для_бизнес-логики?rev=1566811647&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-26T05:27:27-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2019-08-26_нельзя_использовать_механизм_ошибок_для_бизнес-логики</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-08-26_нельзя_использовать_механизм_ошибок_для_бизнес-логики?rev=1566811647&amp;do=diff</link>
        <description>Нарушено правило: Программы пишутся для пользователей и программистов, а не для компьютера, все должно быть понятно для человека.

Задача:</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-09-23_обработка_результата_пайпом?rev=1571508293&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-10-19T14:04:53-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2019-09-23_обработка_результата_пайпом</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2019-09-23_обработка_результата_пайпом?rev=1571508293&amp;do=diff</link>
        <description>Нарушено правило: StrongBash

Задача: Обойти все зоны, выдаваемые другой командой.


cloudfox dns info &quot;$DNS_NAME&quot; --zones | while read -r DNS_ZONE; do 
    ....
done


Ошибка: Если при выполнении</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-01-14_параметры_в_bash_без_кавычек?rev=1579011756&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-14T09:22:36-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2020-01-14_параметры_в_bash_без_кавычек</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-01-14_параметры_в_bash_без_кавычек?rev=1579011756&amp;do=diff</link>
        <description>Нарушено правило: Опасная обработка параметров.

Ошибка: Написал код, который обрабатывает параметры:


if [ $1 = info ]; then
    cloud_conf node show &quot;$NODE_NAME&quot;
fi</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-01-28_использовать_импорт_переменных_вместо_параметров?rev=1580195590&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-28T02:13:10-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2020-01-28_использовать_импорт_переменных_вместо_параметров</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-01-28_использовать_импорт_переменных_вместо_параметров?rev=1580195590&amp;do=diff</link>
        <description>Постановка задачи: При вызове супервизора передавать owner_id.

Проблема: В конфигурационных файлах vm, cdn и dns записывались разные значения для параметра OWNER.</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-01-28_не_плодить_переменные_в_баше?rev=1582101587&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-19T03:39:47-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2020-01-28_не_плодить_переменные_в_баше</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-01-28_не_плодить_переменные_в_баше?rev=1582101587&amp;do=diff</link>
        <description>Создал лишнюю переменную в баше, чего делать категорически нельзя:

local hostname=&quot;${ARG_HOSTNAME:-}&quot;

Вместо этого нужно было использовать 

&quot;${ARG_HOSTNAME:-}&quot;</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-06-16_не_правильное_использование_tail_и_grep?rev=1592817771&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-22T05:22:51-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2020-06-16_не_правильное_использование_tail_и_grep</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2020-06-16_не_правильное_использование_tail_и_grep?rev=1592817771&amp;do=diff</link>
        <description>Ошибка: скрипт постоянно находит трейсбеки в логах, даже исправленные.

Как не надо делать: Был написан скрипт, который грепает трейсбеки из последних 2к строк логах:</description>
    </item>
    <item rdf:about="https://opencarbon.ru/правила_разработки:как_не_надо_делать:2021-07-07_все_пользовательские_данные_в_учетных_системах?rev=1625661501&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-07T08:38:21-04:00</dc:date>
        <title>правила_разработки:как_не_надо_делать:2021-07-07_все_пользовательские_данные_в_учетных_системах</title>
        <link>https://opencarbon.ru/правила_разработки:как_не_надо_делать:2021-07-07_все_пользовательские_данные_в_учетных_системах?rev=1625661501&amp;do=diff</link>
        <description>Все пользовательские данные в учетных системах должны быть доступны для ручного изменения администратором.

Постановка задачи:
Добавить новое поле в базу данных CRM, для учета новой тарифной опции.</description>
    </item>
</rdf:RDF>
