NDA в разработке сайтов и веб‑приложений
NDA — это соглашение о неразглашении, заключаемое Сторонами с целью ограничения доступа к информации, касающейся оказываемых услуг или выполняемых работ по договору. NDA служит для предотвращения утечки любой конфиденциальной информации: от коммерческой тайны до персональных данных.
NDA в веб‑разработке
Как правило, подобные договора заключают либо крупные компании со своими подрядчиками, либо генеральный подрядчик со своими субподрядчиками, либо «стартаперы». Мы в своей работе сталкивались со всеми этими ситуациями.
Как правило, Исполнителю запрещается вообще любым способом разглашать сам факт выполнения тех или иных работ для Заказчика, а также использовать результаты работ и разглашенные Заказчиком сведения в своих целях. Иногда NDA проявляется «в мягкой форме» — Исполнителю запрещается публиковать результаты работ и размещать информацию об авторстве, но о самом факте сотрудничества можно сообщать кому угодно. Еще один вариант NDA — это запрет Исполнителю выполнять какие‑либо работы для компаний‑конкурентов Заказчика или реализовывать схожие программные продукты.
Плюс NDA
Заказчику так спокойнее. Хотя на самом деле ощущение наличия рисков, заставляющее подписывать NDA, чаще всего надуманное.
Стартаперы, которые боятся, что их идеи украдут, особенно яркий пример надуманных опасений. К сожалению (или к счастью), идеи без реализации не стоят вообще ничего. Идей вокруг много, но чтобы какую‑то из них грамотно реализовать, надо быть очень ей замотивированным и при этом хорошо в тематике разбираться. Как правило, чужие идеи достаточной мотивации не вызывают и весьма далеки от сферы деятельности разработчиков.
Если Заказчик — это ген.подрядчик, опасающийся, что «субчик» выйдет напрямую на Заказчика (или обратной ситуации), то и эти опасения чаще всего не очень обоснованы — очень незначительная часть разработчиков действительно хочет выходить на крупные (как правило, государственные) заказы и ощущать все прелести работы с «ну очень большими» Заказчиками.
Минус NDA
Исполнитель будет повышать цену за подобный формат работ — в прайсах всех компаний‑разработчиков указывается цена за работы, об авторстве которых Исполнитель может распространяться в какой угодно форме. Это очень важная составляющая продвижения и продажи профессиональных услуг — доверие к Поставщику часто формируется на основании знаний о его Контрагентах.
Тематические статьи
Серверные языки программирования
Серверные языки программирования нужны для реализации бизнес‑логики, то есть разработчик при помощи языка программирования описывает возможные сценарии использования сайта или приложения.
Системы управления сайтами — CMS
Коробочная система управления сайтом или CMS — это готовый программный продукт, который упрощает создание основных видов сайтов.
Эта платформа для разработки подходит для создания как простых, так и средних по сложности сайтов. Большинство систем управления достаточно универсальны и на них можно собрать почти что угодно — от простого информационного сайта или сайта‑визитки до интернет‑магазина или информационного портала. Есть и специализированные CMS, заточенные под один конкретный тип сайтов, например, для интернет‑магазинов.
Фреймворки в веб‑разработке
Фреймворки — это программные продукты, которые упрощают создание и поддержку технически сложных или нагруженных проектов.
Фреймворк — это программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. Благодаря использованию фреймворков достигается не только высокая скорость разработки, но и большая производительность и надёжность решений.
Выбор между CMS и фреймворком
С технической точки зрения любой функционал может быть реализован или на CMS, или на фреймворке, или реализован без использования каких‑либо платформ на чистом языке программирования.
Однако некоторые проекты проще сделать на CMS, некоторые — на фреймворке, а разработка без использования платформ редко бывает рациональным решением с точки зрения бизнеса. В большинстве случаев, выбор платформы стоит основывать на экономических критериях. В статье приведены основные критерии, которые позволят принять обоснованное решение по этому вопросу.
Рекомендации по выбору CMS и фреймворков
При выборе конкретной платформы для разработки часто возникают сложности. Бывает непросто принять взвешенное решение, в этом случае будет полезен следующий алгоритм выбора.
- При возможности найти готовые решения или продукты — используйте их. В большинстве случаев, оптимальная стратегия выбора: «чем проще — тем лучше».
- Если у вас есть команда разработчиков, то прислушайтесь к их мнению. Важны как возможности самой платформы, так и наличие у команды опыта работы именно с этим технологическим стеком.
- Заранее оцените «заточенность» выбранной платформы под ваши задачи. Не стоит на 100% доверять маркетинговым материалам вендора платформы.
Язык разметки HTML, таблицы стилей CSS и язык программирования JavaScript
Графические интерфейсы современных сайтов и веб‑приложений разрабатываются с использованием всего трёх языков — HTML, CSS, JavaScript.
Содержание каждой страницы сайта определяется HTML‑разметкой, внешний вид — содержанием таблицы стилей CSS, а интерактивность интерфейса — скриптами JavaScript. Кроме HTML, CSS и JS в современной фронтэнд‑разработке никаких других языков не используется.
Валидность и семантичность HTML
Валидность и семантичность HTML кода определяет качество сайта с точки зрения поисковых систем.
Адаптивный и отзывчивый дизайн
Для обеспечения хорошего отображения сайтов на мобильных устройствах (планшетах и смартфонах) обычно создаётся отзывчивый или адаптивный дизайн.
Суть подхода заключается в изменении размера и расположения блоков, коррекции размера шрифтов, а также в отключении не самых важных блоков в случае, если пользователь заходит на сайт с устройства с небольшим экраном.
Поддержка устаревших браузеров
Поддержка устаревших браузеров, как правило, накладывает ограничения на функционал и гарантированно увеличивает стоимость разработки и сопровождения.