<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766669</guid>
        <pubDate>Sun, 15 Apr 2018 09:22:16 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766669</link>
        <description><![CDATA[Serafim: Простите, я табличку сарказма потерял :D]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766645</guid>
        <pubDate>Sat, 14 Apr 2018 18:28:48 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766645</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766618'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T15:20:10+00:00">14.04.18, 15:20</time></span><div class='quote '>Да ладно?  Ты уверен?  </div></div><br>
Так практически везде же.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766638</guid>
        <pubDate>Sat, 14 Apr 2018 17:22:52 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766638</link>
        <description><![CDATA[amk: Уверен. В C это описано стандартом.<br>Так же и в C++, если переменные не являются пользовательскими типами.<br>Но в таком случае не может быть уверенности даже в результирующем значении. Пользовательский operator||() вовсе не обязан возвращать bool]]></description>
        <author>amk</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766618</guid>
        <pubDate>Sat, 14 Apr 2018 15:20:10 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766618</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766570'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T08:19:52+00:00">14.04.18, 08:19</time></span><div class='quote '>Но не указано, что если по `a` можно определить ответ, то `b` не анализируется</div></div><br>
Да ладно? :o Ты уверен? :huh:]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766610</guid>
        <pubDate>Sat, 14 Apr 2018 14:40:18 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766610</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>amk</strong>, я думаю, это не сложно определить эмпирически :)]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766570</guid>
        <pubDate>Sat, 14 Apr 2018 08:19:52 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766570</link>
        <description><![CDATA[amk: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766550'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-13T21:26:32+00:00">13.04.18, 21:26</time></span><div class='quote '>Это означает, что там может находиться либо true, либо false и никак иначе.</div></div> Но не указано, что если по `a` можно определить ответ, то `b` не анализируется]]></description>
        <author>amk</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766550</guid>
        <pubDate>Fri, 13 Apr 2018 21:26:32 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766550</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766517'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2018-04-13T15:39:52+00:00">13.04.18, 15:39</time></span><div class='quote '>Что значит bool?</div></div><br>
Это означает, что там может находиться либо true, либо false и никак иначе.]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766517</guid>
        <pubDate>Fri, 13 Apr 2018 15:39:52 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766517</link>
        <description><![CDATA[amk: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766410'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-12T22:53:59+00:00">12.04.18, 22:53</time></span><div class='quote '>1) C, Java, PHP: &quot;res = a || b&quot; <br>
Результат: res = bool</div></div> Что значит bool? true если a, иначе true если b, иначе false. При проверке условия вместо возврата результата сразу производится переход к нужной ветке.<br>
На самом деле вычисление результата тоже производится переходами.<br>
То есть фактически в C <strong class='tag-b'>res = a || b</strong> означает res = (a || b)? true: false<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766410'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-12T22:53:59+00:00">12.04.18, 22:53</time></span><div class='quote '>2) JS, Ruby, Python: &quot;res = a || b&quot;<br>
 Результат: res = a (если он тру) или b</div></div> В Python надо писать <strong class='tag-b'>res = a or b</strong>. В остальном почти верно. При вычислении результата, сразу после определения значения выражения производится переход на точку сохранения результата.]]></description>
        <author>amk</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766445</guid>
        <pubDate>Fri, 13 Apr 2018 08:35:32 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766445</link>
        <description><![CDATA[korvin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766410'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-12T22:53:59+00:00">12.04.18, 22:53</time></span><div class='quote '>Результат: функция &quot;||&quot; от a и b</div></div><br>
Что?<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">{-</div><div class="code_line">&nbsp;</div><div class="code_line">tryToDoSomethingClever :: Maybe Int -&#62; Result String</div><div class="code_line">tryToDoSomethingClever idParam = do</div><div class="code_line">&nbsp;&nbsp; &nbsp;id &nbsp; &#60;- getId idParam</div><div class="code_line">&nbsp;&nbsp; &nbsp;item &#60;- getItem id</div><div class="code_line">&nbsp;&nbsp; &nbsp;name &#60;- getName item</div><div class="code_line">&nbsp;&nbsp; &nbsp;return (doSomethingClever id name)</div><div class="code_line">&nbsp;</div><div class="code_line">tryToDoSomethingClever :: Maybe Int -&#62; Result String</div><div class="code_line">tryToDoSomethingClever idParam =</div><div class="code_line">&nbsp;&nbsp; &nbsp;getId idParam &#62;&#62;= (\id -&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;getItem id &#62;&#62;= (\item -&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;getName item &#62;&#62;= (\name -&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return (doSomethingClever id name))))</div><div class="code_line">&nbsp;</div><div class="code_line">-}</div><div class="code_line">&nbsp;</div><div class="code_line">tryToDoSomethingClever :: Maybe Int -&#62; Result String</div><div class="code_line">tryToDoSomethingClever idParam =</div><div class="code_line">&nbsp;&nbsp; &nbsp;case getId idParam of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Err msg -&#62; Err msg</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Ok &nbsp;id &nbsp;-&#62; case getItem id of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Err msg &nbsp;-&#62; Err msg</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ok &nbsp;item -&#62; case getName item of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Err msg &nbsp;-&#62; Err msg</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ok &nbsp;name -&#62; Ok (doSomethingClever id name)</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<a class='tag-url' href='https://ideone.com/f4Bzen' target='_blank'>https://ideone.com/f4Bzen</a>]]></description>
        <author>korvin</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766410</guid>
        <pubDate>Thu, 12 Apr 2018 22:53:59 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766410</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766406'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2018-04-12T20:17:06+00:00">12.04.18, 20:17</time></span><div class='quote '>А в нормальных следующим:</div></div><br>
Оуоу, палехче))) <br>
<br>
P.S. А это разве не первый вариант? Возвращается же в конце концов функция (точнее композиция функций). Только указанная в качестве первого операнда, если, конечно не использовался оператор &quot;&#036;&quot;, тогда вернётся последующий аргумент.<br>
<br>
P.P.S. Хотя... Кажется это ещё один вариант:<br>
<br>
1) C, Java, PHP: &quot;<strong class='tag-b'>res = a || b</strong>&quot; <br>
Результат: res = bool<br>
<br>
2) JS, Ruby, Python: &quot;<strong class='tag-b'>res = a || b</strong>&quot;<br>
Результат: res = a (если он тру) или b<br>
<br>
3) Haskell: &quot;<strong class='tag-b'>res = a || b</strong>&quot;<br>
Результат: функция &quot;||&quot; от a и b (я довольно плохо плохо знаю Haskell, так что поправь, если ошибаюсь)]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766406</guid>
        <pubDate>Thu, 12 Apr 2018 20:17:06 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766406</link>
        <description><![CDATA[korvin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766081'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T01:53:26+00:00">10.04.18, 01:53</time></span><div class='quote '>Крупные методы принято делить на более мелкие, в частности твой вариант, в языках с возвращаемым значением в операндах (JS, Python, Ruby), вместо кастуемых (Java, PHP) моет выглядеть следующим образом:<br>
<br>
…</div></div><br>
<br>
А в <a class='tag-url' href='https://ideone.com/MCfOc3' target='_blank'>нормальных</a> следующим:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">doSomethingClever :: Int -&#62; String -&#62; String</div><div class="code_line">doSomethingClever id name = show id ++ &quot; =&#62; &quot; ++ name</div><div class="code_line">&nbsp;</div><div class="code_line">tryToDoSomethingClever :: Maybe Int -&#62; Result String</div><div class="code_line">tryToDoSomethingClever idParam = do</div><div class="code_line">&nbsp;&nbsp; &nbsp;id &nbsp; &#60;- getId idParam</div><div class="code_line">&nbsp;&nbsp; &nbsp;item &#60;- getItem id</div><div class="code_line">&nbsp;&nbsp; &nbsp;name &#60;- getName item</div><div class="code_line">&nbsp;&nbsp; &nbsp;return (doSomethingClever id name)</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-12T20:23:55+00:00">12.04.18, 20:23</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766181'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T20:06:54+00:00">10.04.18, 20:06</time></span><div class='quote '>Embarcadero чисто по загону новые версии выпускает. Для прикола, тупо порубить хоть чуть-чуть бабла на легаси-проектах</div></div><br>
Ага.]]></description>
        <author>korvin</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766283</guid>
        <pubDate>Wed, 11 Apr 2018 17:59:03 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766283</link>
        <description><![CDATA[Jin X: Кстати, кто подскажет, что это за прога (которая показывает заголовок PE в таком виде)?<br>
<br>
<img class='tag-img' src='https://habrastorage.org/getpro/habr/post_images/79f/829/971/79f8299719249aefe752bc6fab84cd3d.png' alt='user posted image'><br>
<br>
<img class='tag-img' src='https://habrastorage.org/getpro/habr/post_images/60e/330/2a5/60e3302a54722f780b0e8d470f284604.png' alt='user posted image'>]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766266</guid>
        <pubDate>Wed, 11 Apr 2018 16:11:01 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766266</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766242'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2018-04-11T12:08:23+00:00">11.04.18, 12:08</time></span><div class='quote '>Без reloc-ов по-любому ASLR не заработает.</div></div>Да это понятное дело.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766242'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2018-04-11T12:08:23+00:00">11.04.18, 12:08</time></span><div class='quote '>Во время отладки стрипать их даже полезно</div></div>Можно так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">{$IFDEF DEBUG}</div><div class="code_line">&nbsp;&nbsp;{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}</div><div class="code_line">{$ELSE}</div><div class="code_line">&nbsp;&nbsp;{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE}</div><div class="code_line">{$ENDIF}</div><div class="code_line">{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_NX_COMPAT}</div></ol></div></div></div></div>:)]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766242</guid>
        <pubDate>Wed, 11 Apr 2018 12:08:23 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766242</link>
        <description><![CDATA[Qraizer: Без reloc-ов по-любому ASLR не заработает. Но тут как бы палка о двух концах. Во время отладки стрипать их даже полезно, ибо бряки, не привязанные к строкам кода, а поставленные, скажем, на конкретные ассемблерные инструкции, что нередко бывает нужно для либ без сыров, при активном ASLR слетают токатак. Но вот в релизе я удалять их всё-таки бы не советовал.]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766239</guid>
        <pubDate>Wed, 11 Apr 2018 11:43:56 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766239</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766187'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T21:56:41+00:00">10.04.18, 21:56</time></span><div class='quote '>чем напрочь запрещаем ASLR.</div></div>Чтобы ASLR работал, нужно либо включить соответствующие опции в PE-заголовке (при компиляции, например). Либо прописать эти опции в реестре для конкретного файла.<br>
Но в целом ты прав, конечно. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-11T11:56:36+00:00">11.04.18, 11:56</time></span></span><br>
Не углублялся в эту тему раньше.<br>
Ну тогда вместо отключения фиксапов можно включать ASLR и DEP (ну или просто DEP хотя бы):<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">{$APPTYPE CONSOLE}</div><div class="code_line">uses Windows, SysUtils;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp;IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = ; &nbsp;// ASLR, {$DYNAMICBASE ON} in Delphi 2007+</div><div class="code_line">&nbsp;&nbsp;IMAGE_DLLCHARACTERISTICS_NX_COMPAT = 0; &nbsp; &nbsp;// DEP</div><div class="code_line">{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE or IMAGE_DLLCHARACTERISTICS_NX_COMPAT} // {$SetPEOptFlags 0}, works on Delphi 6+ (and maybe earlier)</div><div class="code_line">// http://qaru.site/questions/663368/how-can-i-enable-depnx-and-aslr-on-a-delphi-2006-or-earlier-executable</div><div class="code_line">// https://habrahabr.ru/company/eset/blog/206244/</div><div class="code_line">&nbsp;</div><div class="code_line">const R: Byte = $C3;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;WriteLn(IntToHex(DWord(@IntToHex), 8));</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;TProcedure(@R);</div><div class="code_line">&nbsp;&nbsp; &nbsp;WriteLn(&#39;DEP is OFF :(&#39;);</div><div class="code_line">&nbsp;&nbsp;except</div><div class="code_line">&nbsp;&nbsp; &nbsp;WriteLn(&#39;DEP is ON :)&#39;);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766202</guid>
        <pubDate>Wed, 11 Apr 2018 05:56:24 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766202</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766177'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Vesper &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T18:14:00+00:00">10.04.18, 18:14</time></span><div class='quote '>Вот мало ли кто захочет зачем-то поменять эту нас ройку, тем боле если в заголовке где-то проскочит, а особенно если это что-то фиг-отладишь типа буста.</div></div><br>
В плюсовых компиляторах тоже такая настройка имеется? Что-то сильно сомневаюсь. Максимум, что ты сделаешь в плюсах - перегрузишь логические операторы для своих типов. И вообще, можно пруф того, что это бывает не только в дельфи?]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766187</guid>
        <pubDate>Tue, 10 Apr 2018 21:56:41 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766187</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766178'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T18:50:26+00:00">10.04.18, 18:50</time></span><div class='quote '>...(которые там нафиг не нужны)</div></div>...чем напрочь запрещаем <a class='tag-url' href='https://ru.wikipedia.org/wiki/ASLR' target='_blank'>ASLR</a>.]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766181</guid>
        <pubDate>Tue, 10 Apr 2018 20:06:54 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766181</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>D_KEY</strong>, нет, конечно, никто не пишет.<br>
