FAQ

Кто такой web разработчик и что он делает?
Web разработчик - это программист, который пишет код для сайтов и веб - приложений. Он создает IТ - продукты и поддерживает их работу. Сайт — это любая страница в интернете. Чтобы его сделать, необходимо знать языки программирования, фреймворки, библиотеки и т.п.
Как все работает?
Сайт абсолютно бесплатен. Программистам, которые нуждаются в помощи, мы всегда поможем. Ведь здесь есть увлекательные справочники, лайфхаки, рецепты кода, книги и опытный Отдел Поддержки! Все материалы написаны простым языком. Они не будут засорять ваш мозг ненужной информацией и помогут погрузиться в замечательный и волшебный мир web - разработки.
В какое время работает Отдел Поддержки?
Мы работаем 24/7. В любое время готовы поспешить вам на помощь, ответив на различные вопросы, касаемые как нашего сайта, так и знаний о веб разработке. Так же будем благодарны услышать ваши пожелания или замечания о сайте. Связь со мной может осуществляться через наших сотрудников.
Случился баг, что делать?
Некоторые старые данные сохранились в вашем КЭШ, поэтому в первую очередь, очистите его. Если это не сработало, то где-то была совершена ошибка. Для ее устранения, напишите нам любым удобным для вас способом, и мы обязательно ее исправим!
Могу ли я взять информацию с вашего сайта?
Коммерческое использование материалов сайта gki-webik.ru запрещено. В остальных случаях обязательно наличие индексируемой ссылки со словом "Источник" на сайт или на страницу, содержащую этот материал.
Web сайт или мобильное приложение?

Определения

Существует два направления технической реализации проектов для мобильных устройств: мобильный web сайт и мобильное приложение.

Мобильным web сайтом будем считать специализированный сайт, адаптированный для просмотра и функционирования на мобильном устройстве. Сайт может включать в себя интерактивные компоненты с использованием JavaScript, HTML5, новых API браузеров. В этом случае такую реализацию называют web-приложением. Далее, чтобы избежать путаницы любой вариант, работающий внутри браузера мобильного устройства, будем называть web-сайтом.

Мобильное приложение – это специально разработанное приложение под конкретную мобильную платформу (iOS, Android, Windows Phone). Обычно приложение разрабатывается на языке высокого уровня и компилируется в нативный код ОС, дающий максимальную производительность.

Существует еще третий вариант – мобильное приложение, включающее в себя компонент браузера. В этом случае часть мобильного приложения чаще всего используется для навигации и интергации с ОС, а web-компонент – для показа контента. Обычные пользователи не могут зачастую отличить такой вариант от нативного мобильного приложения.

Аргументы


Интерфейс

Одним из первых аргументов, которые приводят сторонники приложений – наиболее близкий к ОС и привычный для пользователей интерфейс. Действительно мобильное приложение наиболее тесно интегрировано с платформой и дает реализовать привычный отзывчивый интерфейс. С другой стороны web сайт с помощью хорошего форматирования и использования JavaScript может дать вполне понятный метод взаимодействия. На текущий момент отзыв web сайта значительно уступает приложению, но мощность мобильных устройств продолжает расти и сами браузеры существенно меняются в лучшую сторону. Кроме того, различные версии мобильных ОС могут диктовать свои стандарты, которых приходится придерживаться. При этом некоторые нововведения могут оказаться не совсем понятны обычным пользователям. Существенным в данном случае является то, что наиболее активными пользователями (теми кто выставляет рейтинг и делает комментарии в магазинах приложений) являются те, кто «фанатеет» от последних новшеств мобильной ОС. На это стоит обратить внимание при продвижении проекта – их можно использовать как союзников, помогающих распространению.

Быстродействие

Web сайт, а особенно интерактивный, существенно уступает приложению с точки зрения быстродействия. Браузеры мобильных устройств пока не могут порадовать высокой производительностью, кроме того, web-разработчики используют не самые оптимизированные версии библиотек (плохая реализация этих библиотек никак не сказывается на «больших» браузерах, поэтому с этим там можно смириться). Однако и приложение не всегда может радовать хорошим быстродействием – излишняя анимация, сложный интерфейс значительно снижают «отклик». Кроме того, для сложной графики и анимации приходится использовать языки более низкого уровня, разрабатывать или покупать отдельные специализированные библиотеки.

Интеграция с платформой

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

Наличие Интернет

