каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны Робертом К. Мартином в 2000 году. Общая цель принципов SOLID — уменьшить количество зависимостей, чтобы инженеры могли изменять одну область программного обеспечения, не затрагивая другие.

Что такое принцип единой ответственности?

В соответствии с этим принципом у класса должна быть одна и только одна причина для изменения, а это означает, что у класса должна быть только одна работа. Этот принцип гласит, что если у нас есть 2 причины для изменения класса, мы должны разделить функциональность на два класса. Каждый класс будет нести только одну ответственность, и если в будущем нам понадобится внести одно изменение, мы сделаем это в классе, который его обрабатывает. Например, рассмотрим приложение, которое берет набор фигур (круги, квадраты) и вычисляет сумму площадей всех фигур в наборе. Затем мы можем создать отдельные классы для квадрата и круга, чтобы получить длину и радиус. Также мы можем создать отдельный класс для вычисления площади.

Что такое принцип открытия-закрытия?

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

Что такое принцип замещения Лискова?

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

Если ваш код следует принципу замещения Лискова, вы получите следующие преимущества:

1) Возможность повторного использования кода
2) Простота обслуживания
3) Уменьшение связи

Каков принцип разделения интерфейсов?

Принцип разделения интерфейса (ISP) гласит, чтоклиент не должен подвергаться воздействию методов, которые ему не нужны. Объявление в интерфейсе методов, которые не нужны клиенту, загрязняет интерфейс и приводит к тому, что он становится «громоздким» или «жирным».

Что такое принцип инверсии зависимостей?

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

JavaScript

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

  • JavaScript был создан в первую очередь для манипулирования DOM. Раньше веб-сайты были в основном статичными, после создания JS стали создаваться динамические веб-сайты.
  • Функции в JS — это объекты. У них могут быть свойства и методы, как и у других объектов. Их можно передавать в качестве аргументов в другие функции.
  • Может обрабатывать дату и время.
  • Выполняет проверку формы, хотя формы создаются с использованием HTML.
  • Компилятор не нужен.

ключевое слово «это»

В JavaScript ключевое слово this относится к объекту. Какой объект зависит от того, как «это» вызывается (используется или вызывается). Ключевое слово this относится к разным объектам в зависимости от того, как оно используется:

Само по себе «это» относится к глобальному объекту. В функции this относится к глобальному объекту. В функции в строгом режиме «это» не определено.

Строгая запись

Строгий режим упрощает написание «безопасного» JavaScript. Строгий режим превращает ранее принятый «плохой синтаксис» в настоящие ошибки. Например, в обычном JavaScript опечатка в имени переменной создает новую глобальную переменную. В строгом режиме это вызовет ошибку, что сделает невозможным случайное создание глобальной переменной. В обычном JavaScript разработчик не получит никакой обратной связи об ошибке при присвоении значений недоступным для записи свойствам. В строгом режиме любое присвоение недоступному для записи свойству, свойству только для получения, несуществующему свойству, несуществующей переменной или несуществующему объекту вызовет ошибку.

Закрытие

пример:-

const add = (function () {
let counter = 0;
return function () {counter += 1; return counter}
})();

добавить();
добавить();
добавить();

Переменная add присваивается возвращаемому значению самовызывающейся функции. Функция самовызова запускается только один раз. Он устанавливает счетчик на ноль (0) и возвращает функциональное выражение. Таким образом, add становится функцией. «Замечательная» часть заключается в том, что он может получить доступ к счетчику в родительской области. Это называется закрытием JavaScript. Это позволяет функции иметь «частные» переменные. Счетчик защищен областью действия анонимной функции и может быть изменен только с помощью функции добавления.

Обратный звонок и обещания

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

Конструктор промисов в JavaScript определяет несколько статических методов, которые можно использовать для получения одного или нескольких результатов из промисов: Promise.all , Promise.race, Promise.allSettled, Promise.any.

Гит

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

Репозитории Git

Репозиторий Git (или для краткости репозиторий) содержит все файлы проекта и всю историю изменений. Вы возьмете обычную папку с файлами (например, корневую папку веб-сайта) и скажете Git сделать ее репозиторием. При этом создается подпапка .git, содержащая все метаданные Git для отслеживания изменений.

Git clone. Git clone — это команда для загрузки существующего исходного кода из удаленного репозитория.

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

Git status. Команда Git status предоставляет нам всю необходимую информацию о текущей ветке.

Git commit. Возможно, это наиболее часто используемая команда Git. Как только мы достигнем определенной точки в разработке, мы хотим сохранить наши изменения.

Git push: после фиксации изменений вам нужно отправить их на удаленный сервер. Git push загружает ваши коммиты в удаленный репозиторий.

NoSQL

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

Гибкость: базы данных NoSQL обычно предоставляют гибкие схемы, которые обеспечивают более быструю и итеративную разработку. Гибкая модель данных делает базы данных NoSQL идеальными для полуструктурированных и неструктурированных данных.

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

примеры для баз данных NoSQL: MongoDB, CouchDB, HBase, Riak, Cassandra.