{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Блог Сергея Копылова: заметки с тегом проблема",
    "_rss_description": "Блог Сергея Копылова",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/www.blog.sergeykopylov.ru\/tags\/problema\/",
    "feed_url": "https:\/\/www.blog.sergeykopylov.ru\/tags\/problema\/json\/",
    "icon": "https:\/\/www.blog.sergeykopylov.ru\/user\/userpic@2x.jpg?1574324497",
    "author": {
        "name": "Сергей Копылов",
        "url": "https:\/\/www.blog.sergeykopylov.ru\/",
        "avatar": "https:\/\/www.blog.sergeykopylov.ru\/user\/userpic@2x.jpg?1574324497"
    },
    "items": [
        {
            "id": "75",
            "url": "https:\/\/www.blog.sergeykopylov.ru\/all\/pro-to-kak-ya-otvetil-na-vopros-na-kotory-ne-znal-otveta\/",
            "title": "Про то, как я ответил на вопрос, на который не знал ответа",
            "content_html": "<p>Сделали мы новый проект и пришло время его тестовой эксплуатации.<\/p>\n<p>В компанию приехал технический пециалист заказчика и стал задавать всякие каверзные вопросы. Сначала с ними справлялся менеджер, но в какой-то момент перестал и в кабинет позвали меня, как ведущего разработчика проекта.<\/p>\n<p>Представитель заказчика задал какие-то вопросы, о которых мы подумали и на которые я знал ответ и вот прихоло время следующего вопроса. Он говорит:<\/p>\n<ul>\n<li>Вы сделали прекрасную историю изменений, которой нет у конкуретнов. Теперь в истории хранится не только время и автор изменения, но и весь слепок версии на то время. Однако, мы боимся, что документы будут меняться часто и история начнёт занимать слишком много места за года использования. На основном сервере мы не можем обеспечить столько места на жёстких дисках, и хотели бы вынести историю в отдельную базу на другом сервере. Можно ли так сделать? Сможете ли вы это запрограммировать?<\/li>\n<\/ul>\n<p>В моей голове завертелось следующее:<\/p>\n<ul>\n<li>проблема есть;<\/li>\n<li>выносить в отдельную базу, значит, потерять внешние ключи, это значит, что мы не сможем контролировать целостность, и, наверно, появятся ещё какие-то проблемы;<\/li>\n<li>программировать что-то для частного случая не хочется, так мы можем придти к 15 БД;<\/li>\n<li>любое программирование — это деньги компании и мне придётся объяснить, почему мы это делаем;<\/li>\n<li>эта проблема точно возникала не только у нас, множество продуктов хранят историю и вообще очень много данных;<\/li>\n<li>мы используем PostgreSQL, это наиболее развитая свободная СУБД и там точно есть решения для этих проблем, когда данные не помещаются на один жёсткий диск.<\/li>\n<\/ul>\n<p>И я сказал: я думаю, что нам не нужно будет ничего программировать. Мы сможем вынести таблицу с историей на другой сервер посредством возможностей СУБД.<\/p>\n<p>Представитель удивился, сказал, что хорошо, если так и я пошёл на рабочее место. Там я спросил у бекэндера, был ли я прав. Он ответил, что да, и что это называется «внешние таблицы».<\/p>\n<p>Мораль в том, что проспо подумав и прикинув вероятность того, что что-то работает так, как тебе нужно, ты можешь придумать решение для разных ситуаций. Правда для этого нужен какой-никакой кругозор.<\/p>\n<p>Поэтому я и трачу существенную часть рабочего времени на то, чтобы этот кругозор нарасти и не потерять.<\/p>\n",
            "date_published": "2020-03-22T11:56:27+03:00",
            "date_modified": "2020-03-22T11:57:27+03:00",
            "_date_published_rfc2822": "Sun, 22 Mar 2020 11:56:27 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "75",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        }
    ],
    "_e2_version": 3559,
    "_e2_ua_string": "E2 (v3559; Aegea)"
}