Web сайт запускается из браузера, поэтому требует постоянного соединения с сетью. Это не имеет значения, если проект реализуется исключительно как онлайновый. Однако даже в этом случае из-за особенностей мобильного доступа в Интернет переход между частями приложения (навигация) связана с неприятными для пользователя задержками. Возможно, использование API для хранения локальных данных решат эту проблему, но пока примеров такого применения найти не удалось. Мобильные приложения могут осуществлять работу без подключения, выполняя кеширование и обновление данных, если требуется, при появлении соединения. Но все же и приложению нужно подключение в подавляющем большинстве бизнес-решений.

Фрагментация

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

Ресурсы

Существует такой аргумент, как наличие специалистов. Считается, что специалиста для разработки мобильных приложений очень трудно найти и требуется очень высокая оплата. Учитываем еще то, что под каждую платформу, скорее всего, потребуется отдельный разработчик. В то время как web разработчиков очень много и их услуги сравнительно меньше стоят. Видимо все зависит от конкретной ситуации и конкретного места. Если в наличие есть web-разработчик, то наиболее выгодным будет разработать именно web сайт, если есть мобильные разработчики, то вполне может оказаться не слишком затратным разработка приложения. Но опять же, зависит от проекта – если потребуется серверная часть (а она скорее всего потребуется), то опять же нужен будет web-разработчик, хотя возможно не такой высокой квалификации и трудоемкость его части будет существенно ниже.

Публикация

Приложения некоторых платформ «завязаны» на определенный магазин (AppStore, Windows Store). Даже если такой жесткой привязки нет, то пользователи все равно привыкли находить приложения в магазинах (Google Play). Такие магазины накладывают существенные ограничения на функции приложений (в первую очередь в области платных услуг), к тому же требуется значительно время на утверждение каждой новой версии. Со своей стороны web сайт доступен сразу, достаточно только открыть браузер и ввести адрес (хотя если присмотреться, то это довольно трудоемкое действие может оказаться). Новая версия web сайта доступна сразу на момент публикации. Возможность предоставления платных услуг никак не ограничивается. Опять же аргумент весьма своеобразный – с одной стороны ограничение и медленная публикация в магазине, с другой – в магазине уже есть огромное число пользователей и уже готовые системы для оказания платных услуг. Тогда как на сайт пользователей надо привести и оплата через сайт на мобильном устройстве остается очень трудоемкой процедурой.

HTML5

Большое внимание в последнее время уделяется аббревиатуре HTML5. Это понятие существенно отличается, если смотреть на него с маркетинговой или технической точки зрения.

Технологически HTML5 это дальнейшее развитие языка разметки HTML. Однако сделан существенный шаг в сторону большей структуризации представления, нежели формата отображения. В язык добавлены большие мультимедийные возможности для проигрывания аудио и видео. Добавлена возможность работать с графикой. Существенно расширен язык форматирования CSS. В язык JavaScript добавлено несколько API для работы с графикой, локальными данными, мультимедийным контентом. Сам язык существенно переработан в сторону увеличения быстродействия. Стандарт HTML5 все еще находится в разработке и продолжает дополняться.

С маркетинговой точки зрения HTML5 это гораздо более широкое понятие. Под ним понимают еще много дополнительных API в той или иной степени поддерживаемых различными браузерами, многие интересные расширения CSS (в первую очередь в области интерактивного отображения). Основой понятия является высокая интерактивность сайта, которая позволяет пользователям принимать его за нативные приложения.
С точки зрения мобильной разработки существенно разделять обычный web сайт и сайт с использованием HTML5 не имеет смысла. Фактически стандартом любого сайта становится интерактивность в той или иной мере, реализованная с помощью JavaScript и новых API. Не целесообразно выделять отдельно разработчиков web сайта и разработчиков HTML5 – web разработчик должен свободно владеть технологиями HTML5 и использовать их в случае, если проект удобно реализовать с помощью последних разработок.

Выводы

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

С точки зрения экономии ресурсов самым предпочтительным вариантом выглядит web разработка. Главное – не погрязнуть в тонкостях реализации, предоставить наиболее полезные функции пользователям. Помнить, что главное – контент, а «красивости» (анимация, графика) отходят на второй план.

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

Если проект предусматривает больше оффлайн работу и нацелен на мобильных пользователей, то тут стоит отдать предпочтение приложениям. Однако, как упоминалось выше, возможно web разработчик все равно потребуется.
Для реализации игр и других приложений, требующих высокой производительности интерфейса вероятно дальновиднее реализовать через приложения. Существуют кросс платформенные библиотеки для разработки игр, которые позволяют на одном коде (или с минимальными изменениями) реализовать нативные приложения для различных платформ.
У программистов же есть свой сленг? Какой?
В каждой сфере есть свой сленг и любопытные слова, которые непонятны остальным. Программирование — не исключение. Догадываетесь, что значит «апликуха», «батник» или «галера»?

