Как далеко я должен взять ссылочную прозрачность?

Каталог. CreateDirectory () должен сделать это. http://msdn.microsoft.com/en-us/library/system.io.directory.createdirectory (По сравнению с 71) .aspx

кроме того, в Vista, Вы, вероятно, не можете записать в C: непосредственно, если Вы не выполняете его как администратор, таким образом, Вы могли бы просто хотеть обойти это, и создать dir Вы хотите в подdir C: (который я сказал бы, хорошая практика, которая будет сопровождаться так или иначе. - его невероятное, сколько людей просто выводит дерьмо на C:

Hope, которая помогает.

9
задан Abtin Forouzandeh 20 November 2009 в 17:49
поделиться

2 ответа

Почему бы не использовать ссылочную прозрачность полностью?

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

get_user_from_db :: userid -> User

Это ложь. Вы не можете перейти от идентификатора пользователя к пользователю. Вам нужно что-то еще: база данных.

get_user_from_db :: userid -> Database -> User

Теперь просто карри это с помощью идентификатора пользователя, а при наличии базы данных через некоторое время функция предоставит вам пользователя. Конечно, в реальном мире База данных будет дескриптором или объектом соединения с базой данных или чем-то еще. Для тестирования дайте ему фиктивную базу данных.

9
ответ дан 4 December 2019 в 19:34
поделиться

Вы уже упомянули модульное тестирование, продолжайте думать в этом контексте. Все, что вы считаете ценным при тестировании, должно быть достаточно прозрачным, чтобы вы могли его протестировать.

Если у вас нет сложной логики, которая могла бы пойти не так, и один-единственный функциональный / интеграционный тест показал, что она верна, тогда зачем увеличивать расстояние?

Подумайте YAGNI . Но там, где возможность модульного тестирования является реальной необходимостью.

3
ответ дан 4 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: