Может я не верно понял Фаулера, но по моему мнению, он не говорил пишите лапшу. Он давал советы что делать с лапшой и как определить лапша или уже блюдо.
Но тогда я не понимаю зачем писать статью которая цитирует то же, но как бы с другой стороны. И упуская некоторые вещи?
Как только вы заметите, что скопипастили какую-то часть программы достаточное количество раз, значит, возможно, пришло время написать на ее основе функцию.
Насколько я помню это из Рефакторинга от Фаулера.
Скопировал 1 раз норм, если 2 раза то выдели метод.
Lingaleo — это вообще полный облом в этом плане. Во-первых, в переводе огромное количество ОШИБОК (pulling — это оказывается ТЯНУТЬ, не говоря о десятке подобных ляпов, которые я просто не записал). Такое впечатление, что перевод многих слов парсится из Гугл транслейта (который частенько стебется).
Там можно добавлять переводы к словам самому, причем можно набрать перевод, такой, который вам нужно тренировать.
Не так-то всё там просто, время — совершенно не ровня пространственным координатам, а существенно от них отличается, в том числе и касаемо восприятия мира.
Мне просто очень интересно, в чем тут существенное отличие, можно ссылку куда-нить в личку.
Я, честно, особых проблем в данном объединении не вижу. В определенные моменты времени, можно получить координаты, а при определенных положениях, можно прикинуть временной отрезок, в котором данное тело оказалось.
Блин все дело оказалось в гипервизоре.
На той машине где тесты гонялись он криво работает.
Жалко что кучу времени потратил, на поиски проблем на более высоком уровне =(
Сейчас все пытаюсь этот TCP_NODELAY победить, как его настроить не могу нагуглить. Решил пересобрать pahntomjs из исходников с небольшим дополнением, которое добавляет данную опцию для сокета, с которым phantomjs работает.
Дополнительная информация:
Поставил на рабочей машине на Vbox Ubuntu 13.10, под ней тесты прошли чуть медленнее, ввиду слабых параметров. Но все равно быстрее чем на сервере с jenkins. Кстати узнал, что там centOS.
И даже без xvfb и прочей графики тесты прошли примерно с такой же скоростью, что я думаю, говорит о том, что дело не в xvfb.
Как только разберусь с TCP. Обязательно отпишусь. Думаю, что решение моей проблемы помжно будет добавить в хвост статьи, мало ли у кого такая же проблема возникнет.
Да на обоих машинах доступ к сайту одинаковый, обе в одной сети с сервером, на котором сайт.
Машина на которой Jenkins и xvfb мощнее в плане оперативки и процессора, но там нет видео.
У меня на рабочей машине есть видео.
Там все шаги дольше выполняются намного. Поиск, считывание значение с полей, установка значений.
Коллега, которой выкладывал, говорит, что создается ощущение, что где-то в phantomJs или xvfb sleep стоят, ибо он некоторое время простаивает.
А это, случаем, не вариант синглтона ли? Так как в рамках Context подключение будет уникальным(единственным) объектом, и в рамках Context мы его можем везде получить, или там несколько иначе все устроено?
Мне кажется вам, или кому-то следует оформить отдельную статью, про анти-паттерны, написать известные вам, попросить дополнять в комментариях, и вносить их по мере добавления в статью, чтобы людям, котоыре хотят получить данную информацию, было проще найти то, что нужно.
Есть огромная куча типов тестирования, в данном случае функциональное тестирование как нельзя лучше подходит. Можно делать более «высокоуровневое » тестирование, но тогда возрастает вероятность пропустить баг. Для такого типа тестирования обычно нанимаются тестировщики и тест дизайнеры.
Мне кажется, что Вы переоцениваете свой аналитический аппарат, говоря что мир предсказуем. И более того, мне кажется, что вы просто выбросили из своего восприятия какую-то часть мира, то есть просто не обращаете на нее внимания, так как она не подходит под ваши шаблоны восприятия. Это все равно, что одень наглазники, и потерять часть зрительной информации, которую они перекрывают.
Подобный оператор, возвращает первое «ненулевое значение» не только в javascript, но и в других языках.
С точки зрения «алгебры логики», если у нас несколько условий, объединенных оператором «или», то «true» оно же «ненулевое значение», в цепочке, будет возвращено если хотя бы 1 условие будет истинно. Тот же эффект и с оператором «и», только в его случае будет возвращен «false», если хоть 1 false встретиться.
Просто при обработке, условия проверяются по порядку, и на этапе когда мы уже точно знаем значение всего оператора, не имеет смысла тратить время на проверку остальных условий. Об этом стоит помнить начинающим, при составлении условий.
Но тогда я не понимаю зачем писать статью которая цитирует то же, но как бы с другой стороны. И упуская некоторые вещи?
Насколько я помню это из Рефакторинга от Фаулера.
Скопировал 1 раз норм, если 2 раза то выдели метод.
Если не знаешь о том, что камера есть, то она может тебя заснять.
Думаю основной эффект — предупреждение преступлений.
Там можно добавлять переводы к словам самому, причем можно набрать перевод, такой, который вам нужно тренировать.
Мне просто очень интересно, в чем тут существенное отличие, можно ссылку куда-нить в личку.
Я, честно, особых проблем в данном объединении не вижу. В определенные моменты времени, можно получить координаты, а при определенных положениях, можно прикинуть временной отрезок, в котором данное тело оказалось.
На той машине где тесты гонялись он криво работает.
Жалко что кучу времени потратил, на поиски проблем на более высоком уровне =(
Дополнительная информация:
Поставил на рабочей машине на Vbox Ubuntu 13.10, под ней тесты прошли чуть медленнее, ввиду слабых параметров. Но все равно быстрее чем на сервере с jenkins. Кстати узнал, что там centOS.
И даже без xvfb и прочей графики тесты прошли примерно с такой же скоростью, что я думаю, говорит о том, что дело не в xvfb.
Как только разберусь с TCP. Обязательно отпишусь. Думаю, что решение моей проблемы помжно будет добавить в хвост статьи, мало ли у кого такая же проблема возникнет.
Машина на которой Jenkins и xvfb мощнее в плане оперативки и процессора, но там нет видео.
У меня на рабочей машине есть видео.
Там все шаги дольше выполняются намного. Поиск, считывание значение с полей, установка значений.
Коллега, которой выкладывал, говорит, что создается ощущение, что где-то в phantomJs или xvfb sleep стоят, ибо он некоторое время простаивает.
Спасибо за статью, натыкался на подобные подводные камни.
У меня вот какой вопрос.
У меня есть тесты, которые гоняются через связку Thuсydides + Easyb.
WebDriwer — phantomJS.
И следующая проблема:
На моей рабочей машине тесты прогоняются за 50 минут.
На linux сервере с xvfb они прогоняются за 7 часов.
Мне думается что узкое место где-то в linux + xfvb, ибо на моей машине под XP они гоняются гораздо быстрее.
Не подскажете в какую сторону копать?
Входной тип Результат
Undefined false
Null false
Boolean Результат совпадает с входным аргументом (преобразование не производится).
Number Результат равен false, если аргумент равен +0, -0 или NaN, иначе результат равен true.
String Результат равен false, если аргумент является пустой строкой (его длина равна нулю), иначе результат равен true.
Object true
С точки зрения «алгебры логики», если у нас несколько условий, объединенных оператором «или», то «true» оно же «ненулевое значение», в цепочке, будет возвращено если хотя бы 1 условие будет истинно. Тот же эффект и с оператором «и», только в его случае будет возвращен «false», если хоть 1 false встретиться.
Просто при обработке, условия проверяются по порядку, и на этапе когда мы уже точно знаем значение всего оператора, не имеет смысла тратить время на проверку остальных условий. Об этом стоит помнить начинающим, при составлении условий.