<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/dartflutter/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя dartflutter]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Tue, 05 May 2026 14:50:17 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Инкапсуляция в языке Dart]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/787832/</guid>
      <link>https://habr.com/ru/articles/787832/?utm_campaign=787832&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p><strong>Инкапсуляция</strong>&nbsp;(<a href="https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" rel="noopener noreferrer nofollow">англ.</a>&nbsp;<em>encapsulation</em>, от&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D1%82%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" rel="noopener noreferrer nofollow">лат.</a>&nbsp;<em>in capsula</em>)&nbsp;— в&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0" rel="noopener noreferrer nofollow">информатике</a>, процесс разделения элементов абстракций, определяющих её структуру (данные) и поведение (методы); инкапсуляция предназначена для изоляции контрактных обязательств абстракции (протокол/интерфейс) от их реализации. На практике это означает, что класс должен состоять из двух частей: интерфейса и реализации. В реализации большинства&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" rel="noopener noreferrer nofollow">языков программирования</a>&nbsp;(<a href="https://ru.wikipedia.org/wiki/C%2B%2B" rel="noopener noreferrer nofollow">C++</a>,&nbsp;<a href="https://ru.wikipedia.org/wiki/C_Sharp" rel="noopener noreferrer nofollow">C#</a>,&nbsp;<a href="https://ru.wikipedia.org/wiki/Java" rel="noopener noreferrer nofollow">Java</a>&nbsp;и другие) обеспечивается механизм&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)" rel="noopener noreferrer nofollow">сокрытия</a>, позволяющий разграничивать доступ к различным частям компонента.</p><p></p> <a href="https://habr.com/ru/articles/787832/?utm_campaign=787832&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 21 Jan 2024 09:41:20 GMT</pubDate>
      <dc:creator><![CDATA[DartFlutter]]></dc:creator>
      <category><![CDATA[Dart]]></category>
      <category><![CDATA[инкапсуляция]]></category><category><![CDATA[дарт]]></category><category><![CDATA[dart]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Полиморфизм в языке Dart]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/786342/</guid>
      <link>https://habr.com/ru/articles/786342/?utm_campaign=786342&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p><strong>Полиморфизм</strong>&nbsp;в&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" rel="noopener noreferrer nofollow">языках программирования</a>&nbsp;и&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D1%82%D0%B8%D0%BF%D0%BE%D0%B2" rel="noopener noreferrer nofollow">теории типов</a>&nbsp;— способность&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)" rel="noopener noreferrer nofollow">функции</a>&nbsp;обрабатывать данные разных&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%A2%D0%B8%D0%BF_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" rel="noopener noreferrer nofollow">типов</a></p><p></p> <a href="https://habr.com/ru/articles/786342/?utm_campaign=786342&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 14 Jan 2024 22:53:57 GMT</pubDate>
      <dc:creator><![CDATA[DartFlutter]]></dc:creator>
      <category><![CDATA[Dart]]></category>
      <category><![CDATA[полиморфизм]]></category><category><![CDATA[dart]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Патерн проектирования Фасад в Dart/Flutter]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/784840/</guid>
      <link>https://habr.com/ru/articles/784840/?utm_campaign=784840&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0a6/f3a/c49/0a6f3ac498a14738acb7993aaa7d3a4f.png" /><p><strong>Шаблон фасад</strong>&nbsp;(<a href="https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" rel="noopener noreferrer nofollow">англ.</a>&nbsp;<em>Facade</em>)&nbsp;—&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%BD%D1%8B%D0%B5_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" rel="noopener noreferrer nofollow">структурный</a>&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" rel="noopener noreferrer nofollow">шаблон проектирования</a>, позволяющий скрыть сложность системы путём сведения всех возможных внешних вызовов к одному&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)" rel="noopener noreferrer nofollow">объекту</a>, делегирующему их соответствующим объектам системы.</p><p></p> <a href="https://habr.com/ru/articles/784840/?utm_campaign=784840&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 06 Jan 2024 15:56:35 GMT</pubDate>
      <dc:creator><![CDATA[DartFlutter]]></dc:creator>
      <category><![CDATA[Dart]]></category>
      <category><![CDATA[facade]]></category><category><![CDATA[фасад]]></category><category><![CDATA[патерны проектирования !!!!]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Правильное понимание Single Responsibility Principle (SRP) в Dart/Flutter]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/784528/</guid>
      <link>https://habr.com/ru/articles/784528/?utm_campaign=784528&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7ac/d35/ec1/7acd35ec106513af6c659f111ea94de7.png" /><p>SRP оказался самым сложным принципом из всех SOLID принципов в понимании и как в следствии неправильное применение в кодировании. Множество разработчиков уровня junior / middle, которых я собеседовал на позицию Flutter разработчика давали ответ, что SRP - это принцип единой отвественности. Это конечно правильный ответ согласно книги Роберта Мартина "Чистая архитектура". Но мне хотелось услышать как понимает этот принцип наш кандидат в разработчики. Ведь от этого зависит расширяемость и простота читаемости нашего проекта, ведь мы расширяем команду и хотелось бы чтоб мы писали код в единой концепции. В большинстве случаев разработчики понимают этот принцип, как класс, который он создал должен содержать только один метод. И всё что мы написали в этом методе, несёт единственную ответственность, ведь он решает одну задачу. И на этом кандидат заканчивает свою мысль. Ну что же, неплохо, но и не совсем правильно. Да, такой принцип тоже есть, но он применяется на <strong>низшем</strong> уровне системы. Действительно для удобства чтения не надо всё сваливать в один метод. Практичнее будет если мы каждому методу разрешим делать что то одно и название этого метода будет понятно другому разработчику, что делает этот метод. SRP же применяется на <strong>среднем</strong> уровне программы. В общем, я делаю вывод что кандидат не читал книгу "Чистая архитектура", либо это делал очень невнимательно... </p><p>SRP это про другое! Сам Роберт Мартин столкнулся с такой же проблемой, неправильное понимание того, что он имел ввиду под SRP и попробовал её решить, написав другое определение и разъяснение к нему. Давайте почитаем!</p><p></p> <a href="https://habr.com/ru/articles/784528/?utm_campaign=784528&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 03 Jan 2024 14:10:55 GMT</pubDate>
      <dc:creator><![CDATA[DartFlutter]]></dc:creator>
      <category><![CDATA[Dart]]></category><category><![CDATA[Flutter]]></category>
      <category><![CDATA[SRP]]></category><category><![CDATA[актор]]></category><category><![CDATA[принцип единой отвественности]]></category><category><![CDATA[single responsibility principle]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
