Масштабирование — это процесс добавления ресурсов, направленный на возможность информационной системы справляться с растущими объемами данных и их обработкой.
Вертикальное масштабирование предполагает увеличение мощностей за счет добавления ресурсов: процессоров, памяти, дисков и т.д.
Горизонтальное масштабирование реализуется за счет добавления дополнительных узлов инфраструктуры, каждый из которых может взять на себя часть нагрузки остальных. Главные преимущества такого подхода: возможность использовать стандартное недорогое оборудование, достаточное количество ресурсов для рабочих нагрузок и отсутствие необходимости в миграции инфраструктуры.
Асинхронное программирование - это средство написания неблокирующего кода путём выполнения задачи в отдельном, отличном от главного, потоке, а также уведомление главного потока о ходе выполнения, завершении или сбое. Таким образом, основной поток не блокируется и не ждёт завершения задачи, а значит может параллельно выполнять и другие задания.
moveTo(int x, int y) - сигнатура
public void moveTo(int x, int y) throws IOException - контракт
Vanilla(ванильный) - использование языка программирования без сторонних библиотек.
Reverse engineering - метод исследования устройств или программного обеспечения с целью понять принцип его работы или обнаружить недокументированные возможности.
Drag and drop(тащи и бросай) - способ оперирования элементами интерфейса при помощи мыши.
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(Service Level Agreement) - содержит цели уровня обслуживания SLO которые контролируются путем измерения показателей уровня обслуживания SLI.
Это соглашение между компанией и клиентами по определённому сервису. Например, обеспечение определенного количество пользователей/запросов в секунду или время работы сервиса и тд.
SLO(Service Level Objective) - это конкретные цели, которым должен соответствовать сервис. Часто так определяется самый низкий уровень надежности, на который клиент согласен. Должны быть четкими и измеримыми.
SLI(Service Level Indicator) - индикатор уровня обслуживания необходимое для определения статуса сервиса. Значение SLI должно соответствовать или превышать значение, определенное SLO.
Часто разделяют 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:
MVP - продукт, обладающий минимальными, но достаточными для удовлетворения первых потребителей функциями. Обычно используется для предоставления первичной демонстрации нового функционала клиенту.
MVP - продукт, обладающий минимальными, но достаточными для удовлетворения первых потребителей функциями. Обычно используется для предоставления первичной демонстрации нового функционала клиенту.
Plain Old Java ObjectPOJO() - это класс, содержащий только private переменные, к ним сеттеры и геттеры и конструктор.
>Data transfer object(DTO) - объект для передачи данных не имеет логики.
Domain Objects (DO) -
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
Buddy - роль программиста который помогает новичку освоиться в проекте.
YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
Major - новый функционал, нарушающий обратную совместимость.
Minor - новый функционал, не нарушающий обратную совместимость.
Patch - исправление ошибок.
Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (байт-код, ассемблер и т.д.).
Интерпретация — построчный анализ, обработка и выполнение исходного кода программы или запроса. По форме байт-код похож на машинный код, но предназначен для исполнения не реальным процессором, а виртуальной машиной.
GAFAM - большая пятерка технологических гигантов.