Обзор веб-разработки и того, как понять меняющийся ландшафт

Эта статья является частью первой из 9 частей серии статей.

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

Темы, затронутые в этом отчете, можно разбить на три категории:

  • Основные компетенции (языки, данные)
  • Промежуточные компетенции (тестирование, git)
  • Soft навыки (редакторы, развертывание)

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

В отчете также есть отдельные ссылки для более глубокого чтения по различным темам, когда это необходимо. Кроме того, в этом отчете будет немного больше внимания уделяться JavaScript, а не другим известным языкам веб-разработки, таким как PHP, поскольку JavaScript является самым популярным языком в опросе разработчиков StackOverflow 2018 наряду с тремя ведущими библиотеками и фреймворками. для JavaScript. Не говоря уже о том, что JavaScript является вторым наиболее востребованным языком, а React и Node - двумя наиболее востребованными библиотеками или фреймворками.

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

Глоссарий: быстрые модные словечки

Быстрый список, который нужно поставить галочкой, чтобы помочь вам понять жаргон.

  • Приложение, приложение. Приложение - это программа, которая запускается на компьютере и предназначена для выполнения определенных задач в интересах пользователя.
  • Веб-приложение. Веб-приложение - это то же самое, что и обычное приложение, но вместо этого выполняется на сервере. Преимущество этого заключается в том, что ваше приложение теперь доступно любому, у кого есть веб-браузер, без необходимости загружать его на свой компьютер.
  • Интерфейс на стороне клиента. Пользовательский интерфейс или клиентская сторона приложения - это то, с чем взаимодействует пользователь. Это также называется «интерфейс», так как он имеет прямое отношение к внешнему виду и опыту. , и интерфейс приложения.
  • Бэкэнд, на стороне сервера. На стороне сервера приложения выполняется вся бизнес-логика и логика аутентификации. «Серверная» также называется «серверной частью» приложения, поэтому здесь не обязательно есть какой-либо интерфейс для взаимодействия.
  • Стек: это наш язык, инструменты, утилиты, платформы, сети и службы, используемые для запуска приложения.
  • Полный стек: разработчик полного стека - это разработчик, который может программировать как интерфейс приложения, так и его серверную часть. Это достаточно сложный навык для освоения, поскольку интерфейсное программирование сильно отличается от внутреннего программирования, и каждое из них требует уникального мышления.
  • HTTP (S), SSL, TLS: HTTP - это протокол для передачи данных с использованием веб-браузера, SSL и TLS - два популярных протокола, которые используются поверх HTTP для преобразования HTTP в HTTPS, и, следовательно, безопасный протокол для передачи данных.
  • API: API - это наборы функций и процедур, которые позволяют создавать приложения. API обеспечивает доступ к функциям или данным операционной системы, приложения или другой службы.
  • AJAX: с помощью AJAX веб-приложения могут отправлять и получать данные с сервера асинхронно (в фоновом режиме), не мешая отображению и поведению существующей страницы.
  • JSON: JSON - это формат файла открытого стандарта, в котором используется читаемый человеком текст для передачи объектов данных, состоящих из пар ключ-значение и типов данных массивов.
  • YAML, yml: YAML - это удобочитаемый язык сериализации данных. Он обычно используется для файлов конфигурации, но может использоваться во многих приложениях, где данные хранятся или передаются. Это также надмножество JSON начиная с YAML 1.2.
  • ENV: переменная среды - это значение с динамическим именем, которое может влиять на поведение запущенных процессов на компьютере. Это используется, например, для хранения секретных ключей доступа и паролей.
  • Модули узлов (node_modules): это папка в большинстве современных веб-приложений, в которой расположены различные мини-фреймворки и служебные инструменты. Подробнее об этом позже в главе об узлах.
  • Package.json: это файл в корневом каталоге большинства современных веб-приложений. В нем подробно описаны зависимости, используемые в приложениях, и шаги для их запуска.
  • CI / CD: это относится к комбинированным методам непрерывной интеграции (объединение каждого разработчика в командной копии приложения в основной проект не реже одного раза в день) и непрерывная доставка (практика работы с очень маленькими порциями, которые можно выпускать непрерывно, вместо одного большого выпуска каждые несколько месяцев).
  • Функциональное программирование: парадигма программирования (стиль построения программ), которая рассматривает обработку данных как абсолютную и избегает изменения как состояния, так и изменяемых данных. Сейчас это становится очень модным.
  • Статический или динамический набор: это может быть отдельная статья, так что вот она хорошая. Это относится к объявлению переменных с типом (например, строковым, логическим и т. Д.) Перед запуском кода или разрешению его изменения во время выполнения.
  • Разметка и разметка: разметка - это общий термин для описания языков, которые описывают формат документа, тогда как разметка является одним из этих конкретных языков.
  • Кроссплатформенность. Это приложения и программы, которые могут работать в разных операционных системах (MacOS, Windows, Linux) без написания кода для конкретной платформы.
  • Нативные, PWA и гибридные: это разные типы приложений для смартфонов. Собственное приложение написано специально для одной платформы, чаще всего Java для Android и Swift для iOS соответственно. Прогрессивные веб-приложения (PWA) - это совершенно новый метод создания приложений для смартфонов, в которых веб-приложение запускается на смартфоне без какой-либо установки. Наконец, гибридные приложения - это приложения, которые написаны для Интернета, но затем проходят через программу, которая использует этот код и выводит собственный код (например, Cordova).

Plug-and-play

Это очень краткий раздел для тех из вас, кто предпочел бы не заниматься большой (или очень минимальной) разработкой и настройкой, а предпочел бы что-то наладить и запустить за несколько коротких минут или часов.

Squarespace

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

Конструкторы сайтов

Хотя эти услуги относительно недороги, вы можете получить гораздо лучшее по той же цене. Если блог - это то, что вам нужно, сами Wordpress предоставляют отличную и (опционально бесплатную, планы начинаются от 48 евро в год) минимальную услугу хостинга, или вы можете использовать Siteground для более высоких потребностей. Кроме того, существует также 000webhost - бесплатная версия размещенной службы cPanel, которая позволяет вам обслуживать файлы на сервере Apache. Это тоже бесплатно. Однако у вас будет общий хост (например, несколько человек, использующих один и тот же сервер), что означает, что, если приложение одного человека выйдет из строя, весь сервер также выйдет из строя, поэтому обязательно имейте это в виду.

Несколько других компаний предлагают дешевые хостинговые услуги с использованием cPanel: Hostgator, BlueHost, Hostinger и GoDaddy - некоторые из них. Эти службы предоставляют вам общее пространство на сервере и интерфейс FTP (протокол передачи файлов), где пользователь может просто выгружать в него файлы своего веб-сайта, а хост делает все остальное, обслуживая эти документы до вашего соответствующего IP-адреса. В эти службы иногда также встроены так называемые конструкторы веб-сайтов, которые предоставляют пользователю возможность установки Wordpress или Joomla в один клик. Обычно это выполняется другой службой или плагином, обычно Installatron.

В следующей статье этой серии мы рассмотрим многие языки, которые лежат в основе веб-разработки в 2018 году, включая углубленный взгляд на JavaScript и высокоуровневую информацию о PHP, Ruby, Python и Golang.

Следующая статья: Языки →