Разработка 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
Зачем нужен API?
API даёт доступ одной программы к функциям модуля другой
26
Что включает в себя API?
1.метод, который можно выполнить 2.Данные, которые поступают на вход 3.Данные, которые поступают на выход
27
Что такое спецификация API?
Документация описывающая команды, которые может выполнить сервер
28
Каким образом происходит взаимодействие между клиентом и сервером
Клиент и сервер взаимодействуют с помощью запросов и ответов на них
29
Из чего состоит запрос?
Запрос состоит из: - метода: действия которое необходимо выполнить серверу - адреса ресурса: адрес, где на сервере хранятся запрашиваемые данные - ресурсы
30
Какие бывают типы запросов?
Get, Post, Put, Delete
31
Что делает запрос GET?
Чтение информации
32
Что делает запрос POST?
Создает новые записи
33
Что делает запрос PUT?
Редактирует данные
34
Что делает запрос DELETE
Удаляет данные
35
Из чего состоит ответ сервера?
1. Трехзначного кода первая цифра которого обозначает его класс 2. Результат обработки запроса, если он предусмотрен
36
Какие бывают классы трехзначных кодов ответа сервера?
1** - информация 2** - успешность 3** - перенаправление 4** - ошибка клиента 5** - ошибка сервера
37
Какие бывают типы запросов от клиента?
Синхронные и асинхронные запросы
38
Что такое синхронный запрос
Это тип запроса, при котором клиент отправляет запрос серверу и ждёт, пока он его не обработает, только после окончания обработки получает ответ от сервера
39
Что такое асинхронный запрос?
это тип запросов, при котором клиент отправляет запрос и при этом показывает промежуточный результат, не дожидаясь ответа от сервера
40
Какие 7 этапов разработки бывают?
1. Исследование задач 2. Проектирование 3. (Опциональный) дополнительные исследования 4. Написание кода 5. Самопроверка 6. Проверка качества кода 7. Передача кода на тестирование
41
Что из себя представляет этап разработки "Исследование задачи"
1. Менеджер ставит задачу 2. Разработчик изучает задачу и при необходимости запрашивает недостающие данные 3. Менеджер уточняет запрошенные данные у клиента и передает обратно разработчику
42
Что из себя представляет этап разработки "Проектирование"
После получения всей необходимой для работы информации, разработчики начинают проектировать взаимодействие бэкенда и фронтенда: Опираясь на User Flow: - бэкенд готовит описание API и сообщает фронту, какие данные данные нужно передать для получения результата и какие данные будет содержать ответ -фронтенд составляет список запросов, которые будут адресованы серверу
43
Что из себя представляет этап разработки "Дополнительные исследования"
В случае возникновения сложностей разработчики обращаются за помощью к коллегам, документации или гуглят
44
Что из себя представляет этап разработки "Написание кода"
После сбора всей необходимой информации о задаче и получения представления о пути ее решения разработчики преступают к написанию кода на ЯП определенных перед стартом проекта
45
Что из себя представляет этап разработки "Самопроверка"
Перед передачей фичи тестировщику, разработчик проверяет: - адаптивность сайта - взаимодействие с формами - корректность обработки данных полученных от сервера - не затронули ли изменения в коде другой функционал продукта Для автоматизации этого процесса разработчики пишут юнит-тесты перед написанием самого кода. На это уходит больше времени, но качество кода в итоге выходит лучше.
46
Что из себя представляет этап разработки "Проверка качества кода"
Разработчики проводят рефакторинг кода на читаемость и соответствие стандартам
47
Что разработчик может отметить в задаче в таск-трекере
- где посмотреть разработанную фичу - комментарии для тестировщика - какие изменения были внесены в дизайн или требования в ходе работы - какую функциональность необходимо перепроверить
48
На что влияет качество кода?
1. Скорость разработки 2. Время, которое необходимо новому разработчику на погружение в проект 3. Репутацию компании в глазах заказчиков
49
Как определить, что код качественный?
Код: 1. Легко воспринимать 2. Легко сопровождать и расширять функционал 3. Покрыт юнит-тестами 4. Не содержит повторяющихся частей 5. Не имеет дыр в безопасности
50
С помощью чего достигается высокое качество кода?
1. Code Style - правила написания кода, унифицирующие его, упрощающие работу с ним и увеличивающие скорость разработки 2. Самодокументирующийся код - код написанный понятным другому разработчику не знакомому с продуктом 3. Код-ревью - проверка написанного кода другим разработчиком или техническим лидом
51
Что такое технический долг?
Общее название для задач, которые отложены на потом в угоду скорости разработки
52
С помощью каких методов можно решить проблему с техническим долгом?
- Соблюдение баланса в скорости разработки и техническом долге - Пристальный контроль над качеством кода - Проведение аудита и ревью кода - Исправление самых больших проблем технического долга - Планирование исправления технического долга
53
Что такое внешняя система?
Это система которая не относится к создаваемому продукту и с которой этот продукт будет взаимодействовать
54
Что такое интеграция с внешней системой?
Взаимодействие продукта с внешней системой, для выполнения определенных задач
55
Для чего осуществляется интеграция внешних систем?
Основная задача это - передача данных из одной системы в другую для их обработки или отображения
56
От чего зависит время, которое необходимо будет затратить на интеграцию внешних систем?
1) Наличие у системы API 2) Есть ли у этого API описание?
57
Какие бывают внешние системы (приложения)?
Публичными - имеющие свой сайт с описанием их API Закрытые - не имеющие или имеющие закрытый API
58
какие бывают типы сред разработки?
dev - среда, в которой работают разработчики test - среда, в которой тестируются части приложения prod - приложение, которое получают пользователи pre-prod - среда, в которой тестируется весь функционал
59
Что означает "функционал захардкожен"
добавлен в код без возможности изменения без разработчика
60
Что такое SSL?
это протокол безопасности, создающий зашифрованное соединение между веб-сервером и веб-браузером и подтверждающий подлинность сайта