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

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

Back End

Бэкэнд или «серверная сторона» - это в основном все, что находится за сценой. У систем есть все виды логики, которая выполняется в фоновом режиме, которая заставляет их работать: данные должны храниться и извлекаться, бизнес-логика должна соблюдаться, результаты должны быть рассчитаны ... Для веб-сайта или веб-приложения это относится к все, что пользователь не видит в браузере, например базы данных и серверы.

Интерфейс командной строки (CLI)

Интерфейс командной строки используется для обработки команд компьютерной программы в виде строк текста. Они противоположны графическому интерфейсу пользователя (GUI). Мы используем все это при использовании Терминала (например, консоли Unix), например, используя Git:

$ git clone https://github.com/Hurna/Hurna-Core.git

Проверка кода

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

Проверка кода осуществляется бесклассово: если вы занимаетесь руководящим постом в команде, это не означает, что наш код не нуждается в проверке.

Непрерывная доставка - непрерывная интеграция (CI / CD)

Для больших приложений переход к производству требует множества шагов. Непрерывная интеграция и непрерывная доставка (CI / CD) - это деятельность автоматизированных процессов сборки, интеграции и тестирования. Это позволяет постоянно выпускать новые обновления. Управление этим процессом часто выполняется людьми, которых называют DevOps.

Внешний интерфейс

Для приложения Front End - это часть, доступная пользователю. Интерфейс веб-сайта - это часть, с которой взаимодействуют пользователи. Все, что вы видите во время навигации по Интернету, от шрифтов и цветов до раскрывающихся меню и ползунков, представляет собой комбинацию HTML, CSS и JavaScript, управляемую браузером вашего компьютера.

ПО промежуточного слоя

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

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

Рефакторинг

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

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

Модульное тестирование (UT)

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

В отличие от многих типов тестирования, UT обычно выполняет сам разработчик кода. Если вы сейчас не проводите модульное тестирование, рекомендую вам приступить к нему.

Другой способ взглянуть на модульное тестирование - сначала написать тесты. Это называется разработкой через тестирование (сокращенно TDD). TDD дает дополнительные преимущества:
- Мы не пишем спекулятивный код «Мне это может понадобиться в будущем» - ровно столько, чтобы тесты прошли и охватили наш API.
- Написав тест первым, мы вынуждены думать о том, как вы хотите вызывать код, что обычно улучшает дизайн кода в долгосрочной перспективе.

Алгоритм

Все, что мы делаем с компьютером, так или иначе зависит от алгоритма. Любое программное обеспечение (даже самый продвинутый искусственный интеллект) - это всего лишь алгоритмы, объединенные с некоторыми структурированными данными (см. Ниже).
Вот и все: Алгоритмы + Структуры данных = Программное обеспечение.

Другими словами, это список инструкций, процедур или формул, которые решают проблему ... Это может быть код для эффективной сортировки результатов поиска, код для поиска кратчайшего маршрута между A и B на карте, формула для шифрования и расшифровать конфиденциальную информацию и т. д.

Структура данных

Структуры данных - это способ хранения и извлечения данных, они представляют собой знания, которые необходимо организовать в памяти. Какие бы проблемы мы ни решали, нам так или иначе приходится их решать!

Мертвый код

Мертвый код - это любой раздел кодовой базы, который никогда не используется приложением.

Бесконечный цикл - Бесконечный цикл

Бесконечный цикл - это последовательность инструкций, которая будет продолжаться бесконечно, если не произойдет внешнее вмешательство. Это может быть сделано намеренно, но в большинстве случаев наше критическое состояние не работает. Результат такого бесконечного цикла часто приводит к зависанию приложения (и потреблению большей части нашего процессора, что может привести к общим задержкам) или даже к сбою.

Функциональное программирование

Функциональное программирование или FP - это парадигма программирования. Это стиль создания программных приложений. Некоторые из его принципов - способ построения программы путем составления чистых функций, избегая общего состояния, изменяемых данных и побочных эффектов.

Вывоз мусора

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

Мемоизация

Мемоизация - это метод, используемый для хранения результата выполнения дорогостоящей в вычислительном отношении функции путем сохранения его в кэше. Если функция вызывается позже с теми же аргументами, результат загружается из кеша, а не пересчитывается, что экономит ресурсы ЦП.

Вкратце: мемоизация - это способ запомнить то, что мы уже нашли.
Она используется для снижения затрат времени функции в обмен на затраты места.

Там, где наивная рекурсия не соответствует требованиям Фибоначчи: дерево выше показывает для каждого индекса (корня) вычисляемые узлы (все его дочерние элементы). Красные узлы показывают бесполезные вычисления, которые вместо этого могут использовать результаты, уже вычисленные синими.

Напоминаем, что числа Фибоначчи определяются следующим образом:
F (0) = 0
F (1) = 1
F (n) = F (n − 1) + F (n −2)

Разобрать

Действие преобразования данных, описанных в тексте, в данные, хранящиеся в структуре данных. Когда мы получаем данные из веб-API, обычно это JSON (просто строка). Нам нужно проанализировать его, чтобы преобразовать в объект, чтобы эффективно манипулировать данными:

