<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Стратифицированный дизайн. Часть № 2 on Технологии функционального программирования в современных ИС</title>
    <link>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/02-immutability-and-stratified-design/10-stratified-design-part-two/</link>
    <description>Recent content in Стратифицированный дизайн. Часть № 2 on Технологии функционального программирования в современных ИС</description>
    <generator>Hugo</generator>
    <language>ru-RU</language>
    <atom:link href="https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/02-immutability-and-stratified-design/10-stratified-design-part-two/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Изменения: Стратифицированный дизайн. Часть № 2</title>
      <link>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/02-immutability-and-stratified-design/10-stratified-design-part-two/changes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/02-immutability-and-stratified-design/10-stratified-design-part-two/changes/</guid>
      <description>&lt;h1 id=&#34;изменения-для-занятия-стратифицированный-дизайн-часть--2&#34;&gt;&#xA;  Изменения для занятия: Стратифицированный дизайн. Часть № 2&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b4%d0%bb%d1%8f-%d0%b7%d0%b0%d0%bd%d1%8f%d1%82%d0%b8%d1%8f-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b8%d1%84%d0%b8%d1%86%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d1%8b%d0%b9-%d0%b4%d0%b8%d0%b7%d0%b0%d0%b9%d0%bd-%d1%87%d0%b0%d1%81%d1%82%d1%8c--2&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;конкретные-изменения&#34;&gt;&#xA;  Конкретные изменения&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#%d0%ba%d0%be%d0%bd%d0%ba%d1%80%d0%b5%d1%82%d0%bd%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;[Файл: presentation/_index.md, строка 264 — слайд «Код стал более понятным»] — выполнено&lt;/strong&gt;: &lt;code&gt;functions&lt;/code&gt; вместо &lt;code&gt;function&lt;/code&gt; — пример не компилируется, а слайд демонстрирует «однострочные методы барьера».&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;было:&#xA;functions gets_free_shipping(cart) {&#xA;  return calc_total(cart) &amp;gt;= 20;&#xA;}&#xA;стало:&#xA;function gets_free_shipping(cart) {&#xA;  return calc_total(cart) &amp;gt;= 20;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;[Файл: presentation/_index.md, строки 335–338 — слайд «Шаблон № 3: Минимальный интерфейс»] — выполнено&lt;/strong&gt;: в «лучшей» реализации потерян аргумент &lt;code&gt;cart&lt;/code&gt;, а имя функции не совпадает с используемым в остальных слайдах (&lt;code&gt;calc_total&lt;/code&gt;). Пример нерабочий и при этом подаётся как правильный образец.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Метаданные: Стратифицированный дизайн. Часть № 2</title>
      <link>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/02-immutability-and-stratified-design/10-stratified-design-part-two/meta/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/02-immutability-and-stratified-design/10-stratified-design-part-two/meta/</guid>
      <description>&lt;h2 id=&#34;результаты-освоения&#34;&gt;&#xA;  Результаты освоения&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#%d1%80%d0%b5%d0%b7%d1%83%d0%bb%d1%8c%d1%82%d0%b0%d1%82%d1%8b-%d0%be%d1%81%d0%b2%d0%be%d0%b5%d0%bd%d0%b8%d1%8f&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;В результате освоения данного занятия студент должен:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;применять шаблон «барьер из абстракций» для сокрытия деталей реализации;&lt;/li&gt;&#xA;&lt;li&gt;заменять структуру данных за барьером, не изменяя код его пользователей;&lt;/li&gt;&#xA;&lt;li&gt;определять функции, которые требуется изменить при смене структуры данных слоя;&lt;/li&gt;&#xA;&lt;li&gt;оценивать, окупаются ли затраты на построение барьера из абстракций;&lt;/li&gt;&#xA;&lt;li&gt;применять шаблон «минимальный интерфейс» при выборе места для новой функции;&lt;/li&gt;&#xA;&lt;li&gt;обосновывать размещение новой функции над барьером, а не внутри него;&lt;/li&gt;&#xA;&lt;li&gt;распознавать действие, встроенное в слой вычислений, и переносить его на уровень обработчика;&lt;/li&gt;&#xA;&lt;li&gt;оценивать стоимость сопровождения функции по длине пути от вершины графа вызовов;&lt;/li&gt;&#xA;&lt;li&gt;планировать очерёдность написания тестов по положению функции в графе вызовов;&lt;/li&gt;&#xA;&lt;li&gt;оценивать пригодность функции к повторному использованию по числу зависимостей под ней;&lt;/li&gt;&#xA;&lt;li&gt;применять шаблон «удобные слои» как критерий остановки улучшения дизайна.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
