Ответы пользователя по тегу Python
  • REST или Json-RPC для большого проекта?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    json rpc - это когда все запросы post.

    rest же, это стиль архитектуры. Он не про урлы и не про http. Просто на http он ложится очень неплохо.

    Ну то есть вы можете сделать все придерживаясь принципов REST. Главное не путать http и rest и не ограничивать себя мыслью что ресурсы это отображение табличек в базе.

    При этом нужно учитывать что методов или урлов будет несколько сотен.


    А какая разница? У вас так и так будет какой-то роутер.
    Ответ написан
    Комментировать
  • Существует ли браузер с Python?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    phantomjs для этих целей и придуман. Для python смотрите selenium. других вариантов у вас нет.
    Ответ написан
    Комментировать
  • Где найти паттерны "правильных" частей системы?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вот проектируя большой проект с нуля ты уже оперируешь не паттерновыми объектами а частами систем


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

    Большие проекты начинают проектировать с более высокого уровня. Сначала принимают решение о том, какое разделение на слои у нас будет (для проектов со сроками жизни ~10+ лет имеет смысл позагоняться и вводить гексагональную архитектуру, для проектов со сроками жизни <= строк поддержки фреймворка можно не сильно париться), какие компоненты можно выделить, а уже потом дробить эти большие компоненты на компоненты поменьше.

    Затем уже приступать к проектированию каждого отдельного компонента на уровне классов.

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

    > Собственно вопрос: существует ли сборник всех этих лучших практик?

    вне контекста не бывает лучших практик, есть просто практики. В этом плане можно например Фаулера почитать, он очень качественно описывает практики, их плюсы и минусы.

    В целом же я бы рекомендовал вам познакомиться поближе с принципами SOLID и GRASP. Последнее мало кто знает, но понимание, например, что такое высокое зацепление, сильно влияет на то, как вы будете проектировать систему.
    Ответ написан
    Комментировать
  • Что такое select?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Представьте себе, что вы пишите web сервер. И к нашему серверу подключено 100 юзеров. И это, к примеру, чатик.

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

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

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

    Более того, эта функция ничто иное как просто системный вызов. Она реализована не в python даже а в операционной системе, а вы просто работаете с оберткой. И если мы делали все тупым перебором, то в современных операционках за это отвечают весьма хитрые и оптимизированные алгоритмы.

    Ну короч как-то так. Если вам хочется больше информации, не привязывайтесь к python, эта штука есть в любом языке программирования и работает одинаково. Так же помимо select есть еще poll и epoll.
    Ответ написан
    10 комментариев
  • Что выбрать для back-end медицинского портала?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Устойчивость - любой мэйнстрим язык

    Читаемость кода - это не имеет отношение к языку или платформе, сделать плохо можно всегда и везде.

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

    Словом... вот что разработчик знает, то и надо брать. Либо опять же на усмотрение разработчика.
    Ответ написан
    Комментировать
  • Node.js vs Python - что лучше для высоконагруженной системы?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    PHP, ловите хоть тысячу сегфолтов в день и все будет работать.

    В целом все зависит от задачи. Сделать плохо можно на чем угодно.
    Ответ написан
    Комментировать
  • Какой фреймворк выбрать для интернет-магазина?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Почитайте про reactjs и redux (reactjs наиболее четко описывает суть компонентов а redux описывает как вообще все это работает в сборе). Какой именно фреймворк или решение вы выберите роли особо не играет, так как почти все приходят к схеме описываемой redux (с минимальными отличиями и изменениями).

    Скажем тот же angular2. На самом деле он не сильно отличается от 1-ой версии, если вы следили за развитием идей и т.д. Скажем компоненты, их форсят во втором ангуляре (а так же в reactjs), но использовать этот подход без боли можно было уже с angular 1.3. Сейчас с angular 1.5 все еще проще. Есть компоненты (как отдельная сущность поверх директив, для angular 1.3-1.4 есть полифил), есть декораторы для компонентов (директивы расширяющие поведение компонентов). Главное не пользоваться контроллерами как независимой сущностью (ну разве что только для ресолва состояний и проброса в компоненты), а внутри компонентов не дергать сервисы для получения состояния (хотя есть опять же исключения).

    далее, ни react ни angular из коробки не предоставляют вам ничего для организации вашего приложения. То есть, штуки типа контейнеров зависимостей и базовые какие-то вещи вроде ангуляровских инфраструктурных сервисов не в счет. У вас полная свобода действий. Хотите мутите нормальный сервисный слой, хотите - практикуйте идеи redux с одним общим состоянием приложения и деревом редьюсеров прокидывающие части состояний по компонентам...

    Словом... все на самом деле не так сильно различается. Оно только кажется так, а идеи сейчас идут примерно одни у теже у всех. Декларативный UI, независимые компоненты, функциональщина...
    Ответ написан
    Комментировать
  • Можно ли писать простые браузерные приложения на Python или Lua, без Javascript?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    можете попытать счасться с транспайлерами python > js, вроде такого. или же pypy.js А так остается ждать web assembly

    p.s. чего только люди не выдумают лишь бы не использовать babel.js и не перестать маиться дурью. Отличия от python не сильно то большие.
    Ответ написан
    Комментировать
  • Если ли для python'a аналог типа php патекта FlyStorage?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    https://github.com/PyFilesystem/pyfilesystem - что-то типа такого. ну или https://github.com/jpvanhal/siilo
    Ответ написан
    Комментировать
  • Как в Ansible указать server id?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Заводите переменную server_id например и для каждого хоста в инвентори файле определяете эту переменную.
    Ответ написан
  • Какой движок можно использовать для плеера на python?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    https://github.com/albertz/music-player - как-то ковырялся с этим, весьма толковая штука.
    Ответ написан
    Комментировать
  • Справочник по python 3?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Википедия, все что не понятно там - гуглиться отдельно.
    Ответ написан
    Комментировать
  • Для чего нужен Matcher?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что бы сравнивать значения, ожидаемое и имеющиеся. Без них никак. А кастомные матчеры - для того что бы устранять дублирование в тестах и упрощать их написание.
    Ответ написан
  • Что лучше для android?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    не говорите, что лучше на java!

    Правда глаза режет?

    jython или jruby

    Для этих двух инструментов справедлива аксиома Эскобара в контексте вопроса.

    https://github.com/damonkohler/sl4a
    Ответ написан
    2 комментария
  • Какой фреймворк на Python, подходит для создания браузерных игр?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Может можно использовать Django?

    Для игрушек? Можно но как-то не логично и будет много боли.

    Также слышал про Pyjs, Brython

    Боль, хотя на счет Brython ничего не скажу.

    возможно ли обойтись без знаний и использования js, flash, html5.

    Сильно сомневаюсь, зависит от того что вы хотите сделать конечно но совсем без знаний никак (flash можете похоронить).
    Ответ написан
    Комментировать
  • PHP, python, ruby. Выполняют одинаковые функции или нет?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Имеет ли смысл осваивать php, или лучше сразу питон/руби?


    Если вы сразу знаете что после PHP уйдете в Python/Ruby - то лучше сразу Python/Ruby. C PHP проще уходить в Java/C#.

    а вообще очень неплохо было бы выучить два варианта из вашего списка. Или хотя бы попробовать хотя бы два (а лучше все три). Так как Python и Ruby в чем то похожи (Ruby был создан под влиянием perl и python) а учить python как-то приятнее, то рекомендую попробовать именно PHP и Python. А там уже думать.

    Мое субъективное мнение о местах каждого из этих языков:
    - Ruby - быстрая разработка, прототипирование, проекты с простой бизнес логикой
    - Python - скрипты автоматизации, ресерчи, наукоемкие вычисления и все такое (ооочень большой выбор качественных библиотек на эту тему).
    - PHP - тут есть два мира, один - wordpress и все подобное, другой - WEB приложения. скоро выходит PHP7 с тайпхинтингом для скаляров, хотят впихнуть структуры, словом PHP идет в сторону C# скорее. А так как объектная модель похожа на Java/C# то вся литература для этих языков (а ее оочень много хорошей) для PHP так же справедлива что проще в плане обучения. То есть из трех вариантов для чего-то сложного я бы выбрал именно PHP. А для чего-то попроще и под web - скорее уж Ruby.
    Ответ написан
    Комментировать
  • На PHP и Python возможно реализовать одинаковые по функционалу сайты, или какой-то язык мощнее другого?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Клон youtube только на php или python будет проблематично сделать. Как минимум у вас появятся СУБД, очереди, кеши и все такое. В целом же это все вполне себе реально сделать хоть на javascript.
    Ответ написан
    2 комментария
  • Сильные стороны PHP-вских фреймворков по сравнению с фреймворками Python и наоборот? Бывают ли случаи, в которых без фреймворков нереально обойтись?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В данный момент нахожусь на "развилке" будущей жизни и мне бы хотелось узнать, что лучше изучать


    Как на счет оба? Тогда и будет с чем сравнить и соответственно принять какое-то решение. Ну и да, изучение двух языков, причем имеющих концептуальные отличия, пойдет вам на пользу в любом случае.

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

    Если вам так уж хочется выбрать - подкиньте монетку, толку будет явно столько же если не больше.
    Ответ написан
    6 комментариев
  • Какой язык программирования лучше для программных ломбардов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я знаю, PHP и Java


    Вот из этого и выбирайте. Оба норм, под PHP проще чуть, но если Java знаете лучше (хотя тогда и с php нет проблем)... ну короче вы поняли.
    Ответ написан
    2 комментария
  • Существуют ли НЕ видеоуроки по различным ЯП?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Есть такие штуки, книги называются, раньше говорят было модно.
    Ответ написан
    9 комментариев