<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блог Сергея Копылова: заметки с тегом проблема</title>
<link>https://www.blog.sergeykopylov.ru/tags/problema/</link>
<description>Блог Сергея Копылова</description>
<author>Сергей Копылов</author>
<language>ru</language>
<generator>E2 (v3559; Aegea)</generator>

<itunes:owner>
<itunes:name>Сергей Копылов</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Блог Сергея Копылова</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Про то, как я ответил на вопрос, на который не знал ответа</title>
<guid isPermaLink="false">75</guid>
<link>https://www.blog.sergeykopylov.ru/all/pro-to-kak-ya-otvetil-na-vopros-na-kotory-ne-znal-otveta/</link>
<pubDate>Sun, 22 Mar 2020 11:56:27 +0300</pubDate>
<author>Сергей Копылов</author>
<comments>https://www.blog.sergeykopylov.ru/all/pro-to-kak-ya-otvetil-na-vopros-na-kotory-ne-znal-otveta/</comments>
<description>
&lt;p&gt;Сделали мы новый проект и пришло время его тестовой эксплуатации.&lt;/p&gt;
&lt;p&gt;В компанию приехал технический пециалист заказчика и стал задавать всякие каверзные вопросы. Сначала с ними справлялся менеджер, но в какой-то момент перестал и в кабинет позвали меня, как ведущего разработчика проекта.&lt;/p&gt;
&lt;p&gt;Представитель заказчика задал какие-то вопросы, о которых мы подумали и на которые я знал ответ и вот прихоло время следующего вопроса. Он говорит:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Вы сделали прекрасную историю изменений, которой нет у конкуретнов. Теперь в истории хранится не только время и автор изменения, но и весь слепок версии на то время. Однако, мы боимся, что документы будут меняться часто и история начнёт занимать слишком много места за года использования. На основном сервере мы не можем обеспечить столько места на жёстких дисках, и хотели бы вынести историю в отдельную базу на другом сервере. Можно ли так сделать? Сможете ли вы это запрограммировать?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В моей голове завертелось следующее:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;проблема есть;&lt;/li&gt;
&lt;li&gt;выносить в отдельную базу, значит, потерять внешние ключи, это значит, что мы не сможем контролировать целостность, и, наверно, появятся ещё какие-то проблемы;&lt;/li&gt;
&lt;li&gt;программировать что-то для частного случая не хочется, так мы можем придти к 15 БД;&lt;/li&gt;
&lt;li&gt;любое программирование — это деньги компании и мне придётся объяснить, почему мы это делаем;&lt;/li&gt;
&lt;li&gt;эта проблема точно возникала не только у нас, множество продуктов хранят историю и вообще очень много данных;&lt;/li&gt;
&lt;li&gt;мы используем PostgreSQL, это наиболее развитая свободная СУБД и там точно есть решения для этих проблем, когда данные не помещаются на один жёсткий диск.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;И я сказал: я думаю, что нам не нужно будет ничего программировать. Мы сможем вынести таблицу с историей на другой сервер посредством возможностей СУБД.&lt;/p&gt;
&lt;p&gt;Представитель удивился, сказал, что хорошо, если так и я пошёл на рабочее место. Там я спросил у бекэндера, был ли я прав. Он ответил, что да, и что это называется «внешние таблицы».&lt;/p&gt;
&lt;p&gt;Мораль в том, что проспо подумав и прикинув вероятность того, что что-то работает так, как тебе нужно, ты можешь придумать решение для разных ситуаций. Правда для этого нужен какой-никакой кругозор.&lt;/p&gt;
&lt;p&gt;Поэтому я и трачу существенную часть рабочего времени на то, чтобы этот кругозор нарасти и не потерять.&lt;/p&gt;
</description>
</item>


</channel>
</rss>