Профиль пользователя заблокирован сроком «навсегда» без указания причины
  • Как правильно организовать разработку с использованием docker?

    gecube
    @gecube
    системный администратор, программист... все дела..
    Черновой ответ, потому что у всех детали могут отличаться - делайте как Вам удобнее.

    1. Есть принципиально два подхода. Первый - один репозиторий - один артефакт. Он достаточно удобен, т.к. позволяет раздавать доступы на репозитории разным командам, если они пилят разные модули. Так же это в рамках гита позволяет удобно реализовать разные релизные циклы для разных модулей. С другой стороны - сразу получаете проблему интеграции всех этих репозиториев в единую систему. Обычно решается каким-то мета-репозиторием, который знает как собрать проект из кусочков. Или инклюдит все остальные репозитории как субмодули. Еще если маленьких репозиториев очень много и нужно вносить параллельные изменения в несколько сразу - это очень неудобно для разработчиков. Вторая крайность - это монорепозиторий. Когда ВЕСЬ проект состоит из одного репозитория. Это очень удобно в ситуации, когда у Вас только ОДНА, крайняя версия продукта. Т.к. всегда все собирается из одного коммита и либо все сразу срастается и есть гарантии совместимости всех модулей, либо надо исправлять код ) При этом зачастую приходится очень четко продумывать структуру проекта (например, раскладывать каждый отдельный модуль в отдельный каталог), теряете возможность работы с внешними подрядчиками (придется им заводить отдельные репки + настраивать синхронизацию), делать всякие обертки, чтобы не собирать весь проект, а только изменившиеся части, т.к. сборка всего может быть очень долгой. Но, да, этот подход тоже имеет право на жизнь. Тем более пока не попробуете сами - точно не сможете понять, что лучше
    docker-compose - это хорошо для разработки и моделирования кучки сервисов. Для продакшена не очень хорошо.

    2. Идеально - один контейнер - один сервис. Но для целей разработки можно использовать контейнеры как средство доставки чего бы то ни было и там рождаются кадавры с несколькими сервисами в одном контейнере. Но для продакшена это не очень.

    3. ansible, gitlab-ci

    4. все имеет значение. Зависит от ваших возможностей и задач. Точно стоит избегать всяких OpenVZ, лучше всего деплоится на настоящие виртуальные машины. Как правило они на KVM технологии. По операционной системе - лучше брать то, с чем умеете работать, либо можете привлечь специалистов. Т.е. популярные варианты - centos, ubuntu, debian. Все остальное можно рассмотреть только в случае каких-либо _особых_ требований. Например, очень крутая штука CoreOS, если запускать ТОЛЬКО лишь контейнеры - ничего лишнего, атомарные обновления, но хорошо это работать будет только на виртуалках, а если надо запускаться на железном сервере ? То тут уже нюансы

    5. никак. Она с докерами никак не дружит.

    6. Думать. Проектировать. Очень важно понимать как будет запускаться приложение, сколько будет реплик, как они будут взаимодействовать, делить общие ресурсы (файлы, записи в БД, очереди и пр). Касательно файлов - для докер-контейнеров - чтобы обеспечить их сохранность, все нужное нужно писать либо в bind mount, либо в volume - тогда данные не пропадут при удалении контейнера.

    > Насколько я понимаю, при разворачивании очередного релиза старые контейнеры сносятся и ставятся новые - это так?

    Совсем высокоуровнего - да, так.
    Ответ написан
    4 комментария
  • Как повесить куки на другой сайт?

    Никак
    Ответ написан
    Комментировать
  • Как показать верстку заказчику?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Запишите ролик или сделайте скрины
    Ответ написан
    2 комментария
  • Как лучше сделать подобную веб-анимацию (видео при скролле)?

    @VegasChickiChicki
    Ответ написан
    Комментировать
  • Как сравнить строки в PHP?

    @Flying
    PHP поддерживает сравнение объектов DateTimeInterface напрямую, в данном случае стоит пользоваться именно этим:
    $format = 'd.m.Y H:i';
    $tz = new DateTimeZone('UTC');
    
    $d1 = DateTimeImmutable::createFromFormat($format, '01.01.2019 15:24', $tz);
    $d2 = DateTimeImmutable::createFromFormat($format, '02.01.2019 13:56', $tz);
    
    $newer = $d1 >= $d2 ? $d1 : $d2;
    echo $newer->format(DATE_ATOM);
    Ответ написан
    Комментировать
  • Стоит ли переходить с php на java?

    neuotq
    @neuotq
    Прокрастинация
    Язык это инструмент.
    Если вы начинаете работать в области где используется другой инструмент, то да стоит выучить. И это вне зависимости от самого языка. Эти бесконечные гонки за мега правильным выбором именного того языка чтобы выучить в 2020 году, бла бла бла - пустой звон. Есть спрос, вам нравится, у вас получается? Берите учите.
    PS тема выбора технологии/стека архитектором приложения конечно же совсем иной вопрос.
    Ответ написан
    Комментировать
  • Не могу разобраться CMS, админка, и т.д. ??

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Насколько сложно выполнить мою задачу не прибегая к выше перечисленному, возможно ли это сделать на реакте, и сложно ли это для начинающего. И стоит ли самому вообще это делать, и что посоветуете учитывая мои джуновские знания?

    Сложно. Невозможно. Сложно. Не стоит.

    Делай на вордпрессе.
    Вордпресс предназначен для людей, которые вообще в программировании не понимают, так что справишься.

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

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

    @dimoff66
    Кратко о себе: Я есть
    Полагаю это связано с переводом часов. Now - после 30 октября, а created - ДО
    Ответ написан
    1 комментарий
  • Как правильно перенаправлять пользователя на нужную версию сайта?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    При заходе на главную https://examp.le, пользователя по IP и языку системы перенаправляют на соответствующий регион.
    У Вас нет главной в плане контента.
    Поэтому нужно полностью исключить главную ("/") из поискового индекса.

    Решение простое:
    1. Отключаете редиректы для всех роботов при запросе главной и возвращаете роботам код 204 No Content и пустую страницу ("<html></html>").
    2. В sitemap - прописываете все линки для всех языков, исключая главную страницу ("/").
    Ответ написан
    Комментировать
  • Как чайнику разобраться с массивами в JS?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Тут перебор циклом, но не while() и не for() — может, прокатит?
    // случайные:
    const myArray = [...Array(3)]
      .map(
        row => 
          [...Array(3)]
          .map(
            el => Math.floor(Math.random() * 10)
          )
      )
    ;
    
    // диагональ, где оба индекса равны:
    const diagonal = myArray
      .map(
        (row, rowIndex) => 
          row
          .map(
            (el, elIndex) => rowIndex === elIndex ? 1 : 0
          )
      )
    ;
    Ответ написан
    3 комментария
  • Насколько безопасно делать валидацию формы через javascript?

    DevMan
    @DevMan
    валидацию нужно делать и на клиенте (для отзывчивости, да и нечего гонять невалидные данные по сети), и на сервере (собственно для проверки).
    Ответ написан
    Комментировать
  • Как создать php - table?

    mahmudchon
    @mahmudchon
    <?php
    echo '<img style="width: 242px; height: 224px;" src="https://habrastorage.org/webt/5d/af/4f/5daf4facbe8c6020796636.png" alt="такое">';
    Ответ написан
    2 комментария
  • Какую выбрать сферу в IT с нуля когда тебе "под 40"?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Удивительно, как люди машут на себя хвостом уже в 37. С другой стороны, тут и 30-летние нытики не редкость.

    По теме: в веб не идите ни в коем случае.
    Идите в 1С, например, у меня есть много примеров ребят под 40, которые быстро подхватили эту тему и добились в ней успеха.

    И добавьте себе пункт «Повзрослеть», я как будто малолетнего вайтишного студента прочитал (вру, не читал). Просто поразительно, как к 37-ми можно так инфантильно относиться к своей жизни и, в частности, к своим знаниям.
    Ответ написан
    42 комментария
  • Как загружать много картинок через один input[file]?

    @Nc_Soft
    <?php
    if($_FILES) {
        print_r($_FILES);
        die();
    }
    ?>
    <html>
    <body>
    <form method="POST" enctype="multipart/form-data">
        <input type="file" name="file[]" multiple>
        <button type="submit">LOAD</button>
    </form>
    </body>
    </html>

    вывод
    Array
    (
        [file] => Array
            (
                [name] => Array
                    (
                        [0] => 6FYITcA2Grs.jpg
                        [1] => 7Vbe6k311ns (1).jpg
                    )
    
                [type] => Array
                    (
                        [0] => image/jpeg
                        [1] => image/jpeg
                    )
    
                [tmp_name] => Array
                    (
                        [0] => /private/var/folders/7r/hm0mck8s795dmctppqh7bgwm0000gn/T/phpAS3jPp
                        [1] => /private/var/folders/7r/hm0mck8s795dmctppqh7bgwm0000gn/T/phpfkqzQa
                    )
    
                [error] => Array
                    (
                        [0] => 0
                        [1] => 0
                    )
    
                [size] => Array
                    (
                        [0] => 278560
                        [1] => 50086
                    )
    
            )
    
    )
    Ответ написан
    Комментировать
  • Когда пишут: (function() { //somecode })() - это зачем так делают - функцию в скобочки?

    @alexhovansky
    Это самовызывающаяся функция
    Ответ написан
    Комментировать
  • Почему код выполняется асинхронно?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Потому что это асинхронный код. Какого еще ответа вы ждали?
    Ответ написан
    Комментировать
  • Почему так странно нумеруются childNodes в DOM-навигации?

    @DanKud
    Потому что childNodes это не только дочерние тэги внутри элемента. Это и текст внутри элемента. В вашем случае каждый перенос строки это отдельная нода. Если сделать так, то будет как вы хотите:

    <div id='row'><div class='col-tm'>apple</div><div class='col-tm'>banana</div><div class='col-tm'>cranberry</div></div>

    Для получения HTMLCollection есть метод children и тогда текст без тэгов внутри элемента учитываться не будет:

    var elem_apple = first_column.children[0];
    Ответ написан
    4 комментария
  • Как правильно исправлять ошибки в npm пакетах?

    Ahen
    @Ahen
    Универсальный дилетант
    Не уверен, но глянь https://www.npmjs.com/package/patch-package
    Позволяет патчить пакеты, позволяет применять патч при npm install, держать в голове не нужно будет, ибо патчи будут храниться в отдельной папке.

    No more waiting around for pull requests to be merged and published. No more forking repos just to fix that one tiny thing preventing your app from working.
    Ответ написан
    Комментировать
  • Как создать CSV используя symfony serializer?

    BoShurik
    @BoShurik Куратор тега Symfony
    Symfony developer
    $data = [
       [
          'Name' => 'Alex',
          'Age' => '26',
       ],
       [
          'Name' => 'Alex2',
          'Age' => '20',
       ],
    ];
    Ответ написан
    Комментировать
  • Почему у PostgreSQL и MySQL точность даты только до микросекунд?

    petermzg
    @petermzg
    Самый лучший программист
    Повышенная точность требует повышенные ресурсные затраты.
    Для большинства пользователей такая точность не нужна, а если необходимость и возникнет, то ее можно реализовать альтернативным способом, для примера через хранение этих экстра значений в отдельном поле таблицы.
    Ответ написан
    9 комментариев