Говоря о тенденциях бэкэнд-технологий в 2018 году — Хан Тяньфэн

задняя часть

Я сегодня слишком занят, поэтому напишу меньше и добавлю позже.

Асинхронный режим

Язык Go становится все более и более популярным, и многие крупные интернет-компании обращаются к GO для своих серверных частей. Dubbo, известная сервисная среда в среде Java, также объявила о преобразовании асинхронного режима. Это большой тренд, и асинхронный режим проверен и признан рынком.

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

Синхронный режим блокировки имеет много недостатков, таких как слабый параллелизм, плохая адаптивность и медленные запросы, что приводит к недоступности службы. Например, при вызове стороннего API в фоновом интерфейсе эффект от режима синхронизации крайне слабый. Раньше фреймворки режима синхронной блокировки, разработанные на языках Java, PHP, C++, Python и Ruby, использовались все меньшим числом людей.

Node.js

Хотя Node.js также очень популярен и популярен, предприятия все еще редко используют Node.js в качестве основного языка программирования для серверной части компании. Языки C++, Java, PHP и Python также имеют некоторые похожие решения, в том числе Swoole-1.0, который также основан на модели асинхронного обратного вызова, аналогичной Node.js.

Существенная причина в том, что техническое решение асинхронного обратного вызова и некоторые оптимизационные решения, сделанные на его основе, включая Promise, Future, Yield/Generator, Async/Await и т. д., изменили стиль и привычки разработки программ. Если эти методы будут использоваться, инженеры должны дополнительно научиться использовать эти ключевые слова и функции.

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

сопрограмма

Режим сопрограммы учитывает удобство сопровождения синхронной блокировки и высокие возможности параллелизма асинхронной неблокировки. В будущем он станет основным техническим решением в области back-end разработки.

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

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

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

Swoole 2.xПусть PHP, старый язык фонового программирования с более чем 20-летней историей, также имеет возможность сопрограмм. по сравнению сGoтакая технология,PHP + SwooleСтек технологий больше подходит для быстрой разработки, быстрой итерации и бизнес-сценариев. В конце концов, динамические языки более гибкие и более эффективные для разработки, чем статические языки. иGoОн больше подходит для написания программного обеспечения системного уровня и основного бизнеса.

В 2018 году я провел рефакторинг фреймворка swoole, очень старого проекта, с базовой поддержкойSwoole 2.xРежим корутины. Основная причина в том, что в колесной компании существует множество проектов, основанных на этой структуре, особенно сервисный уровень использует структуру swoole. Мы надеемся, что бизнес-код не меняет ни одной строки и может переключаться в режим сопрограммы одним щелчком мыши. Теоретически другие PHP-фреймворки с синхронной блокировкой, такие как Laravel и Yii, могут изменять только базовую совместимость.Swoole 2.xCoroutine, чтобы реализовать плавное переключение режима сопрограммы между кодом проекта.

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

PHP & Swoole

Хотя Swoole 2.0 существует всего два года, ему еще предстоит пройти долгий путь по сравнению с 10 годами напряженной работы над языком Go. Но по сравнению со статическими языками, такими как GO, PHP + Swoole по-прежнему имеет много преимуществ: PHP проще и удобнее в использовании, а PHP — это динамический язык, который более гибок в использовании.

Конечно, если это новый проект, рекомендуется использоватьSwoftЭто специально дляSwoole 2.xframework, у него меньше исторического багажа и, следовательно, выше стабильность.

Теперь с сопрограммами Swoole 2.0 мы по-прежнему уверены в будущем PHP.

Категории