Я оценивал архитектурные решения для мобильного проекта, который будет иметь веб-сервис / приложение в дополнение к нативным приложениям и рассматривал различные библиотеки, фреймворки и стеки, такие как Meteor , что является своего рода «структурой пакетов с открытым стеком». , тесно связан с Node.js .
Много говорят о преимуществах использования одного и того же языка на стороне клиента и сервера, и я не понимаю этого. Я мог бы понять, если вы хотите отразить все состояние веб-приложения как на клиенте, так и на сервере, но пытаетесь найти другие победы ... Эффективность рабочего процесса?
Я пытаюсь понять, почему паритет языка клиент / сервер считается священным Граалем. Почему клиент-серверный язык имеет значение при разработке программного обеспечения?
Ответы:
На стороне PRO:
На стороне CON:
В веб-разработке языки получили широкое распространение, создавая мощные инструменты для определенных частей системы, а также необходимость в изучении многих специальностей разработчиками или группами разработчиков. В других областях, таких как обработка транзакций или встроенные системы, которые следуют подходу системного проектирования, может быть экономия на общем языке.
Кажется, что новые фреймворки Javascript приходят к нам очень быстро, и проделана определенная работа по объединению API-интерфейсов для внутреннего интерфейса и инструментов для внешнего интерфейса. Возможно, было бы разумно сохранять гибкость и разделять проблемы между клиентским и серверным кодом, чтобы вы могли свободно перемещаться между ними, не слишком надолго застревая с определенным инструментом.
источник
Предположительно, предполагаемые выгоды:
то есть это облегчает управление ресурсами для менеджеров проектов и дает мало или совсем не дает технических преимуществ (возможно, даже отрицательное техническое преимущество, если вы нанимаете кучу пони с одним приемом)
источник
Преимущество заключается в том, что вы можете использовать (в некоторой степени) опыт и код людей с обеих сторон.
люди
Разработчики должны освоить один язык и сформировать единый пул. Вместо двух групп знаний. Это облегчает передачу знаний между ними, а также позволяет им более легко переключаться между клиентом и сервером. Наконец, это облегчает общение с членами команды «другой стороны» при обсуждении технических вопросов, поскольку они имеют одинаковую техническую базу.
Код
Иногда полезно иметь какое-то состояние на стороне клиента, или алгоритмы, или оба. Иногда то же самое делается с обеих сторон. Давайте рассмотрим пример многопользовательской игры: вам нужно представить состояние игры как на клиенте, так и на сервере. Также вам нужно реализовать правила на стороне клиента (для отзывчивости), а также на стороне сервера (для проверки действий игрока). Возможность повторного использования кода для этих вещей может быть большим преимуществом. ... в некоторых других приложениях это вообще не нужно ... все зависит от случая.
... конечно есть и минусы, но это для другого поста;)
источник