В мире Интернета происходит переход.

С развитием фреймворков Javascript и хранения данных на основе документов NoSQL (среди прочего, но не будем перегружать себя) сейчас самое подходящее время для перехода на эти технологии в ваших веб-проектах.

В JKRB Investments у нас есть культура постоянного обучения; мы должны работать в самых быстро развивающихся отраслях, в которых мы участвуем; сеть, блокчейн и искусственный интеллект. У нас есть естественная склонность тестировать новые технологии и внедрять то, что имеет смысл.

Почему это важно?

С новыми технологиями приходят продукты превосходного качества. Преодолеваются узкие места и снижаются эксплуатационные расходы. Вещи становятся более эффективными и простыми в управлении. Учтите, что учащиеся будут изучать передовые технологии с самого начала. Все, что они изучают сейчас, будет лучше, чем у 10-летнего веб-ветерана.

Но опыт бесценен в веб-разработке и программировании. Если вы начали некоторое время назад в эпоху веб 2.0, не позволяйте новичкам обойти вас. Вы можете догнать, и догнать быстро.

Я много раз видел сценарий ветерана веб-разработки; веб-разработчик с более чем 10-летним опытом, по-прежнему предлагающий те же услуги, которые они предлагали в течение последних 10 лет своей карьеры. Статический веб-сайт web2.0, работающий на сервере Apache с MySQL, или, возможно, базовая настройка LAMP. Возможно, веб-сайты их клиентов будут работать на предустановленной CMS, такой как уже устаревшая CPanel. Возможно, электронная почта клиентов также направляется через тот же сервер, что приводит к одной точке отказа; список можно продолжить.

Если вы оказались в таком положении, то пришло время встряхнуться. Вы находитесь не только в технологическом невыгодном положении, но и в экономическом.

Задайте себе следующие вопросы:

  • Восприимчивы ли вы к новым технологиям или предпочитаете использовать те, которым научились в школе или научились сами, когда только начали работать в отрасли?
  • Когда вы в последний раз изучали новый язык программирования или инструмент для улучшения своих продуктов?

Но подождите, большая часть Интернета по-прежнему работает на PHP и MySQL.

Статистика может ввести в заблуждение.

Большая часть Интернета работает на PHP и MySQL с Wordpress. Возможно, это может означать, что придерживаться этих решений для ваших приложений будет нормально. Однако давайте учтем, что Интернет — это постоянно развивающийся ландшафт с активным сообществом открытого исходного кода, в котором тестируются всевозможные идеи и улучшения кода из различных культур и идей.

В результате этого мы наблюдаем изменения; вот некоторые из них, связанные с тем, о чем мы говорим:

Превосходное хранилище данных
MongoDB — превосходное решение для MySQL; он предлагает инструменты репликации и сегментирования, чтобы ваши данные были более доступными.

NoSQL — без схемы
В отличие от решения на основе схемы, MongoDB хранит документы в виде записи в формате JSON, что дает вам возможность гибко манипулировать отдельными записями в соответствии с их потребностями. Хотя разумно придерживаться общей структуры данных, хранение метаданных, расширение иерархии данных или удаление нулевых записей очень полезно.

Меньше структурирования на прикладном уровне
Документы извлекаются в виде объектов в формате JSON (или BSON, как их называет Mongo, но давайте воспользуемся здесь JSON). Почему это важно? Внутри вашего приложения требуется намного меньше форматирования объектов.

Представьте, что вы извлекаете данные о продуктах, данные об изображениях продуктов, данные о вариантах и ​​сопутствующие товары из 4 отдельных таблиц MySQL. Когда у вас есть эти строки данных, вам нужно отформатировать их желаемым образом, чтобы передать их в ваш шаблон. Что ж, поскольку эти данные могут быть сгруппированы в одну запись документа с помощью MongoDB, вам нужно выполнить только один запрос на выборку, и эти данные уже отформатированы в соответствии с желаемой структурой. Идите вперед и дайте это непосредственно вашему шаблону (хорошо, в реальном сценарии потребуется некоторое облегченное форматирование, но в гораздо меньшей степени, чем в предыдущем случае).