// JSON data (stored as a string)
  {
    "name": "Maze Solver - Pathfinding",
    "list": {
      "a_star": "A* (A-Star)",
      "bfs": "Breadth First Search",
      "dfs": "Depth First Search",
      "dijkstra": "Dijkstra"
    }
  }
// JS manipulate data through an Object built from the string parse.
  const parsedData = JSON.parse(data);
  // parsedData is now an object and can be accessed as follows:
  parsedData.name;              // "Maze Solver - Pathfinding"
  parseData.list.forEach(...);  // Iterate over the list

Код спагетти

Спагетти-код - это сленг, используемый для описания исходного кода программы, который трудно читать или следовать человеку из-за того, как исходный программист написал код. Это может быть вызвано несколькими факторами, такими как изменчивые требования к проекту, отсутствие правил стиля программирования, а также недостаточные способности или опыт программиста.

Класс (прототип) - объект (экземпляр)

Класс (прототип) - это шаблон, который определяет свойства объекта и может также описывать поведение объекта.
Объект - это экземпляр класса.

Мы можем думать о классе как об эскизе (прототипе) автомобиля. Он содержит все подробности о количестве шин, дверях, цвете ... Основываясь на этих описаниях, мы строим машину, скажем, Зеленую машину: эта Зеленая машина и есть объект. Из одного прототипа можно сделать столько автомобилей, что мы можем создать столько объектов, сколько захотим, из класса.

Более подробную информацию можно найти в глоссарии Функция - Класс.

Постоянный

Константа - это значение или переменная, значение которой никогда не изменится во время работы программы. Ключевое слово «const» используется для определения таких данных в большинстве языков программирования:

const auto lastName = "CantBeChanged";

Структура данных

Структуры данных - это способ хранения и извлечения данных, они представляют собой знания, которые необходимо организовать в памяти. Какие бы проблемы мы ни решали, нам так или иначе приходится их решать!

Экземпляр структуры данных - это объект.

Null - Nullptr

Null и NullPtr представляют собой преднамеренное отсутствие значения.

let uninstantiated = null; // JS
Car* lostPtr = nullptr; // C++

Указатель

Указатель - это переменная, которая содержит адрес памяти, в котором находится значение. По аналогии, номер страницы в индексе книги можно рассматривать как указатель на соответствующую страницу.

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

Нить

Строка - это последовательность символов, используемая для представления текста.

const string = "hello world";

Строкой можно управлять как массивом, содержащим символы (см. Ниже).

Примитивы

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

Примечание: фактический диапазон доступных примитивных типов данных зависит от конкретного используемого языка программирования (это самые основные).

Логическое - bool

Логическое значение имеет 2 возможных значения: истина или ложь.

bool truth = true;

Персонаж - Char

Он хранит один символ и требует одного байта памяти:

const char letter = 'H';

Number - Integer (Int), Float…

Числовой тип данных.

const pi = 3.14; // :p

Неопределенный

Неопределенное в JS - это примитивное значение, автоматически присваиваемое переменной, которая только что была объявлена, или аргументу функции, которая не была предоставлена.

Форматы

JSON

JSON расшифровывается как JavaScript Object Notation. Это способ форматирования данных так, чтобы они были удобочитаемыми, сохраняемыми в виде строки и, таким образом, передаваемыми из одного места в другое. Чаще всего используется в веб-разработке.

{
  "id" : 8,
  "name" : "Globo",
  "functions" : ["solver", "player", "teacher"],
  "isAvailable" : true
}

XML

XML означает расширяемый язык разметки и был разработан для хранения и передачи данных в удобочитаемом виде как для людей, так и для машин. И XML, и JSON имеют одну и ту же цель.

Аргумент - Параметр

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

int square(int number)  // number is the parameter
  { return number * number; }
  ---
  auto result = square(3); // 3 is the argument

Перезвоните

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

// Callback definition
  function displayCount(count)
  { console.log("File contains " + count + " lines."); }
  readFile("text.txt", displayCount); // Callback passed as argument

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

Конструктор

Конструктор - это метод внутри класса, который используется для создания экземпляра (создания экземпляра) объекта. Он автоматически вызывается при построении объекта.

Функция

Функция - это именованный раздел программы, который выполняет определенную задачу.

multiply(3, 3); // multiply is the function called

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

Метод

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

Вложенная функция

Вложенная функция - это функция, содержащаяся внутри другой функции. Его можно использовать для ограничения объема внутренней функции.

function getSurfBoard(weather, size, height) {
  const boardList = getBoardForWeather(weather);
  // Nested function
  function filterBoardByBody(size, height) {...}
}

Рекурсивная функция

Термин «рекурсивный» описывает функцию или метод, который вызывает сам себя.

Понимание того, как работает рекурсия, - фундаментальный навык программирования.

function fibonacci(number) {
  if (number === 0) return 0;
  if (number === 1) return 1;
  return fibonacci(number - 1) + fibonacci(number - 2);
}

