• Как правильно настраивать дев-окружение для веб-разработки?

    @xfg
    Не думайте о доменах. Вы смешали администрирование и программирование. Не нужно никакого dev сервера. Делайте работу на локальной dev машине, отправляйте изменения в удаленный репозиторий и всё. Можете вообще не устанавливать nginx/apache и т.д. на локальную dev машину, чтобы не забивать голову всякими доменами, а проект запускать под встроенным PHP сервером например из корня проекта и тогда будете обращаться к вашим сервисам по адресу localhost:port/service1/index.php, localhost:port/service2/index.php и т.д.

    Домены будете создавать уже на продакшене. В простейшем случае склонируете на продакшн машину удаленный репозиторий проекта и в конфигах nginx нужно будет написать что-то типа такого

    server {
      server_name company.com;
      root /home/www/company/frontend;
     ...
    }
    server {
      server_name admin.company.com;
      root /home/www/company/backend;
     ...
    }
    server {
      server_name service1.company.com;
      root /home/www/company/service1;
     ...
    }
    server {
      server_name service2.company.com;
      root /home/www/company/service2;
     ...
    }


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

    Так и делают. Разработчикам не нужен никакой dev сервер. Они клонируют репозиторий, делают что-то локально у себя и отправляют изменения в удаленный репозиторий. Для тестеров и всяких менеджеров просто поднимают так называемый stage-сервер где они и тестируют приложение, но это тоже самое что и продакшн сервер, просто доступ к нему только внутри компании. Можно настроить continuous integration чтобы все изменения из репозитория в master ветке автоматически бы приводили к деплою приложения на stage и продакшн сервера. Примерно так в общих словах устроена веб разработка.
    Ответ написан
    22 комментария
  • Какой язык программирования изучить в целях саморазвития?

    @SilentFl
    Я рекомендую Go - статический, и ООП, и CSP. А для саморазвития лучше выходить из своей зоны комфорта и брать "совсем не ООП" - Forth, Haskell, Erlang, Prolog, Perl, Ruby.
    1) Forth - стековый язык, начинаешь изворачиваться с ограничениями, прокачка оптимизаций
    2) Haskell/Prolog - функциональные языки, "все совсем не так", начинаешь программировать рассматривая программу комплексно, как единое целое
    3) Erlang - даже если про него просто почитать, то понимаешь что такое настоящий инженерный подход к разработке _больших_ программных комплексов, а после осознания мощи акторов - смеешься над threads других языков
    4) Perl/Ruby ну и Python сюда же - очень рекомендую посмотреть на их методы работы с коллекциями, они позволяют компактно, в пару строчек, выразить то, что для того же С/С++ заняло бы пару-тройку десятков строк
    5) ну и Assembler, конечно же, после него начинаешь понимать архитектуру компа и других программ, и методы повышения производительности своего кода
    Как-то так, имхо.
    Ответ написан
    Комментировать