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

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

  <channel>
    <title><![CDATA[Комментарии / Профиль samsol]]></title>
    <link>https://habr.com/ru/users/samsol/comments/</link>
    <description><![CDATA[Хабр: комментарии пользователя samsol]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Fri, 01 May 2026 02:05:20 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>27.11.2021 11:20:03 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/591691/#comment_23756325</guid>
      <link>https://habr.com/ru/articles/591691/#comment_23756325</link>
      <description><![CDATA[<p>Мое впечатление, что в каждом деле здесь упор делают на рациональность и практичность. Если бы имбирь, ацц, малина или хоть что-то еще помогали их бы мне порекомендовал семейный врач по телефону.</p><p>Парацетамол был объективно нужен. Технически головную боль, боли в мышцах и высокую температуру можно перетерпеть. Но поспать не получится. Засыпая начинаешь стонать во сне и будишь сам себя.</p>]]></description>
      <pubDate>Sat, 27 Nov 2021 11:20:03 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>27.11.2021 08:46:55 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/591691/#comment_23755933</guid>
      <link>https://habr.com/ru/articles/591691/#comment_23755933</link>
      <description><![CDATA[<p>Да. Чай пил обычный из пакетиков, после еды обычно.</p><p>В отеле пробыл 4 ночи, потом 2 в госпитале, и после 2 в отеле. Пока был в госпитале мои вещи оставались в комнате отеля.</p><p>Велосипед с батарейкой, погода хорошая, так что доехать на велосипеде было не сложно.</p><blockquote><p>Т.е. на ногах переносили начало белезни</p></blockquote><p>Не совсем. Я ни куда не ходил. Сначала потому что был в карантине после поездки, а потом потому что появились симптомы.</p>]]></description>
      <pubDate>Sat, 27 Nov 2021 08:46:55 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>27.11.2021 08:38:02 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/591691/#comment_23755913</guid>
      <link>https://habr.com/ru/articles/591691/#comment_23755913</link>
      <description><![CDATA[<p>В целом да. См. сообщение начинается со слов "Привожу только для информации"</p>]]></description>
      <pubDate>Sat, 27 Nov 2021 08:38:02 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>26.11.2021 10:34:02 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/591691/#comment_23752609</guid>
      <link>https://habr.com/ru/articles/591691/#comment_23752609</link>
      <description><![CDATA[<p>Когда поступил в отдельной маленькой палате был, с душем и туалетом. Потом перевели в большую, там душ и туалет были на 3 палаты. Большая комната, 2 кабинки туалеты с раковинами, одна большая чтобы на коляске было удобно. И две душевые кабинки. Но на 3 палаты в каждой по 3 человека.</p><p>Как бы коридорчик с выходом на маленькую террасу, но из-за короны терраса была закрыта, 3 палаты и туалет/душ. В коридоре был диванчик, но им тоже нельзя было пользоваться. Можно было только в туалет и душ выходить.</p><p>В палатах возле кроватей все оборудование на стенах висит. Всякие мониторы, кислородные маски, даже ЭКГ возле каждой кровати.</p>]]></description>
      <pubDate>Fri, 26 Nov 2021 10:34:02 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>26.11.2021 10:19:04 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/591691/#comment_23752531</guid>
      <link>https://habr.com/ru/articles/591691/#comment_23752531</link>
      <description><![CDATA[<p>Большая доля везения. В медицинских записях первоначальное назначение Ремдисивир 5 дней, Дексаметазон 10 дней. А фактически меньше чем через сутки лечение уже прекратили.</p>]]></description>
      <pubDate>Fri, 26 Nov 2021 10:19:04 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>26.11.2021 10:08:12 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/591691/#comment_23752479</guid>
      <link>https://habr.com/ru/articles/591691/#comment_23752479</link>
      <description><![CDATA[<p>Привожу только для информации. Не опирайтесь на мои слова при лечении! Следуйте рекомендации вашего врача!</p><p>Сразу как поступил капали физраствор (NaCl 0.9%) и дали 2 таблетки парацетамола.</p><p>Лечение: remdesivir капельницей 2 раза по 250мл, но флакон конкретно для меня был, с моим именем/фамилией на нем. Там были еще цифры: дозировка, частота, продолжительность, скорость...</p><p>И dexamethason. Как я понял это были 2 маленькие таблетки которые мне дали вечером и в 10 утра следующего дня.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/362/e8c/279/362e8c2799ed0d25558690b616630910.jpg" width="525" height="700"><figcaption></figcaption></figure>]]></description>
      <pubDate>Fri, 26 Nov 2021 10:08:12 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>26.04.2020 09:13:49 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/173453/#comment_21543006</guid>
      <link>https://habr.com/ru/articles/173453/#comment_21543006</link>
      <description><![CDATA[<p>Вместо настроек, которые я привел в статье я бы очень рекомендовал Git Large File Storage (LFS) <a href="https://git-lfs.github.com/">https://git-lfs.github.com/</a></p>]]></description>
      <pubDate>Sun, 26 Apr 2020 09:13:49 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>25.01.2018 22:06:46 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/345774/#comment_10636034</guid>
      <link>https://habr.com/ru/articles/345774/#comment_10636034</link>
      <description><![CDATA[<p>Пример:<br>
Предположим, на следующий год вы можете влиться в одну из двух команд.<br>
Всё примерно одинаково: по 4 человека в командах, тип приложения в обоих случаях "как вы любите", размеры исходного кода, количество пользователей, выручка… всё примерно одинаково.<br>
Но в одном случае у проекта на дашборде светится 62.4% code coverage (а на начало прошлого года — 55%), а у другого проекта этой цифры вообще нет и никто даже примерно ее не знает.<br>
В какую команду вы пойдете?</p>]]></description>
      <pubDate>Thu, 25 Jan 2018 22:06:46 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>10.01.2018 22:39:38 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/345774/#comment_10609238</guid>
      <link>https://habr.com/ru/articles/345774/#comment_10609238</link>
      <description><![CDATA[<p>СС — это технологическая метрика. Она не много говорит о качестве программного продукта. Зато кое-что говорит о качестве процесса его разработки!</p>]]></description>
      <pubDate>Wed, 10 Jan 2018 22:39:38 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>01.08.2017 23:40:52 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/334636/#comment_10339178</guid>
      <link>https://habr.com/ru/articles/334636/#comment_10339178</link>
      <description><![CDATA[<p>К сожалению автор оригинальной статьи не удосужился проверить свои аргументы.<br>
А между тем, эти аргументы слабенькие, а некоторые — ложные.</p><br>
<p>1)</p><br>
<blockquote>Добавлять новые зависимости просто.</blockquote><p>При использовании Idea любую зависимость добавлять легко, так что это не аргумент.<br>
Кроме того нет смысла что-то усложнять.</p><br>
<p>2)</p><br>
<blockquote>… после определенного момента число аргументов конструктора становится слишком большим и тут же становится очевидно, что что-то не так.</blockquote><p>Тем не менее это не ведет к улучшению архитектуры. Коммерческие разработчики под прессом дедлайнов тупо добавляют еще один аргумент в конструктор. Благо с Идеей это легко. Когда же разработчики берутся за рефакторинг, то они выбирают классы не по числу аргументов конструкторов, а по размеру или сложности класса. Так что и это не аргумент.</p><br>
<p>3)</p><br>
<blockquote>Таким образом становится четко понятно, что требует класс...</blockquote><p>Кому? DI контейнер однозначно "поймет", что требует класс (а точнее бин!) при любом объявлении зависимостей.<br>
Разработчику зависимых бинов совершенно без разницы от чего зависит ваш бин. При написании юнит-тестов разработчику доступен исходный код класса — так что, чем меньше кода — тем лучше.</p><br>
<p>4)</p><br>
<blockquote>… а также опциональные ли это зависимости (через сеттеры) или обязательные (конструктор)</blockquote><p>Увы это ложь.<br>
Например:</p><br>
<pre><code class="java">@Autowired public void setTest(AI ai) {} // Обязательная зависимость</code></pre><br>
<p>Если в конфигурации не будет реализации интерфейса AI, spring выбросит UnsatisfiedDependencyException, при создании такого бина.<br>
Чтобы получить не обязательную зависимость можно использовать, например:</p><br>
<pre><code class="java">@Autowired(required = false) public void setTest(AI ai) {} // Необязательна зависимость
@Autowired public void setTest(Optional&lt;AI&gt; ai) {} // Необязательна зависимость
@Autowired public void setTest(javax.enterprise.inject.Instance&lt;AI&gt; ai) {} // Разрешение зависимости под вашим контролем</code></pre><br>
<p>5)</p><br>
<blockquote>… вы можете создать его в юнит-тесте без запуска контейнера</blockquote><p>Использование подходящих инструментов делает юнит тесты простыми.<br>
Например этот тест будет работать без контейнера и при любом способе внедрения зависимостей (конструктор, поля, сеттеры, с аннотациям @Autowired, <a href="https://habrahabr.ru/users/inject/" class="user_link">Inject</a> или вообще без них):</p><br>
<pre><code class="java">@RunWith(MockitoJUnitRunner.class)
public class SmartCarTest {

    @InjectMocks
    SmartCar smartCar;

    @Mock
    AI ai;

    @Test
    public void testDecide() {
        when(ai.think()).thenReturn("42");

        String decision = smartCar.decide();

        assertEquals("The answer is: 42", decision);
    }
}</code></pre><br>
<p>6)</p><br>
<blockquote>Существует способ… создать объект… приведет к NullPointerException</blockquote><p>Это опять ложь.<br>
В рантайме спринг либо создаст объект со всеми обязательными зависимостями, либо выбросит UnsatisfiedDependencyException. CDI или другие DI контейнеры — я уверен — ведут себя также. То же самое верно и для тестов с использованием SpringRunner.<br>
А для тестов с использованием Mockito NullPointerException не является проблемой. Это будет просто упавший тест.</p><br>
<p>7)</p><br>
<blockquote>… нет способа кроме рефлексии предоставить ему необходимые зависимости</blockquote><p>Для DI контейнера это не проблема. А если класс нужно использовать вне DI контейнера, то нет смысла говорить о внедрении зависимостей. Так что это не аргумент против любого из способов.</p><br>
<p>8)</p><br>
<blockquote>… внедрение через поля не может использоваться для присвоения зависимостей final-полям</blockquote><p>Это верно не для всех DI контейнеров.<br>
CDI реализации в серверах Wildfly и Payara, насколько я помню, вполне комфортно внедряют такие зависимости:</p><br>
<pre><code class="java">class SmartCar {
    @Inject
    final AI ai = null;
}</code></pre>]]></description>
      <pubDate>Tue, 01 Aug 2017 23:40:52 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>25.06.2016 15:38:40 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/303850/#comment_9674676</guid>
      <link>https://habr.com/ru/articles/303850/#comment_9674676</link>
      <description><![CDATA[Офтопик. Наводка, кому интересно почитать.<br/>
<br/>
В книге Шифропанки Джулиана Ассанджа есть интересное обсуждение проблемы цензуры в сети.<br/>
Мне там понравилась цитата Вау Холланда «фильтры должен ставить конечный пользователь, причем так, чтобы они стояли в его конечном устройстве».]]></description>
      <pubDate>Sat, 25 Jun 2016 15:38:40 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>18.05.2016 21:40:41 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/301102/#comment_9616000</guid>
      <link>https://habr.com/ru/articles/301102/#comment_9616000</link>
      <description><![CDATA[Третий метод не сработает, если точка совпадает с одной из вершин. (как такую вершину проецировать на окружность?)]]></description>
      <pubDate>Wed, 18 May 2016 21:40:41 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>16.05.2016 10:53:18 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/283290/#comment_9611104</guid>
      <link>https://habr.com/ru/articles/283290/#comment_9611104</link>
      <description><![CDATA[Постарайтесь никого не вводить в заблуждения.<br/>
<blockquote>смысл стандарта в ограничении свободы</blockquote> В <a href="https://docs.oracle.com/javaee/7/tutorial/overview.htm">javaee tutorial</a> цель платформы Java EE объясняется так: предоставить разработчикам мощный набор API с одновременным сокращением времени разработки, снижением сложности приложения и улучшением производительности приложения.<br/>
Сравните <a href="http://stackoverflow.com/questions/16635584/what-are-the-main-differences-between-ejb-2-0-and-ejb-3-0-in-the-orientation-of">EJB2 и EJB3</a> — большое количество ограничений было отменено.<br/>
<br/>
<blockquote>т.е. приложение может переехать с одного сервера на другой</blockquote> во многих частях спецификации указываются ограничения чтобы приложение оставалось «portable application». Все сервера соответствующие спецификации одинаково исполняют «portable application». Такие приложения действительно могут переезжать с одного сервера на другой.<br/>
<br/>
<blockquote>стандарт хоть и есть, но настолько неконкретный</blockquote> Можете привести пример неоднозначности в какой-нибудь части Java EE?<br/>
<br/>
<blockquote>ведь они не только имеют собственный способ конфигурации, но и ряд «особенностей» интерпретации стандарта.</blockquote> каждый сервер имеет свой собственный способ конфигурирования — это не новость, но это за рамками Java EE. И даже спринг имеет свой собственный способ конфигурирования. Специалист по TomEE/Payara/Wildfly/Weblogic сможет настроить сервер. Однако сила Java EE в том, что разработчик может создавать компоненты независимо от конфигурации и модели конкретного сервера.<br/>
<br/>
<blockquote>но развитие стандартов по причине высокой формализации идут совершенно не современными темпами</blockquote> в 2009 Java EE 6, в 2013 Java EE 7, в конце этого 2016 ожидается Java EE 8. Сейчас в Java EE 7 есть всё. Асинхронные запросы, Web Sockets, REST, HTML 5.<br/>
В Java EE 8 (в конце этого года) ожидается HTTP/2, Server-Sent Events. Темпы, на мой взгляд, превосходные!<br/>
<br/>
<blockquote>javaee никак не может разобраться с тем как приложение тестировать</blockquote> Java EE (на сколько мне известно) не имеет своей целью определить как тестировать что-либо. Так что это утверждение не корректное.<br/>
Однако тесто-пригодность java ee приложений на высоте (так же как у спринг приложений).<br/>
Автор оригинальной статьи рекомендует вместо интеграционных «системные тесты» с использованием контейнеров. Вполне пригодная концепция.<br/>
А для модульных тестов (как для java ee так и для spring) отлично подходит mockito с её аннотациями InjectMocks, Mock, Spy.<br/>
<br/>
<blockquote>Может лучше было бы выпустить хорошие реализации для этих технологий</blockquote> имхо оракл поступил даже мудрее! Вместо того чтобы выпускать самому, он сделал так, что теперь для каждого компонента имеются несколько реализаций<br/>
<code>JPA - Hibernate, EclipseLink, OpenJPA<br/>
JTA - Narayana (других не знаю, но они есть)<br/>
JAX-RS - Apache CXF, Jersey, RESTeasy<br/>
</code><br/>
Серверы приложений Wildfly, Payara, TomEE, WebLogic, WebSphere — на любой вкус.<br/>
<br/>
Я с большим уважением отношусь к Spring. Это отличный фреймворк. Однако и спецификация Java EE предлагает как минимум такой же уровень возможностей и удобства.]]></description>
      <pubDate>Mon, 16 May 2016 10:53:18 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>12.05.2016 16:24:05 </title>
      <guid isPermaLink="true">https://habr.com/ru/companies/cloud4y/articles/283366/#comment_8892798</guid>
      <link>https://habr.com/ru/companies/cloud4y/articles/283366/#comment_8892798</link>
      <description><![CDATA[<blockquote>...has been tested by unit or integration tests.</blockquote>Перевод<br/>
<blockquote>… прошло интеграционное тестирование.</blockquote>?!]]></description>
      <pubDate>Thu, 12 May 2016 16:24:05 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>12.05.2016 16:18:41 </title>
      <guid isPermaLink="true">https://habr.com/ru/companies/cloud4y/articles/283366/#comment_8892794</guid>
      <link>https://habr.com/ru/companies/cloud4y/articles/283366/#comment_8892794</link>
      <description><![CDATA[Какие-то части из оригинальной статьи пропущены?<br/>
Например это:<br/>
<blockquote>I've written about this in Strict Control of Java Code Quality. I use qulice.com in Java projects and rubocop in Ruby, but there are many similar tools for nearly every language.</blockquote><br/>
Или это оригинал поменялся?]]></description>
      <pubDate>Thu, 12 May 2016 16:18:41 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>12.05.2016 15:25:01 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/283290/#comment_8892746</guid>
      <link>https://habr.com/ru/articles/283290/#comment_8892746</link>
      <description><![CDATA[У меня отображается пометка «перевод» в заголовке. А в RSS пометка [Перевод] в начале Subject.]]></description>
      <pubDate>Thu, 12 May 2016 15:25:01 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>12.05.2016 11:52:46 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/283290/#comment_8892502</guid>
      <link>https://habr.com/ru/articles/283290/#comment_8892502</link>
      <description><![CDATA[В самом конце автор оригинальной статьи упоминает «автоматическое системное тестирование развернутого в контейнер приложения». Как мне показалось, он его предлагает вместо интеграционного тестирования с локальным подъемом внедренного сервера приложений.<br/>
]]></description>
      <pubDate>Thu, 12 May 2016 11:52:46 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>12.05.2016 11:43:18 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/283294/#comment_8892488</guid>
      <link>https://habr.com/ru/articles/283294/#comment_8892488</link>
      <description><![CDATA[Она только по правилу <a href="https://en.wikipedia.org/wiki/Nonzero-rule">non-zero winding rule</a> считается внутри. А по правилу <a href="https://en.wikipedia.org/wiki/Even%E2%80%93odd_rule">even-odd winding rule</a> она бы считалась снаружи.<br/>
<br/>
Насчет отличия таких областей в вики есть удачная метафора:<br/>
<blockquote>Если бы P была гвоздём, а C была бы завязанным в кольцо куском нитки, вытягивание какой-то части нитки прочь от гвоздя приведёт либо к вытягиванию всей нитки, либо нитка окажется накрученной несколько раз на гвоздь</blockquote>]]></description>
      <pubDate>Thu, 12 May 2016 11:43:18 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>11.05.2016 20:20:55 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/283294/#comment_8891614</guid>
      <link>https://habr.com/ru/articles/283294/#comment_8891614</link>
      <description><![CDATA[Вот еще один пример, из вики. <img src="https://habrastorage.org/files/dde/7eb/ef5/dde7ebef540a479689c6bedfa0707d26.png" title="non-zero winding rule"/>]]></description>
      <pubDate>Wed, 11 May 2016 20:20:55 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>11.05.2016 19:01:01 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/283294/#comment_8891532</guid>
      <link>https://habr.com/ru/articles/283294/#comment_8891532</link>
      <description><![CDATA[При пересекающихся ребрах есть особенности.<br/>
<br/>
Бывает «even-odd winding rule» и «non-zero winding rule».<br/>
<img src="https://habrastorage.org/files/7c0/04e/6a2/7c004e6a2b314627afee5694aa0ab21a.png" alt="even-odd" title="even-odd"/> <img src="https://habrastorage.org/files/db0/b00/e30/db0b00e30033410c96fe812162977215.png" alt="non-zero" title="non-zero"/><br/>
<br/>
В первом случае красная точка считается за пределами полигона (как у автора), во-втором — внутри.]]></description>
      <pubDate>Wed, 11 May 2016 19:01:01 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

      

      

    
  </channel>
</rss>
