проверка нескольких переменных против дублирования строки шаблона против установки / сброса переменных - PullRequest
0 голосов
/ 13 декабря 2010

Ведьма, какой из этих подходов вы считаете лучше?
Этот пример написан на PHP, но правила игры для других языков те же.
1. Сначала создайте один блок if и продублируйте строку шаблона в блоке else:

if($var['b'])
{
    $text='<tr>
        <td style="cursor:pointer; color:black;"></td>
        <td class="one">'.$var['b'].'</td>
        <td class="two">'.$var['b'].'/'.$var['a'].'</td>
        <td class="other">'.($var['a']/$var['b']).'</td>
        </tr>';
} else {
    $text='<tr>
        <td style="color:red;"></td>
        <td class="one"></td>
        <td class="two">'.$var['a'].'</td>
        <td class="other">0</td>
        </tr>';
}

2. Во-вторых, проверяйте одну и ту же переменную снова и снова, но не дублируйте строку шаблона:

$text='<tr>
    <td style="'.(($var['b'])?'cursor:pointer; color:black;':'color:red;').'"></td>
    <td class="one">'.(($var['b'])?$var['b']:'').'</td>
    <td class="two">'.(($var['b'])?$var['b'].'/'.$var['a']:$var['a']).'</td>
    <td class="other">'.(($var['b'])?($var['a']/$var['b']):'0').'</td>
    </tr>';

3. Третья проверка одной переменной, не дублируйте строку шаблона, установите / удалите переменные:

$css = 'color:red;';
$one = '';
$two = $var['a'];
$other = 0;
if($var['b'])
{
    $css = 'cursor:pointer; color:black;';
    $one = $var['b'];
    $two = $var['b'].'/'.$var['a'];
    $other = ($var['a']/$var['b']);
}
$text='<tr>
    <td style="'.$CSS.'"></td>
    <td class="one">'.$one.'</td>
    <td class="two">'.$two.'</td>
    <td class="other">'.$other.'</td>
    </tr>';
unset($css,$one,$two,$other);

Это простой пример, поэтому не имеет значения, но представьте себе большой проект, в котором нечто подобное можно использовать от десяти до ста раз только для одного экземпляра сценария. В первом у нас есть больший исходный код, но мы набираем скорость, во втором наш код маленький (труднее всего читать), но мы теряем некоторую скорость из-за нескольких проверок переменных, третий легко читается использовать много места, но мы теряем некоторую скорость и память из-за установки и отмены переменных.

1 Ответ

0 голосов
/ 09 июня 2011

Я изучил одну вещь, связанную с этим вопросом, просматривая SO в последние месяцы:

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

...