Превосходные инструменты управления
Я имею в виду MongoDB Compass. Графический интерфейс, который вы можете загрузить на свой компьютер (поддерживаются Mac, Windows и Linux). Помимо управления данными (CRUD), выполняйте расширенные запросы и агрегацию прямо в приложении. Проанализируйте свою схему и визуально посмотрите, как работает ваш кластер. (Ваш кластер — это группа узлов, образующих вашу сеть). Даже запишите использование вашего кластера в реальном времени и запустите его позже на другой конфигурации кластера, чтобы сравнить результаты.

Безопасность
Аутентификация пользователя на основе X.509 и аутентификация клиента узла, MongoDB полностью поддерживает TLS.

Рассмотрим изменения, произошедшие в окружающем пространстве в новейшей истории:

  • Facebook создал фреймворк React, работающий на NodeJS, для поддержки Facebook. (По скорости движки Javascript на порядок быстрее, чем PHP7, Ruby и Python).
  • У React также есть аналог React Native, который позволяет программировать нативную платформу (Android, iOS) с использованием набора и синтаксиса React.
  • У Google есть собственная платформа Javascript, которая поддерживает YouTube, под названием Polymer.
  • Angular — еще один популярный фреймворк Javascript, но в последнее время он адаптируется к более точному копированию React.

Стратегия

Итак, вы провели исследование и хотите интегрироваться. У вас есть отличные продукты, развернутые с использованием устаревшего программного обеспечения, и вы хотите их обновить. Вы задаетесь вопросом, как далеко вы можете продвинуть свои приложения, и даже воодушевлены их перспективами. С чего начать?

Ну, итеративный подход - единственный путь. Представьте себе сценарий, когда вы хотите сделать следующее:

  • Откажитесь от виртуального хостинга и разверните VPS для запуска своего сервера.
  • Переход с Apache на легкий быстрый сервер NginX
  • Сделайте свое приложение отзывчивым, используя что-то вроде Bootstrap 4, прежде чем взять то, что вы на самом деле использовали, и удалить библиотеку.
  • Обновите ванильный CSS в решение SASS.
  • Переход от решения MySQL к кластеру MongoDB с репликацией.
  • Настройте решение с несколькими VPS с томами данных в формате XFS для хранения ваших данных.
  • Перейдите с сервера на основе PHP в среду NodeJS и React (это большая проблема).

список можно продолжать (он никогда не заканчивается!)

  • Отсюда я могу использовать React Native для создания аналога iOS.

Это может быть ошеломляющим и может занять месяцы! Единственный способ справиться с этим — итеративный систематический подход. Давайте возьмем приведенный выше сценарий и немного разберем его:

  1. Я знаю, что могу запустить Mongo с PHP, а миграция данных — нетривиальная задача. Поэтому имеет смысл установить PHP-драйвер MongoDB и перенести мои данные, используя удобную для меня среду, прежде чем менять инфраструктуру PHP.
  2. Но для установки PHP-драйвера MongoDB мне нужен полный доступ к моему серверу. Поэтому я просто возьму все свое решение и скопирую его на сервер VPS за 5 долларов в месяц. Таким образом я могу ознакомиться со средой Linux и установить необходимое программное обеспечение.
  3. Я знаю, что переход Node/React будет самой разрушительной задачей, поэтому я выполню все предыдущие шаги перед этим.
  4. Я знаю, что моя разметка (HTML, CSS и внешний Javascript) не нуждается в исправлении; Я смогу переместить их прямо в новую серверную среду, поэтому имеет смысл перестроить мои стили SASS и минимизировать мою разметку перед повторной миграцией — я не хочу хлопот с миграцией моего устаревшего кода.

Помните, вам нужен работающий продукт без ошибок. Ваша старая предварительно обновленная версия вашего приложения, которая полностью работает, лучше для ваших пользователей, чем обновленная версия, которая постоянно ломается!

Как разработчик, вы гордитесь своими конечными продуктами. Мы максимально оптимизируем их, используя текущий набор технологий, принятых в продукте. Это поднимает планку при замене программного обеспечения новым — оно также должно соответствовать тому качеству, которого ожидают ваши пользователи.

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

Вывод

Я надеюсь, что эта статья была вам полезна.

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