Ответы пользователя по тегу Python
  • Самый быстрый алгоритм определения страны по номеру телефона

    @egorinsk
    > Алгоритм должен быть как можно более оптимальным в плане скорости, т.к. номеров очень много и всё должно работать быстро.

    Используйте Си/Java/.NET или откажитесь от слова «быстро», ни Питон, ни PHP так же быстро это не сделают. Сколько миллионов номеров надо обрабатывать в секунду? Откуда они приходят?
    Ответ написан
    Комментировать
  • Что выбрать для разработки веб-приложений?

    @egorinsk
    А вы попробуйте микрофреймворк вроде Slim. Он изучается за час максимум, мне, правда он не нравится, я бы лучше свой написал, но тем не менее, он очень прост и много времени на него не уйдет.

    Для шаблонов стоит использовать нативный PHP.

    На PHP не стоит переносить подходы, применяемые в той же яве, когда на каждый чих содаются фабрики, объекты, билдеры и прочее. Это, конечно, возможно на PHP, но работает не очень быстро и пишется не очень быстро. Если вы не делаете мегапортал, то лучше применять более простые подходы.
    Ответ написан
    2 комментария
  • Как на Python распарсить большой XML файл (>500Мб) содержаший ошибки?

    @egorinsk
    Если файл XML содержит ошибки, то это уже не файл XML.
    Ответ написан
    Комментировать
  • Взаимодействие демона и веб-морды на разных серверах

    @egorinsk
    > (не хочется, чтобы DDoSом на веб-морду можно было положить демона)

    Так если морда будет перенаправлять запросы на демона, не ограничивая их скорость, то демон ляжет раньше морды. Чтобы его нельзя было сломать так просто, надо ограничить число принимаемых в единицу времени запросов и число потоков (если используется многопоточность).

    > Как именно лучше организовать взаимодействие между двумя этими серверами (RPC, Socket, что-то еще)?

    Можно через HTTP/1.0 + JSON, например. Или бинарный протокол, если есть желание выжать максимум, но тогда надо демона переписать на Си.
    Ответ написан
    Комментировать
  • Selenium WebDriver как остановить загрузку страницы?

    @egorinsk
    Пробовали авторам Selenium написать об этой недоработке?
    Ответ написан
  • Как начать писать тесты?

    @egorinsk
    Тесты стоит писать для компонент, которые с большой вероятностью легко сломать (и которые вызовут у вас трачу времени на поиск проблемы). Если у вас есть код, выводящий из БД табличку или добавляющий пользователя, или типичный контроллер, или типичная модель, нет смысла его тестировать.

    А вот, если у вас к примеру есть класс HumanDateParser, который разпознает даты в тексте и возвращает их в виде timestamp, для него стоит сделать тест. Простейший тест будет словарь, вида строка — ожидаемый ответ, например (извините, Питон не знаю, пишу на яваскрипте):

    var answers = {
    «14 мая 2002»: '2002-14-05',
    «4 апреля»: '$currentYear-04-04',
    «114 марта»: false,
    «туруру»: false
    };

    После чего простейший цикл перебирает значения из словаря, скармливает их HumanDateParser и сравнивает ответы, если что-то не так, трубит об ошибке. Если потом вы найдете баг в этом модуле, вы добавите в answers строки, которые вызывали баг.

    Также, вам надо будет как-то автоматизировать тестирвоание, например чтобы скрипты тестирования запускались по расписанию, или после коммита и при обнаружении багов слали письма кому требуется.

    А делать тесты ради тестов и 100% покрытия, по моему, глупо. Не забывайте, к примеру, что в случае каких-то изменений в покрытом коде вам, скорее всего, придется еще и переделывать тесты.
    Ответ написан
    1 комментарий
  • Работа чисто на Python

    @egorinsk
    Питонщики обходятя дороже пхпшников. кто в здравом уме будет их брать, тем более в фрилансе, где на всем экономят?
    Ответ написан
    Комментировать