Что такое стек технологий. Объясняем простыми словами
Стек включает в себя языки программирования, фреймворки (программная среда для разработки), системы управления базами данных, компиляторы (переводят текст, написанный на языке программирования, в набор машинных кодов) и так далее.
Выбор конкретного стека зависит от архитектуры проекта, сложности и функциональности сайта, системных требований — какую выбрать операционную систему и систему управления базами данных, какой использовать веб-сервер и язык программирования.
Например, для веб-разработки стек технологий может выглядеть так:
Примеры употребления на «Секрете»
«ИТ-специалисты должны чётко представлять, что ключевое в EdTech — открытость API, возможность интегрироваться с другими платформами, а также использование современного стека технологий».
(Основательница Smart School Pro Елена Игнатьева — о типичных ошибках образовательных стартапов.)
«Если применить подход в лоб и ориентироваться только на цену, то вы рискуете получить команду, которая не даст вам искомых показателей эффективности. К примеру, при выборе рекламного агентства следует обратить внимание на размер и опыт команды, стек используемых технологий, клиентский портфель и отзывы».
(CEO Realweb Partners Эмин Аветисян — об ошибках офлайновых компаний при выходе в онлайн.)
Нюансы
Любое веб-приложение состоит из двух частей — клиентской и серверной. Клиентская сторона охватывает всё, что пользователи могут видеть на экране.
Важнейшие элементы технологического стека в клиентской части:
Серверная часть приложения готовит данные для клиентской части. Здесь придётся выбрать:
Выбранные технологии будут определять функционал продукта и то, можно ли будет его масштабировать в будущем. Также от выбранного стека будут зависеть оплата специалистов и время на разработку.
Если клиент планирует продавать одежду через небольшой онлайн-магазин, ему не понадобятся параллельная обработка больших объёмов данных (noSQL) и механизм распределения нагрузки (load balancing), заточенный на одновременную поддержку 1 млн пользователей. В то же время клиенту, который планирует продавать тысячи товаров в день, не подойдёт решение на базе бесплатного движка сайта (CMS) с дешёвым хостингом.
Как правильно выбрать стек для своего проекта?
Процедура запуска любого IT-приложения требует предварительной планировки и принятия решений на начальных стадиях его развития. Для заказчика данный проект должен быть результативным, и чтобы добиться его эффективности, разработчику понадобится подходить к выполнению задачи комплексно, обращая внимание на множество важных критериев.
Ключевое условие грамотного решения проблемы – не ошибиться в выборе стека технологий. Материал о том, что собой представляет технологический стек, а также о факторах, на которые нужно опираться, выбирая его, пользователи, постигающие науку веб-программирования, найдут в этой статье.
Под термином «технологический стек» понимают сложную комбинацию, включающую языки программирования, программное обеспечение и спектр фреймворков, применяемых для разработки IT-проекта.
Архитектура любого web-приложения включает две стороны – клиентскую и серверную. Требования к функционалу этих обеих сторон предусматривают смену вышеупомянутых средств разработки, то есть они непосредственно влияют на стек технологий.
Клиентской частью считаются визуализирующиеся данные, доступные пользователям на дисплее, которые используются посетителями сайта. Структура данной зоны IT-проекта представлена следующими базовыми компонентами:
· языком программирования, отвечающим за интерактивную часть web-проекта (JavaScript);
· языком разметки документации, позволяющим достоверно отображать содержимое сайтов в браузере (HTML);
· формальным (табличным) языком, обеспечивающим грамотную стилистику контента (CSS);
· UI-фреймворками и библиотеками (jQuery, Angular).
Технологии JavaScript, HTML и CSS применяются и с другими фреймворками – проектируя клиентскую часть, разработчики нередко используют React.js либо Bootstrap.
Серверной зоной веб-портала, не видной его посетителям, обеспечиваются данные зоны клиентской, расположенной над ней.
Разработка серверной стороны предполагает применение следующего «инструментария»:
· баз данных (например, MongoDB, Neo4j);
· языка бэкэнд-программирования (типа С #, Python либо Java);
· фреймворков, надстроенных над программными языками (NET или Spring);
· web-сервера (вариантом может быть и проект с архитектурой бессерверной);
· облачных инфраструктур и сервисов (Microsoft Azure, Heroku).
Требования к обеим частям (их называют соответственно Front-end и Back-end) должны заранее утверждаться и приниматься в процессе создания стека технологий.
Выбирая стек, необходимо учитывать шесть ключевых аспектов.
1. Специфику самого IT-проекта.
Речь идет об учете размеров и целевого назначения веб-приложения – выбирать технологии надо, опираясь на эти моменты. Для маломасштабных, одностраничных веб-сайтов подойдет стек Node.js-React. Средние по величине веб-приложения сайтов интернет-магазинов или подобных коммерческих порталов нуждаются в стеках большей сложности, включающих несколько уровней языков программирования и несколько фреймворков. Для созданий крупных проектов потребуется самый масштабный стек, способный работать со значительными объемами данных, поддерживать необходимый уровень производительности web-приложений и их целостность.
2. Опыт и ресурсный потенциал.
Правильный подбор технологий предполагает компетентность разработчика, обеспечивающую ориентацию специалиста в тонкостях и отличиях каждого из стеков. Лучше web-программисту делать выбор в пользу «объезженных», хорошо известных ему технологий. Испытанные решения надежнее новых, для реализации которых понадобится дополнительное время и силы. Однако стоит помнить, что технологии «вчерашнего дня», которые явно устарели, – тоже не лучший вариант. Они могут снизить эффективность приложения и повлечь за собой сложности, связанные с технической поддержкой.
3. Масштабируемость приложения.
Актуальным звеном проекта, позволяющим справляться веб-сайту с нагрузками, например, стремительным притоком трафика, является масштабируемость его архитектуры. Различают масштабируемость горизонтального и вертикального типа. Первый тип открывает доступ к приложению с разных устройств и рассчитан на рост посетителей. Второй – предусматривает возможность добавления новых функций и компонентов на портал в будущем.
4. Уровень безопасности.
Безопасность личных данных пользователя важна для любого приложения, но, если сервис предусматривает онлайн-платежи, формируя стек, стоит отдавать предпочтение выбору технологий, обеспечивающих максимальную безопасность, недоступность для кибератак.
5. Удобство обслуживания web-приложений.
Для архитектуры проекта важна мобильность и возможность повторного применения, а для его кодовой базы оптимальна средняя длина: на обработку длинного кода будет уходить много времени, а код слишком короткий может вызвать при дебаге ошибки.
6. Сроки разработки.
Если сроки выполнения проекта сжаты, целесообразно руководствоваться готовыми решениями технологического стека. Такой выбор обеспечит простую интеграцию, и сведет время работы над проектом к минимуму.
В число популярных готовых решений технологий, упрощающих работу команды web-специалистов, входят стеки LAMP, MEAN, MERN и MEAN. Такие модели, обретшие популярность, подходят для разработок многих веб-приложений среднего и крупного масштаба. Но данный факт не означает, что соответствующие стеки универсальны: применить их к абсолютно всем проектам нельзя – специализированные веб-приложения требуют не привычного, а креативного подхода.
Условие правильного выбора стека – скрупулезное предварительное изучение базовых функций, предназначения разрабатываемого web-приложения
MEAN или LAMP и не только: какой технический стек использовать
Стеки технологий, иногда называемые веб-стеками, представляют собой наборы многоуровневых технологий, каждая из которых выполняет необходимую роль в процессе разработки веб-приложений. Большинство технических стеков содержат инструмент для внутреннего веб-сервера, интерфейсного пользовательского интерфейса и базы данных.
Ваш выбор технического стека в начале ваших проектов имеет решающее значение, потому что он определяет, какие инструменты ваши разработчики смогут использовать и какие функции / атрибуты будут полезны для вашего приложения. Текущие самые популярные технические стеки — это стек MEAN и LAMP.
Сегодня мы рассмотрим преимущества и недостатки стека MEAN, стека LAMP и других популярных опций, чтобы убедиться, что вы выберете правильный стек для своего следующего проекта.
Что такое MEAN?
MEAN — это высокоуровневый стек с открытым исходным кодом на основе Javascript, который лучше всего подходит для создания динамических веб-сайтов и приложений. Термин MEAN был придуман в 2013 году Валерием Карповым как аббревиатура для описания приложений, созданных с использованием комбинации тех же 4 инструментов. Эти инструменты хорошо работают вместе и обеспечивают уникальные преимущества для любого приложения MEAN.
Самым большим преимуществом разработки стека MEAN является то, что все уровни используют JavaScript, что упрощает интеграцию различных компонентов и позволяет разрабатывать программное обеспечение с полным стеком.
Слои MEAN:
MEAN лучше всего подходит для облачных современных веб-приложений, разрабатываемых небольшими командами или начинающими компаниями. MongoDB позволяет легко создавать облачные приложения благодаря функциям масштабируемости, тестирования и развертывания. Кроме того, AngularJS идеально подходит для создания одностраничных приложений (SPA) на основе оптимизаций с быстрой загрузкой. Вы даже можете разрабатывать кроссплатформенные мобильные приложения с помощью Express.js
Одноязычная настройка JavaScript в MEAN позволяет небольшим проектным группам делать больше. С другими стеками вам понадобится несколько программистов с разными навыками программирования для создания полноценного приложения. Это разделяет вашу команду и ограничивает скорость разработки приложения.
Команды могут создавать MEAN-приложения намного быстрее, потому что каждый разработчик JavaScript может действовать как разработчик полного стека и вносить свой вклад на каждом уровне приложения.
Некоторые ведущие компании, такие как Netflix, Paypal, The Weather Channel и Forbes, внедрили компоненты MEAN в свои приложения. Прогнозируется, что популярность MEAN будет расти только по мере того, как все больше компаний переходят к группам разработки полного стека и облачным веб-приложениям.
Плюсы и минусы MEAN
Плюсы
Минусы
Что такое LAMP?
LAMP — это самый популярный в мире технологический стек, предназначенный для создания приложений без использования внешнего программного обеспечения или данных. LAMP — наиболее зрелый технологический стек, который используется с момента его создания в 1998 году Майклом Кунце. Он получил широкую популярность как первый технологический стек с открытым исходным кодом и остается популярным даже сегодня в корпоративных или давно существующих приложениях.
Главное преимущество LAMP — это зрелость и широкая популярность. Будучи давним лидером в области веб-технологий, технологии LAMP должны быть совместимы с любым новым инструментом. LAMP использует PHP и базу данных MySQL, которые особенно хорошо известны и поддерживаются большинством хост-провайдеров.
Стек также стал особенно настраиваемым благодаря большому количеству времени и пользователям, которые адаптировали его части для специализированных задач. Короче говоря, текущий набор инструментов веб-приложений создан для работы с LAMP.
Слои LAMP
LAMP в основном используется для крупномасштабных корпоративных приложений, которым необходимо максимально увеличить время безотказной работы. Неблокирующая структура LAMP позволяет им оставаться отзывчивыми даже при более высоких нагрузках.
Это хорошо поддерживаемый стек с множеством уже разработанных настроек, модулей, библиотек и надстроек, которые позволяют вашей компании настраивать каждую технологию в соответствии со своими потребностями. Например, вы можете дополнительно повысить его доступность за счет балансировки нагрузки между несколькими веб-серверами или серверами баз данных. Эти настройки высокой доступности включают уровни избыточности, чтобы всегда иметь достаточно ресурсов для обслуживания пользователей.
Наконец, все операции выполняются на стороне сервера и не зависят от ресурсов на стороне клиента. Это означает, что вы можете распространять приложения LAMP среди широкого круга пользователей и быть уверены, что у каждого из них одинаковый опыт.
LAMP используется многими крупными компаниями по всему миру, включая Facebook, WordPress, Wikipedia, Slack и Tumblr. Хотя в настоящее время он занимает большинство рынка, многие эксперты полагают, что LAMP постепенно выйдет из употребления, так как MEAN и другие стеки продолжают развиваться.
LAMP, по сути, занял первое место среди технических стеков, но новые приложения часто выбирают MEAN для лучшей поддержки современных функций, таких как облачный хостинг.
Плюсы и минусы LAMP
Плюсы
Минусы
Другие лучшие технологические стеки
В то время как MEAN и LAMP являются ведущими технологическими стеками на рынке прямо сейчас, существует множество других стеков, доступных для нишевых ситуаций и решений. Некоторые из них представляют собой всего лишь вариации двух больших стеков, а другие представляют собой новаторских игроков на рынке.
Давайте кратко рассмотрим эти почетные упоминания.
Стек MERN — это вариант MEAN, который заменяет Angular.js на React.
React использует виртуальную модель DOM для упрощения изменений пользовательского интерфейса и оптимизирован для высокореактивных одностраничных приложений. React также использует JSX для гибкого управления компонентами. Самым большим недостатком React является то, что в его базовом состоянии отсутствуют функции в виде библиотеки, а не полнофункционального фреймворка.
Замена Angular на React по сути жертвует функциями ради простоты использования и гибкости.
Преимущества:
Недостатки:
Пример использования:
Вы хотите в кратчайшие сроки создать простое или промежуточное одностраничное приложение, или ваша команда уже знакома с React.
Подобно MERN, MEVN заменяет Angular.js на Vue.js.
Vue — это фреймворк, который предлагает минималистский подход, ориентированный на производительность. Он более легкий, чем Angular.js или React, и поставляется со всеми основными функциями «из коробки». Vue также можно дополнить сторонними сервисами, чтобы заполнить любую нишу, соответствующую вашим потребностям. Самым большим недостатком Vue является то, что он не используется широко и может не иметь поддержки сообщества или интеграции, которой пользуются React или Angular.
Vue — это, по сути, базовый фреймворк, который жертвует причудливыми функциями и некоторым контролем, чтобы его можно было быстро и легко настроить.
Преимущества:
Недостатки:
Пример использования:
Ruby on Rails (RoR)
Ruby on Rails — это удобный для разработчиков технологический стек, построенный на самоуверенном языке программирования Ruby. Он уникален тем, что содержит все инструменты стандартного технического стека в одном пакете. Он также изначально интегрирован с HTML, CSS и JavaScript.
RoR призван максимально упростить вашим веб-разработчикам создание нового приложения благодаря обязательным передовым методикам и встроенным структурам по умолчанию. Он также предлагает улучшенную производительность, поскольку все инструменты полностью интегрированы, чтобы упростить управление пользовательским интерфейсом.
Преимущества:
Недостатки:
Пример использования:
Бессерверный
Развитие облачных вычислений привело к тому, что многие компании перешли от управления собственной инфраструктурой приложений к созданию безсерверных облачных приложений. Эти бессерверные приложения позволяют облачному провайдеру, например AWS или Azure, обрабатывать все услуги и инструменты по цене, соответствующей масштабу вашей компании.
Бессерверные приложения отлично подходят для масштабирования в соответствии с потребностями и справятся с любым обслуживанием. Обратной стороной является то, что у вас не так много контроля над технологиями, с которыми вы работаете, поскольку вы застрянете на готовых функциях.
Преимущества
Недостатки
Пример использования:
Вы — небольшой стартап, который не может позволить себе нанять полную команду для управления технологическим стеком вашего приложения и предпочитает платить, чтобы это делал кто-то другой.
Выбор правильного стека технологий
MEAN или LAMP лучше всего подходят для большинства проектов, но как выбрать?
У обоих есть компромиссы, поэтому важно учитывать, какие факторы наиболее важны для вашего конкретного проекта.
Вы захотите рассмотреть:
Как правило, MEAN лучше подходит для небольших современных приложений, таких как прогрессивные веб-приложения, облачные приложения или одностраничные приложения. LAMP лучше подходит для крупномасштабных приложений, которые отдают предпочтение времени безотказной работы и доступности.
Самый важный момент, который следует учитывать, — это продолжительность жизни. LAMP хорошо зарекомендовал себя и стабилен, но предполагается, что он будет постепенно выведен из употребления современными функциями, предоставляемыми MEAN.
Выбор создания нового приложения на LAMP сейчас означает, что у вас уже будет хорошее приложение, но, возможно, в будущем вам придется полностью перейти на MEAN.
Выбор MEAN сейчас будет означать, что его будет сложнее поддерживать, и у вас будет меньше проверенных временем решений, но у вас будут лучшие современные функции, которые нужно подготовить к будущему.
| ИМЕТЬ В ВИДУ | ФОНАРЬ | |
| Тип приложения: | Современные типы приложений, такие как облачные, гибридные, PWA или SPA. | Многостраничные приложения. |
| Продолжительность жизни: | Длительный срок службы, создание приложения для будущей поддержки MEAN. | Короткий срок службы, вы разрабатываете это приложение для работы только сейчас и в ближайшем будущем. |
| Движение: | Стабильный трафик от низкого до среднего, резервирование не требуется. | Высокий трафик с большими пиками в часы пик. |
| Клиентская или серверная: | Рендеринг на стороне клиента. | На стороне сервера вы не хотите полагаться на клиентскую инфраструктуру для хорошего взаимодействия. |
| Динамический или статический: | JavaScript позволяет создавать приложения, управляемые событиями, с обновлениями в реальном времени. | Приложение представляет собой статическое приложение, которое не требует обновлений в реальном времени. |
| Обучение: | Нужно только изучить JavaScript. | Команде придется изучить несколько инструментов, но PHP и MySQL легко освоить. |
| Обслуживание: | Высокий уровень обслуживания для поддержки частых обновлений каждого инструмента. | Низкие эксплуатационные расходы, стабильная экосистема. |
Заключение
Выбор правильного технологического стека для вашего проекта — большой выбор. Обладая информацией, которую вы узнали сегодня, вы сможете сделать лучший выбор, подходящий для вашей команды и компании. Ваш следующий шаг — узнать больше о веб-архитектурах, чтобы ознакомиться со всеми вариантами, доступными для вашего следующего проекта.
Чтобы помочь вам узнать все, что вам нужно знать о веб-архитектуре, Educative создал Path Scalability & System Design для разработчиков. Этот курс исследует все варианты, которые вам нужно сделать при разработке веб-приложения, и позволяет понять компромиссы на каждом этапе.
К концу курса у вас будут навыки реализации микросервисных архитектур в различных технологических стеках, создание облачного приложения и практика объяснения компромиссов для следующего собеседования или конференции.
Мой новый стек веб-технологий для 2020 года
Помните те времена, когда стеки веб-технологий были простыми? Когда уровни этих стеков можно было обозначить в виде четырёхбуквенного сокращения вроде LAMP, LEMP или LEPP? Когда всё, что было нужно для создания и поддержки сайтов, сводилось к вполне обычному железу, к какому-нибудь опенсорсному софту, да к упорству в достижении цели?
Мой первый успешный сайт, теперь уже старинный проект 1999 года, был создан с использованием технологий, которые можно пересчитать по пальцам одной руки: HTML4, CSS2, JavaScript3 и Apache 1.1. Всё это крутилось на сервере с Linux 2.0. Сайт включал в себя 38000 страниц. И сегодня, через 20 лет, он всё ещё их выдаёт.
С тех пор всё изменилось. Это касается и стеков веб-технологий. Теперь они совсем не те, что прежде.
Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о том, как он перешёл от «фуллстека» к «стеку 2020 года». Некоторые технологии в ходе этого путешествия неожиданно стали фаворитами, а некоторые потеряли былую привлекательность.
Стек веб-технологий 2020 года
2020 год — это начало нового десятилетия. Это — время, когда стоит поговорить о новом стеке веб-технологий.
На что похож «стек 2020 года»? Надо сказать, что на это очень сильно влияет то, чего пытается достичь разработчик сайтов. Выбор подходящих уровней сильно зависит от того, какая степень масштабируемости требуется для проекта.
Меня особенно интересуют маленькие веб-сайты. Те, которые хорошо чувствуют себя на виртуальном сервере. Таким сайтам не нужны балансировщики нагрузки или постоянные хранилища данных. Это — ниша CMS, которую уже давно занимает WordPress. Но в основе всего этого лежит не некий минималистичный сервер. Вместо этого речь идёт о системе, которая может выдержать постоянный поток трафика без необходимости автоматического повышения её мощности в часы пик.
Сейчас для разработки и поддержки проектов в интересующей меня области я использую стек технологий, состоящий из 12 уровней.
▍1. Облачный провайдер
▍2. Дистрибутив Fedora Linux с SELinux
Безопасность — это то, что очень сильно всех нас беспокоит. SELinux можно сравнить с мощной охранной системой, работающей в Linux. Если к этому добавить ещё и хорошо настроенный iptables-файрвол, получится то, что позволит владельцу сайта спокойно спать по ночам. Если вы не уверены в том, что вам всё это нужно — проведите следующий эксперимент. Разверните новый сервер у вашего любимого облачного провайдера и понаблюдайте за тем, как скоро его начнут атаковать. Я видел, как брутфорс-атаки на новые сервера с попытками входа по SSH начинались менее чем через 10 минут после их создания.
▍3. Веб-сервер Read Write Serve
Я пользуюсь веб-сервером Read Write Serve с TLS-сертификатами от LetsEncrypt. Раньше я был фанатом Apache, на настройку и запуск новых веб-сайтов у меня уходило буквально несколько минут. Но с тех пор, как я перешёл с PHP на JavaScript, об Apache пришлось забыть. Сервер Express казался мне чрезвычайно простым инструментом, но лишь до тех пор, пока я не попытался воспроизвести в нём весь тот функционал, который давал мне Apache. Речь идёт о механизме согласования содержимого, об условном кэшировании, о сжатии данных, о перезаписи URL для SEO, о CORS, о политиках защиты контента. В результате я и перешёл на сервер Read Write Serve, в котором все эти возможности присутствуют по умолчанию.
▍4. Среда выполнения приложений Node.js
За логику приложения, выполняющуюся на сервере, отвечает среда Node.js. Возникает такое ощущение, что в экосистеме NPM имеются пакеты на все случаи жизни. Поэтому простыми и понятными оказались задачи по сборке из имеющихся пакетов того, что нужно именно мне, и по запуску всего этого на Read Write Serve. Для организации работы всего того, что нужно современному веб-проекту, не требуется прилагать чрезмерных усилий. Это — отправка электронной почты, работа с платёжными сервисами, обращение к базам данных, и всё остальное, подразумевающее работу с серверными API.
▍5. База данных MariaDB
Я пользуюсь сервером баз данных MariaDB. Это — форк MySQL, подвергнутый ребрендингу и освоенный опенсорс-сообществом. Когда мне нужно хранить неструктурированные JSON-данные, я пользуюсь PostgreSQL. Дело в том, что это позволяет мне выполнять запросы непосредственно по конкретным JSON-свойствам. Это немного похоже на MongoDB, но основано на привычном SQL-синтаксисе.
▍6. HTTP/2
Для организации связи между частями приложений я полагаюсь на возможности HTTP/2 с поддержкой постоянных соединений и с мультиплексированием потоков. Эти два дополнения к достойному уважения протоколу HTTP/1.1. изменили мой подход к формированию документов. Во-первых, исчезла проблема блокировки начала очереди. В результате пропала необходимость в спрайт-листах даже в том случае, если у меня имеются десятки маленьких изображений. Во-вторых, теперь не нужно оптимизировать JavaScript- и CSS-файлы, объединяя их в бандлы. После того, как соединение клиента и сервера установлено, все эти маленькие файлы без перебоев передаются по этому соединению.
▍7. HTML-шаблонизация с помощью Blue Phrase
Blue Phrase — это система шаблонизации, позволяющая в компактном виде точно описывать HTML-структуры. Для меня закончились времена нечитаемой мешанины из HTML-кода и несоответствий между открывающими и закрывающими тегами. В шаблонах я обычно использую лишь незначительное количество переменных (заголовок, описание, ключевые слова, SEO-данные, экран загрузки, дата и так далее) и размещаю их в шаблоне в декларативном стиле.
▍8. Написание кода страниц с помощью Read Write Doc
Когда я создаю новые страницы, я сосредоточен на том, что пытаюсь выразить, а не на их оформлении. Для решения этой задачи я пользуюсь Read Write Doc. Этот инструмент помогает мне заниматься делом, ни на что не отвлекаясь. Я пользуюсь им даже тогда, когда то, над чем работаю, планируется опубликовать на Medium (а там есть отличный онлайновый WYSIWYG-редактор). Я отношу себя к ветеранам веб-разработки, поэтому привык к моноширинным шрифтам, и к тому, чтобы мои руки были бы на клавиатуре, а не метались бы между клавиатурой и мышкой. В любом случае, если мне нужно увидеть то, над чем я работаю, с применением к нему CSS, я могу, с помощью простой комбинации клавиш, переключаться между режимами просмотра и редактирования.
▍9. Стандартные веб-компоненты
▍10. JavaScript для клиентских скриптов
Для написания клиентских скриптов я пользуюсь модульным объектно-ориентированным JavaScript-кодом. Я применяю новые возможности стандарта ECMAScript только тогда, когда их поддержка появляется в свежих релизах браузеров. То есть, включаю их в свой арсенал в тот момент, когда вижу, что на caniuse.com «зеленеют» все основные браузеры. Я избегаю полифиллов.
▍11. Стилизация с помощью CSS
CSS — это типографское оформление и макеты страниц. Типографика начинается с правильного подбора шрифтов. Самое главное для меня — хорошая читаемость текста. В последнее время я взял себе за правило хостить файлы используемых шрифтов на собственном сервере. Это ограждает мои ресурсы от возможности блокировки, вызванной ограниченной полосой пропускания некоего стороннего сервиса. Например, я пользуюсь примерно такими конструкциями:
Дополнительное преимущество такого подхода заключается в том, что он полностью избавляет меня от проблемы, известной как FOUT — (flash of unstyled text, вспышка обычного шрифта).
▍12. Подготовка графических ресурсов с помощью GIMP и InkScape
И, наконец, для подготовки графических ресурсов я использую пару редакторов. Растровые PNG-изображения я готовлю с помощью GIMP, а векторные SVG-материалы — с помощью InkScape.
Технологии, которые потеряли былую привлекательность
Некоторые средства, которые раньше мне очень нравились, а также некоторые, которыми я увлекался лишь мимолётно, больше не входят в мой стек веб-технологий.