А

Автокад — система автоматизированного проектирования и черчения AutoCAD.

Аджайл (от англ. Agile) — общий термин, характеризующий подходы гибкой разработки. Слово стало широко использоваться программистами после Манифеста гибкой разработки ПО в 2001 году.

Адаптив — адаптивный дизайн, то есть дизайн веб-страниц, обеспечивающий правильное отображение сайта на разных устройствах.

Айдишник — идентификатор. Сленговое слово пошло от понятия id (англ. identifier).

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

Апишка — API. Программный интерфейс приложения или интерфейс прикладного программирования.

Апликуха — приложение (англ. application).

Аппрувить — согласовывать что-то (англ. approve).

Апгрейд — качественное улучшение чего-либо, обычно это слово употребляют, описывая обновления начинки компьютера (англ. upgrade).

Апдейт — то же самое, что и апгрейд, только касаемо модернизации программного обеспечения (англ. update).

Аттач — приложение к чему-либо, прикрепляемый файл (англ. attachment). Аттачить — прикреплять.

Артефакт — искажение цветов, форм объектов, несовместное движение частей изображения и т.д.

Аутсорс — аутсорсинг, передача некоторых задач подрядчикам.

Б

Баг — ошибка, всплывающая в программе (англ. bug — клоп, жучок).

Багрепорт — отчёт об ошибке с пояснением причины возникновения (англ. bug report).

Банщик — дизайнер, который верстает рекламные баннеры.

Батник — командный файл с расширением .bat. Используется для работы с командной строкой в Windows.

Батон — кнопка (англ. button).

Бахнуть — за короткое время изменить или дополнить функции программы или приложения.

Бенефит — бонус, премия.

Бенч — режим ожидания. Сленговое слово используется при простое в задачах, когда программист ждёт новые задачи и фактически ничего не делает.

Битый — нерабочий. Например, «битая ссылка».

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

Бэклог — порядок функций в зависимости от приоритета для их использования в следующих версиях продуктов.

В

Валидный — действительный, соответствующий требованиям (англ. valid).

Варез — программное обеспечение, полученное с нарушением авторского права (англ. warez).

Варезник — сайт, на котором размещены пиратские фильмы, музыка, ПО.

Виндузятник — неуважительное название пользователя Windows.

Воркшоп — обучающее мероприятие, включающее в себя практику (англ. workshop).

Ворнинг — предупреждение (англ. warning).

Выкатить — опубликовать обновления программы, приложения, игры и тд.

Выпадашка — выпадающее меню.

Г

Галера — компания, где платят низкие по рынку зарплаты и не ценят программистов.

Гик — фанат своего дела. Слово часто применяется по отношению к программистам.

Гребцы — сотрудники галеры.

Грумить — «причесывать», то есть приводить в порядок и устранять недочеты.

Гит — система контроля версий Git или сервис GitHub.

Гуй — графический интерфейс пользователя.

Грызун — компьютерная мышь.

Д

Дамп — файл с полной или частичной копией содержимого памяти ПК или базы данных.

Движок — системы управления контентом, обычно это слово используют в веб-разработке.

Дебажить код — проверять код на ошибки или «баги» (англ. to debug).

Деплой — публикация рабочей версии приложения в том месте, где оно должно функционировать.

Деплоить — публиковать и переносить. Например, задеплоить сайт = перенести его с тестового на рабочий сервер.

Джун — начинающий специалист с минимальным опытом, младший разработчик.

Директория — папка.

Драй — принцип программирования, предлагающий избегать повторений кода.

Дрова — драйверы.

Дропать — удалять что-то. Иногда просто ненужное, иногда — ошибки.

Дропдаун — «выпадашка», выпадающее меню.

Дыра — недочет, лазейка в коде, которую могут использовать хакеры.

Ж

Жаба — язык программирования Java.

Жабаскрипт — язык программирования JavaScript.

Железо — начинка ПК. Аппаратное обеспечение (комплектующие) устройств.

З

Зазиповать — архивировать файлы в формате zip.

Законнектиться — присоединиться к чему либо, например, к рабочей онлайн-конференции.

Зарарить — архивировать файлы в формате rar.

Залить — загрузить.

Запилить — добавить функции.

Звуковуха — звуковая карта.

Змея — язык программирования Python.

И

ИБ — информационная безопасность.

Ибешник — сотрудник отдела информационной безопасности.

Имба — несбалансированный персонаж, предмет или иной элемент компьютерной игры.

