Не пойму, в чем удобство такого метода написания кода

korchasa

LIMB infected
Автор оригинала: Активист
triumvirat
В контексте "утилиты" они имеют интерфейс доступа, в контексте приложения - нет.
Не они имеют, а они являются. Request является абстракцией от сигнала поданого приложению-черному ящику.
 

Фанат

oncle terrible
Команда форума
попробовал тут пописать в варианте
PHP:
foreach ($array as $val)  
{ 
    if ($val == $c1)  
    { 
        $array2[] = intval($c1); 
    } 
    else  
    { 
        $array3[] = intval($c1); 
    } 
}
и понял, что это неудобно.

во-первых, случайные ; после этих висячих в воздухе условий, которые очень трудно ловятся.
во-вторых, куча места пропадает зря.
в-третьих, else становится каким-то самостоятельным элементом, равноправным с остальными:
ср.
PHP:
if ($val == $c1)  
{ 
    $array2[] = intval($c1); 
} 
else  
{ 
    $array3[] = intval($c1); 
} 
if ($val == $c1)  
{
        $array5[] = intval($c1); 
}
и
PHP:
if ($val == $c1)  { 
    $array2[] = intval($c1); 
} else  { 
    $array3[] = intval($c1); 
} 
if ($val == $c1)  {
        $array5[] = intval($c1); 
}
- переход от одного оператора к другому четко обозначен и заметен
делать же ДВА отступа на оператор - это уже будет вообще за гранью добра и зла.
 

Adelf

Administrator
Команда форума
Фанат
А зачем место то экономить? Методы на сотни строк чтоли? В хорошей IDE достаточно видеть один метод. Ну а дальше фаулеровская "прелесть коротких методов" и т.д.

Когда вижу код, в котором экономят место - сам съеживаюсь :) кошмар же :)
 

Духовность™

Продвинутый новичок
Как бэ тема - холивор. Но допустим.

Фанат
Ты привел пример тривиального и короткого кода, который легко читать и так и так.
А вот код
PHP:
if ($this->isValidResponse($response)) {
    try {
            $contest = $this->findContestById(static::CONTEST_ID);
            $contestItem = $this->createNewContestItemObject()->setContest($contest);
            $this->doSave($contestItem);
            $response['reply'] = self::RESPONSE_OK;
    } catch (\Exception $e) {
            $response[] = 'Произошла ошибка сохранения данных: ' . $e->getMessage();
            $response['reply'] = self::RESPONSE_ERROR;
    }
} else {
    $response['reply'] = self::RESPONSE_ERROR;
}
лично мне читать сложнее, чем
PHP:
if ($this->isValidResponse($response))
{
    try
    {
        $contest = $this->findContestById(static::CONTEST_ID);
        $contestItem = $this->createNewContestItemObject()->setContest($contest);
        $this->doSave($contestItem);
        $response['reply'] = self::RESPONSE_OK;
    }
    catch (\Exception $e)
    {
        $response[] = 'Произошла ошибка сохранения данных: ' . $e->getMessage();
        $response['reply'] = self::RESPONSE_ERROR;
    }
}
else
{
    $response['reply'] = self::RESPONSE_ERROR;
}
- почувствуйте разницу )
 

fixxxer

К.О.
Партнер клуба
Духовность™
вот мне первый проще. потому что так привык еще с того дня когда прочитал книжку по си. я тогда в 8м чтоли классе школы учился :D

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

Активист

Активист
Команда форума
Какая разница где ставить скобку, от этого - качество кода не улучшается, люди тут до сих пор делают всякое гумно дырявое, а вы про скобки.
 

fixxxer

К.О.
Партнер клуба
ну так это у людей проблемы, а не у нас. у нас все хорошо, вот и обсуждаем ерунду всякую :D
 

vovanium

Новичок
могу подкинуть еще важную тему для обсуждения :)
ставить ли пробелы после круглых скобок, типа
PHP:
intval( $a );
а также стоит ли ставить пробел перед "!" типа
PHP:
if ( ! isset( $_REQUEST['action'] ) )
 

zerkms

TDD infected
Команда форума
Не ставить, не стоит.

---------------------------тема закрыта----------------------------------
 

AmdY

Пью пиво
Команда форума
vovanium
это всё ерунда, мне вот интересно, зачем ставить пробелы между названием функции и скобкой
PHP:
isset ($a);
привет нетбинсу.
 

vovanium

Новичок
кстати те два примера из wordpress 3, правда они сами этих правил не соблюдают даже в пределах одного файла :)
 

zerkms

TDD infected
Команда форума
autosoft
убери {}, добавь : после while и получится питон.
 

stmegabit

Новичок
Как и говорил craz еще в начале вышел знатный холиварчик. И все потому что вначале попытались замесить в одну кучу и вопрос отсупов и вопрос расстановок фигурных скобок. Знатно вышло. На счет первого помоему всем понятно что без отступов кол-во кода больше чем в 10 строк это уже помойка, какой бы оптимизированный и супер правильный он не был, поэтому конструкции вида
PHP:
foreach ($array as $val) { 
if ($val == $c1) { 
$array2[] = intval($c1); 
} 
else { 
$array3[] = intval($c1); 
} 
}
какую бы расстановку фигурных не содержали по определению нечитабельны абсолютно. А что касается фигурных скобок тут тоже все просто. Есть (уже не знаю какое кол-во времени) на свете несколько стилей. И каждый из них кому-то чем-то удобен. Коротко процитирую на эту тему думаю будет ясно.
1. Рациональный стиль.
Это один из наиболее распространенных стилей. Им пользовались Керниген (Kernighan) и Ричи (Ritchie), авторы языка C:
PHP:
<?php 
if($flag){ 
    echo "Hello world!"; 
} 
?>
Преимущество этого подхода заключается в экономии вертикального пространства, жизненно важного при отладке большого блока кода. Оборотной стороной такого подхода является то, что может оказаться трудным найти символ {, спрятанный в конце строки. Этого стиля придерживаются и Java-программисты, как-то приписывает Sun.
2. Стиль Алмена
Эрик Алемен (Eric Allman) написал утилиты BSD в этом стиле, поэтому этот стиль часто называют "стиль BSD":
PHP:
<?php 
if($flag) 
{ 
    echo "Hello world!"; 
} 
?>
3. Стиль Whitesmith
PHP:
<?php 
if($flag) 
    { 
    echo "Hello world!"; 
    } 
?>
Этот стиль имеет преимущество в том, что скобки более тесно ассоциируются с кодом, который они включают и разграничивают, однако при визуальном просмотре текста отыскать скобки оказывается чуть более сложно.
4. Стиль GNU
PHP:
<?php 
if($flag) 
    { 
        echo "Переменная равна true"; 
    } 
?>
На этих стилях и стоят стандарты. Только плюс там еще правила для расстановки пробелов и прочего. А уж кто что выберет, дело вкуса.
 

A1x

Новичок
stmegabit
чем стиль GNU отличается от стиля Оллмана?

(вообще то Оллман гей, значит и этот его стиль гейский)
 

craz

Нестандартное звание
гейский стиль еще куда нешло по сравнению с гну...

но холивар клевый))))) теперь все кто пишет

PHP:
if<cond>
{
  <code>
}
получаются тоже геи...?
 

fixxxer

К.О.
Партнер клуба
Этот аргумент я обычно придерживаю до последнего :D
 
  • Like
Реакции: craz
Сверху