Embarcadero чисто по загону новые версии выпускает. Для прикола, тупо поржать ;)]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766180</guid>
        <pubDate>Tue, 10 Apr 2018 19:48:23 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766180</link>
        <description><![CDATA[D_KEY: Неужели кто-то ещё пишет на Delphi?]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766178</guid>
        <pubDate>Tue, 10 Apr 2018 18:50:26 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766178</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766177'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Vesper &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T18:14:00+00:00">10.04.18, 18:14</time></span><div class='quote '>Приоритет приоритетом, но флаг complete boolean eval означает вычислить все части булева выражения, даже если они уже не влияют на итоговый результат.</div></div><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766177'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Vesper &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T18:14:00+00:00">10.04.18, 18:14</time></span><div class='quote '>Сюрприз, да</div></div>Ну вообще, по умолчанию она отключена. Но я, например, если пишу код, в котором эта настройка (или какая-либо другая) важна, прописываю её в заголовке и проблем нет.<br>
Там помимо этой настройки есть ещё R, Q, Z и пр., которые тоже могут неслабо влиять на результат.<br>
Надо просто знать об этом и проставлять нужные опции. В IDE есть комбинация Ctrl+O+O, которая позволяет быстро увидеть текущие настройки и зафиксировать их. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T18:57:05+00:00">10.04.18, 18:57</time></span></span><br>
В целом же, довольно неплохо иметь привычку всовывать в начало исходников строчку вида <strong class='tag-b'>{&#036;A8,Z1,O+,Q-,R-,B-}</strong><br>
А в главный модуль (program) можно ещё и <strong class='tag-b'>{&#036;SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}</strong> (при подключенном модуле Windows, ну или <strong class='tag-b'>{&#036;SetPEFlags 1}</strong>) вставлять для удаления фиксапов из EXE-шника (которые там <a class='tag-url' href='https://www.transl-gunsmoker.ru/2011/08/hack12-create-smaller-exe-files.html' target='_blank'>нафиг не нужны</a>). Только в DLL такого не надо делать :)]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766177</guid>
        <pubDate>Tue, 10 Apr 2018 18:14:00 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766177</link>
        <description><![CDATA[Vesper: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766114'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:34:10+00:00">10.04.18, 11:34</time></span><div class='quote '>А &amp;&amp; имеет более высокий приоритет, чем ||. </div></div><br>
Приоритет приоритетом, но флаг complete boolean eval означает вычислить все части булева выражения, даже если они уже не влияют на итоговый результат. Пример был вида &quot;if (a&lt;100) or add1(a) then...&quot; где add1 - функция с сайд-эффектом, возвращающая boolean, и при B+ переменная а всегда увеличивалась, а при В- только если (а&lt;100) было ложным. Вот мало ли кто захочет зачем-то поменять эту нас ройку, тем боле если в заголовке где-то проскочит, а особенно если это что-то фиг-отладишь типа буста. Вот надо им было, а ты теперь страдай.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766126'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:57:50+00:00">10.04.18, 11:57</time></span><div class='quote '>Хм, прочитал про это. Какому идиоту вздумалось вводить этот ключ?   Это же трындец какой-то.</div></div><br>
Сюрприз, да :D]]></description>
        <author>Vesper</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766175</guid>
        <pubDate>Tue, 10 Apr 2018 17:44:50 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766175</link>
        <description><![CDATA[Serafim: Зато QA меньше проблем с &quot;внезапно появившимися багами из ниоткуда&quot;  ;) <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T17:48:11+00:00">10.04.18, 17:48</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766174'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T17:44:36+00:00">10.04.18, 17:44</time></span><div class='quote '>А тот код, что ты выше приводил, заставляешь писать?</div></div><br>
Допустим повышенный Complexity, как в примере выше, обычный анализатор сам подсветит, сложнее с Protected Variations и Cohesion - тут надо самому думать как не свалиться в рефакторинг)]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766174</guid>
        <pubDate>Tue, 10 Apr 2018 17:44:36 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766174</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766172'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T17:28:36+00:00">10.04.18, 17:28</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766165'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Славян &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T15:18:04+00:00">10.04.18, 15:18</time></span><div class='quote '>А я, Serafim, вообще стараюсь избегать фигурных, если позволительно, a&#39;la:</div></div><br>
А я джунов своих по рукам за это бью)</div></div><br>
А тот код, что ты выше приводил, заставляешь писать? :lol:]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766173</guid>
        <pubDate>Tue, 10 Apr 2018 17:39:05 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766173</link>
        <description><![CDATA[applegame: Бедные джуны.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766172</guid>
        <pubDate>Tue, 10 Apr 2018 17:28:36 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766172</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766165'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Славян &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T15:18:04+00:00">10.04.18, 15:18</time></span><div class='quote '>А я, Serafim, вообще стараюсь избегать фигурных, если позволительно, a&#39;la:</div></div><br>
А я джунов своих по рукам за это бью)]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766167</guid>
        <pubDate>Tue, 10 Apr 2018 15:27:43 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766167</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>Славян</strong>, ну это уже борщ, ИМХО :whistle:]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766165</guid>
        <pubDate>Tue, 10 Apr 2018 15:18:04 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766165</link>
        <description><![CDATA[Славян: А я, <strong class='tag-b'>Serafim</strong>, вообще стараюсь избегать фигурных, если позволительно, a&#39;la:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if( ... )</div><div class="code_line">&nbsp;&nbsp;A = B,</div><div class="code_line">&nbsp;&nbsp;func1( ... ),</div><div class="code_line">&nbsp;&nbsp;p = func2(...);</div><div class="code_line">else</div><div class="code_line">&nbsp;&nbsp;C = D, ...;</div></ol></div></div></div></div> :blush:]]></description>
        <author>Славян</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766164</guid>
        <pubDate>Tue, 10 Apr 2018 15:17:05 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766164</link>
        <description><![CDATA[Qraizer: Конечно, нет. Алгоритм-то другой.]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766162</guid>
        <pubDate>Tue, 10 Apr 2018 14:36:14 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766162</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>Qraizer</strong>, ага. С одним <strong class='tag-b'>&#33;</strong> не так красиво? :)]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766161</guid>
        <pubDate>Tue, 10 Apr 2018 14:30:25 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766161</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766145'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:21:13+00:00">10.04.18, 13:21</time></span><div class='quote '>Как ты предлагаешь реализовать xor, чтобы получилось красиво? </div></div><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if(!!x != !!y) /* ... */</div></ol></div></div></div></div> :D]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766160</guid>
        <pubDate>Tue, 10 Apr 2018 14:28:06 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766160</link>
        <description><![CDATA[Serafim: Это значит, что любой оператор (хотя в котлине вроде только if):<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">verifyItems = (...args) =&#62; (i or throw Error &quot;asd&quot; for i of args).length</div></ol></div></div></div></div><br>
<br>
Применение для каждого элемента args функции, которая в случае элемента, который равен false вернёт ошибку, в остальных случаях значение аккумулируется и от него берётся length, т.е. количество элементов в результате (этот ваш незамысловатый i++ в if условии).<br>
<br>
<a class='tag-url' href='http://coffeescript.org/#try:verifyItems%20%3D%20(...args)%20%3D%3E%20(i%20or%20throw%20Error%20%22asd%22%20for%20i%20of%20args).length' target='_blank'>А вот даже можно собрать это всё</a>]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766158</guid>
        <pubDate>Tue, 10 Apr 2018 14:20:15 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766158</link>
        <description><![CDATA[negram: ммм. А как тема &quot;Чистота кода VS оптимизация&quot; превратилась в соревнование кто по-уродливее код написать может? :unsure:]]></description>
        <author>negram</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766157</guid>
        <pubDate>Tue, 10 Apr 2018 14:10:40 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766157</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766156'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T14:02:35+00:00">10.04.18, 14:02</time></span><div class='quote '>Плюс, в рубях и котлине сами операторы могут возвращать значение</div></div>C++<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">int func(int val)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;return val ? (printf(&quot;%d &quot;, val), 2) : -1;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int main()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;int x;</div><div class="code_line">&nbsp;&nbsp;scanf(&quot;%d&quot;, &amp;x);</div><div class="code_line">&nbsp;&nbsp;printf(&quot;%d\n&quot;, func(x));</div><div class="code_line">&nbsp;&nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T14:12:27+00:00">10.04.18, 14:12</time></span></span><br>
Или так :)<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">int func(int val)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;return val ? ({int x = val*5; printf(&quot;%d &quot;, x); 2;}) : -1;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int main()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;int x;</div><div class="code_line">&nbsp;&nbsp;scanf(&quot;%d&quot;, &amp;x);</div><div class="code_line">&nbsp;&nbsp;printf(&quot;%d\n&quot;, func(x));</div><div class="code_line">&nbsp;&nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766156</guid>
        <pubDate>Tue, 10 Apr 2018 14:02:35 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766156</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766151'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:50:58+00:00">10.04.18, 13:50</time></span><div class='quote '>Сенькс. В Java так же?</div></div><br>
Я не помню, кажется там каст к булеву. Тут тебе <strong class='tag-b'>Астарот</strong> поможет. <br>
<br>
А в Ruby и JS - 146% возврат значения. Плюс, в <strong class='tag-b'>рубях</strong> и <strong class='tag-b'>котлине</strong> сами операторы могут возвращать значение, типа:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">return if (errValue || errValue2) {</div><div class="code_line">&nbsp;&nbsp;throw Exception(&quot;Whoops!&quot;)</div><div class="code_line">} else {</div><div class="code_line">&nbsp;&nbsp;print(&quot;OK&quot;)</div><div class="code_line">&nbsp;&nbsp;do();</div><div class="code_line">&nbsp;&nbsp;true</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766153</guid>
        <pubDate>Tue, 10 Apr 2018 13:56:52 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766153</link>
        <description><![CDATA[Jin X: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#define XOR(a, b) (bool(a) != bool(b))</div><div class="code_line">. . .</div><div class="code_line">if (XOR(x, y)) {...}</div></ol></div></div></div></div> :P]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766152</guid>
        <pubDate>Tue, 10 Apr 2018 13:54:46 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766152</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766151'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:50:58+00:00">10.04.18, 13:50</time></span><div class='quote '>Это точно лучше, чем if (x ^^ y) (если бы он был)?</div></div><br>
Зависит от того, как ты относишься к неявным кастам чисел к bool  :-? Я вот за пределами олимпиад стараюсь их избегать, и поэтому даже if (a &amp;&amp; b) у меня выглядит как if (a &#33;= 0 &amp;&amp; b &#33;= 0)]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766151</guid>
        <pubDate>Tue, 10 Apr 2018 13:50:58 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766151</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766146'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:37:03+00:00">10.04.18, 13:37</time></span><div class='quote '>Т.е. как-то if ((x &#33;= 0) ^ (y &#33;= 0)) пишу.</div></div>Вариант, конечно (тогда можно использовать <strong class='tag-b'>&#33;=</strong> – так понятнее).<br>
Но это точно лучше, чем <strong class='tag-b'>if (x ^^ y)</strong> (если бы он был)? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T13:52:00+00:00">10.04.18, 13:52</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766149'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:48:24+00:00">10.04.18, 13:48</time></span><div class='quote '>Я же написал даже, что есть языки, где операнды возвращают значение, а не булев результат</div></div>Сенькс. В Java так же?]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766149</guid>
        <pubDate>Tue, 10 Apr 2018 13:48:24 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766149</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766142'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:02:39+00:00">10.04.18, 13:02</time></span><div class='quote '>Вот, блин&#33;<br>
В JS:<br>
5&amp;&amp;1 = 1, а 1&amp;&amp;5 = 5<br>
5||0 = 5 и 0||5 = 5 (почему одинаково - понятно, но почему не true/false?)<br>
Чё за бред? </div></div><br>
Я же написал даже, что есть языки, где операнды возвращают значение, а не булев результат: <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766081' target='_blank'>Чистота кода VS оптимизация (сообщение #3766081)</a> пункт номер 1  ;)]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766148</guid>
        <pubDate>Tue, 10 Apr 2018 13:48:23 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766148</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766145'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:21:13+00:00">10.04.18, 13:21</time></span><div class='quote '>Надо, но всегда ли есть смысл писать if (x &#33;= 0), когда можно написать просто if (x) ?</div></div><br>
Почему нет? В языках без неявного приведения к bool писать &#33;= 0 не напрягает совершенно.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766147</guid>
        <pubDate>Tue, 10 Apr 2018 13:47:09 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766147</link>
        <description><![CDATA[Jin X: Периодически встречаются конструкции вида <strong class='tag-b'>if x % 1 == 0</strong> или <strong class='tag-b'>if not 1 % 1</strong> — проверка на целое (python)<br>
Или <strong class='tag-b'>n = ~~(n/5)</strong> — деление нацело (JS)<br>
Прикольно, конечно, но в &quot;чистоте&quot; такого кода у меня сомнения...]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766146</guid>
        <pubDate>Tue, 10 Apr 2018 13:37:03 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766146</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766142'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:02:39+00:00">10.04.18, 13:02</time></span><div class='quote '>OpenGL, ты имеешь в виду, что &amp;&amp; и || ленивые в отличие от &amp; и | ?</div></div><br>
Да. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T13:46:46+00:00">10.04.18, 13:46</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766142'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:02:39+00:00">10.04.18, 13:02</time></span><div class='quote '>А разве основная ценность в этой ленивости? И это достаточная причина, чтобы не делать ^^ ?</div></div><br>
Имхо, да. Из-за ленивости ты сможешь написать что-то наподобие if(index &lt; a.len() &amp;&amp; a[index] &lt; 42), и замена &amp;&amp; на &amp; тут не прокатит. ^^ же ровно с тем же успехом в большинстве случаев заменяется на ^.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766142'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:02:39+00:00">10.04.18, 13:02</time></span><div class='quote '>Ну реально бывает (редко, но бывает), что нужно сделать (x ^^ y).</div></div><br>
Когда x и y не булевские, и просто конвертятся неявным кастом? Я в этом случае просто сам сравниваю с нулём. Т.е. как-то if ((x &#33;= 0) ^ (y &#33;= 0)) пишу.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766145</guid>
        <pubDate>Tue, 10 Apr 2018 13:21:13 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766145</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766144'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:18:29+00:00">10.04.18, 13:18</time></span><div class='quote '>Ты же не думаешь, что за типами следить не надо?</div></div>Надо, но всегда ли есть смысл писать <strong class='tag-b'>if (x &#33;= 0)</strong>, когда можно написать просто <strong class='tag-b'>if (x)</strong> ?<br>
А в случае с xor как-то тоже бредово выглядит <strong class='tag-b'>if ((x &amp;&amp; &#33;y) || (&#33;x &amp;&amp; y))</strong> и аналогично <strong class='tag-b'>if ((x&#33;=0 &amp;&amp; y==0) || (x==0 &amp;&amp; y&#33;=0))</strong>.<br>
Как ты предлагаешь реализовать xor, чтобы получилось красиво? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T13:25:40+00:00">10.04.18, 13:25</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766145'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:21:13+00:00">10.04.18, 13:21</time></span><div class='quote '>тоже бредово выглядит</div></div>Или:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">bool boolX = x, boolY = y;</div><div class="code_line">if (boolX != boolY) {...}</div></ol></div></div></div></div>тоже не айс... <br>
<br>
<strong class='tag-b'>if ((bool)x &#33;= (bool)y)</strong> :no:<br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T13:27:29+00:00">10.04.18, 13:27</time></span></span><br>
В JS соответственно:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">var boolX=!!x, boolY=!!y;</div><div class="code_line">if (boolX != boolY) {...}</div></ol></div></div></div></div>]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766144</guid>
        <pubDate>Tue, 10 Apr 2018 13:18:29 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766144</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766139'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T12:34:49+00:00">10.04.18, 12:34</time></span><div class='quote '>Хотя нет, не тормознул...</div></div>Ну это не серьёзно. Типы данных разные, и &amp;&amp; и &amp;, равно как и || и |, определены для разных типов, для которых есть взаимные касты, тогда как &#33;= одна на все типы, и кастов не требуется. Ты же не думаешь, что за типами следить не надо? А то я как-то видал в коде if(a &#33;= true), было весело писать багрепорты.]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766142</guid>
        <pubDate>Tue, 10 Apr 2018 13:02:39 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766142</link>
        <description><![CDATA[Jin X: Вот, блин&#33;<br>
В <strong class='tag-b'>JS</strong>:<br>
5&amp;&amp;1 = 1, а 1&amp;&amp;5 = 5<br>
5||0 = 5 и 0||5 = 5 (почему одинаково - понятно, но почему не true/false?)<br>
Чё за бред? :wall:<br>
<br>
p.s. В сях всё нормально работает: везде выдаёт 1 или true (в т.ч. для 2&amp;&amp;1 и 1&amp;&amp;~1, что ожидаемо).<br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T13:04:04+00:00">10.04.18, 13:04</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766141'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T13:01:41+00:00">10.04.18, 13:01</time></span><div class='quote '>Имеется ввиду, что || в моём предложении ты можешь заменить на &amp;&amp;, а | на &amp;.</div></div>Что??? :blink: <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T13:16:59+00:00">10.04.18, 13:16</time></span></span><br>
<strong class='tag-b'>OpenGL</strong>, ты имеешь в виду, что &amp;&amp; и || ленивые в отличие от &amp; и | ?<br>
А разве основная ценность в этой ленивости? И это достаточная причина, чтобы не делать ^^ ?<br>
Ну реально бывает (редко, но бывает), что нужно сделать <strong class='tag-b'>(x ^^ y)</strong>. Можно, конечно, написать <strong class='tag-b'>(&#33;x &#33;= &#33;y)</strong>, но это тоже не вот прям офигеть как читаемо :)]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766141</guid>
        <pubDate>Tue, 10 Apr 2018 13:01:41 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766141</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766139'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T12:34:49+00:00">10.04.18, 12:34</time></span><div class='quote '>Если под ленивой ты подразумеваешь проверку одного условия из 2-х (если оно true для ||), то отчего ж &amp;&amp; не ленивая (при первом false)?</div></div><br>
&amp;&amp; тоже ленивая уж. Имеется ввиду, что || в моём предложении ты можешь заменить на &amp;&amp;, а | на &amp;.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766139</guid>
        <pubDate>Tue, 10 Apr 2018 12:34:49 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766139</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766126'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:57:50+00:00">10.04.18, 11:57</time></span><div class='quote '>Не от греха подальше, а потому что операция бесмысленна. Главное отличие || от | (&amp;&amp; и &amp;, соответственно), помимо того, что одна - логическая, а вторая - побитовая в том, что первая ещё и ленивая. А вот ^^ ленивой не сделать.</div></div>Если под ленивой ты подразумеваешь проверку одного условия из 2-х (если оно true для <strong class='tag-b'>||</strong>), то отчего ж <strong class='tag-b'>&amp;&amp;</strong> не ленивая (при первом false)?<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766134'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T12:06:53+00:00">10.04.18, 12:06</time></span><div class='quote '>Это обычное &#33;=. Зачем?</div></div><s class='tag-s'>Точно. Тормознул чё-т я :facepalm: :)</s> (see below)<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766127'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:58:16+00:00">10.04.18, 11:58</time></span><div class='quote '>но не до такой степени</div></div>Ну ладно... <strong class='tag-b'>if (smthngBad1 || ++i &amp;&amp; smthngBad2 || ++i &amp;&amp; smthngBad3)</strong><br>
Как будто бы и не присвоение почти :D<br>
(на всякий случай скажу, что согласен, что это говнокодинг, но выглядит прикольно, поэтому иногда так и подмывает так писать) <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T12:46:16+00:00">10.04.18, 12:46</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766134'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T12:06:53+00:00">10.04.18, 12:06</time></span><div class='quote '>Это обычное &#33;=. Зачем?</div></div><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766139'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T12:34:49+00:00">10.04.18, 12:34</time></span><div class='quote '>Точно. Тормознул чё-т я</div></div>Хотя нет, не тормознул...<br>
5 &#33;= 7 = true<br>
но<br>
5 ^^ 7 = false <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T12:56:47+00:00">10.04.18, 12:56</time></span></span><br>
Если только так извращаться:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">var x=5, y=7;</div><div class="code_line">alert((x&amp;&amp;1) != (y&amp;&amp;1)); &nbsp;// false</div></ol></div></div></div></div>но это бред.]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766134</guid>
        <pubDate>Tue, 10 Apr 2018 12:06:53 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766134</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766113'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:18:14+00:00">10.04.18, 11:18</time></span><div class='quote '>А причём тут оптимизация? &amp;&amp; и || обязаны выполняться по-порядку, и оптимизатор не имеет права их переставлять.</div></div>При этом они ещё точки следования вставляют, так что ++ в безопасности.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766114'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:34:10+00:00">10.04.18, 11:34</time></span><div class='quote '>Видимо, ^^ не стали делать как раз от греха подальше</div></div>Это обычное &#33;=. Зачем?]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766130</guid>
        <pubDate>Tue, 10 Apr 2018 12:01:02 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766130</link>
        <description><![CDATA[Астарот: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766127'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:58:16+00:00">10.04.18, 11:58</time></span><div class='quote '>Сам иногда говнокодю, делая присваивания в условиях, но не до такой степени :D</div></div><br>
Эй, а он не безнадежен&#33; :D]]></description>
        <author>Астарот</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766127</guid>
        <pubDate>Tue, 10 Apr 2018 11:58:16 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766127</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766123'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:54:20+00:00">10.04.18, 11:54</time></span><div class='quote '>Serafim, кстати, что ты думаешь об if (smthngBad1 &amp;&amp; (i=1) || smthngBad2 &amp;&amp; (i=2) || smthngBad3 &amp;&amp; (i=3)) ?</div></div><br>
Это печально :) Сам иногда говнокодю, делая присваивания в условиях, но не до такой степени :D]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766126</guid>
        <pubDate>Tue, 10 Apr 2018 11:57:50 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766126</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766114'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:34:10+00:00">10.04.18, 11:34</time></span><div class='quote '>Видимо, ^^ не стали делать как раз от греха подальше  </div></div><br>
Не от греха подальше, а потому что операция бесмысленна. Главное отличие || от | (&amp;&amp; и &amp;, соответственно), помимо того, что одна - логическая, а вторая - побитовая в том, что первая ещё и ленивая. А вот ^^ ленивой не сделать.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766114'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:34:10+00:00">10.04.18, 11:34</time></span><div class='quote '>Vesper, ну это ж не Delphi, там бы {&#036;B-} был.</div></div><br>
Хм, прочитал про это. Какому идиоту вздумалось вводить этот ключ?  :unsure: Это же трындец какой-то.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766123</guid>
        <pubDate>Tue, 10 Apr 2018 11:54:20 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766123</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>Serafim</strong>, кстати, что ты думаешь об <strong class='tag-b'>if (smthngBad1 &amp;&amp; (i=1) || smthngBad2 &amp;&amp; (i=2) || smthngBad3 &amp;&amp; (i=3))</strong> ? :P]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766122</guid>
        <pubDate>Tue, 10 Apr 2018 11:47:10 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766122</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766119'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:46:11+00:00">10.04.18, 11:46</time></span><div class='quote '>Когда больше трёх, ИМХО, лучше использовать не отдельные переменные, а множество, к примеру...</div></div><br>
+1]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766121</guid>
        <pubDate>Tue, 10 Apr 2018 11:46:50 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766121</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766118'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:43:38+00:00">10.04.18, 11:43</time></span><div class='quote '>ГОСТ</div></div>СНиП и СанПиН :)]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766120</guid>
        <pubDate>Tue, 10 Apr 2018 11:46:39 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766120</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766116'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:41:18+00:00">10.04.18, 11:41</time></span><div class='quote '>ИМХО, он был (хорошее слово) предназначен для проверки 1 переменной на разные значения, а не наоборот </div></div><br>
Допускаю, что ты прав. Но это не значит, что обратный случай - плохой.]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766119</guid>
        <pubDate>Tue, 10 Apr 2018 11:46:11 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766119</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766081'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T01:53:26+00:00">10.04.18, 01:53</time></span><div class='quote '>Но это всё имеет смысл, когда подобных операций больше трёх.</div></div>Когда больше трёх, ИМХО, лучше использовать не отдельные переменные, а множество, к примеру...]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766118</guid>
        <pubDate>Tue, 10 Apr 2018 11:43:38 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766118</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766114'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:34:10+00:00">10.04.18, 11:34</time></span><div class='quote '>Serafim, вот скажи. Ну нафига фигурные скобки для if (while, for... нужное подчеркнуть), который прописан в одну строку?</div></div><br>
Для языков, которые я использую - это общепринятый стандарт, всё равно потом CS поправит код в CI, так что пофигу. <br>
<br>
Да и вообще, ГОСТ для C/C++, кажется, есть на эту тему :whistle:]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766116</guid>
        <pubDate>Tue, 10 Apr 2018 11:41:18 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766116</link>
        <description><![CDATA[Jin X: Я понимаю, что какой-нибудь ландырь может по запаре забыть поставить скобки, но при наличии выравнивания этот косяк сразу будет виден... <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T11:41:40+00:00">10.04.18, 11:41</time></span></span><br>
Эх, не успел склеить с предыдущим сообщением  &lt;_&lt; <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T11:42:52+00:00">10.04.18, 11:42</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766115'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:40:38+00:00">10.04.18, 11:40</time></span><div class='quote '>Кажется, что для этого он и был предназначен, не?)</div></div>ИМХО, он <em class='tag-i'>был</em> (хорошее слово) предназначен для проверки 1 переменной на разные значения, а не наоборот :)]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766115</guid>
        <pubDate>Tue, 10 Apr 2018 11:40:38 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766115</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766104'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T10:29:20+00:00">10.04.18, 10:29</time></span><div class='quote '>Больше похоже на обфускацию, а не упрощение кода  </div></div><br>
Ну не говорить же, что <strong class='tag-b'>if</strong> тут будет лучшим вариантом, только за опускание фигурных скобок всё равно надо отрубить что-нибудь лишнее)) Так что пришлось выкручиваться.<br>
<br>
С другой стороны, мне кажется нормальным использование switch/case для однотипных условных операторов. Кажется, что для этого он и был предназначен, не?)]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766114</guid>
        <pubDate>Tue, 10 Apr 2018 11:34:10 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766114</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>Vesper</strong>, ну это ж не Delphi, там бы <strong class='tag-b'>{&#036;B-}</strong> был. Ну и это отчасти троллинг примера Серафима, а отчасти... ну мне тоже нравятся такие конструкции и нагромождения всякие (усложнения) :)<br>
А <strong class='tag-b'>&amp;&amp;</strong> имеет более высокий приоритет, чем <strong class='tag-b'>||</strong>. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T11:37:27+00:00">10.04.18, 11:37</time></span></span><br>
Есть ещё замечательная операция <strong class='tag-b'>xor</strong> (<strong class='tag-b'>^</strong>).<br>
Тоже можно побаловаться а-ля <strong class='tag-b'>if (x ^ y) doSmthng();</strong><br>
Видимо, <strong class='tag-b'>^^</strong> не стали делать как раз от греха подальше :D <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T11:39:27+00:00">10.04.18, 11:39</time></span></span><br>
<strong class='tag-b'>Serafim</strong>, вот скажи. Ну нафига фигурные скобки для if (while, for... нужное подчеркнуть), который прописан в одну строку?<br>
Собственно, это смежно с <strong class='tag-b'>if (id) fetch(&#39;/data/&#39; + id);</strong>]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766113</guid>
        <pubDate>Tue, 10 Apr 2018 11:18:14 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766113</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766112'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Vesper &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T11:11:19+00:00">10.04.18, 11:11</time></span><div class='quote '>И потом нарываешься на хитро закопанные грабли в виде смены ключей оптимизации кода, и выясняется</div></div><br>
А причём тут оптимизация? &amp;&amp; и || обязаны выполняться по-порядку, и оптимизатор не имеет права их переставлять.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766112</guid>
        <pubDate>Tue, 10 Apr 2018 11:11:19 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766112</link>
        <description><![CDATA[Vesper: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766104'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T10:29:20+00:00">10.04.18, 10:29</time></span><div class='quote '>if (smthngBad1 &amp;&amp; (i=1) || smthngBad2 &amp;&amp; (i=2) || smthngBad3 &amp;&amp; (i=3)) {</div></div><br>
И потом нарываешься на хитро закопанные грабли в виде смены ключей оптимизации кода,  и выясняется... (памяти {&#036;B+})]]></description>
        <author>Vesper</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766110</guid>
        <pubDate>Tue, 10 Apr 2018 11:01:59 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766110</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>OpenGL</strong>, получается так...<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if (true == smthngBad1) {...}</div><div class="code_line">if (true == smthngBad2) {...}</div></ol></div></div></div></div>]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766108</guid>
        <pubDate>Tue, 10 Apr 2018 10:55:24 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766108</link>
        <description><![CDATA[OpenGL: А что это switch(true) делает? Я верно понял, что switch разворачивается в пачку if-ов, в каждом из которых проверяется равенство того, что в switch и в case?]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766104</guid>
        <pubDate>Tue, 10 Apr 2018 10:29:20 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766104</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>switch(true)</strong> - это сильно :)<br>
Больше похоже на обфускацию, а не упрощение кода :lol: <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766081'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T01:53:26+00:00">10.04.18, 01:53</time></span><div class='quote '>моет выглядеть следующим образом</div></div>Это прикольный выкрутас, конечно (и где-то даже &quot;классический&quot;). Вот только если попадёт в руки джуну, не каждый сообразит, как сие работает.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766081'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T01:53:26+00:00">10.04.18, 01:53</time></span><div class='quote '>а ещё можно воспользоваться редукцией в группе &quot;вторых языков&quot;</div></div>А вот это особенно. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T10:45:43+00:00">10.04.18, 10:45</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766086'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Астарот &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T06:25:10+00:00">10.04.18, 06:25</time></span><div class='quote '>Ага, а потом гадай - какая же из трех &quot;выстрелила&quot;</div></div><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function doSmthng() {</div><div class="code_line">&nbsp;&nbsp; &nbsp;var i;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (smthngBad1 &amp;&amp; (i=1) || smthngBad2 &amp;&amp; (i=2) || smthngBad3 &amp;&amp; (i=3)) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;throw new Exception(&quot;Something bad &quot; + i);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;doIt();</div><div class="code_line">}</div></ol></div></div></div></div>Или...<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function doSmthng() {</div><div class="code_line">&nbsp;&nbsp; &nbsp;var i = 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (smthngBad1 || ++i &amp;&amp; smthngBad2 || ++i &amp;&amp; smthngBad3) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;throw new Exception(&quot;Something bad &quot; + i);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;doIt();</div><div class="code_line">}</div></ol></div></div></div></div> :lol:]]></description>
        <author>Jin X</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766096</guid>
        <pubDate>Tue, 10 Apr 2018 08:01:29 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766096</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766095'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Астарот &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T07:58:38+00:00">10.04.18, 07:58</time></span><div class='quote '>Не понимаю, что тебе не нравиться, там даже тесты есть :D</div></div>Что значит &quot;даже&quot;?  &gt;:(<br>
Это коммерческий код написанный коммерческим программистом в соответствии с высочайшими энтерпрайз стандартами. Там по определению не может не быть тестов.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766095</guid>
        <pubDate>Tue, 10 Apr 2018 07:58:38 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766095</link>
        <description><![CDATA[Астарот: Не понимаю, что тебе не нравиться, там даже тесты есть :D]]></description>
        <author>Астарот</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766092</guid>
        <pubDate>Tue, 10 Apr 2018 07:40:43 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766092</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766091'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Астарот &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T07:02:40+00:00">10.04.18, 07:02</time></span><div class='quote '>Не знаю, что это, но мне реально страшно - это ж что он может навертеть в действительно не очевидных местах&#33; :unsure:</div></div>Вот что это такое - <a class='tag-url' href='https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition' target='_blank'>FizzBuzz Enterprise Edition is a no-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.</a><br>
Вот где настоящий ужас :lol:]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766091</guid>
        <pubDate>Tue, 10 Apr 2018 07:02:40 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766091</link>
        <description><![CDATA[Астарот: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766087'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T06:30:58+00:00">10.04.18, 06:30</time></span><div class='quote '>Сильно похоже на ЫГМ - Ынтырпрайз Гойловного Моска. </div></div><br>
Не знаю, что это, но мне реально страшно - это ж что он может навертеть в действительно не очевидных местах&#33; :unsure:]]></description>
        <author>Астарот</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766089</guid>
        <pubDate>Tue, 10 Apr 2018 06:36:28 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766089</link>
        <description><![CDATA[Vesper: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766036'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Астарот &#064; <time class="tag-quote__quoted-time" datetime="2018-04-09T15:46:38+00:00">09.04.18, 15:46</time></span><div class='quote '> то есть за исключением многословности тот же if получается.</div></div><br>
Что интересно, в любом случае получится if-else, только на несколько уровней ниже.]]></description>
        <author>Vesper</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766087</guid>
        <pubDate>Tue, 10 Apr 2018 06:30:58 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766087</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766086'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Астарот &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T06:25:10+00:00">10.04.18, 06:25</time></span><div class='quote '>Убивайтунг&#33; Вот просто и сразу - ну, не читается же глазом эта билеберда, так зачем? Потому что можешь? Наверное, никогда не пойму этого... </div></div>Сильно похоже на ЫГМ - Ынтырпрайз Гойловного Моска.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766086</guid>
        <pubDate>Tue, 10 Apr 2018 06:25:10 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766086</link>
        <description><![CDATA[Астарот: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766081'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T01:53:26+00:00">10.04.18, 01:53</time></span><div class='quote '>моет выглядеть следующим образом</div></div><br>
Какой кошмар :-? Однострочник, в котором еще найди нужную do(), или наоборот нужную проверку, которую ты вынес на сторону, и куда нужно еще посмотреть, что б узнать, что именно оно бросает. Бряки на дебаге тоже ставить одно удовольствие. Б-же, зачем себя так не любить?<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766081'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T01:53:26+00:00">10.04.18, 01:53</time></span><div class='quote '>а ещё можно</div></div><br>
Убивайтунг&#33; Вот просто и сразу - ну, не читается же глазом эта билеберда, так зачем? Потому что можешь? Наверное, никогда не пойму этого... <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T06:26:00+00:00">10.04.18, 06:26</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766081'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-10T01:53:26+00:00">10.04.18, 01:53</time></span><div class='quote '>В примере из трёх булевых</div></div><br>
Ага, а потом гадай - какая же из трех &quot;выстрелила&quot; :D]]></description>
        <author>Астарот</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766081</guid>
        <pubDate>Tue, 10 Apr 2018 01:53:26 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766081</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766078'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Астарот &#064; <time class="tag-quote__quoted-time" datetime="2018-04-09T21:49:53+00:00">09.04.18, 21:49</time></span><div class='quote '>При чем тут приватные методы и декораторы ? О_о</div></div><br>
1) Крупные методы принято делить на более мелкие, в частности твой вариант, в языках с возвращаемым значением в операндах (JS, Python, Ruby), вместо кастуемых (Java, PHP) моет выглядеть следующим образом:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// На псевдокоде, а-ля JS или жаба</div><div class="code_line">class Some {</div><div class="code_line">&nbsp;&nbsp; &nbsp;public function doSmthng() {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return checkAbility(a) &amp;&amp; checkAbility(b) &amp;&amp; checkAbility(c) &amp;&amp; do(); // В первой группе языков вернётся значение последнего метода</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;private function checkAbility(value) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return (bool)value || throw new Exception(&#39;...&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
а ещё можно воспользоваться редукцией в группе &quot;вторых языков&quot; :) <br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">private function checkAbilities(...values): bool {</div><div class="code_line">&nbsp;&nbsp; &nbsp;return values.reduce((i, result) -&#62; result ? !i : result, true); // Возвращает, либо тру, либо фолс, если один из аргументов values его содержит</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
<br>
2) В случае если нужна &quot;обработка с возвратом&quot;, что бы это не значило, то можно воспользоваться декоратором, и завраппить ответ. Например, из твоего опыта <strong class='tag-b'>Астарот</strong>, могу привести в пример NotNull аннотацию, которая &quot;враппит&quot; (или контейнеризирует, или декорирует, или вообще это монада :D ) оригинальное значение. Не она, конечно, а подписчик, не допуская нулевого значения в содержимом. В тоже время Ensure и Verify контракты DbC вполне могут сойти за одну из частных применений декораторов на методах. Выбирай любой способ. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-10T02:16:22+00:00">10.04.18, 02:16</time></span></span><br>
P.S. Но это всё имеет смысл, когда подобных операций больше трёх. В примере из трёх булевых достаточно:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function doSmthng() {</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (smthngBad1 || smthngBad2 || smthngBad3) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;throw new Exception(&quot;Something bad&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;do();</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766078</guid>
        <pubDate>Mon, 09 Apr 2018 21:49:53 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766078</link>
        <description><![CDATA[Астарот: При чем тут приватные методы и декораторы ? О_о]]></description>
        <author>Астарот</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766077</guid>
        <pubDate>Mon, 09 Apr 2018 21:30:28 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766077</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766033'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2018-04-09T15:42:57+00:00">09.04.18, 15:42</time></span><div class='quote '>И чем тебе в этом случае поможет &quot;нормальный&quot; паттерн-матчинг?</div></div><br>
хороший вопрос) в данном случае, кажется, ничем)<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766039'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Славян &#064; <time class="tag-quote__quoted-time" datetime="2018-04-09T16:21:24+00:00">09.04.18, 16:21</time></span><div class='quote '>И как вы, Serafim, переделаете Астаротский пример, если будет обработка с возвратом?.. (или в Яве такого нет?)</div></div><br>
Имеется ввиду посткондишн? Для этого приватные методы и декораторы, кажется, придумали)]]></description>
        <author>Serafim</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766039</guid>
        <pubDate>Mon, 09 Apr 2018 16:21:24 +0000</pubDate>
        <title>Чистота кода VS оптимизация</title>
        <link>https://forum.sources.ru/index.php?showtopic=412405&amp;view=findpost&amp;p=3766039</link>
        <description><![CDATA[Славян: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412405&view=findpost&p=3766017'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-09T14:44:21+00:00">09.04.18, 14:44</time></span><div class='quote '>Ага, конечно<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function doSmthng() {</div><div class="code_line">&nbsp;&nbsp; &nbsp;switch (true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;case smthngBad1: </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;throw new Exception(&quot;Something bad 1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;case smthngBad2: </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;throw new Exception(&quot;Something bad 1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;case smthngBad3: </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;throw new Exception(&quot;Something bad 1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;do();</div><div class="code_line">}</div></ol></div></div></div></div></div></div>И как вы, <strong class='tag-b'>Serafim</strong>, переделаете Астаротский пример, если будет обработка с возвратом?.. (или в Яве такого нет?)]]></description>
        <author>Славян</author>
        <category>Holy Wars</category>
      </item>
	
      </channel>
      </rss>
	