• Где вести записи разработчику?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    Ответ написан
    Комментировать
  • Как зайти в интерактивный режим Python?

    @deliro
    При установке ты не отметил галочкой пункт, чтобы питон добавился в PATH. Удали и установи заново с галкой.
    Ответ написан
    1 комментарий
  • Как вывести результат функции?

    aRegius
    @aRegius
    Python Enthusiast
    Уберите либо аргумент name из функции, либо переменную name из ее тела. Обе одновременно - не нужны.

    Или так:
    >>> def my_func():
    	        name = input('What is your name?: ')
    	        print(name)
    
    >>> my_func()
    What is your name?: Alex
    Alex
    >>> my_func()
    What is your name?: Bob
    Bob

    Или так:
    >>> def my_func(name):
    	        print(name)
    
    >>> my_func('Alex')
    Alex
    >>> my_func('Bob')
    Bob
    Ответ написан
    9 комментариев
  • Как вывести результат функции?

    Olej
    @Olej
    инженер, программист, преподаватель
    my_func(name)
    Лучше будет так:
    my_func( "spidespidespide" )

    А вы чего ожидали?
    def my_func( name ):
      name = input('What is your name?: ')
      print( name )
    
    my_func( "xxx" )

    [olej@dell own.WORK]$ python3 draft.py 
    What is your name?: aaa
    aaa
    Ответ написан
    4 комментария
  • Photoshop, notepad++ и бочка кофе в придачу, что ещё поможет верстать сайты быстрее и с меньшими затратами нервов?

    sim3x
    @sim3x
    1) После каждого обновления кода я перезагружал страницу, нет веб-разработки в реальном времени?
    так никто не делает. До написания кода ты уже должен видеть, как оно будет в браузере. Никто не запрещает использовать normalize сразу в макете

    2) Photoshop, пока использовал только пипетку, прямоугольник и лупу, ещё как использовать сию программу?
    csshat.com
    rafaltomal.com/a-web-developerss-guide-to-photoshop
    www.slideshare.net/akella/ss-33709531

    3) Чем вы ещё пользуетесь?

    emmet / dzen-coding -- 80% всего ускорения тебе даст именно он

    сборщики -- гульп, грюнт, вебпак, позволяют в любой момент времени получать продакшен реади продукт
    снипетты (live templates) в IDEA-like продуктах
    sass/less/slylus

    Как-то так верстают профи cssing.org.ua/2014/03/11/coding-live

    А быстро верстать ты начнешь после того как попрактикуешься пару лет :)
    Ответ написан
    Комментировать
  • Photoshop, notepad++ и бочка кофе в придачу, что ещё поможет верстать сайты быстрее и с меньшими затратами нервов?

    Rou1997
    @Rou1997
    WebStorm используйте, Notepad++ это явно не для быстрой верстки, кофе не поможет, это когда однажды нужно сделать срочную работу, сдать ее, и пойти пить совсем другой напиток, с обратным эффектом, а долговременно кофе не поднимет производительность, зато привыкание вызовет.
    Ответ написан
    Комментировать
  • Можно ли заработать в мире Unix-like, unix-way?

    @Z-r
    Мне известно четыре основных способа заработка, напрямую связанных со свободными программами:

    — Первый, самый прямой, но от того почему-то всем не менее неочевидный — брать и продавать копии свободных программ. Аудитория: любые конечные пользователи. Примеры: Parted Magic, ряд программок для «Андроида», ну например, «Conversations». Высокоморальность: в полном порядке.

    — Второй — это уже известная вами продажа поддержки. А фактически иногда и просто своего имени, когда какая-то реальная поддержка начинается с сумм несколько больших, чем базовый контракт. Аудитория: те, для кого ваша программа есть орудие производства, то есть компании и предприниматели. Пример: уже озвученный вами Canonical. Высокоморальность: в полном порядке.

    — Третий — это продажа исключений из авторского лева. Аудиторией будут разработчики несвободных программ, а программа ваша должна быть библиотекой под (как нетрудно догадаться) авторским левом, причем чаще сильным. Суть в том, что для добрых людей ваш продукт свободен на условиях, скажем, GNU GPL или GNU AGPL, а проприетарщики пусть платят за возможность использовать его в своих шкурных интересах. Примеры: GhostScript, MySQL. Высокоморльность: прихрамывает маленько.

    — Четвертый — это то, о чем помянул тов. CityCat4 — т. н. free crippleware, то есть полноценная ваша программа несвободна и платна, но у нее есть свободный урезанный вариант. Причем урезано может быть как что-то существенное, так и сущая ерунда. Аудитория: кто угодно. Примеры: Odoo, GitLab, ProcessMaker. Высокоморальность: от невысокой до никакой, смотря сколько отрезано.

    И разумеется, все вышеперечисленно можно комбинировать: Qt, к примеру, и поддержку (обучение) предоставляет, и исключения из авторского лева (причем слабого!) продает, и совсем ерундовую несвободную часть имеет. А упомянутый вами Red Hat — продает копии и предоставляет поддержку. А иногда и такое бывает: программка для «Андроида» под названием OsmAnd полностью свободна, но поставляется в Гуглоплэе в двух вариантах: полном за копеечку и урезанном бесплатно. Еще раз: обе версии свободны, то есть никакой моральной проблемы здесь нет.

    ――

    P. S. Я перечислил только способы заработка на программах как таковых, полагая, что схемы, где свободные программы участвуют косвенно, и без того очевидны, но в комментариях только о них и говорят, так что надо, наверное, упомянуть, что да, конечно, свободная программа также может быть:
    — Частью продаваемой услуги — чаще всего услуги специфического хостинга, как ставимый здесь в пример Openshift или (если ближе к народу) Feedly.
    — Частью продаваемого устройства, причем само устройство может быть как свободным, так и нет. Тысячи их.
    — И наконец, просто частью приносящего прибыль техпроцесса. То есть компания пишет (заказывает) программу себе для внутреннего использования и могла бы ее вообще не распространять, но, не считая ее своим «ноу-хау», ведет себя благородно и просто свободно делится ею со всеми. Известнейший пример — Reddit (хотя в последнее время они подскурвились).

    ――

    И не могу все-таки не отметить, что unix-way отношение к свободе имеет такое же, как мелкое к горячему.
    Ответ написан
    2 комментария
  • Как использовать Принцип подстановки Барбары Лисков применительно к PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В PHP отсутствует Double Dispatching и перегрузка методов


    Double Dispatch в PHP:

    class Foo {
        // ...
        public function makeSomeStuff(Bar $bar)
        {
             $bar->doStuff($this->someData); // double dispatch!
        }
    }


    Перегрузка методов:

    class Foo {
        public function foo() {}
    }
    
    class Bar extends Foo {
        public function foo() {} // перегружен!
    }


    и в ответ на отличающуюся от базового класса/интерфейса сигнатуру он вывалится с ошибкой


    то что вы хотели сделать называется ad-hoc полиморфизм, и он есть из коробки в любом языке программирования с динамической типизацией. Достаточно просто не указывать явно сигнатуру, все довольно просто) Ну и да, минус этого то что это не явно и в рантайме. Для языков со статической типизацией явная "перегрузка" нужна только для того что бы компилятор мог построить таблицы диспетчеризации вызовов.

    Но решить проблему как-то нужно


    Перегрузка методов в наследниках с изменением сигнатуры это как раз таки нарушение принципа подстановки барбары лисков (LSP для сокращения).

    > Сервисы должны имплементировать какие-то общие методы, но помимо этого у них есть и специфичные методы.

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

    p.s. венгерская нотация - это ужас. Все эти префиксы и суффиксы которые показывают кто есть тип (интерфейс, абстрактный класс) это вещи которые ломают всю красоту идеи полиморфизма и абстракции. Если хотите можем об этом пообщаться отдельно.

    Однако каждый из хендлеров может не работать с конкретной реализацией сервиса.


    Значит полиморфизм в нашем случае пошел погулять. Есть куча решений данной проблемы, в частности Chain of responsibility.

    > Visitor. Предполагает наличие в каждом из хендлеров методов типа handleService1(Service1 $service) и handleService2(Service2 $service), при этом один из методов остается пустым

    зачем так усложнять то? У вас должен быть снаружи только один публичный метод а внутри уже реализация сама разберется. Ну то есть если хотите - можете внутри сделать два приватных метода но это так же странно.

    > Массив маппинга, который говорит, какой хендлер может обрабатывать какой из сервисов.

    Опять же излишнее усложнение.

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

    Дальнейшие варианты возможны только после того, как вы опишите на высоком уровне что вам нужно сделать. Ну то есть не то к чему вы пришли а почему вы к этому пришли и какая задача стояла изначально.
    Ответ написан
    8 комментариев
  • Как защитить свою верстку от рипа?

    bingo347
    @bingo347
    Crazy on performance...
    Не работать без предоплаты минимум 50% и не цепляться за таких вот заказчиков
    (в голове мысли "что то тут не чисто)
    абсолютно правильные мысли
    Даже если Вы защитите свою работу от "угона", велик риск что просто проработаете за бесплатно, а Ваш заказчик обломавшись с Вами пойдет искать себе другую жертву, ибо сроки у него не жмут, так как когда сроки жмут заказчики готовы к предоплате не то что 50%, а даже 120% (20% - надбавка за переработки)
    Ответ написан
    12 комментариев
  • Где и как хранить тестовые сайты?

    @tagplus5
    Сервер на digitalocean
    - направляем на него домен *.site.com
    - каждый проект в своем docker контейнере со своим окружением
    - docker контейнер с nginx (прописываем поддомены)
    - контейнер/ы c бд.

    Разворачивать можно с помощью git ruhighload.com/post/Git+%D0%B4%D0%BB%D1%8F+%D1%80%...

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

    @mr_ko
    Javascript, Node.js. React.js, Vue.js, Wordpress
    Для онлайн демонстрации держу минимальную VDSку и левый домен на котором висят тестовые поддомены.
    А это, насколько мне известно, не очень круто для поисковиков.

    Для этого существует файл robots.txt
    Ответ написан
    Комментировать
  • Где и как хранить тестовые сайты?

    @SergeyZelensky-Rostov
    Если не устраивает все на своем хостинге держать, арендуйте отдельный хостинг или лучше vds, чтоб поисковики 100% не проиндексировалии надежнее было в плане безопасности,поставьте http-аутентификацию в корни поддоменов, клиенту даете пароль, он смотрит а остальным желающим хрен с маслом
    Ответ написан
    4 комментария
  • Как эффективнее всего изучать yii2?

    slo_nik
    @slo_nik Куратор тега Yii
    Добрый день.
    Читать документацию, смотреть проекты на github, пытаться написать своё решение для какой-либо задачи....
    Вот несколько ссылок, которые Вам помогут:
    1) rmcreative.ru (блог одного из разработчиков yii2)
    2) https://github.com/samdark/yii2-cookbook (рецепты от того же разработчика)
    3) www.elisdn.ru/blog/tag/Yii2 (один из блогов, где можно учиться работать с yii2)
    4) https://github.com/yiisoft/yii2/tree/master/docs/g... (документация на русском от разработчиков yii2)
    Ответ написан
    1 комментарий
  • Какие есть хорошие блоги о разработке сайтов?

    @archelon
    по фронтенду:
    https://frontendfront.com/ - агрегатор статей из разных источников.
    css-live.ru - в основном, переводы.
    https://www.smashingmagazine.com/ - фронтенд, вордпресс, красивые обои :-)
    Ответ написан
    Комментировать
  • Какие есть хорошие блоги о разработке сайтов?

    LenovoId
    @LenovoId
    svg, css,js
    css-tricks.com я на нём почти всегда
    Ответ написан
    Комментировать
  • Какие есть хорошие блоги о разработке сайтов?

    На русском frontender.info
    На английском
    https://css-tricks.com/
    Публикации вроде єтих
    https://habrahabr.ru/company/zfort/blog/308190/
    Ответ написан
    Комментировать
  • Как провести нагрузочное тестирование сайта на Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Это видно в дебаг панели. Вполне исчерпывающая инфа там: запросы, скорость отработки кода на сервере, время запросов, использование памяти. А потом уже можно проводить тесты с высокой нагрузкой.
    Ответ написан
    Комментировать