Исходник — файл с первоначальным вариантом кода.

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

Иксы — стандарт X Window System.

К

Камень — процессор.

Капча — картинка, которая позволяет убедиться, что пользователь не робот.

Кастомный — сделанный на заказ под потребности клиента.

Коммитить — сохранять код. Например, скоммитить код в приложении = сохранить код в репозитории.

Костыль — код, который поможет исправить несовершенства имеющегося кода. Метод исправления ошибок без серьёзного вмешательства, чтобы код «не хромал».

Кодер — программист.

Кодить — программировать.

Код-ревью — проверка кода.

Кирпич — неработающее или сломанное устройство.

Кракозябры — бессмыслица, набор непонятных символов.

Кресты — язык программирования С++.

Кряк — программа или дополнение к ПО для взлома данного ПО.

Крякнуть — взломать.

Л

Лаг — задержка в реакции программы на действия пользователя.

Ламер — неопытный человек, возомнивший себя профи.

Легаси-код — очень старый код, написанный предыдущей командой.

Либа — библиотека.

Линтер — программы, которые анализируют код и предупреждают об ошибках.

Лицуха — лицензия.

Лог-файл — файл, в котором записываются в хронологическом порядке все выполненные действия в программе.

М

Майнинг — добыча чего-либо.

Мамка — материнская плата.

Мануал — инструкция.

Мержить — объединять или выполнять слияние веток кода.

Меншить — ставить упоминания в чатах или соцсетях.

Митап — встреча специалистов для обмена опытом.

Моб — нестатичный объект в игре.

Моник — монитор.

Мост — сетевое устройство второго (канального) уровня сетевой модели OSI.

Мэтчить — сопоставлять наборы данных из разных источников

Н

Навбар — навигационный блок на сайте или в интерфейсе программы.

Накатить — внести изменения, загрузить новую версию ПО.

Ноулайфер — человек, который большую часть жизни проводит за компьютером.

Нуб — новичок, у которого ничего не получается.

О

Откатить — вернуть все как было, отменить обновления.

Ось — операционная система.

Оверлокинг — оптимизация, «разгон» компьютера.

Оверклокер — специалист, модернизирующий ПК.

Овертайм — переработка.

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

Операнды — данные, с которыми работает выражение.

Откат — возвращение на исходную позицию.

Оффтоп — сообщение не по теме.

П

Падаван — неуважительное название стажера или джуна.

Парсить — собирать данные.

Патч — дополнение или обновление для исправления багов (ошибок).

Песочница — безопасное пространство для выполнения программы.

Пингагуть — проверить доступность определенного IP-адреса, сетевую связность.

Пилот — пробная версия продукта.

Питон — язык программирования Python.

Плюшки — бонусы и подарки.

Профит — выгода, польза.

Подвал — самая нижняя часть страницы.

Пушить — публиковать что-то.

Пэхапэ — язык программирования PHP.

Р

Разраб — разработчик.

Рандом — произвольный, случайный.

Ребутнуть — перезагрузить.

Редирект — перенаправление пользователя с одного сайта на другой.

Релиз — выпуск готовой версии продукта.

Репа — репозиторий, хранилище данных.

Ридми — файл Readme, в котором содержится информация о программе.

Рояль — клавиатура.

С

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

Сабж — тема.

Саппорт — служба поддержки.

Свитчнуть, свичнуть — переключить.

Сетка — модульная сетка для дизайна и вёрстки страниц.

Сейвить — сохранять.

Секьюрный — защищённый, безопасный.

Сервак — сервер.

Сишка — язык программирования С.

Сионист — программист, пишущий на языке программирования С.

Сиквел — язык SQL или сервер SQL.

Снести — удалить.

Стек — список технологий, использующихся компанией или разработчиком.

Софт — программное обеспечение.

Скиллы — навыки.

Т

Таска — задание.

Темплейт — шаблон.

Тимлид — начальник, руководитель IT-команды.

Трейни — стажёр.

Туториал — учебник.

У

Упс — источник (устройство) бесперебойного питания электроэнергией.

Утилита — вспомогательная программа.

Уши — наушники.

Ф

Фаервол — программа до защита сегментов сети или отдельных хостов от несанкционированного доступа.

Фак — часто задаваемые вопросы.

Факап — неудача.

Факапить — делать ошибки и проваливать задачи.

Фича — функция.

Фидбек — обратная связь.

Фиксить — исправлять ошибки.

Фича — уникальная особенность.

Фреймворк — инструмент разработки, набор типовых шаблонных решений, упрощающих работу программиста.

Х

