Спадщина Fortran Soapbox
Я допомагав підтримувати / вдосконалювати застарілу базу коду Fortran протягом тривалого часу, і здебільшого вважаю, що шість літер змінних - на гроші. Однак ця порада має тенденцію до технічного; жорсткіший мотив для впровадження "належних практик".
- Встановіть необхідний стиль кодування та керівні принципи кодування.
- Вимагайте перевірки коду (не лише кодера!) Для будь-чого, що надійшло до бази коду. (Контроль версій повинен бути прив’язаний до цього процесу.)
- Почати побудову та запуск модульних тестів; так само тести порівняльних показників або регресії.
Це може звучати як очевидні речі в наші дні, але, ризикуючи надмірно узагальнити, я стверджую, що більшість магазинів коду Fortran мають усталену культуру, деякі почали ще до того, як термін "програмна інженерія" навіть існував, і що з часом те, що домінує є "Зробіть це зараз". (Це ніяк не властиво лише магазинам Fortran.)
Обіймаючи гоча
Але що робити з уже існуючою, непомітною старою базою застарілого коду? Я погоджуюсь з Джоелем Спольським щодо переписування, не робіть . Однак, на мій погляд, sixlettervariables вказує на допустимий виняток: використовуйте програмні засоби для переходу до кращих конструкцій Fortran. Багато можна вловити / виправити за допомогою аналізаторів коду ( FORCHECK ) та переписувачів коду ( plusFORT ). Якщо вам доводиться робити це вручну, переконайтеся, що у вас є нагальна причина. (Хоч би я мав під рукою посилання на кількість програмних помилок, що виникли в результаті виправлення програмних помилок, це принизливо. Я думаю, що деякі такі статистичні дані містяться в програмуванні експерта C )
Мабуть, найкращим порушенням у перемозі у грі Фортран є найкращий захист: досить добре знати мову. Для подальшого досягнення я рекомендую ... книги!
Бібліотека мертвих дерев Фортран
Протягом багатьох років я мав лише скромний успіх, як "гарячий контроль", але я виявив, що освіта працює, іноді ненавмисно, і що одна з найвпливовіших речей - це довідник, який хтось має під рукою. Я люблю і дуже рекомендую
Fortran 90/95 для вчених та інженерів , Стівен Дж. Чепмен
Книга навіть хороша для Fortran 77 тим, що вона конкретно визначає конструкції, які не слід використовувати, і дає кращі альтернативи. Однак це насправді підручник і може закінчитися, коли ви дійсно хочете знати дрібницю Fortran 95, саме тому я рекомендую
Фортран 90/95 Пояснено , Майкл Меткалф та Джон К. Рід
як ваш довідковий посібник (sic) для Fortran 95. Будьте застережені, що це не найсвітліше написання, але завіса підніметься, коли ви дійсно хочете отримати максимум від нової функції Fortran 95.
Якщо я зосередився на питаннях переходу від Фортрана 77 до Фортрана 90, мені сподобалось
Перехід на Fortran 90 , Джим Керріган
але книга вже вийшла з друку. (Я просто не розумію, як О'Рейлі використовує Safari , чому не доступна кожна з їхніх друкованих книг?)
Нарешті, що стосується спадкоємця чудової, чудової класики, Програмні засоби , я висуваю
Класичний FORTRAN , Майкл Купфершмід
Ця книга не лише показує, що можна зробити із "лише" Fortran 77, але вона також розповідає про деякі найтонші проблеми, які виникають (наприклад, слід чи не слід використовувати ЗОВНІШНУ декларацію). Ця книга не точно охоплює той самий простір, що і "Засоби програмного забезпечення", але це дві з трьох книг з програмування Fortran, які я б позначив як "веселі" .... ( ось третя ).
Різні поради, які стосуються майже кожного компілятора Fortran
- Існує опція компілятора для забезпечення поведінки IMPLICIT NONE, яку ви можете використовувати для виявлення проблемних процедур, не змінюючи їх за допомогою декларації IMPLICIT NONE. Ця порада не буде здаватися значущою, доки після першого побудови бомб через команду IMPLICIT NONE, вставлену у застарілу процедуру. (Що? Ваш огляд коду цього не зрозумів? ;-)
- Існує опція компілятора для перевірки меж масиву, яка може бути корисною під час налагодження коду Fortran 77.
- Компілятори Fortran 90 повинні вміти компілювати майже весь код Fortran 77 і навіть старіший код Fortran. Увімкніть параметри звітування на своєму компіляторі Fortran 90, пропустіть через нього ваш застарілий код, і ви почнете гідно розпочинати перевірку синтаксису. Деякі комерційні компілятори Fortran 77 насправді є компіляторами Fortran 90, які працюють у режимі Fortran 77, тому це може бути відносно тривіальним варіантом обертання для будь-яких скриптів збірки, які у вас є.