IF есептері: не тиімдірек? Көптеген кішкентайлар, әлде үлкендер ме?

Ингредиенттерді дБ-ға кіргізетін рецепті қолданатын бағдарламам бар. Егер ештеңе ұсынылмаса, тамақ құндылықтары '0' көрсетеді. Әйтпесе олар пошта мәндеріне жаңартылады.

Тамақтану дисплейіне арналған құрылымым:

Calories:
  <?php if ($ingredientArray[calorieKey] >= 1)
  echo $ingredientArray[calorieKey];
    else echo 0; ?>
Protein: <?php if ($ingredientsArray[proteinKey] >= 1) echo $ingredientArray[proteinKey]; else echo 0; ?>

... 20-ға жуық заттарын жалғастырады. Сұрақ:

2 түрлі пішіндерді (динамикалық және статикалық) көрсету үшін 1 if/else сөзін қолданып, кодты рефакторлау неғұрлым тиімді бола ма немесе ол соншалықты жақсы ма?

1
Сіз маған айта алмайсыз, бұл сіздің өтініміңіздің кедергісі ...
қосылды автор knittl, көзі
small one және large one кодының 2 мысалын көрсетуіңізге болады, себебі мен мұны алмаймын
қосылды автор Peter, көзі
Жоқ, мен оның әдеттегі мәселесін түсіндіргенде ғана мысал келтірдім: жұп блоктар немесе көптеген кішкентайлар.
қосылды автор elev8, көзі

4 жауаптар

Бұл жерде тиімділік мүлдем маңызды емес. Егер сіз тек осы көшірмелерді миллиондаған if-statements жоқ болса, сіздің бетіңізді жүктеуге уақытты (дерекқордан деректерді алу сияқты, клиентке шығыс жіберуді) тудыратын барлық басқа нәрселермен салыстырғанда өңдеу уақыты нөлге тең болады, және оны браузерде көрсететін клиент және т.б.).

Сондықтан сіздің кодын мүмкіндігінше оқуға және қолдауға болатындай етіп жасау керек.

Жақсы өнімділік үшін оқылатындығын құрбан ету керек болатын уақыттар бар ... бірақ іс жүзінде өнімділік мәселелері болғанша дейін, сіз әлі де осы нүктеден алыссыз.

4
қосылды
@ elev8: Жақсы кодын жазудан гөрі тезірек жылдамырақ болады. Дегенмен де, кодты оқуға және қолдауға қабілеттілікке назар аударыңыз. Мерзімсіз оңтайландыруға жол бермеңіз.
қосылды автор Flimzy, көзі
@ elev8: Бұл менің нүктем емес :) Бұл, бәлкім, жетілдірілген болуы мүмкін. Мұнда бірнеше басқа жауаптар оқылуды жақсарту үшін кейбір ұсыныстарды ұсынды. Мен @ PeterSzymkowski пайдалануды ұнатамын? : егер <..> орнына операторы.
қосылды автор Flimzy, көзі
Менің жалпы сұрағым көп. Мен мысал ретінде жоғарыда ғана қолдандым. және тиімді кодын жазудың қанша уақытын талап ететіндіктен, ол әдептілік кодын жасайды, мен мұны істеу уақытында жақсы кодты қалай жазуды үйренгім келеді.
қосылды автор elev8, көзі
онда қатаң оқу үшін код бар ма? қатты күлу
қосылды автор elev8, көзі

Сізге қажет нәрсе - тек цикл;

$recipes = array('caloriesKey' => 'Calories', 'proteinKey' => 'Protein');
foreach($recipes as $key => $value) {
    echo $value . ($ingredientArray[$key] >= 1 ? $ingredientArray[$key] : 0) . '
'; }
2
қосылды
Егер foreach жұмыстарды баяулатса, бұл үлкен әзіл болады.
қосылды автор xdazz, көзі
маған «foreach» пайдалану тек қана жұмысты баяулатады деп айтылды, жоқ па?
қосылды автор elev8, көзі
Мен кейбір деректер модельдеу дәрісінде естідім. бірақ thx, бұл цикл нақты өтудің жақсы жолы еді!
қосылды автор elev8, көзі
<?php echo $ingredientArray[calorieKey] >= 1 ? $ingredientArray[calorieKey] : 0 ?>

Жақсы көрінеді.

Бұл туралы алаңдатпаңыз және код тазалығына қамқорлық жасаңыз.

1
қосылды

Басқаша айнымалыны жасайтын код блогы туралы, оны $ displayArray деп атайық, ол басып шығарғыңыз келетін нақты мәндерді сақтайды?

Одан кейін, көріністі жасаған кезде, сіз жай ғана $ displayArray арқылы айналдыра аласыз.

Бұл үлкен айырмашылыққа ұқсамауы мүмкін, бірақ келесі жігітке не болып жатқанын анықтау әлдеқайда жеңілірек болады және ол сізге бірдей ақпарат жинағын әлдеқайда оңай көрсететіндіктен өзгертуге мүмкіндік береді.

0
қосылды