За последние 24 часа нас посетили 63019 программистов и 1741 робот. Сейчас ищет 881 программист ...

Правила программирования.

Тема в разделе "Прочие вопросы по PHP", создана пользователем mpak, 30 июл 2010.

Статус темы:
Закрыта.
  1. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Доброго времени суток господа. С недавнего времени занялся тем что стал формулировать свой подход к программировани. Хотел бы выслушать ваше мнение по этой теме. Обсудить правила. Может какие то исправить. Возможно добавить новые. Несколько правил не мои. Взяты с различных источников. Я позволил себе их немного перефразировать. Высказывайтесь. Будет интересно выслушать любое мнение.

    Все правила оформляю в виде Пары. Непосредственно правило и небольшое пояснение к данному правилу.
    Вот что у меня получилось. http://mpak.su/faq/2
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    покажите ваш кусок кода где это применяется
    это вы про нормализованную или не нормализованную архитектуру?
    это смотря что писать
    это не понятно
    для имен чего?
    это тоже не понял
     
  3. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    это типа моей фразы "чем меньше кода, тем меньше ошибок". просто херово сформулированная
     
  4. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    зависит от других факторов, но обычно это имеет смысл. это вроде как называется словом "рефакторинг" и "правильный рефакторинг"
     
  5. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    phpdude
    да как то слишком не развернуто для правил, каждому из них чуть ли отдельная книга посвящается, идеальный код, рефакторинг, проектирование бд и т.п.
     
  6. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    Padaboo
    ну русские же эти правила то написали (в смысле эту страницу), им какбы пофиг на теорию. они сразу готовы молотком бить не зная куда
     
  7. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Везде

    Мне нравится как это сделано в jquery Там данные полученные с одного метода перенаправляются на другой. А не обьявление переменной которая в следующей строке кода будет являться входными данными для следующего метода. На мой взгляд это правильный подход. При условии если результат работы первого метода не будут использоваться дальше в коде.
     
  8. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    это называется "локоничность"
     
  9. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    PHP:
    1. <?php
    2. while($row = mysql_fetch_array(mysql_query("SELECT ....",$link))){
    3.  
    4. }
    ? :)
    mpak
    это все круто, но в 2х словах понимается, как я написал выше
     
  10. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    А в чем собственно проблема. Предложите свой код для этого перебора.
     
  11. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    mpak
    ну если не брать в расчет еше и то, что запрос в while будет выполняться с каждой итерацией...
    PHP:
    1. <?php
    2. $result=mysql_query("SELECT ....",$link);
    3. while($row = mysql_fetch_array($result)){
    4.  
    5. }
     
  12. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Другой вариант того же саомго

    <?php
    $sql = "SELECT ....",$link;
    $res = mysql_query($sql);
    while($row = mysql_fetch_array($res)){

    }

    Лучше уже мой вариант
    Это как раз и есть не обывление переменных которые потом никому не нужны.
     
  13. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Обясните зачем в данном случае обявлять переменную $result если она в дальнейшем не будет нужна. И используется один раз.
     
  14. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    смотрите пример, по вашей логике вот так будет выглядеть цикл обхода массива:
    PHP:
    1. <?php
    2. for($i=0;$i<=count($array);$i++){
    3.  
    4. }
    тут при каждой итерации будет вычисляться count, правильно так
    PHP:
    1. <?php
    2. $count=count($array);
    3. for($i=0;$i<=$count;$i++){
    4.  
    5. }
    и в моем примере тоже самое
     
  15. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    не знал что ты байтодрочер
     
  16. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    да еще и глупый) этот прикол в пхп4 только работает :-D
     
  17. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    В первом случае не будет делаться запрос. Если бы запрос делался при каждом while я бы с тобой согласился. Но в данном случае ты не прав. Не стоит мешать это все под одну гребенку.
     
  18. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    phpdude
    если там вся база тянется при каждой итерации, а в базе 200-300тыс записей, это уже не байтодроч
    зы: я это в книжке прочитал xD
     
  19. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    в том конкретном случае может и нет, не проверял, а если у вас в одной строке будет 2-3 таких "не создания лишней переменной", будет по меньшей мере каша
     
  20. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Я отделаю это лишь в том случае когда переменных становится очень много. И передача параметров превращается в длинную колбасу. ТОлько в связи с удобочитаемостью можно их разделить. Других причин не вижу.
     
  21. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    mpak
    у меня таких примеров нету, можете сами придумать, любые вычисления... в тех же пейджерах
     
  22. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    повторюсь - ЭТО БЛЯДЬ В ПХП4 ТАКОЙ капец в 5КЕ ТАКОГО НЕТ, САМА ЛИЧНА ИА ПРОВЕРЯЛА
     
  23. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    phpdude
    да книжка вроде по php5, кроме того ладно, но ведь так код выглядит более структурированным, пробелы ведь никто не жалеет :)
     
  24. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Кстати по ходу дела еще одно правило вспомнил. Всегда используейт для таблицы автоинкрементное поле.
    С этим знаю тоже не все согласны. Почему нужно делать так можно написать книгу.
     
  25. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    На обьявление еще одной переменной тоже уходят ресурсы. А читаем он в любом случае. Кто как привык.
     
Статус темы:
Закрыта.