Re[2]: Два несуществующих файла
От: B0FEE664  
Дата: 29.09.25 09:54
Оценка:
Здравствуйте, L_G, Вы писали:

L_G>Если "написать функцию сравнения двух файлов, на входе — 2 имени, на выходе — boolean" — это уже утвержденное/согласованное ТЗ, а стандартные функции получения длины и содержимого файла по его имени бросают исключения, то и функция сравнения должна пробросить эти исключения выше — программист не должен фантазировать, добавлять что-то в ТЗ от себя, да еще и писать лишний код. Об этом же и принцип YAGNI.


Да, я видел такой подход. Такой подход ведёт к тому, что при всех подобных вызовах (и это не обязательно работа с файлами), код поимки исключения добавляется при каждом вызове функции и обрабатывается одинаково. Как если бы это было просто третье значение возвращаемое функцией.Выглядит нечитаемо и приводит к дублированию кода по всему проекту.

L_G>Если используемые стандартные файловые функции выдают информацию об ошибках доступа/несуществования файлов/папок как-то иначе — было бы логично следовать их принципу (наша функция вроде бы тоже "файловая") и передавать эту инфу выше (только если это не противоречит ТЗ).


Тоже самое — ситуация неотличима от предыдущего случая: код обработки результата вызова функции дублируется от вызова к вызову.

L_G>Конечно, если есть возможность уточнить ТЗ — лучше это сделать.

Предположим, что вы пишите ТЗ. Какое уточнение вы добавите?

L_G>Если эту задачу поставил себе сам программист — кому как не ему лучше знать ответ. Но в общем случае опять же YAGNI рулит.

Я не следую принципу YAGNI, так как этот принцип ведёт к написанию исключительно ситуативного кода и как следствие к нулевому переиспользованию. Мне просто не интересно писать такой код.
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.