Устаревшая мыльница Фортран
Я помогал поддерживать / улучшать унаследованную базу кода на Фортране довольно долго, и по большей части считаю, что sixlettervariables стоит денег. Этот совет, однако, имеет тенденцию к техническому; более сложный подход к внедрению «хороших практик».
- Установить требуемый стиль кодирования и рекомендации по кодированию.
- Требуется проверка кода (не только кодера!) Для всего, что отправлено в базу кода. (Контроль версий должен быть привязан к этому процессу.)
- Начать сборку и запуск юнит-тестов; То же самое или регрессионные тесты.
В наши дни это может звучать как очевидные вещи, но рискуя чрезмерно обобщать, я утверждаю, что большинство магазинов кода на Фортране имеют укоренившуюся культуру, некоторые начали существовать еще до того, как появился термин «разработка программного обеспечения», и что со временем доминирует это "Сделай это сейчас". (Это ни в коем случае не уникально для магазинов Fortran.)
Обнимает Гочас
Но что делать с уже существующей, грязной старой унаследованной кодовой базой? Я согласен с Джоэлем Спольски в переписывании, не . Однако, по моему мнению, sixlettervariables указывает на допустимое исключение: Используйте программные инструменты для перехода к более совершенным конструкциям Fortran. Многое может быть поймано / исправлено анализаторами кода ( FORCHECK ) и переписыватели кода ( plusFORT ). Если вам нужно сделать это вручную, убедитесь, что у вас есть веская причина. (Хотелось бы, чтобы у меня была под рукой ссылка на количество ошибок в программном обеспечении, которые возникли в результате исправления ошибок в программном обеспечении, это унизительно. Я думаю, что некоторые такие статистические данные содержатся в Программирование на Expert C .)
Вероятно, лучшее нарушение в выигрыше в игре Фортрана - лучшая защита: достаточно хорошее знание языка. Для достижения этой цели я рекомендую ... книги!
Библиотека мертвых деревьев Фортрана
За эти годы я добился лишь скромного успеха в качестве "QA NAG", но я обнаружил, что образование работает, иногда непреднамеренно, и что одной из самых влиятельных вещей является справочник, который кто-то имеет под рукой. Я люблю и очень рекомендую
Фортран 90/95 для ученых и инженеров , Стивен Дж. Чепмен
Книга даже хороша с Фортраном 77 в том смысле, что она конкретно определяет конструкции, которые не должны использоваться, и дает лучшие альтернативы. Тем не менее, это на самом деле учебник, и он может выдыхаться, когда вы действительно хотите знать все о Fortran 95, поэтому я рекомендую
Фортран 90/95 объяснил , Майкл Меткалф и Джон К. Рейд
в качестве справочного материала для Fortran 95. Будьте предупреждены, что это не самая ясная запись, но завеса поднимется, когда вы действительно захотите получить максимальную отдачу от новой функции Fortran 95.
Для того, чтобы сосредоточиться на вопросах перехода от Фортрана 77 к Фортрану 90, мне понравилось
Миграция в Фортран 90 , Джим Керриган
но книга вышла из печати. (Я просто не понимаю, как О'Рейли использует Safari , почему не доступны все их книги, не напечатанные?)
Наконец, что касается наследника замечательной, замечательной классики, Software Tools , я номинирую
Классический Фортран , Майкл Купфершмид
Эта книга не только показывает, что можно сделать с «только» Fortran 77, но также рассказывает о некоторых более тонких проблемах, которые возникают (например, следует или не следует использовать декларацию EXTERNAL). Эта книга не совсем совпадает с «Программными инструментами», но это две из трех книг по программированию на Фортране, которые я бы назвал «забавными» .... ( вот третий ).
Разные советы, которые относятся к почти каждому компилятору Fortran
- Существует опция компилятора для принудительного применения поведения IMPLICIT NONE, которую вы можете использовать для выявления проблемных подпрограмм, не изменяя их сначала с помощью объявления IMPLICIT NONE. Этот совет не будет иметь смысла до тех пор, пока после первого раза не будут собраны бомбы из-за команды IMPLICIT NONE, вставленной в устаревшую процедуру. (Что? Ваш обзор кода не уловил этого?; -)
- Существует опция компилятора для проверки границ массива, которая может быть полезна при отладке кода на Fortran 77.
- Компиляторы Fortran 90 должны иметь возможность компилировать практически весь код Fortran 77 и даже более старый код Fortran. Включите параметры отчетов на своем компиляторе Fortran 90, запустите свой унаследованный код, и вы сможете неплохо начать проверку синтаксиса. Некоторые коммерческие компиляторы Fortran 77 на самом деле являются компиляторами Fortran 90, которые работают в режиме Fortran 77, так что это может быть довольно простой вариант для любых скриптов сборки.