Напоминаем, что числа Фибоначчи определяются следующим образом:
F (0) = 0
F (1) = 1
F (n) = F (n − 1) + F (n −2)

Git - Контроль версий

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

Возможно, никто никогда не узнает все команды git, потому что их много, но есть некоторые, о которых каждый разработчик должен знать, чтобы иметь возможность сотрудничать с другими разработчиками.

Ветвь

Ветвление позволяет каждому разработчику отделиться от исходной кодовой базы и изолировать свою работу от других. Это также помогает Git легко объединять версии позже.

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

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

$ git checkout -b [branch name] // Create a new branch and switch to it

Совершить

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

$ git commit -m "This fix a bug in the code base" // Commit changes

Мы рекомендуем использовать графический интерфейс для управления коммитами, это дает нам лучший контроль над тем, что мы хотим зафиксировать.

$ git gui // (git-gui)

Конфликты

При работе в Git пользователи могут комбинировать коммиты из двух разных веток с помощью действия, известного как слияние. Файлы объединяются автоматически, если не требует изменения одной и той же строки кода. В этом случае возникает конфликт: какую версию этой строки следует взять?

Конфликты слияния традиционно могут доставлять разработчикам много неприятностей при работе в терминале. Вот почему мы советуем использовать графический интерфейс (например, meld) для разрешения конфликтов.

GitHub

GitHub, Inc. - глобальная компания из США, которая предоставляет хостинг для контроля версий программного обеспечения с помощью Git. Это крупнейшая в мире платформа с открытым исходным кодом. Сейчас это дочерняя компания Microsoft, которая приобрела компанию в 2018 году за 7,5 млрд долларов США.

Объединить

Слияние одной ветки с другой - это действие слияния двух разных версий проекта вместе. Если вы закончили работу над веткой с именем «my-feature», вы можете объединить ее с master, чтобы основная ветка была обновлена ​​вашей работой.

$ git merge [source branch] [target branch] // Merge a branch into a target branch

Тянуть

Это действие по обновлению вашей локальной версии репозитория до последней фиксации. Не забудьте сделать это перед тем, как начать над чем-то работать!

$ git pull // Update local repository to the newest commit

Толкать

Это действие по отправке ваших коммитов в удаленный репозиторий (например, на GitHub или GitLab).

$ git push // Push changes to remote repository

Репозиторий (репо)

Воспринимайте это как папку, которая содержит все исходные файлы и отслеживает все внесенные изменения, создавая историю с течением времени. На Github каждый проект - это репо.

Интернет - HTTP

CSS

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

CSS экономит много работы.

// All of the tag h1 are green and centered
  h1 {
    color: green;
    text-align: center;
  }

Объектная модель документа (DOM)

HTML, который мы пишем, анализируется браузером и превращается в DOM (объект), который, по сути, представляет собой API для страницы, позволяющий читать и управлять содержимым страницы, структура и стили.

С помощью DOM JavaScript получает всю мощь, необходимую для динамического управления нашими страницами.

Событие, прослушиватель событий

Щелчок, прокрутка, нажатие клавиши на нашей клавиатуре - это то, что называется «событием». Их очень много. На веб-сайте мы можем захотеть их прослушивать, создав прослушиватель событий, чтобы выполнять проверку формы, реагировать на нажатие кнопки и т. Д.

HTML (язык разметки гипертекста)

HTML (язык гипертекстовой разметки) - это код, который используется для структурирования веб-страницы и ее содержимого. HTML - это не язык программирования; это стандартный язык разметки, используемый для создания веб-страниц и веб-приложений. Эта разметка использует теги ‘‹ ›’, чтобы сообщить веб-браузеру, как отображать текст, изображения и другие формы мультимедиа на веб-странице.

HTTP

HTTP - это протокол, который позволяет получать ресурсы, например документы HTML. Это основа обмена данными в Интернете и протокол клиент-сервер, что означает, что запросы инициируются получателем. , обычно во всем веб-браузере. Полный документ создается (или выбирается) на стороне сервера, а затем отправляется пользователю.

HTTPS

Безопасный протокол передачи гипертекста (HTTPS) - это безопасная версия HTTP. HTTPS зашифрован для повышения безопасности передачи данных. Это особенно важно, когда пользователи передают конфиденциальные данные, например, войдя в банковский счет, в службу электронной почты или в систему медицинского страхования.

Любой веб-сайт, особенно тот, который требует учетных данных, должен использовать HTTPS. В современных веб-браузерах веб-сайты, не использующие HTTPS, помечаются иначе, чем те, которые есть. Найдите зеленый замок в строке URL, чтобы обозначить безопасность веб-страницы.

JWT

JWT или JSON Web Token - это стандарт, используемый для создания токенов безопасного доступа для приложения.

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

ВОЙЛА! Не сомневайтесь, посетите Академию H.urna, чтобы получить более глубокие знания по каждой из этих концепций: https://hurna.io/academy/glossaries/index.html

Х.урна - Открытие науки для всех