Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
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, но есть у меня подозрения, что здесь что-то не так.
Папки с тестами к коду я не нашел. Сижу вот, думаю...
> но есть у меня подозрения, что здесь что-то не так
Большинство научного кода выглядит страшно с точки зрения разработчика. Но если посмотреть с другой стороны - а как будут выглядеть научные исследования, выполненные разработчиком с точки зрения тех же ученых?
Человек не может быть силен во всех областях одновременно. Что-то он знает и умеет лучше, что-то хуже. Поэтому, ИМХО, в научных расчетах такой код можно простить.
Мне всегда очень хотелось верить, что ученые пишут код исключительно с полной формальной верификацией (или хотя бы с тестами) на волшебных языках с двойной радугой и пони. А вчера моя иллюзия была жестоко разбита - примерно такой же код я каждый день вижу на PHP.
Но если уж закрыть глаза на программирование дат - у них код вообще без тестов/верификации? Откуда они знают, правильно ли он работает?
А мне всегда казалось, что практического смысла в этом нет. Код должен только доказать/опровергнуть/продемонстрировать некую возможность. Какие-то общие навыки по алгоритмам должны быть, чтобы не скатываться в унылоту, остальное может быть мешаниной из тернарных goto с датами.
Я это понял, когда прочитал книжку типа "компьютер для менеджера". Там простым языком рассказывается про статистику, немного про теорию управления, немного про бейсик. Это же неспециалисты, им не нужны такие технологии и навыки (разве что получится 1-эс).
Я с трудом представляю себе, что там считают. Но если алгоритм что-то просеивает (у меня был опыт в своё время в институте), то чаще всего он одноразовый. В противном случае есть шанс, что потом его перепишут сведующие люди.
Да я бы и не сказал, что совсем не так. Ну, можно было массив завести (с нулябрем или без?), крайние случаи обработать... Если я не пропустил чего-нибудь.
без нулября, в матлабе массивы с 1 нумеруются. Кстати автор мог и не знать про такое колдунство в матлабе, как массивы строк (для строк одинаковой длины подойдет и обычный массив, но он будет двумерным и доступ к нему будет: arr(n, 🙂 вместо arr(n), ну а для строк разной длины нужен cell-массив).
Большинство научного кода выглядит страшно с точки зрения разработчика. Но если посмотреть с другой стороны - а как будут выглядеть научные исследования, выполненные разработчиком с точки зрения тех же ученых?
Человек не может быть силен во всех областях одновременно. Что-то он знает и умеет лучше, что-то хуже. Поэтому, ИМХО, в научных расчетах такой код можно простить.
Но если уж закрыть глаза на программирование дат - у них код вообще без тестов/верификации? Откуда они знают, правильно ли он работает?
Я это понял, когда прочитал книжку типа "компьютер для менеджера". Там простым языком рассказывается про статистику, немного про теорию управления, немного про бейсик. Это же неспециалисты, им не нужны такие технологии и навыки (разве что получится 1-эс).
Я с трудом представляю себе, что там считают. Но если алгоритм что-то просеивает (у меня был опыт в своё время в институте), то чаще всего он одноразовый. В противном случае есть шанс, что потом его перепишут сведующие люди.
Да, это PHP