![]() |
|
![]() ![]() ![]() |
|
valvliv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 25.1.2006 Репутация: нет Всего: 1 |
Я вот тут въезжаю в новый проект, и моя фортрановская малограмотность в сочетании с хаосом коллективного дают просто изюмительное сочетание, доводящее меня каждый вечер вот до этого:
![]() Подскажите, плз, есть ли трики, как правильно въехать в проект? Если, скажем, у меня насыпано в фолдерах 200 метров кода, генерящего разные файлы, и мне надо какую-то переменную поменять, то какая правильная стратегия: грепить? Или типа все коды сперва распечатать?? ![]() |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
1. Сделать умный вид. 2. Придти с этим умным видом к начальству и объяснить, что так дело дальше идти не может (см. ) 3. Пользоваться поддержкой начальства и добиваться того, чтобы народ начал писать комментарии, доки и т.д. к коду. 4. Параллельно с этим всем разбираться потихонечку с именно теми кусками кода, которые тебе нужны (с остальные может не придется разбираться вообще). 5. Надо распечатать - печатай. Или у вас страницы считают? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
valvliv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 25.1.2006 Репутация: нет Всего: 1 |
Ну, я примерно так и делаю, тока я думала, что есть приемчики половчее...
![]() |
|||
|
||||
Cr@$h |
|
||||||||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
Начальство в таких ситуациях не поможет. 200 метров -- это, по-моему, очень много, чтобы даже в голове уместить. Если бы это были исходники на C#, то можно использовать рефакторинг. Не знаю, возможно в Eclipse есть такая поддержка и для Fortran проектов. Просто я с ней никогда не работал, сижу в студии. Летом переписывал для учебных целей код Форсайта "Машинный методы математических вычислений". Так там даже не на 77-ом все написано было, а на 66-ом ANSI. А в последнеи не было даже ветки else! От того куча меток. Я перепывывал все заново. Большинмтво циклов убралось через процедуры, сечения массивов и векторизацию. Кода стало на треть точно меньше. Этим летом собираюсь заняться Каханером. Но тобе такого посоветовать не могу, т.к. переработать очень много безошибочно не получится, отсюда большой проект -- большая трата времени. Хотя, все зависит, под какие такие серьезные нужды он будет использоваться. Если с ним потом жить, то лучше потихоньку модернизировать. Ну, а по делу кроме find/replace для переменных вряд ли что-то можно будет посоветовать. Поменяй что-то, скомпили (если он вообще компилируется), сравни результаты. Эх.. тяжелая эта работа у тебя. ![]() Тогда еще много меток почему-то использовали, несмотря на то, что без них можно было обойтись. Теперь в Fortran даже в случаях, когда go to предпочтитеьнее чего бы то ни было другого, его можно заменить. Приведу пример, когда при некотором стечении обстоятельств приходится, скажем, выходить из треуровневого цикла. Вариант кода без метки
Что тут плохо? Приходится проверять в двух местах if( finish ). Это может оказаться очень накладно. К тому же это событие в этом примере происходит всего один раз -- потом выходим из циклов, а на него идут большие затраты. Но это не главное, главное, что на общем фоне других операторов нужно будет время, чтобы понять, что же происходит. goto не любят именно из-за того, что превращает код в лапшу, т.е. деструктурирует ее. Это ухудшает читаемость кода, его сопровождение и повторное использование. Но что, если эффект от goto обратный?! Тогда только фанат "не goto", который сам не понимает, за что его не любит, не будет использовать метки в нужных ситуациях. Вот как преобразится наш код после применения goto:
Лапши нет, есть одно удобство и легко читаемость на ряду с эффективностью. Ну, а как я говорил, теперь в Fortran можно обойтись без меток даже в таких ситуациях:
Самому старшему циклу мы дали имя и теперь смогли выйти из него по-человечески. MainLoop: -- не метка, а имя конструкта. Это равносильно использованию return где-то внутри функции С++. Ко стал еще более легче читаемым, в основном благодаря exit MainLoop -- значем, что делаем -- выходим, и откуда -- из цикла MainLoop. |
||||||||
|
|||||||||
valvliv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 25.1.2006 Репутация: нет Всего: 1 |
Чо сказать... Тока типа - знаю, что ничего не знаю...
![]() |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: нет Всего: 173 |
И ты одна на поддержке всей этой системы? Которой наверняка не один десяток человеко-лет? Ужас какой... -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
valvliv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 25.1.2006 Репутация: нет Всего: 1 |
Тут есть типа сисадмин, который это дело грыз год, но он типа сильно занятой и крутой, чтобы ламерам помогать
![]() Вот и рублюся ![]() |
|||
|
||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
||||
|
||||
DemoCode |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 890 Регистрация: 20.10.2005 Где: Россия Репутация: нет Всего: 41 |
Попробуй найди программу STI Understand for Fortran - инструмент для разбора кода fortran, может чем-то он сможет облегчить твою задачу.
-------------------- Жить стало лучше, жить стало веселей © И.В. Сталин |
|||
|
||||
valvliv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 25.1.2006 Репутация: нет Всего: 1 |
Спасибо, попробую.
Л. |
|||
|
||||
valvliv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 25.1.2006 Репутация: нет Всего: 1 |
Посмотрела демку этого андестендера. Похоже, в моем случае он мало поможет: я роюсь в коде с вин-машины на юникс-сервере, таскать все туда-сюда, чтобы тут посмотреть, потом там компилить, и т.д. - неудобно. Линукс версию ставить с правами узера и без нормальных х-виндов - это совсем загонно.
Бум грепить по старинке... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Fortran | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |