• Как въехать в программирование (ООП, паттерны)?

    parschakov
    @parschakov Автор вопроса
    Начинающий изучать PHP и JS
    про SOLID действительно очень интересно, понравилось объяснение от Дмитрия Афанасьева, оставлю ссылку на плейлист здесь думаю будет интересно подписавшимся на вопрос.
    Ответ написан
    2 комментария
  • Как въехать в программирование (ООП, паттерны)?

    GTRxShock
    @GTRxShock
    Full-stack developer (Symfony, Angular)
    если программируете на php 2-3 года, то пора бы перед сном почитать РНР: объекты, шаблоны и методики программирования (Зандстра) желательно в бумажном варианте.

    + Паттерны проектирования (Фримен) для общего/наглядного понимания паттернов
    + www.phptherightway.com основные тезисы
    + Рефакторинг: улучшение проекта существующего кода (Фаулер) & https://refactoring.guru/ru на будущее, к чему стремиться :)
    Ответ написан
    4 комментария
  • Как на NGINX сделать "http to https" и "www to non-www" сразу для пары доменов?

    kompi
    @kompi
    nullstack devoops
    А если так попробовать:
    server {
        listen              80;
        server_name "~^(www\.)?(.*)$" ;
        return 301 https://$2$request_uri ;
    }
    server {
        listen              443 ssl;
        server_name "~^www\.(.*)$" ;
        return 301 https://$1$request_uri ;
    }
    server {
        listen              443 ssl;
        server_name domain.ru domain.com;
        # основная секция
    }

    Для особых извращенцев:
    server {
        listen              80;
        listen              443 ssl;
        server_name server_name "~^(www\.)?(.*)$";
    	if($scheme = https) {
    		if($1 = www) {
    			return 301 http://$2$request_uri;
    	    }
        }
    	if($scheme = http) {
    		return 301 http://$2$request_uri;
    	}
        # основная секция
    }

    По-хорошему, регулярок не должно быть. Если это два разных сайта, то лучше разделить конфиги, если это зеркало и основной, то в return прописать основной и убрать регулярки.
    server {
        listen              80;
        server_name www.domain.com domain.com;
        return 301 https://domain.com$request_uri ;
    }
    server {
        listen              80;
        server_name www.domain.ru domain.ru;
        return 301 https://domain.ru$request_uri ;
    }
    server {
        listen              443 ssl;
        server_name www.domain.ru;
        return 301 https://domain.ru$request_uri ;
    }
    server {
        listen              443 ssl;
        server_name www.domain.com;
        return 301 https://domain.com$request_uri ;
    }
    server {
        listen              443 ssl;
        server_name domain.ru domain.com;
        # основная секция
    }
    Ответ написан
    Комментировать
  • Стал работать по часам и обнаружил, что выходит 6 часов в день. Это нормально?

    Sir_Waat
    @Sir_Waat
    Business Analytics, Scrum Master
    Скажу по опыту работы с разными командами + опыт коллег. Если разработчик\менеджер\маркетолог\ктоугодно работает в день 6 часов не отвлекаясь на внешние раздражители и выполняет свою работу - это считается идеальным человекоднем. Правильно распределенные перерывы на размять конечности и попить чаю\кофе позволяют за эти 6 часов сделать масимум полезной работы, т.к. чисто физически невозможно эффективно и вовлеченно работать 2 промеждутка по 4 часа в день с минимальными перерывами.
    Ответ написан
    Комментировать
  • Стал работать по часам и обнаружил, что выходит 6 часов в день. Это нормально?

    Maksclub
    @Maksclub Куратор тега Карьера в IT
    maksfedorov.ru
    Не забывайте, НИКОГДА не забывайте, что в ваше рабочее время входит не только полезная работа (написание кода):
    - разобраться с той или иной информацией, изучение проблемы
    - анализ и преоктирование
    - просто изучение нового (подходы, библиотеки)
    - отдых в определенном проценте (не считая обеда)

    Если за вас это не делает работодатель, делайте за него.
    В будущем, если будете управлять коллегами — делайте это для них.

    Главное для любого человека — он сам, никакая зп не переплюнет эгоизм, помните это.
    Ответ написан
    Комментировать
  • Разве Composer бесполезен в 2017?

    search
    @search
    мама говорит что я особенный
    Композер - это, пожалуй, лучшее что произошло с пхп 5й версии.
    Валить или переубеждать тимлида - это по сути одно и тоже, если присмотреться. Просто демонстрация вашей неспособности брать на себя ответственность.

    Года 3 назад на моей прошлой работе в команду пришел очень толковый проактивный человек, который никого не стал переубеждать. Он просто стал делать правильные вещи. Без объяснений. И без приглашений. Коммитеть юнит тесты. Подключать линтеры. Деклайнить неудачные пулл-реквесты. В итоге он сам стал тимлидом где-то через год.

    Такие дела.

    Не у всех, правда, стальные яйца. Но за проактивность никогда еще не увольняли. Если вы уже создали пулл реквест, то "переубеждение" становится задачей тимлида.
    Ответ написан
    3 комментария
  • Зеркалирование сайта / репликация MySQL?

    akalend
    @akalend
    программирую
    >Подскажите средства для автоматического переключения на зеркало.
    nginx/upstream — для WEB
    mysql_proxy
    Ответ написан
    4 комментария
  • Как сохранить правила iptables после перезагрузки Ubuntu?

    EKrava
    @EKrava
    в debian и ubuntu добавили пакет iptables-persistent
    который использует iptables-save/iptables-restore

    #service iptables-persistent
    Usage: /etc/init.d/iptables-persistent {start|restart|reload|force-reload|save|flush}

    после настройки правил как нужно, сделать service iptables-persistent save и при следующей загрузке они будут применены
    Ответ написан
    4 комментария
  • Как настроить uTorrent 3.4.3 на последовательное скачивание блоков?

    @0x2d7e21
    Чтобы увидеть эти пункты (дополнительные параметры - bt.sequential_download и bt.sequential_files) необходимо нажать с зажатыми клавишами [Shift]+[F2]: Options -> Preferences -> Advanced
    Ответ написан
    1 комментарий
  • Какой порядок работы с git?

    @aol-nnov
    смартгит в стороночку откладываешь, книжечку в руки https://git-scm.com/book/ru/v2
    практика командами гита, потом понимание процесса придет, а желание пользоваться смартгитом, скорее всего - уйдет.

    можно работать!
    Ответ написан
    Комментировать
  • Как сделать видеопривью на видео?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    ffmpeg мощнейший инструмент, я бы рекомендовал использовать именно его.

    Не совсем понятно, какой именно превью вы хотите делать из загруженных видео: то ли анимированный gif, то ли отдельные статичные кадры выдирать из видео - каждый отдельной картинкой. Но всё это делается именно ffmpeg'ом. Уточните задачу, я подскажу примерные параметры.

    Вкратце, ffmpeg это исполняемый файл, есть под Linux, Mac, Windows. Позволяет перекодировать видео, обрабатывать эффектами, создавать анимированные GIF'ы и пр. и пр.
    Ответ написан
    1 комментарий
  • Доменная зона .io — что я пропустил?

    Один из омонимичных доменов:

    .am — национальный домен Республики Армения, созвучен с диапазоном радиостанций AM или как зона AMerica.
    .cd — национальный домен Демократической республики Конго (иначе — Заира), совпадает с сокращением для компакт-диска.
    .dj — национальный домен Джибути, совпадает с сокращением «диджей».
    .fm — национальный домен Федеративных Штатов Микронезии, созвучен с диапазоном радиостанций FM. Пример: last.fm.
    .im — национальный домен Острова Мэн. Совпадает с сокращением Instant Messaging («мгновенные сообщения»).
    .io — национальный домен Британских территорий в Индийском океане. Совпадает с сокращением Input Output («ввод/вывод»).
    .is — национальный домен Исландии. Совпадает со словом is, формой третьего лица единственного числа английского глагола to be. Пример: who.is
    .it — национальный домен Италии. Совпадает с сокращением IT (информационные технологии), а также с английским местоимением it («это»). Пример: ok.undo.it
    .md — национальный домен Молдавии. Совпадает с сокращением аудионосителя MiniDisc и с сокращением Must Die. Также совпадает с сокращением от англ. medical doctor, используемым повсеместно в англоязычных странах. Например, известный американский сериал «Доктор Хаус» в оригинале называется House, MD.
    .me — национальный домен Черногории. Совпадает с местоимением «меня», «мне» в английском и других европейских языках.
    .net — общий домен верхнего уровня, совпадает с русским словом «нет», из-за чего обрёл в России (и не только) дополнительную популярность. Часто используется с доменными именами в виде транслитерированных русских слов. Примеры: mozga.net, lishnih.net.
    .nu — национальный домен острова Ниуэ, созвучно со словом ню.
    .tm — национальный домен Туркменистана, совпадает с аббревиатурой «™» (англ. trade mark — торговая марка).
    .tv — национальный домен Тувалу, совпадает с аббревиатурой «Телевидение».
    .ws — национальный домен Западного Самоа, совпадает с аббревиатурой Web Site.
    .in — национальный домен Индии, с английского языка переводится как предлог «в».
    .li — национальный домен Лихтенштейна. Совпадает с окончанием глаголов и имён существительных в русском языке. Используется с доменными именами в виде транслитерированных русских слов. Примеры: zadolba.li, zastuka.li, vaf.li, gus.li, yas.li.
    .pro - общий домен верхнего уровня для профессионалов в своей области.
    Ответ написан
    3 комментария
  • Зеркалирование сайта на WordPress. Какие варианты?

    MetaDone
    @MetaDone
    Хорошо сформулированный вопрос - 50% решения
    Используйте сеть сайтов и domain mapping
    Статьи можно синхронизировать через https://wordpress.org/plugins/threewp-broadcast/
    Ответ написан
    Комментировать
  • Как отделить важные данные от конфигов?

    @D3lphi
    Для этого есть замечательная библиотека - dotenv. Суть в том, что вы храните данные в отдельном файле .env, который добавляете в .gitignore. А в vcs коммитете файл .env.example, в котором присутствует только "скелет" параметров без значений. Тому, кто будет устанавливать ваше приложение будет необходимо переименовать файл .env.example в .env и заполнить необходимые опции. Значения из этого файла можно получить по средствам функции env(). Эту библиотеку, кстати, использует популярный php - фреймворк Laravel.
    Ответ написан
    5 комментариев
  • Какой опыт Git нужен веб-разработчику для работы в команде в компании?

    Желательно понимать, что делают и зачем нужны следующие команды:
    git status
    git checkout
    git reset
    git fetch
    git pull
    git push
    git diff
    git add
    git commit
    git stash
    Ответ написан
    7 комментариев
  • Как писать API?

    KIVagant
    @KIVagant
    Разработчик web-сервисов
    1. Жесткая типизация и контроль входных и выходных данных. Много проблем получали, когда php-сервер отдавал string вместо int, например.
    2. Предусмотреть разный формат возвращаемых данных — json, xml и т.п. — на клиентсайде может оказаться не только ios.
    3. Предусмотреть перехват всех внутренних ошибок и исключений, чтобы клиент всегда получал логичный ответ вместо неожиданных ошибок.
    4. REST моден, но совершенно необязателен. После нескольких лет существования некоторых сервисов мы только сейчас начали вводить поддержку REST. Это нам не мешает разрабатывать популярные мобильные приложения на всех видах устройств.
    5. Изучите хорошие примеры сервисов и наоборот — ужасные примеры (Facebook). Никогда и ни за что не делайте, как у FB.
    6. Предусмотрите инструменты отладки.
    7. Сразу продумайте версионность. Выпустив однажды мобильное приложение уже нельзя будет просто поменять API.
    8. Можно сразу заложить инструменты кеширования и авторизации на уровень ядра API. Например, в одном приложении мы передавали oauth-токен в заголовках. Это позволило избавиться от постоянных проверок авторизации внутри модулей API, отдав это в родительские классы и управляя доступами через конфиги.
    И т.п.
    Ответ написан
    3 комментария
  • Что почитать по созданию RESTful API новичку ?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Сегодня искал хорошее пояснение REST и наткнулся на What exactly is RESTful programming?. Оставил его здесь для истории, возможно кому-то также как и мне пригодится
    Ответ написан
    1 комментарий
  • Что почитать по созданию RESTful API новичку ?

    @1nd1go
    Ответ написан
    Комментировать
  • Как настроить git на работу со существующим проектом?

    kuzemchik
    @kuzemchik
    чет как-то сложно:

    cd /home/sitename.ru/
    mkdir www.git
    cd www.git
    git init --bare

    cd ../www
    git init
    git add *
    git commit -a -m «Initial commit»
    git remote add origin www.git
    git push -f origin

    с локальной:
    git clone ssh://ip_address/home/sitename.ru/www.git
    Ответ написан
    4 комментария
  • GIT как правильно пользоваться?

    @xfg
    Github Flow за 5 минут.

    1. Создал ветку для фичи/фикса
    2. Сделал в ветку несколько коммитов
    3. Отправил пулл риквест
    4. Обсудил с коллегами пулл риквест и при необходимости внес правки
    5. Прогнал ветку через тесты.
    6. Влил в master
    7. Выкатил master на продакшн

    Если фича ветка долго не мержится и начинает расходиться с master веткой, то вливаем master в фичу ветку и продолжаем.

    Если кто-то из команды хочет руками потестить новую фичу, то может сделать
    git checkout -b new-feature origin/new-feature
    И потестить руками локально на своей дев машине.

    Update: Если sql база, то пишут миграции. Можно посмотреть в любом фреймворке что это и как использовать. После каждого git pull пробуем накатить миграции через консоль (можно хук для гита написать) и если есть новые миграции, то они применятся к локальной базе. Если nosql база типа mongo, то ничего не надо, они schemaless.

    На продакшине, вытягиваем код из гита в отдельную директорию. Применяем миграции к базе, затем симлинк переключаем с директории со старой версией проекта на директорию с новой версией проекта. Если миграции ломают старую версию проекта, то предварительно нужно выключить проект, чтобы у пользователей не сыпались всякие непойманные исключения. Это вкратце, для всего этого нужно подобрать себе уже готовый инструмент деплоя, который это все автоматически будет делать.
    Ответ написан
    5 комментариев