Разработка Flashcards

1
Q

Как работает интернет?

A
  1. Пользователь вводит доменное имя в браузере
    2.Системы доменных имен (DNS) соотносит домен адреса и ip сервера и возвращает его браузеру
    3.Браузер запрашивает данные с сервера
    4.Серввер находит запрашиваемые данные и возвращает их браузеру
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое ip?

A

Идентификатор устройства в сети (1111.2222.33.4)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое авторизация?

A

Процесс допуска к ресурсу на основании роли и права доступа

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое аутентификация?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Как выглядит процесс регистрации?

A

1.Пользователь придумывает логин и пароль
2.Пользователю присваивается UID - уникальный идентификатор
3.Пользователю присваивается роль в ролевой модели

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Что такое ролевая модель сервиса?

A

Иерархия доступов (User < Admin < …)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Как выглядит иерархия сети?

A

Магистральные кабели > Городская точка распределения > Провайдер > Район > Дом, подъезд > Клиент

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что такое клиент-серверная архитектура?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Какая структура у клиентской стороны?

A
  1. структура страницы - HTML
  2. настройка ее внешнего вида - CSS
  3. реализация механизмов пользовательского взаимодействия - JavaScript
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

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

A

Клиент, который выполняет все запросы пользователя на локальном устройстве, независимо от устройства-сервера

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Какие минусы у rich-клиента?

A
  • сложность удаленной работы с данными
  • обработка большого объема данных на локальном устройстве
  • сложный процесс настройки и установки
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

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

A

Клиент у которого все задачи выполняются на сервере, а сами вычислительные ресурсы клиента очень ограничены

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Какие минусы у thin-клиента?

A
  • зависимость от сервера
  • потребность в постоянном подключении к интернету
  • высокая нагрузка на сервер
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Для чего нужен сервер?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Какие бывают типы серверных приложений?

A
  • веб сервер - сервер приложения
  • прокси-сервер
  • почтовый сервер
  • файловый сервер - виртуальный сервер
  • сервер БД
  • сервер сетевой политики
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Что такое монолитная архитектура?

A

Тип архитектуры сервиса, когда приложения строятся как единое целое, а вся логика по обработке запросов происходит в одном процессе

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

В чем плюсы монолитной архитектуры?

A

Простота и дешевизна реализации и поддержки

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

В чем минусы монолитной архитектуры?

A
  • Сложно масштабировать команду
  • сложно вводить новые технологии и новый функционал
  • цена ошибки для бизнеса очень высокая
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Когда лучше использовать монолитную архитектуру?

A

Монолитную архитектуру лучше использовать:
- в стартапах
- в простых продуктах
- в продуктах, которые не планируют масштабироваться

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Что такое микросервисная архитектура?

A

Тип архитектуры сервиса, приложения которого разбиваются на миниприложения (микросервисы) выполняющие каждый свой кусок функционала

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Какие плюсы у микросервисной архитектуры?

A
  • минимизирует цену ошибки
  • позволяет использовать разный стек под каждый микросервис
  • ускоряет и упрощает выпуски релизов нового функционала
  • легко масштабируется
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Какие минусы у микросервисной архитектуры?

A
  • дороже в создание и подержание
  • сложнее в управление процессом разработки
  • удаленный вызов между микросервисами часто подвержен сбоям
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Когда лучше использовать микросервисную архитектуру?

A
  • в продуктах, где 10+ разработчиков
  • в больших продуктах с большим легаси-кодом
  • в продуктах с высоким трафиком
  • в быстро развивающихся продуктах
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Что такое API?

A

Совокупность методов в виде интерфейса для создания новых приложений.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Зачем нужен API?

A

API даёт доступ одной программы к функциям модуля другой

26
Q

Что включает в себя API?

A

1.метод, который можно выполнить
2.Данные, которые поступают на вход
3.Данные, которые поступают на выход

27
Q

Что такое спецификация API?

A

Документация описывающая команды, которые может выполнить сервер

28
Q

Каким образом происходит взаимодействие между клиентом и сервером

A

Клиент и сервер взаимодействуют с помощью запросов и ответов на них

29
Q

Из чего состоит запрос?

A

Запрос состоит из:
- метода: действия которое необходимо выполнить серверу
- адреса ресурса: адрес, где на сервере хранятся запрашиваемые данные - ресурсы

30
Q

Какие бывают типы запросов?

A

Get, Post, Put, Delete

31
Q

Что делает запрос GET?

A

Чтение информации

32
Q

Что делает запрос POST?

A

Создает новые записи

33
Q

Что делает запрос PUT?

A

Редактирует данные

34
Q

Что делает запрос DELETE

A

Удаляет данные

35
Q

Из чего состоит ответ сервера?

A
  1. Трехзначного кода первая цифра которого обозначает его класс
  2. Результат обработки запроса, если он предусмотрен
