Учимся разбираться в искусстве программирования

от автора

Классика

Самый обычный код.

    $size = sizeof($arr)-1;     for ($i = $size; $i>=0; $i--) {         for ($j = 0; $j<=($i-1); $j++)             if ($arr[$j]>$arr[$j+1]) {                 $k = $arr[$j];                 $arr[$j] = $arr[$j+1];                 $arr[$j+1] = $k;             }     } 

Барокко

Барокко (итал. barocco — «причудливый», «странный», «склонный к излишествам»)
Барокко свойственны контрастность, напряженность, стремление к величию и пышности как в именовании, так и в комментариях, к слиянию разных стилей кодирования. Обычно уже на продакшене обнаруживаются скрытые «детонаторы».

Чаще всего используется в: JavaScript, C++, Java.

    $SIZE = SIZEof($A_R__R)-1;     for ($i = $SIZE; $i>=0; $i--) {         for ($j = 0; $j<=($i-1); $j++)             if ($A_R__R[$j]>$A_R__R[$j+1]) {                 //используем хитрый манёвр                 $A_R__R[$j+1]  = $A_R__R[$j];  + $A_R__R[$j+1];                 $A_R__R[$j]    = $A_R__R[$j+1] - $A_R__R[$j];                 $A_R__R[$j+1]  = $A_R__R[$j+1] - $A_R__R[$j];              }     } 

Готика

Черты готики:
Для готики характерно специфическое построение кода в виде всевозможного вертикального выравнивания, богато названные переменные с необычными деталями. Так же часто код настолько привязан к конкретной аппаратной конфигурации, что выглядит внушительно и монолитно.

Чаще всего используется в: JavaScript, PHP, Python, Perl.

    $size   = sizeof($arr)-   1                         ;     for ($INDEX_I = $size;    $INDEX_I>=0               ;       $INDEX_I--){     for ($INDEX_J = 0;        $INDEX_J<=($INDEX_I-1)    ;       $INDEX_J++)         if(                   $arr[$INDEX_J]            >       $arr[$INDEX_J+1]){         $k  =                 $arr[$INDEX_J]            ;         $arr[$INDEX_J] =      $arr[$INDEX_J+1]          ;         $arr[$INDEX_J+1] =    $k                        ;                                                         }                                                         } 

Минимализм

Общие черты:
Минимализму свойственны пространственная свобода, зонирование пространства, переменные преимущественно однобуквенные, в одном регистре, часто повторно используемые, отсутствие пробелов, простые циклы и условия, реализация только основного функционала, никаких пояснений и комментариев.

Чаще всего используется в: Perl, Ruby, Python, Haskell, Scala, Erlang, F#.

    for($i=sizeof($M)-1;$i>=0;$i--){      for($j=0;$j<=($i-1);$j++) if($M[$j]>$M[$j+1])         {         list($M[$j],$M[$j+1])=[$M[$j+1],$M[$j]];         }      } 

Экспрессионизм

Банальность, уродливость и противоречия современных языков программирования вызывали у экспрессионистов чувства раздражения, отвращения, тревоги и фрустрации, которые они передавали при помощи хардкода, спагетти-кода, быстрых и грубых хаков. Предпочтение отдается особо уродливому коду с тем, чтобы усилить воздействие на зрителя, не оставить его равнодушным.

Чаще всего используется в: C#, Ruby, Common Lisp, PHP, Shen/Qi II.

<?php $error = null; $query = 'SELECT * FROM prices'; $result = mysql_query($query)     or $error = 'Запрос не удался: ' . mysql_error(); $arr = []; while ($line =  mysql_fetch_row($result)) {     $arr[] = $line['price']; }  $size = sizeof($arr)-1; for ($i = $size; $i>=0; $i--) {     for ($j = 0; $j<=($i-1); $j++)         if ($arr[$j]>$arr[$j+1]) { $k = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $k; } } echo "<ul>"; foreach ($arr => $v)     echo "<li>".$v."</li>"; echo "</ul>"; ?> <script>     var error = "<?php echo $error?>";     if (error) alert("ERROR: " + error); </script>  

Абстракционизм

Черты абстракционизма:
Практически весь код программы — исключительно декорация вокруг Божественного Объекта. Код, конфигурируемый настолько гибко (и запутано), что хочется, чтобы лучше уж это был hard code.

Чаще всего используется в: Java, PHP.

sort.php

<?php  require_once 'Sorter/Bubble/NumericArray.php'; require_once 'Storage/Array.php';  $bubbleSorter = new Sorter_Bubble_NumericArray();  $storage = new Storage_Array; $storage->setElements(array(15, 204, 1, 4, 2, 6, 8, 3, 150));  $bubbleSorter->sort($storage); var_dump($storage->getElements()); 

Abstract.php

<?php  require_once 'Sorter/Interface.php';  abstract class Sorter_Bubble_Abstract implements Sorter_Interface {          /** * * @var Comparator_Interface */     protected $_comparator;          /** * * @var Swapper_Interface */     protected $_swapper;          /** * * @var Storage_Interface */     protected $_storage;           /** * */     public function _bubble() {         for ($i = $this->_storage->getSize() - 1; $i >= 0; $i--) {             for ($j = 0; $j <= ($i - 1); $j++) {                 if ($this->_comparator->isBigger($this->_storage->getElementByIndex($j + 1), $this->_storage->getElementByIndex($j))) {                     $this->_swapper->swap($this->_storage, $j + 1, $j);                 }             }         }     }  } 

NumericArray.php

<?php  require_once 'Sorter/Bubble/Abstract.php'; require_once 'Storage/Interface.php'; require_once 'Comparator/Numeric.php'; require_once 'Swapper.php';  class Sorter_Bubble_NumericArray extends Sorter_Bubble_Abstract {          public function sort(\Storage_Interface &$storage) {         $this->_storage = $storage;         $this->_comparator = new Comparator_Numeric();         $this->_swapper = new Swapper();                  $this->_bubble();     }      } 

Ссылка на весь код.

Кубизм

Кубизм характеризуюется использованием подчёркнуто геометризованных условных форм, стремлением «раздробить» реальные объекты на стереометрические примитивы.

Чаще всего используется в: Perl, Shen/Qi II, Python.

    $size=          sizeof($arr)-               1;     for($i          =$size;$i>=0;       $i--)   {     for($j          =0;$j<=($i-1);      $j++)            if($arr[$j]       > $arr[$j+1])     {            $k=  $arr[$j];                 $arr[$j]=   $arr[$j+1];                             $arr[$j+1]=  $k;     }     } 

Поп-арт

Поп-арт от английского popular art, сокращенно pop art — популярный, общедоступный код.

Черты поп-арта:
Простой и яркий код, вызывающие и провокационные комментарии, поп-арт в коде привлекает неординарных личностей. Чрезмерности в поп-арте практически не бывает — здесь смешиваются различные подходы и стили кодирования. Обычно вырастает из исторического вклада.

Чаще всего используется в: С++, Java, PHP, C#, 1C.

    $CocaCola = sizeof($Elvis)-1;  // определяем максимальный индекс массива <<---- ОТЛИЧНЫЙ ПРИЁМ      for ($i = $CocaCola; $i>=0; $i--) {         for ($j = 0; $j<=($i-1); $j++)             if ($Elvis[$j]>$Elvis[$j+1]) {                 // Меняем местами переменные методом еще дополнительной переменной, потому что ТАК КРУЧЕ                 $Presley = $Elvis[$j];                 $Elvis[$j] = $Elvis[$j+1]; $Elvis[$j+1] = $Presley;             }     }  

А какой стиль и в каком языке программирования вам чаще всего встречается?

Используемые ресурсы

ссылка на оригинал статьи http://habrahabr.ru/post/225827/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *