<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Технологии функционального программирования в современных ИС</title>
    <link>https://lms.crafted.su/functional-programming-intro/2026-1-mag/</link>
    <description>Recent content on Технологии функционального программирования в современных ИС</description>
    <generator>Hugo</generator>
    <language>ru-RU</language>
    <atom:link href="https://lms.crafted.su/functional-programming-intro/2026-1-mag/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Метаданные: Введение</title>
      <link>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/01-introduction/meta/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/01-introduction/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;/ul&gt;</description>
    </item>
    <item>
      <title>Метаданные: Выделение вычислений из действий</title>
      <link>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/04-extracting-calculations-from-actions/meta/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/04-extracting-calculations-from-actions/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;/ul&gt;</description>
    </item>
    <item>
      <title>Метаданные: Выделение действий, вычислений и данных</title>
      <link>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/03-actions-calculations-data/meta/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/03-actions-calculations-data/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;кategorизировать код на действия, вычисления и данные;&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>
    <item>
      <title>Метаданные: Применение ФП</title>
      <link>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/02-applying-fp/meta/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/02-applying-fp/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;/ul&gt;</description>
    </item>
    <item>
      <title>Метаданные: Улучшение структуры действий</title>
      <link>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/05-improving-design-of-actions/meta/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://lms.crafted.su/functional-programming-intro/2026-1-mag/docs/01-actions-computations-data/05-improving-design-of-actions/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;применять шаблон копирование при записи (copy-on-write) для обеспечения неизменяемости данных;&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>
