Общие термины

Проработать

  1. Разработка API
  2. КАК РАБОТАЮТ КОДИРОВКИ | ОСНОВЫ ПРОГРАММИРОВАНИЯ
  3. TDDx2, BDD, DDD, FDD, MDD и PDD, или все, что вы хотите узнать о Driven Development
  4. Що таке Domain-Driven Design та на якому етапі варто його впроваджувати в продукт

Виды процессов разработки:

  1. TDD(Test-driven development)
  2. DDT(Data-driven testing)
  3. BDD(Behavior-driven development)
  4. DDD(Domain-Driven Design)

Масштабирование(Scaling)

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

Вертикальное масштабирование(Vertical scaling)

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

Горизонтальное масштабирование(Horizontal scaling)

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

Асинхронное программирование

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

Сигнатура

moveTo(int x, int y) - сигнатура

Контракт

public void moveTo(int x, int y) throws IOException - контракт

Vanilla(ванильный) - использование языка программирования без сторонних библиотек.

Reverse engineering - метод исследования устройств или программного обеспечения с целью понять принцип его работы или обнаружить недокументированные возможности.

Drag and drop(тащи и бросай) - способ оперирования элементами интерфейса при помощи мыши.

Side effect

Side effect - побочные эффекты. Действие, которое выходит за границы функции.

Standalone - это программное обеспечение (ПО), которое не нуждается в каких-либо дополнительных программах и зависимостях для его установки и функционирования.

Системный администратор - отвечает за запуск и поддержание в рабочем состоянии сервера.

DevOps(Development Operations) - отвечает за процесс между разработкой и эксплуатацией. Между разработчиком и сис админом, предполагает базовые знания этих ролей.

SRE(site reliability engineering) - develop + DevOps.

cli - command line interface.

API(Application Programming Interface) - описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой.

CTR(Click-through rate) - кликабельность элемента в процентах от всех отображаемых раз.

CTR = (количество кликов / количество показов) * 100

CRUD
CRUD (сокр. от англ. create, read, update, delete — «создать, прочесть, обновить, удалить») — акроним, обозначающий четыре базовые функции, используемые при работе с персистентными хранилищами данных:
Создание (create) INSERT - POST
Чтение (read) SELECT - GET
Редактирование (update) UPDATE - PUT или PATCH
Удаление (delete) DELETE - DELETE

SLA

SLA(Service Level Agreement) - содержит цели уровня обслуживания SLO которые контролируются путем измерения показателей уровня обслуживания SLI.

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

SLO

SLO(Service Level Objective) - это конкретные цели, которым должен соответствовать сервис. Часто так определяется самый низкий уровень надежности, на который клиент согласен. Должны быть четкими и измеримыми.

SLI

SLI(Service Level Indicator) - индикатор уровня обслуживания необходимое для определения статуса сервиса. Значение SLI должно соответствовать или превышать значение, определенное SLO.

Ограничения(Bound)

  1. CPU Bound - скорость выполнения процесса ограничена скоростью процессора.
  2. I/O Bound - скорость выполнения процесса ограничена скоростью подсистемы ввода/вывода. Запись/чтение.
  3. Memory bound - скорость выполнения процесса ограничена объемом доступной памяти и скоростью доступа к этой памяти.
  4. Cache bound - скорость, с которой прогресс процесса ограничивается объемом и скоростью доступного кэша.

Часто разделяют CPU Bound и I/O Bound задачи, для того чтобы не блокировали потоки другого типа. К примеру разделения HTTP запросов и работа с базой. Это значит что любой тип асинхронных запросов необходим разный thread pool.

Дихотомия(Dichotomy) - поиск делением пополам.

Boilerplate code - общая часть кода, которая необходима для начала работы команды. Часто генерируется плагинами.

Детерминированность(Determinism) - для одних и тех же входных аргументов возвращается один и тот же результат.

NDA(Non-Disclosure Agreement) - юридический договор, заключённый двумя сторонами с целью взаимного обмена материалами, знаниями или другой информацией с ограничением к ней доступа третьим лицам.

Notice period - срок который необходимо отработать после объявление про увольнение. Обговаривается в договоре.

Рекурсия(Recursion) - вызов функции (процедуры) из неё же самой.

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

client-server - сетевая взаимосвязь через сервер.

p2p - сетевая взаимосвязь без сервера. Между клиентами.

Консистентность(consistency) - Согласованность данных друг с другом, целостность данных, а также внутренняя непротиворечивость.

Компонент — это единица ПО, код которой может быть независимо заменен или обновлен.

Виды окон UI:

  1. Drop-down box(выпадающее окно/блок) - список дополнительных возможностей. Обычно при клике на mouse2.
  2. Modal - окно, которое блокирует работу пользователя с родительским приложением до тех пор, пока пользователь это окно не закроет.
  3. Popup - выпадающее информативное окно, не требующее действий.

Прокси сервера(Proxy):

  1. Прямой прокси(Forward Proxy) - используется клиентом, таким как веб-браузер. Клиент знает за этот прокси и осознанно его использует для обхода блокировок и других задач.
  2. Обратный прокси(Reverse proxy) - используется сервером, таким как веб-сервер. Клиент не знает за этот прокси и не осознанно его использует для распределения нагрузок, дополнительной защиты, кэширования и тд.

Жизненный цикл ПО(Life cycle SOFT):

  1. Idea
  2. Analysis
  3. Architecture
  4. Verification
  5. Development
  6. Testing
  7. Bug fixing
  8. Acceptance testing
  9. Release
  10. Support
  11. Dead

Документация проекта

Названия символов на клавиатуре

MVP(Minimum Viable Product)

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

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

POJO

Plain Old Java ObjectPOJO() - это класс, содержащий только private переменные, к ним сеттеры и геттеры и конструктор.

>

DTO

Data transfer object(DTO) - объект для передачи данных не имеет логики.

DO

Domain Objects (DO) -

Uniform Resource

URI — Uniform Resource Identifier (унифицированный идентификатор ресурса)
Пример:URI = http://handynotes.ru/2009/09/uri-url-urn.html

URL — Uniform Resource Locator (унифицированный определитель местонахождения ресурса)
Пример:URL = http://handynotes.ru

URN — Uniform Resource Name (унифицированное имя ресурса)
Пример:URN = /2009/09/uri-url-urn.html

Домен - имя сайта. Несколько доменных имен могут ссылаться на один IP(несколько серверов на одном ПК). При покупке доменного имени, оно будет автоматически добавлено в сервер DNS.

Buddy

Buddy - роль программиста который помогает новичку освоиться в проекте.

Date and Time Formats(ISO 8601)

YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)

Версионирование - управление версиями продукта.

Major.Minor.Patch

Major - новый функционал, нарушающий обратную совместимость.

Minor - новый функционал, не нарушающий обратную совместимость.

Patch - исправление ошибок.

Компиляция

Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (байт-код, ассемблер и т.д.).

Интерпретация

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

Вариантность

Cases of naming

  1. camelCase
  2. PascalCase
  3. snake_case
  4. kebab-case

GAFAM

GAFAM - большая пятерка технологических гигантов.