1. Куча / Говнокод #11614

    +127

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    function name = monthName( m )
    
    switch m
        case 1
            name = 'Jan';
        case 2 
            name = 'Feb';
        case 3
            name = 'Mar';
        case 4
            name = 'Apr';
        case 5
            name = 'May';
        case 6
            name = 'Jun';
        case 7 
            name = 'Jul';
        case 8 
            name = 'Aug';
        case 9 
            name = 'Sep';
        case 10 
            name = 'Oct';
        case 11
            name = 'Nov';
        case 12 
            name = 'Dec';
    end

    MATLAB. Источник: http://berkeleyearth.org/results-summary/ - почитайте, что за проект. А ноги растут вот отсюда: http://www.sfgate.com/science/article/UC-climate-change-skeptic-changes-views-3748148.php

    Этот отрывок присутствует в двух файлах, я нашел его после беглого просмотра. Может быть, я ничего не понимаю в научных расчетах и совершенно незнаком с синтаксисом MATLAB, но есть у меня подозрения, что здесь что-то не так.

    Папки с тестами к коду я не нашел. Сижу вот, думаю...

    Запостил: scriptin, 20 Августа 2012

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

    • > но есть у меня подозрения, что здесь что-то не так
      Большинство научного кода выглядит страшно с точки зрения разработчика. Но если посмотреть с другой стороны - а как будут выглядеть научные исследования, выполненные разработчиком с точки зрения тех же ученых?

      Человек не может быть силен во всех областях одновременно. Что-то он знает и умеет лучше, что-то хуже. Поэтому, ИМХО, в научных расчетах такой код можно простить.
      Ответить
      • Стоит отдавать корректный с точки зрения выдаваемого результата код, написанный учёными на доработку и оптимизацию разработчику. Тогда быдет симбиоз.
        Ответить
      • Мне всегда очень хотелось верить, что ученые пишут код исключительно с полной формальной верификацией (или хотя бы с тестами) на волшебных языках с двойной радугой и пони. А вчера моя иллюзия была жестоко разбита - примерно такой же код я каждый день вижу на PHP.

        Но если уж закрыть глаза на программирование дат - у них код вообще без тестов/верификации? Откуда они знают, правильно ли он работает?
        Ответить
        • А мне всегда казалось, что практического смысла в этом нет. Код должен только доказать/опровергнуть/продемонстрировать некую возможность. Какие-то общие навыки по алгоритмам должны быть, чтобы не скатываться в унылоту, остальное может быть мешаниной из тернарных goto с датами.
          Я это понял, когда прочитал книжку типа "компьютер для менеджера". Там простым языком рассказывается про статистику, немного про теорию управления, немного про бейсик. Это же неспециалисты, им не нужны такие технологии и навыки (разве что получится 1-эс).
          Я с трудом представляю себе, что там считают. Но если алгоритм что-то просеивает (у меня был опыт в своё время в институте), то чаще всего он одноразовый. В противном случае есть шанс, что потом его перепишут сведующие люди.
          Ответить
          • >В противном случае есть шанс, что потом его перепишут сведующие люди.
            Да, это PHP
            Ответить
        • Сверяют с результатами других ученых или ручными вычислениями на контрольных примерах видимо.
          Ответить
    • Да я бы и не сказал, что совсем не так. Ну, можно было массив завести (с нулябрем или без?), крайние случаи обработать... Если я не пропустил чего-нибудь.
      Ответить
      • без нулября, в матлабе массивы с 1 нумеруются. Кстати автор мог и не знать про такое колдунство в матлабе, как массивы строк (для строк одинаковой длины подойдет и обычный массив, но он будет двумерным и доступ к нему будет: arr(n, :) вместо arr(n), ну а для строк разной длины нужен cell-массив).
        Ответить

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