Обновить
13

Химик и программист.

32
Подписчики
Отправить сообщение

Вход и выход типа string, иначе какой смысл делать decrypt видимым?

Неубедительно. Если decrypt могут вызывать другие процедуры, то decrypt должен работать с их данными. А иначе — абсурд.


а как вам комменты помогуть защититься?

Коммент с описанием loadFile после заголовка сообщит, что тут decrypt уже использован.

Это как защищаться, чтобы без комментов?

В общем случае decrypt должен работать не только с loadFromArchive. М.б. в последующих версиях.

Я про Ваши желания:
"область видимости должна быть минимальной",
"decrypt не должен работать с общим состоянием".

Желаемое vs действительное...

В таком случае, возможно, он напишет:


loadFile;
decrypt;


при достаточной области видимости decrypt результат будет плачевным.

Не понял: пользователю доступен исх.код?

Если ТЗ требует формат после удачной загрузки файла, то желание заказчика — закон исполнителю. И кофе можно сварить: хозяин — барин ;)

Ага, название процедуры: loadFilePrintErrorDecrypt...

Ok. Договорились, что комментарии нужны (в разумных объемах).

И чтобы узнать, что делает этот код нужно лезть в отдельную процедуру.

а вы в этом случае комментарий сверху тоже обновите?

Конечно.

decrypt м.б. нетривиальный по новому алгоритму и
loadFromArchive может быть новым. Может новый драйвер на асм.

Пустые строки сродни комментам?


Кроме обработки ошибок, потом может новый код добавиться.

Ну ИМХО это уже философский вопрос: насколько реальность отвечает нашим ожиданиям, Статья про разработку новых алгоритмов, и, в этом случае, комменты особо важны: читаем, что хотел автор, и смотрим код: что у него получилось.

Завозили, но речь не о том. Речь про отказ от комментов и про использование только значимых имен. Чем больше строк между такими именами — тем труднее читать, тем привлекательней комменты.

Если две строки рядом: одна за другой, то читать легко. А если:


procedure loadFile;
var
 err : integer;
begin
 err:= loadFromArchive;
if err<0 then
begin
 if err=-1 then
  print ('I/O error')
else
 if err=-2 then
 print ('File not found')
else
 print ('Unknown error');
exit
end;
decrypt;
  //и так далее
end

Можно записать коммент в определение процедуры loadFile:


procedure loadFile;
//загрузить из архивного файла, записи для 
//товарных вагонов, расшифровать их, пустые 
//вагоны добавить в таблицу свободных вагонов
begin

В Вашем решении не понял: что делают методы freight и free?

В процедуре loadFile; просто формат Хабра не позволяет разместить этот вызов и следующий комментарий в одну строку. На практике такой проблемы нет.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность