<?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/dm_ptmkn/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя dm_ptmkn]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sun, 19 Jul 2026 10:05:13 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[[Перевод] Грегор Кизалес и др. «Аспектно-ориентированное программирование»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1058826/</guid>
      <link>https://habr.com/ru/articles/1058826/?utm_campaign=1058826&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/56f/ece/162/56fece16244c10e42416f89a9cbbb5d2.jpg" /><p>Идеи аспектно-ориентированного программирования до сих пор широко используются в современных языках и фреймворках — достаточно вспомнить их роль в экосистеме Spring. Однако при всей практической востребованности сама парадигма остается как будто в тени. Чтобы немного это исправить, мы публикуем перевод текста Грегора Кизалеса и его коллег из Xerox PARC — первого полноценного манифеста АОП, представленного на конференции ECOOP ’97 и заложившего основы для дальнейших исследований в этой области.</p> <a href="https://habr.com/ru/articles/1058826/?utm_campaign=1058826&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 04:20:34 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[История IT]]></category><category><![CDATA[Анализ и проектирование систем]]></category><category><![CDATA[ООП]]></category><category><![CDATA[Lisp]]></category><category><![CDATA[Java]]></category>
      <category>история it</category><category>анализ и проектирование систем</category><category>ооп</category><category>аоп</category><category>lisp</category><category>java</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Барбара Лисков «Абстракция данных и иерархия»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1051934/</guid>
      <link>https://habr.com/ru/articles/1051934/?utm_campaign=1051934&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/895/76b/78d/89576b78d91f663c420f877f37c3eb3c.jpg" /><p>Каждый, кто хоть немного работал с объектно-ориентированными языками, наверняка сталкивался с принципом подстановки Лисков. При этом мало кто знает, откуда этот принцип взялся и в каком контексте Лисков его формулировала. Мы перевели ее доклад, прозвучавший на OOPSLA'87, чтобы дать каждому возможность обратиться к первоисточнику. Прочитав этот текст, вы увидите, насколько сложным и неочевидным было отношение Лисков к наследованию и как она связывала его с идеями абстракции, инкапсуляции и полиморфизма.</p> <a href="https://habr.com/ru/articles/1051934/?utm_campaign=1051934&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 25 Jun 2026 14:22:10 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[История IT]]></category><category><![CDATA[ООП]]></category><category><![CDATA[Smalltalk]]></category><category><![CDATA[Анализ и проектирование систем]]></category>
      <category>история it</category><category>ооп</category><category>наследование</category><category>smalltalk</category><category>анализ и проектирование систем</category><category>solid</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Алан Снайдер «Инкапсуляция и наследование в объектно-ориентированных языках программирования»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1047584/</guid>
      <link>https://habr.com/ru/articles/1047584/?utm_campaign=1047584&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ffb/f88/0bd/ffbf880bd9b462f5e0161db4aabd7e85.jpg" /><p>Инкапсуляцию и наследование часто преподносят как две неотъемлемые опоры объектно-ориентированного программирования, однако на деле между ними существует глубокое внутреннее противоречие. Статья Алана Снайдера, опубликованная по итогам его выступления на OOPSLA’86, стала одним из первых программных текстов, вскрывших эту проблему на уровне языковых конструкций, и показала, как неаккуратно реализованное наследование способно разрушить инкапсуляцию, а вместе с ней — преимущества модульного проектирования. Работа во многом предопределила дальнейшие дискуссии о хрупком базовом классе, роли контрактов между классами и их потомками и о том, каким должен быть внешний интерфейс класса в условиях наследования.</p> <a href="https://habr.com/ru/articles/1047584/?utm_campaign=1047584&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 15 Jun 2026 09:42:52 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[История IT]]></category><category><![CDATA[ООП]]></category><category><![CDATA[Проектирование и рефакторинг]]></category><category><![CDATA[Smalltalk]]></category><category><![CDATA[Lisp]]></category>
      <category>история it</category><category>ооп</category><category>проектирование</category><category>инкапсуляция</category><category>наследование</category><category>smalltalk</category><category>lisp</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Ребекка Вирфс-Брок, Брайан Уилкерсон «Объектно-ориентированное проектирование: ответственностно-ориентированный подход»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1046520/</guid>
      <link>https://habr.com/ru/articles/1046520/?utm_campaign=1046520&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/48c/601/7db/48c6017db31ca4935d2b31a88d2e1ed5.jpg" /><p>В своей программной статье, опубликованной по итогам выступления на OOPSLA '89, Ребекка Вирфс-Брок и Брайан Уилкерсон излагают основы ответственностно-ориентированного подхода. Отталкиваясь от модели клиент/сервер и идеи контракта, авторы показывают, что концентрация на поведении и ответственностях, а не на структуре данных, позволяет максимально раскрыть потенциал инкапсуляции, делая систему более гибкой и устойчивой к изменениям.</p> <a href="https://habr.com/ru/articles/1046520/?utm_campaign=1046520&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 11 Jun 2026 12:06:06 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[ООП]]></category><category><![CDATA[История IT]]></category><category><![CDATA[Проектирование и рефакторинг]]></category><category><![CDATA[Проектирование API]]></category>
      <category>ооп</category><category>история it</category><category>проектирование</category><category>проектирование интерфейсов</category><category>проектирование и рефакторинг</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Энди Хант «Говори, а не спрашивай»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/990790/</guid>
      <link>https://habr.com/ru/articles/990790/?utm_campaign=990790&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7ae/09d/a4c/7ae09da4c73bd18fd65c57fe149b2646.jpg" /><p>В своем кратком тексте 1998 года Энди Хант, отталкиваясь от закона Деметры и принципа разделения команд и запросов, просто и понятно излагает один из важных принципов объектно-ориентированного проектирования — «говори, а не спрашивай». Этот принцип учит делегировать объектам ответственность за их данные, что позволяет создавать слабосвязанные и устойчивые к изменениям системы.</p> <a href="https://habr.com/ru/articles/990790/?utm_campaign=990790&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 30 Jan 2026 05:30:47 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[История IT]]></category><category><![CDATA[ООП]]></category><category><![CDATA[Проектирование и рефакторинг]]></category><category><![CDATA[Java]]></category>
      <category>история it</category><category>ооп</category><category>проектирование и рефакторинг</category><category>java</category><category>eiffel</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Стив Фриман, Нэт Прайс, Тим Маккиннон, Джо Уорнc «Мокируем роли, а не объекты»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/988518/</guid>
      <link>https://habr.com/ru/articles/988518/?utm_campaign=988518&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e02/13f/c02/e0213fc0204f179f8ced7cd2bf08bd63.png" /><p>Продолжаем серию публикаций, посвященных истокам лондонской школы тестирования. В&nbsp;статье «Мокируем роли, а&nbsp;не&nbsp;объекты» (2004) авторы совершают ключевой концептуальный переход. Они переосмысливают мок-объекты: из инструмента для изоляции тестов они становятся инструментом для выявления интерфейсов, проектирования взаимодействий между объектами и создания целостной архитектуры системы.</p> <a href="https://habr.com/ru/articles/988518/?utm_campaign=988518&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 24 Jan 2026 11:53:14 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[Java]]></category><category><![CDATA[TDD]]></category><category><![CDATA[История IT]]></category><category><![CDATA[ООП]]></category><category><![CDATA[Тестирование IT-систем]]></category>
      <category>история it</category><category>ооп</category><category>тестирование</category><category>java</category><category>mock</category><category>tdd</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Алан Кей об отправке сообщений]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/982960/</guid>
      <link>https://habr.com/ru/articles/982960/?utm_campaign=982960&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/987/c0c/749/987c0c74993eefca66b2b9c9202e494b.jpg" /><p>В октябре 1998 года, разочарованный упрощенным пониманием ООП, Алан Кей написал сообществу Squeak знаковое письмо. В нем он напомнил, что главная идея Smalltalk, о которой все забыли, — это не классы, а отправка сообщений. Это письмо стало манифестом, отделяющим оригинальную философию объектов от ее популярной интерпретации. Публикуем перевод этого короткого, но исторически важного документа.</p> <a href="https://habr.com/ru/articles/982960/?utm_campaign=982960&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 05 Jan 2026 10:31:15 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[ООП]]></category><category><![CDATA[История IT]]></category><category><![CDATA[Smalltalk]]></category><category><![CDATA[Программирование]]></category>
      <category>ооп</category><category>история it</category><category>smalltalk</category><category>программирование</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Эдсгер Дейкстра «О вреде оператора go to»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/976236/</guid>
      <link>https://habr.com/ru/articles/976236/?utm_campaign=976236&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/92f/f99/c0f/92ff99c0f5d2d6686b2bbd5b7d5a206e.png" /><p>Публикуем новый полный перевод хрестоматийной статьи Эдсгера Дейкстры. Этот текст, опубликованный в 1968 году в журнале <em>Communications of the ACM</em> в формате письма в редакцию, заложил основы структурного программирования, впервые строго аргументировав отказ от оператора go to в пользу использования циклов и условных конструкций.</p> <a href="https://habr.com/ru/articles/976236/?utm_campaign=976236&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 13 Dec 2025 05:46:30 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[История IT]]></category><category><![CDATA[Говнокод]]></category><category><![CDATA[Качество кода]]></category><category><![CDATA[Отладка]]></category><category><![CDATA[Проектирование и рефакторинг]]></category>
      <category>история it</category><category>говнокод</category><category>качество кода</category><category>algol</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Карл Либерхер, Иэн Холланд «Обеспечение хорошего стиля объектно-ориентированных программ»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/975956/</guid>
      <link>https://habr.com/ru/articles/975956/?utm_campaign=975956&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e55/b20/5af/e55b205af1a0c782634fcd49b98edc77.png" /><p>Наверное, каждый программист, работавший с объектно-ориентированными языками, хотя бы раз слышал о законе Деметры. Многие знают его смысл, но мало кто читал оригинальный текст 1989 года, где закон был не только сформулирован, но и подробно обоснован. В этой статье авторы, Карл Либерхер и Иэн Холланд, рассказывают о проекте «Деметра», дают формулировки для разных языков и обсуждают, когда законом можно пренебречь.</p> <a href="https://habr.com/ru/articles/975956/?utm_campaign=975956&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 12 Dec 2025 07:14:58 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[ООП]]></category><category><![CDATA[История IT]]></category><category><![CDATA[Проектирование и рефакторинг]]></category><category><![CDATA[C++]]></category><category><![CDATA[Lisp]]></category>
      <category>ооп</category><category>история it</category><category>проектирование и рефакторинг</category><category>с++</category><category>lisp</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Дэвид Л. Парнас «О критериях для разбиения систем на модули»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/957968/</guid>
      <link>https://habr.com/ru/articles/957968/?utm_campaign=957968&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/22f/649/3cc/22f6493cc02c9b8ac42b14db54348471.jpg" /><p>Статья Парнаса «О критериях...» давно стала классикой, на которую постоянно ссылаются, но мало кто ее реально читает. Высказанные в ней идеи о «сокрытии информации» как основе модульности упоминаются повсеместно, однако оригинальный текст с его тщательной аргументацией и яркими примерами остается для многих терра инкогнита. Данный перевод призван восполнить этот пробел.</p> <a href="https://habr.com/ru/articles/957968/?utm_campaign=957968&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 19 Oct 2025 09:07:18 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[История IT]]></category><category><![CDATA[Анализ и проектирование систем]]></category><category><![CDATA[Качество кода]]></category><category><![CDATA[Проектирование и рефакторинг]]></category>
      <category>история it</category><category>проектирование</category><category>проектирование и рефакторинг</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Тим Маккиннон, Стив Фриман, Филип Крейг «Эндотестирование: юнит-тестирование с мок-объектами»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/948982/</guid>
      <link>https://habr.com/ru/articles/948982/?utm_campaign=948982&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0e9/6e7/498/0e96e74983f9e117aa694cf3f2d2919b.png" /><p>Именно с публикации этой статьи в 2000 году берет свое начало формирование лондонской школы тестирования, также известной как «мокистская» школа. В ней авторы не только вводят ключевые концепции мок-объектов и эндотестирования, но и закладывают методологический фундамент подхода, принципиально изменившего практику юнит-тестирования — подхода, основанного на явном определении взаимодействий между объектами, замене зависимостей и тестировании поведения системы изнутри.</p> <a href="https://habr.com/ru/articles/948982/?utm_campaign=948982&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 21 Sep 2025 07:01:25 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[История IT]]></category><category><![CDATA[ООП]]></category><category><![CDATA[Тестирование IT-систем]]></category><category><![CDATA[Java]]></category>
      <category>история it</category><category>ооп</category><category>тестирование</category><category>мок-объекты</category><category>java</category><category>mock</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Бенджамин Вуттон «Микросервисы — не бесплатный сыр!»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/947158/</guid>
      <link>https://habr.com/ru/articles/947158/?utm_campaign=947158&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f3e/334/59b/f3e33459b0d45cb03bb4c941e86a22d6.jpeg" /><p>Этот текст 2014 года стал одним из первых образцов содержательной критики микросервисной архитектуры. Хотя с тех пор отрасль нашла решения для многих технических проблем, поднятых автором, его основные предостережения не утратили актуальности и по-прежнему заслуживают серьезного внимания. </p> <a href="https://habr.com/ru/articles/947158/?utm_campaign=947158&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 15 Sep 2025 15:54:02 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[Микросервисы]]></category><category><![CDATA[Анализ и проектирование систем]]></category><category><![CDATA[Распределённые системы]]></category><category><![CDATA[DevOps]]></category><category><![CDATA[История IT]]></category>
      <category>микросервисы</category><category>распределенные системы</category><category>анализ и проектирование систем</category><category>архитектура систем</category><category>история it</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Доктор Алан Кей о смысле «объектно-ориентированного программирования»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/946868/</guid>
      <link>https://habr.com/ru/articles/946868/?utm_campaign=946868&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e7b/e2e/9c3/e7be2e9c3d113fea2b0b3da0f6556a72.jpg" /><p><a href="https://www.purl.org/stefan_ram/pub/doc_kay_oop_en" rel="noopener noreferrer nofollow">Оригинал</a></p><p>В 2003 году Алан Кей, признанный автор термина «объектно-ориентированное программирование», ответил на вопросы исследователя Штефана Рама. В этом письме он раскрывает первоначальный замысел ООП, который значительно отличается от того, чему большинство из нас учат сегодня. Публикуем перевод этого исторического документа.</p> <a href="https://habr.com/ru/articles/946868/?utm_campaign=946868&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 14 Sep 2025 18:08:16 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[ООП]]></category><category><![CDATA[Программирование]]></category><category><![CDATA[История IT]]></category>
      <category>ооп</category><category>smalltalk</category><category>simula</category><category>история it</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Алистер Коберн «Гексагональная (порты и адаптеры) архитектура»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/946040/</guid>
      <link>https://habr.com/ru/articles/946040/?utm_campaign=946040&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/6f8/8e4/286/6f88e42863682885a397b02594462a08.jpg" /><p>Именно в этой статье 2005 года был впервые представлен и описан паттерн гексагональной архитектуры (также известной как «порты и адаптеры»). Цель этого паттерна — строго изолировать ядро приложения, обеспечив его независимость от пользовательского интерфейса, баз данных или сторонних сервисов. Такой подход не только гарантирует тестируемость и гибкость системы, но и делает ее устойчивой к изменениям во внешнем окружении.</p> <a href="https://habr.com/ru/articles/946040/?utm_campaign=946040&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 11 Sep 2025 11:15:39 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      <category><![CDATA[Анализ и проектирование систем]]></category><category><![CDATA[ООП]]></category><category><![CDATA[Проектирование API]]></category><category><![CDATA[Проектирование и рефакторинг]]></category>
      <category>гексагональная архитектура</category><category>проектирование систем</category><category>ооп</category><category>история it</category>
    </item>
  

  

      

      

      

    
  </channel>
</rss>
