Какую технологию ЛЗК выбрать в моем случае

Какие технологии есть

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

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

Как чаще всего выбирают технологию сейчас:

  1. Она мне нравится
  2. Знакомый посоветовал
  3. Прочитал в интернете
  4. На этой технологии сделан аналогичный сайт

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

По сложности проекты делятся:

  1. Простые (визитки, лендинги, простые интернет-магазины, простые приложения) — такие решения обычно делаются на тематических коробочных решениях, CMS или шаблонах.
  2. Средние (сложные интернет-магазины и маркетплейсы, порталы национального масштаба, разнообразные сервисы, продвинутые приложения) — такие решения обычно делаются на фреимворках. 
  3. Сложные (огромные порталы, социальные сети, инновационные и нетиповые решения) — ядро таких проектов обычно разрабатываются на чистом (нативном) языке программирования. 

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

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

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

Кому, что подходит

  • На чистом языке, без использования фреймворков и коробочных решений, пишутся огромные проекты с повышенными требованиями по гибкости, нагрузкам и безопасности. Для таких огромных проектов часто бюджет не так важен, как эффективность. Чем больше проект, тем больше будет требований по гибкости и нагрузкам, а значит, проще писать все с нуля, выделяя на это лучших специалистов.
  • А когда речь про небольшой проект с посещаемостью в 10 тыс. человек в день, то нам будет дешевле сделать его на CMS, которая будет потреблять в 3 раза больше ресурсов сервера, поставить дополнительный сервер за 50$ в месяц, и оно будет работать.
  • Когда же мы говорим про сайт с посещаемостью в 100 млн. пользователей в день, стоимость добавления серверов у нас будет просто космической, поэтому нам проще и дешевле вложить деньги в разработку решения на чистом языке, которое будет оптимальным именно для конкретного проекта. 
Предлагаем ознакомиться  Как проверить правильно ли изготовили очки

В огромных порталах может использоваться сразу несколько языков программирования. Опять же, мы приходим к объективным критериям выбора. Часто один язык может хорошо делать одну задачу, а другой — другую.

Он настолько большой, что разные его части написаны на C/C , Java, Python, JS и других языках. Более того, Google активно создает новые технологии, как, например, популярный нынче AngularJS. 

Фреймворки и платформы

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

На каждом языке есть много разных фреймворков. Есть как общие, которые создавались для разработки любых решений, так и специализированных, под узкие задачи. Например, Sylius — специализированный E-commerce фреймворк на основе Symfony.

Кроме того, это почти всегда более безопасно, чем любая коробочная CMS. 

Популярные фреймворки и платформы:

  1. PHP: Symfony, Laravel
  2. Python: Django
  3. Ruby: Ruby On Rails
  4. Java: Spring
  5. C#: .NET
  6. JS: Node.js, AngularJS

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

Например, Laravel только в последние несколько лет вышел на первое место по популярности, хотя самые сложные сайты до сих пор делаются на Symfony. А .NET и Node.js — это целые самостоятельные платформы, которые базируются на определенных языках, но имеют очень широкие возможности.

Шаблоны

В последние 5 лет очень активно развивают шаблонные решения. Это еще на одну ступеньку выше, чем CMS. Если CMS — это конструктор и его нужно настраивать, то шаблоны — это уже готовые решения под типовые случаи.

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

Есть специальные каталоги шаблонов: TemplateMonster, ThemeForest и др. Часто встречаются онлайн-конструкторы, в том числе тематические: Wix, PageCloud и др. 

Мобильные приложения

В мобильных приложениях в последнее время используется два подхода: нативная разработка и кроссплатформенные технологии.

Нативная разработка

Нативная ведется на оригинальных языках программирования, например, Swift (для iOS, ранее был Objective-C) и Java (для Android). Кроссплатформенных технологий сейчас довольно много, они есть на базе разных языков программирования, в частности: Apache Cordova, React Native и др. Некоторые лучше, некоторые хуже.

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

Предлагаем ознакомиться  Какие препараты применять при травмах глаз

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

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

Стоимость поддержки

Один из важнейших факторов выбора технологии является стоимость и доступность специалистов, потому что именно это самая затратная часть. В рунете есть только одна пузомерка по зарплатам: https://jobs.dou.ua/salaries/ я отфильтровал по Киеву, уровень Senior, опыт 3–5 лет. Сравним средние значения.

Зарплаты: 

  • C# – 3072$
  • Java – 3300$
  • JS – 3500$
  • PHP – 2780$
  • Python – 3000$
  • Ruby – 3000$
  • Scala – 3900$

Теперь переведем цифры на человеческий язык. Java хоть и не новый язык, но специалисты на ней всегда были одними из самых дорогих. PHP всегда был самым дешевым, да и специалистов на рынке очень много.

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

Еще одним важным параметром будет скорость разработки. Ведь важна не только зарплата программистов, но и скорость разработки. Если не учитывать уже существующие наработки, то одним из самых быстрых в разработке будет Python и Ruby, а самый медленный — Java.

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

Рис. 1. Производственные спецификации

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

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

Предлагаем ознакомиться  Отслоение сетчатки глаза: признаки, симптомы и лечение отслойки сетчатки

Тренды

Выбирая технологию, нам нужно смотреть вперед. Особенно если речь о большом проекте. Все технологии очень быстро развиваются, выходят все новые и новые версии. Языки сильно меняются каждые 5–7 лет, фреймворки — каждые 2–3 года, а CMS — каждые 1–2 года.

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

По результатам разных исследований можно выделить явных лидеров по росту — это JS (версия ES6 и выше) и мультипарадигмальные языки, например, Scala. Кстати, именно Scala считается преемником языка Java и во многом на него похож. Также не плохо себя показывает Python.

Именно это можно считать реальной картиной трендов, которые мы видим и у нас. 

На чем делались большие проекты за последние 10 лет?

Так что выбрать?

Рис. 2. Расчетная потребность в материалах для изготовления

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

Простые мобильные приложения можно делать на кроссплатформенных технологиях, а сложные обычно делаются на родных технологиях. Ну и, выбирая платформу, всегда стоит руководствоваться объективными критериями, которые я описал в статье.

Нашли опечатку? Выделите текст и нажмите Ctrl Enter

Передача деталей и узлов между цехами

ЛЗК представляет собой документ, определяющий, какие материалы и/или комплектующие и в каком количестве цех имеет право получить на складе для выполнения запланированных производственных заказов. При этом совсем не обязательно, что все перечисленные материалы выдаются единовременно.

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

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

При работе с производственными спецификациями в TechnologiCS имеется специальный режим, который называется Свод по ресурсам. В нем для выбранных производственных заказов на основании спецификаций и технологических процессов изготавливаемой номенклатуры автоматически рассчитывается суммарная нормативная потребность в основных и вспомогательных материалах, а также комплектующих для сборки (рис. 2).

С помощью несложного макроса (дополнительной функции, которую может добавлять в систему пользователь) нужно только сгруппировать уже готовые данные в лимитно-заборные карты. Полностью работоспособный пример такой функции реализован в демонстрационной базе данных TechnologiCS начиная с версии 5.0.2.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock detector