https://mtsepkov.org/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2014-09-29:_GoToCon_%D0%B2_%D0%9A%D0%BE%D0%BF%D0%B5%D0%BD%D0%B3%D0%B0%D0%B3%D0%B5%D0%BD%D0%B5&feed=atom&action=historyБлог:Максима Цепкова/2014-09-29: GoToCon в Копенгагене - История изменений2024-03-29T09:29:27ZИстория изменений этой страницы в викиMediaWiki 1.26.4https://mtsepkov.org/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2014-09-29:_GoToCon_%D0%B2_%D0%9A%D0%BE%D0%BF%D0%B5%D0%BD%D0%B3%D0%B0%D0%B3%D0%B5%D0%BD%D0%B5&diff=1056&oldid=prevMaksTsepkov в 19:52, 19 октября 20142014-10-19T19:52:09Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='ru'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 19:52, 19 октября 2014</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{Conf-Ref}}</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[File:GoToCon-2014-Cph-1.jpg|right|300px]]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[File:GoToCon-2014-Cph-1.jpg|right|300px]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>MaksTsepkovhttps://mtsepkov.org/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2014-09-29:_GoToCon_%D0%B2_%D0%9A%D0%BE%D0%BF%D0%B5%D0%BD%D0%B3%D0%B0%D0%B3%D0%B5%D0%BD%D0%B5&diff=1054&oldid=prevMaksTsepkov в 19:07, 29 сентября 20142014-09-29T19:07:18Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='ru'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 19:07, 29 сентября 2014</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l29" >Строка 29:</td>
<td colspan="2" class="diff-lineno">Строка 29:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Зато первый день закрывал очень креативный доклад Andrew Sorensen про Live Coding, иллюстрирующий идею о том, что при живом кодировании изменение кода отрабатывается немедленно. Программа играла музыку, Андрей ее непрерывно дописывал, и музыка немедленно изменялась. Потом он перешел к таким же действиям над программой, рисующей изображения - и они тоже менялись как фон к редактируемому тексту. А потом - к большому интерактивному проекту виртуальной реальности, построенной на тех же подходах. В общем, получилось впечатляющее шоу кодирования, действительно в реальном времени, в очень высокой динамикой.  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Зато первый день закрывал очень креативный доклад Andrew Sorensen про Live Coding, иллюстрирующий идею о том, что при живом кодировании изменение кода отрабатывается немедленно. Программа играла музыку, Андрей ее непрерывно дописывал, и музыка немедленно изменялась. Потом он перешел к таким же действиям над программой, рисующей изображения - и они тоже менялись как фон к редактируемому тексту. А потом - к большому интерактивному проекту виртуальной реальности, построенной на тех же подходах. В общем, получилось впечатляющее шоу кодирования, действительно в реальном времени, в очень высокой динамикой.  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>На этой позитивной ноте я закончу свой отчет.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>На этой позитивной ноте я закончу свой отчет. <ins class="diffchange diffchange-inline">Еще отмечу, что воспользовавшись случаем посмотрел Копенгаген, приехав заранее и оставшись на выходные, рассказ с фотками можно посмотреть [http://maksiq.livejournal.com/tag/Дания у меня в ЖЖ]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>{{wl-publish: 2014-09-29 22:07:03 +0400 | MaksTsepkov }}</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>{{wl-publish: 2014-09-29 22:07:03 +0400 | MaksTsepkov }}</div></td></tr>
</table>MaksTsepkovhttps://mtsepkov.org/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2014-09-29:_GoToCon_%D0%B2_%D0%9A%D0%BE%D0%BF%D0%B5%D0%BD%D0%B3%D0%B0%D0%B3%D0%B5%D0%BD%D0%B5&diff=1052&oldid=prevMaksTsepkov в 18:07, 29 сентября 20142014-09-29T18:07:03Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='ru'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 18:07, 29 сентября 2014</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l30" >Строка 30:</td>
<td colspan="2" class="diff-lineno">Строка 30:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>На этой позитивной ноте я закончу свой отчет.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>На этой позитивной ноте я закончу свой отчет.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{wl-publish: 2014-09-29 22:07:03 +0400 | MaksTsepkov }}</ins></div></td></tr>
</table>MaksTsepkovhttps://mtsepkov.org/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2014-09-29:_GoToCon_%D0%B2_%D0%9A%D0%BE%D0%BF%D0%B5%D0%BD%D0%B3%D0%B0%D0%B3%D0%B5%D0%BD%D0%B5&diff=1051&oldid=prevMaksTsepkov в 18:06, 29 сентября 20142014-09-29T18:06:55Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='ru'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 18:06, 29 сентября 2014</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l22" >Строка 22:</td>
<td colspan="2" class="diff-lineno">Строка 22:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>В заключении несколько слов про организацию конференции. На ней было пять тематических треков, на каждый из которых был отдельный отбор докладов, представляющих современные тренды в этом направлении. Отбор был удачным, и в докладах развитие трендов было представлено в виде практических кейсов, которые бы способствовали изменению понимания у участников, ранее не задумавшихся о таких изменениях. Да и по тем трендам, которые я ранее видел, изменения представали гораздо более выпукло. Так что конференция скомпонована весьма качественно. Слоты докладов - большие, по 50 минут, и получасовые перерывы между ними, в течении которых участники активно общались. И в первый день был ужин участников, тоже предназначенный для общения. Но я не могу сказать, что уровень существенно выше, чем у российских конференций - просто у нас не столь тщательный отбор компенсируется большим количеством слотов и возможностью перехода внутри доклада на другой трек. На GoToCon выходить из зала во время доклада - не принято совершенно, а компоновка залов была такова, что делать это получалось только мимо докладчика, а не сзади - что не слишком приятно.  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>В заключении несколько слов про организацию конференции. На ней было пять тематических треков, на каждый из которых был отдельный отбор докладов, представляющих современные тренды в этом направлении. Отбор был удачным, и в докладах развитие трендов было представлено в виде практических кейсов, которые бы способствовали изменению понимания у участников, ранее не задумавшихся о таких изменениях. Да и по тем трендам, которые я ранее видел, изменения представали гораздо более выпукло. Так что конференция скомпонована весьма качественно. Слоты докладов - большие, по 50 минут, и получасовые перерывы между ними, в течении которых участники активно общались. И в первый день был ужин участников, тоже предназначенный для общения. Но я не могу сказать, что уровень существенно выше, чем у российских конференций - просто у нас не столь тщательный отбор компенсируется большим количеством слотов и возможностью перехода внутри доклада на другой трек. На GoToCon выходить из зала во время доклада - не принято совершенно, а компоновка залов была такова, что делать это получалось только мимо докладчика, а не сзади - что не слишком приятно.  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">И про выступления Мартина Фаулера. Была панель с его участием и пленарный доклад в соавторстве. И они меня разочаровали, потому что обращены не в будущее, а в прошлое. Это тема о том, что Agile, с которым были связаны определенные надежды развития и ценности, послужив определенное время локомотивом развития, сейчас превратился в рекламный buzzword. И в докладах было напоминание о заложенных идеях. Что звучит как обращение к традициям, в общем-то не уместное для развивающейся отрасли, какой является ИТ. Хотя сами идеи и ценности безусловно правильно, я их поддерживаю.</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[File:GoToCon-2014-Cph-2.jpg|right|300px]]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[File:GoToCon-2014-Cph-2.jpg|right|300px]]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">И про выступления Мартина Фаулера. Была панель с его участием и пленарный доклад в соавторстве. И они меня разочаровали, потому что обращены не в будущее, а в прошлое. Это тема о том, что Agile, с которым были связаны определенные надежды развития и ценности, послужив определенное время локомотивом развития, сейчас превратился в рекламный buzzword. И в докладах было напоминание о заложенных идеях. Что звучит как обращение к традициям, в общем-то не уместное для развивающейся отрасли, какой является ИТ. Хотя сами идеи и ценности безусловно правильно, я их поддерживаю.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Зато первый день закрывал очень креативный доклад Andrew Sorensen про Live Coding, иллюстрирующий идею о том, что при живом кодировании изменение кода отрабатывается немедленно. Программа играла музыку, Андрей ее непрерывно дописывал, и музыка немедленно изменялась. Потом он перешел к таким же действиям над программой, рисующей изображения - и они тоже менялись как фон к редактируемому тексту. А потом - к большому интерактивному проекту виртуальной реальности, построенной на тех же подходах. В общем, получилось впечатляющее шоу кодирования, действительно в реальном времени, в очень высокой динамикой.  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Зато первый день закрывал очень креативный доклад Andrew Sorensen про Live Coding, иллюстрирующий идею о том, что при живом кодировании изменение кода отрабатывается немедленно. Программа играла музыку, Андрей ее непрерывно дописывал, и музыка немедленно изменялась. Потом он перешел к таким же действиям над программой, рисующей изображения - и они тоже менялись как фон к редактируемому тексту. А потом - к большому интерактивному проекту виртуальной реальности, построенной на тех же подходах. В общем, получилось впечатляющее шоу кодирования, действительно в реальном времени, в очень высокой динамикой.  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>На этой позитивной ноте я закончу свой отчет.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>На этой позитивной ноте я закончу свой отчет.</div></td></tr>
</table>MaksTsepkovhttps://mtsepkov.org/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2014-09-29:_GoToCon_%D0%B2_%D0%9A%D0%BE%D0%BF%D0%B5%D0%BD%D0%B3%D0%B0%D0%B3%D0%B5%D0%BD%D0%B5&diff=1050&oldid=prevMaksTsepkov: Новая страница: «300px Конференция [http://gotocon.com/cph-2014 GoToCon] прошла 25-26.09.2014 в Копенгагене. Э…»2014-09-29T18:06:19Z<p>Новая страница: «<a href="/%D0%A4%D0%B0%D0%B9%D0%BB:GoToCon-2014-Cph-1.jpg" title="Файл:GoToCon-2014-Cph-1.jpg">300px</a> Конференция [http://gotocon.com/cph-2014 GoToCon] прошла 25-26.09.2014 в Копенгагене. Э…»</p>
<p><b>Новая страница</b></p><div>[[File:GoToCon-2014-Cph-1.jpg|right|300px]]<br />
<br />
Конференция [http://gotocon.com/cph-2014 GoToCon] прошла 25-26.09.2014 в Копенгагене. Это - одна из серии таких конференций и я решил съездить на нее, чтобы послушать взгляд на тренды отрасли, посмотреть на само мероприятие, а еще - послушать выступление Мартина Фаулера. Все удалось, включая интересное представление о текущих трендах. Нельзя сказать, чтобы оно было для меня принципиально новым, однако оно получилось достаточно сфокусированным. И во многом оно перекликается с тем, как тренды представляет Microsoft на своих конференциях. Просто Microsoft накладывает на них акценты с учетом возможностей своих продуктов, а на GoToCon представлен весь спектр.<br />
<br />
'''Основным трендом''' сейчас является практическое изменение парадигмы в реализации крупных проектов - переход к мелокозернистой, мозаичной архитектуре. Термины тут употребляются различные, основное - мелкосервисная, однако это не отражает изменения в полном объеме. Надо отметить, что сам тренд идет давно, однако цельной целевой картины архитектуры - не представлено, она еще формируется, а имеющиеся представления носят частный характер. Это связано с тем, что новые решения вызваны архитектурными конструкциями, выработанными на основе массовых публичных web-проектов, каждый из которых носит относительно уникальный характер в смысле набора требований. А еще масштабирование многих из них происходило в условиях достаточно жесткого временного прессинга, что неизбежно наложило свой отпечаток на сами конструкции. Так что нельзя сказать, что здесь получена идеальная конструкция. <br />
<br />
Отличительной особенностью этих решений является переход к распределенной реализации решения как распределенной совокупности многих сервисов, каждый из которых самостоятельно решает задачу сохранения данных и собственной стабильной работы, в том числе с выносом отдельных компонент в различные (не одно!) публичные облака. И при этом необходимо обеспечить консистентность и стабильность работы в пределах системы в целом, несмотря на происходящие сбои отдельных частей и без системы распределенных транзакций, которые являются недопустимо тяжелыми для таких решений. Это требует существенного изменения подходов проектирования, которые, все-таки рассматривают стабильно-функционирующий комплекс, вынося задачи восстановления при сбоях на технический уровень. <br />
<br />
Надо сказать, что тут нет каких-то существенно новых принципов, они как раз известны давно. Это message-driven архитектура, основанная на принципиально асинхронном взаимодействии. Это event sourcing, который предлагает переход от состояний объектов к логам событий. Кстати, про event sourcing на конференции рассказывал его автор, Greg Young. Это immutability и функциональное программирование.<br />
<br />
Фишка в том, что эти подходы многими рассматриваются как технические приемы, а не как архитектурные концепции для проектирования современных систем. Возьмем тот же event sourcing. Лог событий по сути фиксирует локальное время, то, что в нем есть - произошло и отражено в системе. Если мы переходим к распределенной системе, то получается, что вместо единого времени в системе возникает множество локальных времен. А сбой, авария в некотором сервисе означает откат его времени в точку восстановления, несколько последних операций могут пропасть, в то время как в других сервисах они зафиксированы И необходимо в процессе восстановления автоматически привести систему целиком в консистентное состояние, как правило - за счет повторного наката событий из лога входных запросов от пользователей или внешнего мира, которые представляют собой "входящее время" системы. Эта картинка дает хороший ключ к проектированию устойчивых распределенных систем. <br />
<br />
При чем, как видно из примера, изменение концепции меняет не только конструкцию системы - оно меняет конструкцию обеспечения надежности и доступности системы при сбоях. Точно так же может существенно измениться подход к тестированию - вместо традиционных stubs and mocks, которые становятся сильно затратными при большом количестве сервисов, может применяться быстрый подъем тестового окружения средствами виртуализации. <br />
<br />
И, собственно, в докладах конференции было хорошее рассмотрение с кейсами ряда таких концепций. Но не только как учебный материал, а в рамках конкретных проектов. Потому что появляются фреймворки, которые в этих концепциях заложены: язык Swift для iOS, [http://akka.io/ Akka Streams], [http://elixir-lang.org/ Elixir] и другие. При этом большинство таких проектов - с открытым исходным кодом, open source, хотя лицензирование для промышленных серверов при этом может быть различным. Важно, что это дает возможность доработать фреймворк - совсем не лишнюю при использовании новых языков и фреймворков в своих проектах.<br />
<br />
Вообще, это текущий тренд - переход от развития платформ вендорами к развитию открытыми сообществами. Которому следуют и вендоры тоже - в планах Microsoft выложить в open source коды компилятора C# (об этом было в [http://gotocon.com/cph-2014/presentations/show_presentation.jsp?oid=6252 докладе Mads Torgersen]). Соответственно, и в докладах переход от презентаций своего продукта к презентациям своего открытого проекта. При этом проекты рассматриваются '''как возможности, as facility''' и основу презентации составляют не реализованные фичи, а возможности, которые ты получаешь используя этот проект и развивая его. Понятно, что эти возможности обеспечиваются фичами проекта, но заход идет именно от возможностей.<br />
<br />
Что касается новой архитектуры, то сейчас сформулирована задача совместного построения новой архитектуры - в этом же тренде, силами сообщества, а не каким-то единым центром - '''The Reactive Manifesto''' (http://reactivemanifesto.org)<br />
<br />
Отметим, что достигнутый рост технических возможностей, предоставляемых отдельными высокопроизводительными решениями (in-memory database, кластеры на дешевом типовом железе и так далее), превосходит достигаемые сейчас в дорогом сегменте решений, используемых в традиционной enterprise-разработке с гораздо более сложными проектными решениями. И теперь стоит задача научиться использовать все эти возможности не только в рамках новых отдельно стоящих проектов, но и в условиях эволюционной трансформации ИТ-ландшафта предприятий, обремененного большим количеством legacy-систем. Правда, у некоторых крупных вендоров тут есть асимметричный ответ в виде разработки собственной платформы с учетом новых технологических принципов, как, например, поступает SAP с платформой HANA, но это - отдельная тема, которая на конференции не затрагивалась. А вот enterprise-трек на конференции во многом был посвящен переходу к web-приложениям и мобильной разработке, которая на этом поле является новой.<br />
<br />
В заключении несколько слов про организацию конференции. На ней было пять тематических треков, на каждый из которых был отдельный отбор докладов, представляющих современные тренды в этом направлении. Отбор был удачным, и в докладах развитие трендов было представлено в виде практических кейсов, которые бы способствовали изменению понимания у участников, ранее не задумавшихся о таких изменениях. Да и по тем трендам, которые я ранее видел, изменения представали гораздо более выпукло. Так что конференция скомпонована весьма качественно. Слоты докладов - большие, по 50 минут, и получасовые перерывы между ними, в течении которых участники активно общались. И в первый день был ужин участников, тоже предназначенный для общения. Но я не могу сказать, что уровень существенно выше, чем у российских конференций - просто у нас не столь тщательный отбор компенсируется большим количеством слотов и возможностью перехода внутри доклада на другой трек. На GoToCon выходить из зала во время доклада - не принято совершенно, а компоновка залов была такова, что делать это получалось только мимо докладчика, а не сзади - что не слишком приятно. <br />
<br />
И про выступления Мартина Фаулера. Была панель с его участием и пленарный доклад в соавторстве. И они меня разочаровали, потому что обращены не в будущее, а в прошлое. Это тема о том, что Agile, с которым были связаны определенные надежды развития и ценности, послужив определенное время локомотивом развития, сейчас превратился в рекламный buzzword. И в докладах было напоминание о заложенных идеях. Что звучит как обращение к традициям, в общем-то не уместное для развивающейся отрасли, какой является ИТ. Хотя сами идеи и ценности безусловно правильно, я их поддерживаю.<br />
<br />
[[File:GoToCon-2014-Cph-2.jpg|right|300px]]<br />
<br />
Зато первый день закрывал очень креативный доклад Andrew Sorensen про Live Coding, иллюстрирующий идею о том, что при живом кодировании изменение кода отрабатывается немедленно. Программа играла музыку, Андрей ее непрерывно дописывал, и музыка немедленно изменялась. Потом он перешел к таким же действиям над программой, рисующей изображения - и они тоже менялись как фон к редактируемому тексту. А потом - к большому интерактивному проекту виртуальной реальности, построенной на тех же подходах. В общем, получилось впечатляющее шоу кодирования, действительно в реальном времени, в очень высокой динамикой. <br />
<br />
На этой позитивной ноте я закончу свой отчет.</div>MaksTsepkov