Как рассказать историю десятилетия веб-разработки путешественнику во времени

Привет! Надеюсь, тебе понравился новый мир web-разработки. Он сильно отличается от мира 2007 года. Cовет: если вы только что получили ипотеку, отмените ее.

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

Web-приложения

В 2008 году Google выпустила браузер под названием «Chrome». Девять лет спустя это самый популярный способ серфинга в Интернете.

Команда Chrome вложила много средств в работу с JavaScript. Веб-приложения написаны с использованием большого количества кода JavaScript. Они напоминают настольные интерфейсы вашего времени. Компании также инвестировали в JavaScript, чтобы сделать его лучше - теперь он поддерживает классы и модули. Также мы используем языки, которые компилируются в JavaScript, например, TypeScript (язык программирования от Microsoft) или Flow.

В наши дни мы много пишем на JavaScript, так как никто больше не поддерживает Flash. Мы даже запускаем JavaScript на сервере вместо Perl, используя платформу под названием Node.

Адаптивный дизайн: веб-сайт по-разному выглядит на различных устройствах.

Помните Swing, SWT и подобные wxWidgets? Нам пришлось изобретать их для браузера. Появилось несколько новых моделей программирования пользовательского интерфейса, которые в основном были сосредоточены на компонентах.

Мы должны были найти способ разработки, сборки и тестирования приложений, сохраняя при этом их отзывчивость (термин, который мы используем для описания веб-сайта). Чтобы помочь со всем этим, в настоящее время существуют очень много фреймворков ( Фреймворк -программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта). Самые крупные из них - это Angular от Google, React от Facebook и Vue.

CSS также развивался, поскольку новые приложения требовали более сложных макетов. Мы больше не используем таблицы с изображениями. Рамки тоже ушли. Вместо этого мы создали новые стандарты, такие как CSS Floats, Flexbox и CSS Grid.

Люди создали библиотеки, чтобы CSS был еще удобнее, например Bootstrap, Foundation и многие другие. Подобно JavaScript, мы создали языки, которые компилируются в CSS. Они компенсируют некоторые вещи, которые недоступны для реализации с помощью CSS, например переменные или модули.

Данные

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

Во-первых, мы создали раздел под названием Data Science, целью которого является анализ и извлечение информации из данных.

С использованием Data Science возникли три основные проблемы: хранение данных, анализ данных и их использование. Мы улучшили все эти области. Давайте рассмотрим каждую.

Память

Нам нужно было хранить много информации, а затем выяснить, какая часть из них наиболее важна. Нам нужно было изобретать новые базы данных. Подобные MySQL и PostgreSQL не подходят для хранения терабайта данных (такие данные мы называем «Большие данные»).

Было движение, которое мы назвали NoSQL. Этот новый класс баз данных принял некоторые из конвенций традиционных реляционных баз данных и улучшил их.

Существует Hadoop, который используется для хранения данных на многих компьютерах. Он определяет способ обработки данных MapReduce.

Затем есть Cassandra, которая рассматривает данные не как таблицы, а как наборы ключей и столбцов, которые могут храниться на разных компьютерах. Она также гарантирует, что любой из этих компьютеров может находиться в автономном режиме без потери данных.

Также у нас есть MongoDB - база данных, которую легко установить и использовать для прототипирования приложений.

Обучение

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

В анализе данных большая часть внимания была сосредоточена на области машинного обучения. Было разработано много новых методов, от наивной классификации, до глубокого обучения. Все методы в основном реализованы на Python.

Например, с помощью Data Science многие веб-приложения используют A / B-тестирование. Этот метод обслуживает две разные версии приложения для разных, но похожих групп пользователей. Он используется для того, чтобы анализировать, что вам нравится и что вам нужно.

Многие крупные компании, такие как Airbnb, Uber и Netflix проводят сотни и тысячи тестов A / B, чтобы убедиться, что их пользователи получают нужный контент. Netflix - это приложение, в котором люди могут смотреть телевизионные шоу на всех своих устройствах.

Микросервисы и облачные хранилища

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

Этого было трудно достичь в традиционных центрах обработки данных, поэтому у замечательных инженеров Netflix используются виртуальные машины. Помните, что Amazon Web Services запущен в 2006 году? Тогда они начали предлагать Elastic Cloud Compute, известный как EC2, чтобы помочь людям получить виртуальные компьютеры в центрах обработки данных Amazon. Сегодня у них почти 80 подобных услуг, все они созданы для быстрого роста компаний.

Это список услуг, которые вы можете найти в облаке Amazon. Он продолжает расти.

Прежде всего, мы стали думать о нашей инфраструктуре как о коде. Раньше вам приходилось покупать новый сервер, подключать клавиатуру и устанавливать зависимости.
Теперь мы используем инструменты управления, такие как Puppet, Chef и Ansible для автоматизации наших серверов.

Затем мы стали больше смотреть на контейнеры. Поскольку для EC2 можно было предоставить машины, нам нужно было разрабатывать аналогичные среды, в которых бы работала наша продукция.

Мы начинали с использования виртуальных машин, используя такие инструменты, как Vagrant, чтобы их автоматизировать. Затем мы разработали и научились использовать контейнеры Linux и, в конечном итоге, Docker. Мы нашли способ запустить Linux на наших MacBook без использования виртуальной машины.

Docker

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

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

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

Существуют также языки, такие как Scala и Clojure, которые позволяют использовать виртуальную машину Java и все связанные библиотеки. Веб-сайт, такой как AirBnB, запускает сотни микросервисов, используя несколько языков программирования и баз данных.
Из-за микросервисов нам пришлось пересмотреть некоторые из наших моделей программирования - теперь у нас было гораздо больше небольших приложений, вместо одного.

Есть такие инструменты, как Apache Kafka, Google PubSub и RabbitMQ, которые нацелены на помощь чат-ботам, которые много говорят друг с другом. Kafka был создан LinkedIn, социальной сетью, где люди рекламируют свою профессиональную жизнь. Позднее его исходный код был открыт.

Способы создания нашего программного обеспечения

Мы создаем программное обеспечение в небольших командах. У команд обычно есть некоторые навыки DevOps, и они имеют представление о развертывании программного обеспечения. Они используют некоторую форму Agile-процесса, выпуская программное обеспечение непрерывно в коротких итерациях.

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

Сейчас существует много других сообществ, и все они экспериментируют с путями создания программного обеспечения в открытом доступе. Например, веб-инфраструктура под названием EmberJS использует цикл релиза, рассчитанный на 6 недель. Другие языки и популярное программное обеспечение с открытым исходным кодом (например, GitLab и Visual Studio Code, редактор кода от Microsoft) используют ежемесячный цикл выпуска.

Это еще не все!

У нас больше людей, программного обеспечения и инноваций. Надеюсь, вы все еще так же в восторге от компьютеров - у вас есть все основания.

Также мы можем рассказать о технологии блокчейна и о многом другом...

Исходная статья

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