Для чего meta name="viewport"?Для того, что бы мобильные не масштабировали сайт в "полноформатный" режим. Не могу сказать, "как оно там будет работать конкретно у Вас", но от этого мета-тега хуже не станет точно, если вёрстка адаптивная.
Здравствуйте.Здравствуйте.
Разрабатываю SPA приложение на JavaScript и php (в будущем замена на Node.js) на сервере для реализации API.Что именно Вы разрабатываете и на чём - значения не имеет, если исходный код представляет из себя файлы.
Перед реализацией какой-то новой фичи или рефакторинга приходится делать просто ручной бекап файлов и на клиенте и на сервере, а порой еще и структуру базы.Вместо этого - просто берёте и делаете новую ветку.
Подскажите пожалуйста, как было бы наиболее эффективно внедрить GIT, что бы упростить все вышеописанное?Для наиболее эффективного внедрения Git - обычно используют его установщик (инсталлятор, пакет и т.п.) под соответствующую операционную систему.
Использую Atom, но без проблем могу перейти на любой другой свободный редактор/IDE.Git никак не связан с редакторами и/или IDE, можете использовать что угодно или вообще сторонний Git-клиент, типа TortoiseGit (и прочих подобных).
То есть хотелось бы одним коммитом сохранить и JS и PHP код.Вы можете сохранять одним коммитом любое количество файлов (если сильно углубиться в подробности, то дельты изменения файлов, но это Вам не очень интересно, я думаю).
Разработку веду сразу на рабочем vps используя ftp плагин для Atom, который позволяет редактировать файлы на сервере, как локальные.Можете поставить Git в т.ч. и на удалённый сервер и обновлять там файлы проекта с помощью "push"а, но, с учётом конктекста Вашего вопроса, я бы всё-таки порекомендовал для начала разобраться с Git'ом получше, а сервер для разработки всё-таки ставить локально и не лохматить бабушку.
Как добавить в div еще один class, но только для первой картинки?
Что посоветуете по фронтенду? Vue? Есть ли там какие-то наборы компонент по аналогии с ExtJs.Я конечно могу ошибаться (на счёт ExtJS), но по моему, ExtJS - это набор копонентов, а Vue - это JS-фреймворк, что само по себе несколько разные вещи... Компоненты для VueJS есть, их много, в т.ч. готовых, они бывают самые разные и скорее всего, какие-то таблицы, календари, кнопки и прочую белиберду для Vue уже либо адаптировали, либо написали, либо [что-то ещё], но от этого аналогом ExtJS он не стал.
Особенно удобные гриды интересуют.Удобные гриды есть сами по себе, их масса и к Vue или ExtJS'у они обычно отношения не имеют (хотя, вполне могут быть представлены как компонент VueJS или адаптированы специально под него), например: DataTables.
Такое vue может или всё с 0 ручками там пилить надо будет?Как я уже говорил ранее, в режиме "из коробки" в Vue нет вообще никаких "компонентов" (я имею в виду компонентов аки jQuery UI и ему подобных), он для другого предназначен. А может или нет... - скорее может, чем нет. Но можно и "ручками".
Если всё с 0, то где можно посмотреть бесплатные макеты-вёрстки аля админка? Я не дизайнер просто.Как бы это странно не прозвучало, но в поисковике. Там этого добра - тонна, "по рублю за пучёк", например: раз, два, три и т.д.
Но тут наверное мне нужен микрофреймворк. С lumen/slim/symfony4 - что было бы проще или лучше?По моему, Symfony-4 это всё же не микрофреймворк... Это всё тот же старый добрый симфони, после "серьёзной липосакции" по умолчанию. Микрофреймворк от авторов Symfony -- это Silex.
Насколько надежен этот хеш? Реально ли получить исходный пароль зная хеш? Возможно это в принципе?Надёжность хэша зависит от алгоритма хэширования.
Я думаю это довольно надежная защита. Но как это реализовать?Я тоже думаю, что это довольно надёжная защита от брутфорса паролей, что в целом никак не говорит о защите во всём остальном. Как реализовать - самые простые варианты:
Реально ли получить исходный пароль зная хеш? Возможно это в принципе?Сам по себе хэш - это не необратимый тип шифрования, если вопрос в этом. Иными словами, хэш-алгоритмы какой либо "расшифровки" не подразумевают априори. Но, реально существуют готовые таблицы хэшей для md5 (я думаю, что и для других алгоритмов хэширования они существуют тоже и то, что Вы уже догадались, что таблица представляет из себя исходные данные и результат их хэширования), с помощью которой в некоторой степени "расшифровать" md5 можно (ну если конечно не брать во внимание тот факт, что совершенно разные комбинации могут в итоге давать одинаковый хэш, т.к. кол-во комбинаций бесконечно, а кол-во вариаций хэша всё-таки имеет какое-то конечное значение).
Я подумал начать изучать криптографию, чтобы улучшить защиту и хранить не хеш пароля, а хеш шифра пароля.Осталось дело за малым:
Безусловно, нужно еще этот метод шифровки придумать, но это уже другой вопрос.
Подскажите, пожалуйста, если ли такие программы, которые определяют как сильно загружает и замедляет систему, определенная программа? Например: запускаем тест - программа выдает цифру оценки системы - 94.3%, после установки антивируса и повторном тест - цифра оценки системы уже 91.2%.Вы же понимаете, что грузят систему не "программы", а конкретны процессы, причём они могут быть как частью отдельной программы, так и не иметь к ней никакого отношения?
Как обычно компании решают данную проблему?Обычно эту проблему решают одним из следующих способов:
Прописать в ChrootDirectory /var/www/site_dev/assets. не могу, поскольку права на запись в /var/www/ нужны многим группам пользователям.Не совсем понимаю, как права других пользователей связаны с Chroot'ом, в Вашем случае... Ну да не суть.
Есть вариант забирать кроном каждую секунду фаилы из /home/%u/ и перемешать в кнечную папку, но это както не правильно.Крон изначально запускается 1 раз в минуту (минимум) и не очень приспособлен для того, что бы делать что-то каждую секунду. В этом случае, проще было бы написать скрипт с бесконечным циклом и не забивать крон как минимум 60-ю заданиями (что бы они запускались через секунду). А если правильнее - использовать для этого какую-то систему синхронизации, например, Rsync.
Стоит ли минифицировать и склеивать файлы, если есть http2 и gzip?GZIP тут играет довольно малую роль, к тому же, он был (и есть) и в HTTP1.0/1.1. К минификации он тоже никак напрямую не относится, от слова совсем. Минифицированные файлы становятся меньше с GZIP'ом, в сравнении с неминифицированным, сжатые тем же GZIP'ом (при прочих равных условиях).
Кроме того, действительно ли такая оптимизация в наше время важна?Это риторический вопрос. Что-то из области: "Действительно ли так важен мизинец на ноге, или можно его отрезать?"
Если да, то посоветуйте нормальные, не "смузи-хипсторские" решения, которые не требуют отдельного сервера с целым зоопарком технологий в придачу?Единственная известная мне технология, которая требует какого сревера - это модуль "Google PageSpeed", который подключается к Apache'у или "вкомпилировывается" в Nginx. При этом, отдельного сервера он не требует, достаточно того, что установлен в 95% случаев (Nginx и/или Apache). Но, Вы приспокойно можете минифицировать и сжимать файлы и без него, используя для этого массу готовых решений которые не требуют вообще никакого сервера и работают обычно локально, например решения на базе NodeJS (gulp) - модулей просто тонны, но если хотите, могу поискать за Вас. А так же, есть масса онлайн-сервисов занимающихся тем же самым, которые так же, не требуют наличия чего либо, кроме разве что браузера.