36
Q

Какие бывают классы трехзначных кодов ответа сервера?

A

1** - информация
2** - успешность
3** - перенаправление
4** - ошибка клиента
5** - ошибка сервера

37
Q

Какие бывают типы запросов от клиента?

A

Синхронные и асинхронные запросы

38
Q

Что такое синхронный запрос

A

Это тип запроса, при котором клиент отправляет запрос серверу и ждёт, пока он его не обработает, только после окончания обработки получает ответ от сервера

39
Q

Что такое асинхронный запрос?

A

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

40
Q

Какие 7 этапов разработки бывают?

A
  1. Исследование задач
  2. Проектирование
  3. (Опциональный) дополнительные исследования
  4. Написание кода
  5. Самопроверка
  6. Проверка качества кода
  7. Передача кода на тестирование
41
Q

Что из себя представляет этап разработки “Исследование задачи”

A
  1. Менеджер ставит задачу
  2. Разработчик изучает задачу и при необходимости запрашивает недостающие данные
  3. Менеджер уточняет запрошенные данные у клиента и передает обратно разработчику
42
Q

Что из себя представляет этап разработки “Проектирование”

A

После получения всей необходимой для работы информации, разработчики начинают проектировать взаимодействие бэкенда и фронтенда:
Опираясь на User Flow:
- бэкенд готовит описание API и сообщает фронту, какие данные данные нужно передать для получения результата и какие данные будет содержать ответ
-фронтенд составляет список запросов, которые будут адресованы серверу

43
Q

Что из себя представляет этап разработки “Дополнительные исследования”

A

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

44
Q

Что из себя представляет этап разработки “Написание кода”

A

После сбора всей необходимой информации о задаче и получения представления о пути ее решения разработчики преступают к написанию кода на ЯП определенных перед стартом проекта

45
Q

Что из себя представляет этап разработки “Самопроверка”

A

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

46
Q

Что из себя представляет этап разработки “Проверка качества кода”

A

Разработчики проводят рефакторинг кода на читаемость и соответствие стандартам

47
Q

Что разработчик может отметить в задаче в таск-трекере

A
  • где посмотреть разработанную фичу
  • комментарии для тестировщика
  • какие изменения были внесены в дизайн или требования в ходе работы
  • какую функциональность необходимо перепроверить
48
Q

На что влияет качество кода?

A
  1. Скорость разработки
  2. Время, которое необходимо новому разработчику на погружение в проект
  3. Репутацию компании в глазах заказчиков
49
Q

Как определить, что код качественный?

A

Код:
1. Легко воспринимать
2. Легко сопровождать и расширять функционал
3. Покрыт юнит-тестами
4. Не содержит повторяющихся частей
5. Не имеет дыр в безопасности

50
Q

С помощью чего достигается высокое качество кода?

A
  1. Code Style - правила написания кода, унифицирующие его, упрощающие работу с ним и увеличивающие скорость разработки
  2. Самодокументирующийся код - код написанный понятным другому разработчику не знакомому с продуктом
  3. Код-ревью - проверка написанного кода другим разработчиком или техническим лидом
51
Q

Что такое технический долг?

A

Общее название для задач, которые отложены на потом в угоду скорости разработки

52
Q

С помощью каких методов можно решить проблему с техническим долгом?

A
  • Соблюдение баланса в скорости разработки и техническом долге
  • Пристальный контроль над качеством кода
  • Проведение аудита и ревью кода
  • Исправление самых больших проблем технического долга
  • Планирование исправления технического долга
53
Q

Что такое внешняя система?

A

Это система которая не относится к создаваемому продукту и с которой этот продукт будет взаимодействовать

54
Q

Что такое интеграция с внешней системой?

A

Взаимодействие продукта с внешней системой, для выполнения определенных задач

55
Q

Для чего осуществляется интеграция внешних систем?

A

Основная задача это - передача данных из одной системы в другую для их обработки или отображения

56
Q

От чего зависит время, которое необходимо будет затратить на интеграцию внешних систем?

A

1) Наличие у системы API
2) Есть ли у этого API описание?

57
Q

Какие бывают внешние системы (приложения)?

A

Публичными - имеющие свой сайт с описанием их API
Закрытые - не имеющие или имеющие закрытый API

58
Q

какие бывают типы сред разработки?

A

dev - среда, в которой работают разработчики
test - среда, в которой тестируются части приложения
prod - приложение, которое получают пользователи
pre-prod - среда, в которой тестируется весь функционал

59
Q

Что означает “функционал захардкожен”

A

добавлен в код без возможности изменения без разработчика

60
Q

Что такое SSL?

A

это протокол безопасности, создающий зашифрованное соединение между веб-сервером и веб-браузером и подтверждающий подлинность сайта