1. PHP / Говнокод #2347

    +155.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php 
    
    $Fnm = $mosConfig_absolute_path .'/components/'.$option.'/cron.php';
    $inF = fopen($Fnm,"w");
    fwrite($inF,'<?php $last_cron_date='.$last_cron_date.';?>');
    fclose($inF);

    всеми любимая джумла... а точнее один из её компонентов... строка 1846-ая...

    почему собственно гадость:
    1. а если нету доступа на запись...
    2. не безопасно
    3. если в файле что-нибудь будет не так - обвалится весь сайт, потому как ошибко php
    4. я настороженно отношусь к файлам по 2246 - строк ... уж больно много всего...

    Запостил: nicolay-punin, 29 Декабря 2009

    Комментарии (9) RSS

    • чо, везде где юзаецо запись в файл являецо говнокодом?
      Ответить
      • $inF =fopen($Fnm,'w');
        if($inF)
        {
        fwrite($inF,"ля-ля!!!!");
        fclose($inF);
        } // иначе файл не возможно создать по каким-то причинам...

        весь дальнейший код после fopen - ошибочен, и не ясно как он будет себя вести...
        в случае php, в лучшем случае будет куча варрингов...
        Ответить
        • а, ну да, сори, я чот про эту проверку и не подумал сразу.... ;)
          Ответить
          • но в любом случае я не считаю это говнокодом. Это банальная невнимательность того, кто писал, или пИсал код, но не говнокод.
            Ответить
            • Это банальный говнокод, ибо не то, что не мешает отстрелить себе ногу, наоборот способствует. Такие вещи нужно сериализовать.
              Ответить
    • чо, кодогенерация для хранения данных не являецо говнокодом?
      Ответить
    • все что ведет проблемам, будь то не знание чего-то, невнимательность, кривой стиль программирования...

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

      кодо генерацию настроек я вообще молчу... я не понимаю чем это оправдано.. это даже не быстрее... ну хочешь ты сохранить массив... и потом не париться из-за этого. ну сериализни что-ли его ... или в ini, или в xml ... так хотя бы ошибки ловить можно, а тут из-за ошибки в левом конфиге порушится весь скрипт... это не есть айс...
      Ответить
    • Конечно проверки нужны, но назвать это говнокодом язык не поварачивается. Конечно вы можете разбирать каждый элемент по полочкам, просмотреть и проанализировать каждую строчку, даже программное исчисление для данного блока расписать, НО если ты программист и пишешь на джумлу, то основная задача данного проекта срубить деньги, а такой небольшой недочет вряд ли помешает, тем более торопишься, еще и ночью мб работал
      Ответить
      • я не понял в чем претензия. если код приводит к проблемам, значит в нем что-то не так... разве нет ?

        нужно приучать писать себя как нужно, как правильно, чтобы это создавало минимальное количество проблем потом. речь идет не только о банальной проверке, открылся ли файл, а о понимании того что происходит.
        под джумлу я видел ОФИГЕННО удобные и красиво написанные модули. приходилось даже дорабатывать парочку. я считаю, всегда стоит остановиться и подумать на минутку, а как будет работать код... и то, что голова не варит после бессонной ночи - не оправдание.

        >> НО если ты программист ....и задача данного проекта срубить деньги....

        а какая тут взаимосвязь ??? c любого проекта обычно срубают деньги, это знаете ли работа.... и её нужно делать...

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


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

        заранее извиняюсь за резкость, наболело :(
        Ответить

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