Хаб — класс устройств для объединения компьютеров в сетях Ethernet.

Хакатон — мероприятие для разработчиков, на котором они в течение нескольких дней работают над каким-то продуктом.

Хакнуть — взломать.

Хатэмээль, хатээмэль — язык гипертекстовой разметки HTML.

Хацкер — название начинающего специалиста.

Какие ранги бывают у web разработчика?
В IT выделяют три грейда:

● Джун (от англ. junior, младший) — работает над простыми задачами под руководством опытных коллег;
● Мидл (от англ. middle, средний) — может решать сложные задачи или писать код самостоятельно, старшие коллеги проверяют только результаты;
● Сеньор (от англ. senior, старший) — всё делает сам: пишет код, занимается архитектурой, обучает младших коллег. Решает сложные задачи и отвечает за результаты.
Какой бывает web - разработчик?
Frontend-разработчик - Фронтендер занимается реализацией визуальной и интерактивной части элементов сайта или приложения, предоставляя пользователям возможность взаимодействия с ними через браузер. Frontend-разработчик описывает кодом готовый дизайн-макет сайта, с помощью которого оживляет кнопки, внедряет внутренние ссылки, добавляет графические элементы, настраивает навигацию, наполняет сайт контентом и работает над удобством и простотой использования веб-страницы.

Основными задачами фронтендера являются:
- вёрстка сайтов по разработанному макету веб-дизайнера, включающая в себя написание HTML-кода и CSS стилизацию в понятном для всех браузеров виде;
- обеспечение визуальными и анимационными компонентами страницы сайта, с помощью привязки скриптов;
- разработка удобного пользовательского интерфейса (UI) и опыта взаимодействия (UX) – если отсутствует веб-дизайнер и frontend-разработчику необходимо самостоятельно разработать макет.

Для создания внешнего интерфейса, frontend-разработчику необходимо владеть следующими языками:
- HTML (Hyper Text Markup Language – язык разметки гипертекста) – система верстки, которая определяет структуру документа, то есть, как и какие элементы должны располагаться на веб-странице;
- CSS (Cascading Style Sheets – каскадные таблицы стилей) - это язык для стилизации HTML документа. С помощью CSS можно настраивать цвета, шрифты, размеры элементов, адаптировать макет под разные экраны устройств и многое другое;
- JavaScript – язык программирования для создания динамики и анимации сайта, а также интерактивных элементов на нем.
Так же необходимы знания библиотек и фреймворков, информацию о них вы найдете на нашем сайте.

Backend-разработчик - Процесс backend-разработки самый важный и тесно связан с работой frontend-разработчика. Без бэкенд-разработчика все созданное веб-дизайнером и описанное frontend разработчиком не будет функционировать. Однако при создании несложных сайтов, например, лендингов, backend-разработчик может не понадобиться.
Если результат работы frontend-разработчика мы можем увидеть, зайдя на сайт, то работа backend-специалиста скрыта от глаз пользователей и происходит на сервере в фоновом режиме.
Backend-разработка веб-сайта или приложения состоит из трех частей: сервер, API (интерфейс программирования приложений) и база данных. Эти компоненты обеспечивают доставку данных или услуг, запрашиваемых интерфейсной системой или программным обеспечением. Например, когда вы проходите регистрацию как новый пользователь (ваши данные вносятся в базу данных) или добавляете товары в корзину – процесс суммирования их стоимости и будет серверной работой.

Функции, которые выполняет Backend-разработчик:
- проектирует архитектуру сервиса;
- разрабатывает платформу и основной функционал;
- работает с архитектурой кода;
- разрабатывает приложения, поддерживающих пользовательский интерфейс и безопасность;
- контролирует состояние серверов. Инструменты, используемые Backend-разработчиком:

Для реализации своих задач бэкенд-разработчики используют такие серверные языки, как PHP, Python, Perl, Ruby и Java, а для работы с базами данных – MySQL, PostgreSQL, MongoDB, Redis, Cassandra и Memcached.

Full Stuck-разработчик - это специалист, который занимается и fronted и backend разработкой. Такие специалисты – редкость, поэтому они зачастую работают над большими проектами, где отвечают за все этапы разработки от клиентской части до серверной логики.

Какими навыками и знаниями должен обладать Full Stack?

Составляющими frontend-разработки (HTML, CSS, JavaScript);
Языками для backend-разработки (например, PHP, NodeJS и другие);
Знаниями фреймворков (React, AngularJS);
Знаниями Баз данных ( MySQL, MongoDB и другие);
Знаниями Веб-серверов (Apache, Nginx).