• Как вывести элементы массива на экран с пробелом цыклом for?

    @slxxxix
    Если JS браузерный, то, по соображением совместимости, лучше "var", чем "let"
  • Как вывести элементы массива на экран с пробелом цыклом for?

    @slxxxix
    let mass = [4,7,10,13]
    let out = document.getElementById("root")

    out.innerHTML = mass.join(" ")
  • Какие плагины вы считаете стандартными для работы в WordPress?

    @slxxxix
    ⬆️ также, является объяснением "почему имена плагинов даны в такой нотации"
  • Какие плагины вы считаете стандартными для работы в WordPress?

    @slxxxix
    Бонус – кусок скрипта для установки этих плагинов (без декларирования переменных):
    #!/bin/bash
    
    ########################
    # wp cli
    curl -o /usr/local/bin/wp -L https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
    chmod +x /usr/local/bin/wp
    cat > /etc/cron.daily/wp-cli-update << EOF
    #!/bin/bash
    wp --allow-root cli update --stable --yes
    EOF
    chmod +x /etc/cron.daily/wp-cli-update
    echo "Creating database $DB_NAME..."
    mysql -u$DB_USER -p$DB_PASS -e"CREATE DATABASE $DB_NAME;"
    mysql -u$DB_USER -p$DB_PASS -e"GRANT ALL PRIVILEGES ON $DB_NAME.* TO $WP_DB_USER@localhost IDENTIFIED BY '$WP_DB_PASS';"
    # Download WP Core.
    wp core download --path=$SITE_PATH --locale=ru_RU --allow-root
    # Generate the wp-config.php file
    wp core config --path=$SITE_PATH --dbname=$DB_NAME --dbuser=$WP_DB_USER --dbpass=$WP_DB_PASS --extra-php --allow-root <<PHP
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    define('WP_DEBUG_DISPLAY', true);
    define('WP_MEMORY_LIMIT', '256M');
    define('FS_METHOD','direct');
    PHP
    # Install the WordPress database.
    wp core install --path=$SITE_PATH --url=$BASE_URL --title="$SITENAME" --admin_user="$WPADMIN" --admin_password="$WPPASSWORD" --admin_email="$EMAIL" --allow-root
    # install wp plugins
    wp plugin install woocommerce \
    wordpress-seo \
    classic-editor \
    w3-total-cache \
    show-current-template \
    facebook-for-woocommerce \
    advanced-custom-fields \
    relevanssi \
    wp-smushit \
    --path=$SITE_PATH --activate --allow-root
    chown -R www-data:www-data /var/www/html/
    ########################
    # letsencrypt
    certbot -d "$DOMAIN" -n --nginx --agree-tos --register-unsafely-without-email
  • Какие плагины вы считаете стандартными для работы в WordPress?

    @slxxxix
    О чем говорю:
    1. заказчику интересно – выполнение требований (как правило, технически неграмотное лицо, для которого важно чтобы "все работало и, желательно, само") и (грубо говоря) не важно какими силами вам это далось (образование, опыт, время на реализацию (в случае фиксированной оплаты, не почасовой) и т.п.)
    2. вам[, возможно,] интересно заниматься дальнейшей поддержкой
    2.1. и[, возможно,] хотелось бы иметь возможность заниматься формированием цены на таковую поддержку
    3. соответственно, какая разница, для вас, даже ставя себя на место заказчика,
    3.1. сколько поддержка этого проекта будет стоить
    3.2. сколько времени это будет занимать у человека, которому результат вашей работы на поддержку отдали
    3.3. сколько времени заказчика уйдет на поиск альтернативных вариантов, если вы "не договорились"
    С уважением,
    Никита

    _____ 2019-19-09 16:33 @dimasmagadan
    серьезно? и часто этим процессом приемки-сдачи заказчики пользуются?

    Это основа договорных отношений. Результат действий сдается по акту приема-передачи. Этим пользуются все, кто готов подписать договор, в котором предусмотрена передача результата оговоренной договором работы.
    вы же понимаете, что, чтоб иметь возможность оценить качество кода, написан ли он по стандартам, есть ли там дыры в безопасности и прочее такое, нужно минимум про это все знать? учитывая, что большой процент заказчиков даже в WP не разбирается, это мало реально.

    Я об этом написал выше,
    Возможно, на изначальный выбор исполнителя времени не потратили. Результат работы не проверяли.

    Можно потратить время на аналитику, изучив как ее делать, оценить работу. Можно нанять для этого третье лицо для осуществления данных действий.
    – В любом случае, результат работы оценивается исходя из поставленных задач. Сложно будет в смету включить то, что заказчик не имеет возможности понимать – вам придется долго объяснять для чего это нужно и чем это может быть полезно или нанять человека, способного это сделать.
    Если задачи "без неуязвимостей" и "с функциональными, структурными, нагрузочными, UI/UX тестами", с "CI/CD", "возможность A/B тестирования по когортам", "чтобы работало на контейнерах с изоляцией от БД" и прочие фокусы, которые есть возможность реализовать, но за которые не платили не стояло – стоит ли это делать, если все, что требуется, чтобы сайт работал, например, "весь год и лежал не более суток в сумме", но за "мало рублей"? Вы бы за это взялись?
    Ваша и Никиты точка зрения идет с позиции разработчика, там да, чужой код/плагин зло, хочу кодить сам и потом сам сидеть на поддержке - это оптимально.
    С точки же зрения тех.лида/заказчика, такая позиция плохо. Тут лучше унификация и максимально возможное использование готовых решений. И свой код только в том случае, если нет аналогов или кастомизация/подгонка плагина займет дольше.
    Банально - заплатить программисту за написание кода будет одна сумма, за настройку такого же функционала плагином совершенно другая.

    Одно дело – на окладе сидеть (почасовом или ежемесячном), другое дело – проектная работа. В большинстве случаев, я занимаюсь проектной работой, где выгоден именно описанный вами подход (бизнес). Естественно, я бы не стал нанимать людей на поддержку долгосрочных проектов, придерживающихся этой модели. Там другие задачи: доработки через рефакторинг, отказоустойчивость, не нужно экономить человеко-часы.

    ____ 2019-09-19 16:46
    А еще, в проектной работе, чтобы заказчик не сменил исполнителя, мы часто используем IonCube, Zend, UglifyJS и прочие вещи, которые не позволят легко продолжить проект на стороне даже при условии передачи исходных кодов, которые, юридически, являются результатом работы обфускаторов т.к. подлежат интерпретации. Такие дела.

    ____ 2019-09-19 16:50
    То есть, я к тому, что если код в принципе читаем, когда вам пришел проект на поддержку, то это – уже хорошо :)

    ____ 2019-09-19 16:56
    Алсо про это:
    хочу кодить сам и потом сам сидеть на поддержке - это оптимально. С точки же зрения тех.лида/заказчика, такая позиция плохо.

    Позиция заказчика и исполнителя изначально противоположные. Один хочет меньше сделать, другой чтобы было больше сделано. Один хочет чтобы была большая сумма контракта, другой чтобы меньшая. Один хочет иметь больше власти, другой тоже хочет иметь больше власти. Один имеет возможность запрашивать оплату, другой отказываться оплачивать. Один имеет возможность не давать исходники, другой имеет право хотеть их получить.
    Противостояние двух сил, как обычно. Правда где-то посередине. Но ведь никто не хочет ее принимать, так? Хотите, сделаем интернет-магазин за 1 000 000 руб. ? Ответ: хочу за 1 000? Середина будет 500 500. Не очень, правда? Зато будут все тесты, о которых я писал выше. За дополнительную плату мы добавим возможность покупать на сайте (наложенный платеж) и при еще небольшой оплате подключим эквайринг и, если еще доплатите, обеспечим соответствие 54-ФЗ. Вот вам и видение, что будет, если находиться посередине между заказчиком и исполнителем.
  • Какие плагины вы считаете стандартными для работы в WordPress?

    @slxxxix
    Дмитрий, У вас же сдача проекта не сводится к "либо пан/либо пропал"? Часто бывают правки?
  • Какие плагины вы считаете стандартными для работы в WordPress?

    @slxxxix
    Но попробуйте поставить себя на место заказчика?

    Зачем? Есть процесс приемки-сдачи работы.

    Допустим, сайтом занимался один программист, написал все своим кодом. Затем по какой-то причине пришлось сменить этого программиста. Приходит другой. А там половина кода по стандартам, половина какими-то своими хаками и никакой документации.

    Возможно, на изначальный выбор исполнителя времени не потратили. Результат работы не проверяли.

    сделать ваш код совместимым этому новому программисту нужно будет его переделывать

    Или отказаться от выполнения проекта на стадии согласования.