Mulder, когда-то я думал что никто не будет писать на Java, для телефонов. Но речь не столько об этом.
Берём гостевую книгу на сайт с посещаемостью 2 человека, и с количеством постов 1 за 2-3 дня. Спрашивается, разумно ли использовать в разработке Симфонию или Yii ?
Ответ не так однозначен, я вот не использовал, и даже MySQL не использовал, и был в моём случае прав. Однако стоит ли такое ставить на сайт где посещаемость 10к в сутки ?
И то и другое РНР, но ситуация совершенно разная.
Опять же берём одинаковые условия, делаем совершенно любую инновационную систему. Если её делать по уму то будет долго и надёжно, надо ли делать так, если время деньги, а система нужна только с целью закрытого бета-тестирования самих принципов (и если система через неделю упадёт то это никому не страшно)
29.11.2010, 11:08
Mulder
Vladson, о чем и речь. Целесообразно ли высчитывать в цикле кол-во дней в году для определения первых понедельников, если даты понедельников уже известны и нужно только определить день недели через уже существующие функции, которые одинаково ведут себя на любой платформе?
29.11.2010, 11:09
Mulder
Цитата:
Сообщение от seoproger
Mulder, Если не секрет , сколько бы Вы поставили баллов за проверочный скрипт из 2 задания - make_output.php ?
Я не могу оценивать свой собственный скрипт. Попросите оценить двух других судей.
29.11.2010, 11:14
seoproger
Цитата:
Сообщение от Mulder
Я не могу оценивать свой собственный скрипт. Попросите оценить двух других судей.
Логично, спасибо :0024:
Я просто заметил что все те недочеты что указаны к моему заданию - присутствуют и в том скрипте -
"Операционно-зависимая запись данных в файл:"
"краткость и оптимизация потеряны"
Но я понимаю, что это не конкурсный скрипт, а проверочный, так что "вылизовать" его и не нужно было.
29.11.2010, 11:36
Mulder
Цитата:
Сообщение от seoproger
Я просто заметил что все те недочеты что указаны к моему заданию - присутствуют и в том скрипте -
"Операционно-зависимая запись данных в файл:"
Мой скрипт запускался и в линуксе, и в винде. И везде он проходил проверку через скрипт check.php. Попробуйте запустит свой скрипт в линуксе, а затем запустите проверочный скрипт. В итоговом файле output.txt вы увидите артефакт в виде лишнего символа \r. Вот так отображается этот артефакт в консоли, а вот так в редакторе Kate.
Для перевода строк вы использовали операционно-зависимый способ '\r\n', а нужно было просто '\n'. Интерпритатор пхп самостоятельно определяет на какой оси запущен и заменяет '\n' нужным символом. Для этого нужно либо правильно открыть файл, либо использовать бинарно-защищенные функции записи, как например file_put_contents().
Цитата:
Сообщение от seoproger
"краткость и оптимизация потеряны"
Ваша краткость и оптимизация потеряна в том, что вы решили изобрести свою функцию перевода в юлианское время, вместо того, чтобы использовать уже готовую.
29.11.2010, 11:44
seoproger
Цитата:
Сообщение от Mulder
Мой скрипт запускался и в линуксе, и в винде. И везде он проходил проверку через скрипт check.php. Попробуйте запустит свой скрипт в линуксе, а затем запустите проверочный скрипт. В итоговом файле output.txt вы увидите артефакт в виде лишнего символа \r. Вот так отображается этот артефакт в консоли, а вот так в редакторе Kate.
Для перевода строк вы использовали операционно-зависимый способ '\r\n', а нужно было просто '\n'. Интерпритатор пхп самостоятельно определяет на какой оси запущен и заменяет '\n' нужным символом.
Раз уж останавливаемся на этом подробнее...
Это откуда Вы такое взяли ? :0024:
\n - это Unix
\r\n - это Windows
Если не ошибаюсь \r - это Mac
у Вас везде \n. Попробуйте запустить свой скрипт в Windows и открыть файл в стандартном блокноте. Или в Mac.
Вы сделали для Unix, я для Windows. И то и другое в общем случае неправильно. В php есть сонстанта для таких случаев - PHP_EOL.
Цитата:
Сообщение от Mulder
Ваша краткость и оптимизация потеряна в том, что вы решили изобрести свою функцию перевода в юлианское время, вместо того, чтобы использовать уже готовую.
...А "Ваша краткость и оптимизация потеряна в том, что вы решили изобрести свою функцию" для вывода форматированной строки. И повторяете одни и те же действия в цикле, когда логичнее их вынести за цикл (это примерно то же что и открытие файла задолго до вывода).
Хотя повторюсь - и то, и то в данном случае мелочи.
29.11.2010, 11:52
seoproger
А по поводу check.php - логично что проверка везде проходит, он ведь тоже везде использует юниксовый перевод \n. Замените в нем на PHP_EOL - тогда на windows проверка не пройдет, равно как и на маке.
29.11.2010, 11:55
Mulder
Цитата:
Сообщение от seoproger
Это откуда Вы такое взяли ?
Читайте мануал пхп. Хотя бы прочтите для начала, как работает функция fopen (начинайте читать после таблицы).
Цитата:
Сообщение от seoproger
...А "Ваша краткость и оптимизация потеряна в том, что вы решили изобрести свою функцию" для вывода форматированной строки. И повторяете одни и те же действия в цикле, когда логичнее их вынести за цикл (это примерно то же что и открытие файла задолго до вывода).
Нету никакой строки. В цикле идет формирование массива. Как еще сформировать динамический массив, не используя цикл? Единственное, что там может показаться лишним, это переменная $day и $jd. Переменная $day всегда одна и таже. Поэтому можно было бы и искусственно записать:
Но я сторонник того программирования, что если величина используется в скрипте более одного раза, ее нужно запихнуть или в переменную или в скаляр.
Переменную $jd можно было бы запихнуть прямиком в определение дня недели:
jddayofweek(gregoriantojd($month, $day, $year));
Тут согласен, $jd лишнее.
29.11.2010, 12:10
seoproger
Вложений: 1
Цитата:
Сообщение от Mulder
Читайте мануал пхп. Хотя бы прочтите для начала, как работает функция fopen (начинайте читать после таблицы).
Я говорил про формирование строки с датой. Строки выше превращаются в одну с использованием sprintf.
Цитата:
Сообщение от Mulder
Единственное, что там может показаться лишним, это переменная $day и $jd. Переменная $day всегда одна и таже. Поэтому можно было бы и искусственно записать:
Но я сторонник того программирования, что если величина используется в скрипте более одного раза, ее нужно запихнуть или в переменную или в скаляр.
Переменную $jd можно было бы запихнуть прямиком в определение дня недели:
jddayofweek(gregoriantojd($month, $day, $year));
Тут согласен, $jd лишнее.
С лишними переменными я тоже думаю, что все ок, просто мне кажется не нужно присваивать $day значение каждую итерацию. Но это в данном случае никакого выигрыша в скорости не даст - просто "логичнее" будет.
29.11.2010, 12:13
Mulder
Цитата:
Сообщение от seoproger
Замените в нем на PHP_EOL - тогда на windows проверка не пройдет, равно как и на маке.
На винде и на маке проверка также не проходит не потому, что я использую \n, а потому что вы используте \r.