Close icon

Толстый или тонкий клиент?

Что такое клиент?

Современные приложения в 99% случаях строятся на основе клиент-серверной архитектуры. Сервер - это приложение работающее на машине владельца приложения. Пользователь не видит этой работы. Как правило это взаимодействие со сторонними сервисами, обработка и формирование данных, взаимодействие с базой данных. Клиент - это приложение непосредственно работающее на устройстве пользователя и обеспечивающее взаимодействие пользователя со всем приложением в целом. Спорить что важнее клиент или сервер дело неблагодарное. Потому что если приложение будет работать как часы, но не будет юзабилити - им никто не будет пользоваться. Если приложение будет юзабилити, но не будет работать корректно - им никто не будет пользоваться. Однако часто руководителям приходит желание перенести часть работы сервера на клиент. Ниже я расскажу что я думаю об этом и объясню почему это плохая идея

Тонкий клиент

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

Толстый клиент

Толстый клиент - это клиент, который выполняет большой слой бизнес-логики на стороне пользовательского интерфейса. К обычным обязанностям тонкого клиента добавляется ещё полное или частичное формирование логики, обработки и форматирования данных

Когда использовать тонкий клиент

Всегда. Всегда используйте тонкий клиент когда у вас есть возможность. Если нет возможности стремитесь к тому чтобы перенести максимально возможный пласт логики с клиента на сервер. На клиенте достаточно сложной логики связанной с формами, валидацией, обработкой пользовательского поведения, хранением данных. Когда мы переносим формирование и обработку данных и логику приложения на сервер, помимо упрощения клиента, мы получаем улучшения ещё по многим параметрам. Чем меньше логики на клиенте, тем меньше он весит, тем быстрее он загружается и работает у пользователя, тем приложение становится более юзабилити, тем оно привлекательней для пользователя, тем оно лучше для SEO оптимизации, тем выше ваше приложение в поисковой выдаче. Есть ещё много этих тем. Я перечислил основные

Когда использовать толстый клиент

Никогда. Избегайте формирования излишней логики на клиенте. Всегда старайтесь бизнес-логику реализовать на сервере, а на клиент отдавать уже готовые данные. Я могу представить только один случай когда необходимо использовать толстый клиент. Это когда наше приложение чисто клиентское и все данные мы получаем от различных сервисов. Это могут быть различные BaaS (Backend as a service) или сторонние API. В этом случае у нас нет своего сервера, своей базы данных, и соответственно нет возможности реализовать там обработку логики и данных. Сторонние API и BaaS в 99% подстраиваться под нас не будет. Значит мы будем получать данные в том формате в котором их отдают эти сервисы. В этом случае нам остаётся только обрабатывать, формировать и анализировать эту логику на клиенте

Выводы

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

© Евгений Заикин

VK logoTelegram logo

evgenii.zaikin2607@yandex.ru