Re[6]: Как приучить пользователей использовать поиск?
От: мыщъх США http://nezumi-lab.org
Дата: 08.05.12 04:18
Оценка: 20 (1) +1
Здравствуйте, Философ, Вы писали:

Ф>Здравствуйте, мыщъх, Вы писали:


Ф>{

Ф>CleanOldData();
Ф>KillByAge();
Ф>ProducePosterity();
Ф>IncrementAge();
Ф>CleanGenerations();
Ф>}

Clean и Kill смущет. из названий непонятно делает ли Clean тоже, что и Kill или Clean это очистка без убиения. ну, например, есть массив данных. очистить -- перезаписать нулями (null или "" в зависимости от...), а убить это сделаеть ему Free.

CleanOldData -- что такое Old? где в документации найти определение old? и где найти как оно конфигурируется? если конфигурируется вообще?

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

но тут приключения только начинаются. ибо тесты. а в тестах нужно имитировать время. а имитировать его путем перевода времени на сервере никто не будет. значит, нужен еще способ указать, что когда мы говорим "сейчас", но работаем в тестовом режиме, то "сейчас" это время из конфига или не из конфига -- это смотря что мы тестируем.

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

пикантность в наименовании флагов. блин, на хрена я дал имя флагу auto? вы догадываетесь, что оно означает? нет? и правильно. потому что я дэбил и у меня оно означает брать время из тестовой базы. девы, ес-но, поняли это не так. они поняли, что auto это брать текущее время автоматом. потому как еще есть флаги now и local. какой же я все-таки дэбил. никто так и не понял как их комбинировать... хотя мне казалось логично. если время не указано, а стоит now -- брать серверное время. если now | local -- клиентское. просто local будет поправка к явно заданному времени. auto -- время из базы. now | auto -- поправка на локальное время определяется самой функций при работе в нормальном режиме и берется из конфига при работе в тестовом.

короче, убил три дня пока объяснял как пользоваться этими флагами ;-( а все потому что выбрал неудачные названия. я их понимал по своему, а девы их понимали по своему. кстати, от auto ожидали того, что делает now, т.е. автоподстановки текущей даты с сервера. и вызывали функу auto | local. ну вы догадываетесь к чему приводила такая комбинация... самое интересное, что программа работала правильно. и тесты проходила, и в боевых условиях выдавала ожидаемый результат. вот только конфиги игнорировала, а потому когда вдруг возникла потребность смоделировать ситуацию на фейковой базе, то ни хрена оно не смоделировалось. программа упорно брала время из базы. а база фейковая (только что сгенерированная). и потому время в ней настоящее, а не то, какое мы указали в конфигах (типа это было триста лет тому назад). бааалин, программа игнорирует конфиг. где грабли?! а грабли в неправильном вызове функции, т.к. надо не auto | local, а now | local или просто auto.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.