Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (17)

Лучшие ответы пользователя

Все ответы (11)
  • В чем преимущество phantomjs перед selenium?

    @uelkfr
    PhantomJS - полностью headless-браузер, не требует X11 Server или DXGI, таким образом потребляет меньше ресурсов и работает на порядок быстрее (но медленнее ZombieJS разумеется). Недостатками при этом являются отсутствие поддержки Flash, старая версия JavaScript-движка V8, старая версия Webkit - из последних двух причин следует, что отсутствует поддержка новых технологий HTML5 - из чего следует не все сайты работают корректно. В ZombieJS дела еще хуже, он вообще со многими сайтами не работает, т.е. для парсинга не подойдет, для тестирования может подойти, но готовтесь к тому что придется отлаживать сам ZombieJS.

    Selenium может работать как с полностью headless-браузерами PhantomJS, SlimerJS, TrifleJS, ZombieJS, так и с обычными браузерами Chrome, Firefox, Opera, Internet Explorer (последние потребляют очень много ресурсов и обычно поднимают Selenium-ферму). При этом используется единый протокол общения с браузерами JsonWireProtocol (Webdriver Protocol) через extension или через их управляющие модули (xul-runner). Таким образом, пишется один код не привязанный к конкретному браузеру, а тестируется в нескольких браузерах. Но конечно у каждого браузера есть свои особенности и Selenium их не покрывает, и поэтому все равно приходится под каждый браузер дописывать слой кода совместимости. Если же тесты простые: заполнить поля, отметить галочку, добавить файл, нажать на кнопку или ссылку тут, то Selenium подойдет.

    Грубо говоря на PhantomJS 99% сайтов будет работать как в Chrome, но 1% сайтов будут работать с ошибками. Но насколько я понимаю это лишь важно если вы пытаетесь scrape-ить один из сайтов попадающих в этот 1% :)

    Если ваша компания маленькая, то рекомендую легковесные технологии ZombieJS, PhantomJS, Mocha, если ваша компания крупная, есть большой штат сисадминов, тимлидов, архитектов, то рекомендую тяжеловесные масштабируемые технологии Docker, Vagrant, Selenium, Jenkis CI.
    Ответ написан
  • Почему использование триггера в mysql/oracle/mssql ... в web-программирование (и не только) считается признаком говнокода?

    @uelkfr
    Они мешают локализации бизнес-логики внутри вашего приложения. Т.е. бизнес-логика разделяется на две части и на два языка программирования. Рассмотрим каждый из недостатков по отдельности.

    1. Бизнес логика разделяется на две части. Этот недостаток особенно проявляется при использовании веб-фреймворков и в частности паттерна ORM. В паттерне ORM при создании, обновлении, удалении объекта через шину событий вызываются обработчики события, в них и пишется бизнес логика, а хранимые процедуры этого лишают. Хранимые процедуры дают оптимизацию и у программистов есть недостаток к преждевременной оптимизации, что может привезти к резкому усложнению архитектуры и кода.

    2. Бизнес-логика пишется на двух языках программирования. Во-первых нужно знать, хорошо знать, два языка. Во-вторых, нужно вводить Coding Style Standarts еще для одного языка. В-третьих, языки хранимых процедур (T-SQL, PLSQL и т.п.) не очень подходят для написания сложной бизнес-логики, а современные требования к бизнес-логике как раз требуют софистики. Вообщем код получается запутанным, нечитаемым, сложно модифицируемым и т.д.

    Я признаю только триггеры, только util-триггеры. Например, триггер запрещающий удаление записей в определенной таблице, это можно сделать с помощью прав, но лучше дополнительно защитить триггером который будет распространятся глобально на всех пользователей. Второй пример, это триггер подсчета количества записей в таблице, как известно COUNT(*) на больших таблицах обходит весь индекс по PRIMARY KEY, а вообще большие таблицы зло - лучше сразу шардить.

    P.S. На опыте скажу сталкивался с системой КИС УЗ Модус, разработчик отказался разрабатывать сервер и запил всю бизнес логику на T-SQL и вызывал их из клиентского десктопного приложения. Вообщем печальная была система.
    Ответ написан
  • Владение какой технологией/ЯП в США имеет наибольший шанс на получение хорошей работы?

    @uelkfr
    Я думаю так:
    1) JavaScript - высокая востребованность и зарплата
    2) Java - высокая зарплата, средняя востребованность
    3) C/C++ - высокая зарплата, не подходит для молодежи, низкая востребованность
    4) перспективно Scala, Closure, Rust
    5) в США наверное Objective C и Swift популярны

    По технологиям:
    1) Web Backend (centos, ubuntu, debian, Docker, Docker Swarm/Kubernetes, ansible, systemd, supervisor, nginx, haproxy, php5-fpm, nodejs, postgresql, mysql/mariadb/perconaserver, redis, cassandra, Consul, Ceph, ElasticSearch/Sphinx)
    2) Web Frontend (html6, web 3.0, css5, es8, nodejs, gulp, grunt, browserify, angularjs, react, flux/redux, mocha, selenium-webdriver, protractor)
    3) Android/iOS (менее перспективно BlackBerry, Sailfish OS, Ubuntu Touch)
    4) Databases (ext4, Ceph, Oracle, PostgreSQL, Cassandra, ElasticSearch/Sphinx)
    5) Big Data
    Ответ написан
  • Есть ли долговечное хранилище файлов?

    @uelkfr
    Облака дают гарантию примерно 99.9999999%, правда не знаю за какой период и прогрессивный или константный процент. Таким образом, если хранить две одинаковые копии, то обратные проценты умножаются (100% - (100% - 99.99999999%) * (100% - 99.99999999%)) минус скорость реагирования на порчу одной копии и создании дополнительной копии, некоторые облака предоставляют такую функциональность автоматически, например, российская разработка Acronis Cloud Backup (которые уже весь мозг проели своей тупой рекламой на хабре). Поэтому рекомендую посмотреть в сторону Amazon Glacier - будет гораздо дешевле и бренд более узнаваемый нежели Acronis. Не использовать аккаунт 10 лет не получится, потому что нужно будет платить за каждый GB каждый месяц.

    Если же планируется, что к данным будут очень редкие обращения, то лучший вариант это Verbatim DVD M-Disc или Verbatim DVD минус R. Если сравнивать с BluRay, мне почему-то кажется что DVD значительно надежнее (долговечнее).
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (6)