На протяжении всей серии мы сосредоточимся на;

  • Как разработать полнофункциональное веб-приложение с использованием передового языка разработки программного обеспечения Javascript.
  • Как использовать MongoDB как базы данных NoSQL для разработки приложений
  • Как должна осуществляться разработка в соответствии с принципами и практиками разработки программного обеспечения.
  • Как заменить код серверной службы веб-службой Java
  • Кроме того, будут обсуждаться React JS, Node JS, KoaJS, Graph QL, Spring Boot и Docker.

Начнем…!!

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

SOLID известен как первые пять принципов объектно-ориентированного проектирования (OOD). Это ключевые принципы проектирования, которые продвигал Роберт К. Мартин, чтобы сделать каждого разработчика лучше.

SOLID обозначает,

S — Принцип единой ответственности
O — Принцип открытости-закрытости
L — Принцип замещения Лисков
I— Принцип разделения интерфейсов
D — Принцип инверсии зависимостей

Давайте подробно обсудим эти термины.

Принцип единой ответственности

Это означает, что функция, модуль или API должны делать только одну вещь или иметь только одну причину для изменения. Например, если вы рассматриваете класс под названием «Студент» со своими собственными атрибутами и методами, он должен изменяться только при изменении модели данных.

Принцип открытия и закрытия

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

Принцип замены Лисков

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

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

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

Принцип инверсии зависимостей

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

Как найти лучший способ найти решение?

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

Они следующие:

  • Обдумать проблему в целом — понять четкие и неясные мнения о проблеме, прояснить их и обдумать проблему, прежде чем приступать к решению.
  • Разделяй и властвуй — понимание проблемы путем разделения ее на части, что делает ее более понятной, чем поиск решений сложной проблемы.
  • KISS — не задумываясь и не усложняя решение, всегда лучше сделать его простым и необдуманным.
  • Учитесь, особенно на ошибках — всегда нужно принимать изменения
  • Всегда помните, для чего существует программное обеспечение. Чтобы следовать правильному пути, полезно иметь более полное представление о том, почему существует программное обеспечение.
  • Помните, что вы не пользователь – очень важно поддерживать удобство для пользователя, поскольку конечный пользователь может не быть техническим специалистом, как разработчик.

Как реализовать решение?

Это рекомендации, которые следует помнить при реализации решений.

  • YAGNI — «You Aне Gонна N нужно я т”

Напишите нужный код на данный момент. Будущее всегда случайно и изменчиво.

  • СУХОЙ — «Dне повторяйте вы себя»

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

  • Примите абстракцию

Даже не зная деталей реализации каждого компонента, система всегда должна работать правильно

  • DRITW — «Dне Reяне придумываю Tон >Wна каблуках

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

  • Напишите код, который хорошо выполняет одну задачу

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

  • Отладка сложнее, чем написание кода

Всегда делайте код простым и удобным для чтения.

  • Кайдзен — "Оставьте это лучше, чем когда вы его нашли"

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

Благодаря полученным знаниям мы теперь можем реализовать хорошее решение проблем, но при разработке кода это все?

Вот несколько рекомендаций, которым мы должны следовать при разработке кода!

Эти рекомендации также известны как «Практики», представленные «Гуру кодирования». Они также считаются лучшими практиками для разработки программного обеспечения. Давайте учиться один за другим.

1. Модульное тестирование

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

2. Качество кода

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

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

  • Это лучший способ улучшить качество кода, не критикуя разработчика.
  • Посмотрев на код так много раз, будет легко найти лучшее из лучших решений.
  • Некоторые методы: Рецензирование коллег, рецензирование потенциальных клиентов и парное программирование.

4. Контроль версий

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

5. Непрерывная интеграция

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

Зная эти методы и принципы разработки программного обеспечения, давайте рассмотрим ведущий язык разработки программного обеспечения, который мы будем изучать в этой серии, а именно JavaScript.

Но подождите..!

Что такое JavaScript?

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

Почему JavaScript асинхронный?

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

Являются ли Java и JavaScript одним и тем же?

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

Начать работу с JavaScript очень просто. Все, что вам нужно, — это современный веб-браузер.

Давайте посмотрим, как написать базовый код JavaScript для Hello World

function getName() {
return «Hello World»;
}
const print = function () {
console.log(getName());
} печать();

· Эта программа будет генерировать выходные данные в консоли

Вывод:
Hello World

Классы и объекты JavaScript

Создание объекта в JavaScript начинается с определения и инициализации переменной.

Постоянный человек = {};

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

В JavaScript функция-конструктор с ключевым словом new также создает объект. Эта функция действует как класс. JavaScript поддерживает статические методы и переменные. Например, давайте создадим класс Person с объектом.

function Person(name) {
this.name = name;
this.getName = function(){
return this.name;
}
}
const person = new Person ("Сэм");
console.log(person.getName());

Что такое ключевое слово «this» в приведенном выше коде?

Он относится к текущему объекту, внутри которого написан код. Итак, в этом фрагменте кода «это» относится к человеку. Иногда в глобальном контексте this относится к глобальному объекту (в браузере это объект окна). Но это поведение будет изменено в строгом режиме.

Что такое строгая нотация в JavaScript?

Это ограниченный режим JavaScript, который упрощает написание безопасного кода. Например,если мы попытаемся объявить переменную без ключевого слова ‘var’, это будет запрещено.

Что такое прототипы в JavaScript?

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

Это сбивает с толку? Давайте рассмотрим пример того, как это делается.

function Person (FName, LName, Age){
this.firstName = FName;
this.lastName = LName;
this.age = Age;
}

const person1 = новое лицо («Сэм», «Перера», 30);
const person2 = новое лицо («Энн», «Пейрис», 24);

Можем ли мы добавить новое свойство в существующий конструктор объектов?

НЕТ, если мы хотим добавить новое свойство в конструктор, его нужно добавить в функцию конструктора.

function Person (FName, LName, Age){
this.firstName = FName;
this.lastName = LName;
this.age = Age;
this.nationality = “Sri ланкийский»;
}

Что такое замыкание JavaScript?

Замыкание — это еще одна особенность JavaScript, в которой внутренняя функция имеет доступ к переменной внешней функции. Каждый раз, когда замыкание создается с созданием функции. Замыкания имеют доступ к трем различным областям;

  1. В своем собственном масштабе
  2. К другим объявленным глобальным переменным
  3. К переменным во внешней функции

Поясним на простом примере

function func(){
var x = 10;
function innerFunc()
{
return x;
}
return innerFunc;
}

Знаете ли вы, что такое «обратные вызовы и обещания» в JavaScript?

Как мы обсуждали ранее, JavaScript является асинхронным. Но когда нужна синхронная обработка данных, как программа решит этот вопрос? Они решаются с помощью этих обратных вызовов и промисов.

//функция обратного вызова
function getValue(callback){
let value = 0;
setTimeout ( function (){
value = 10;
обратный вызов (значение);
} , 1000);
});
}

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

Нужен ли вам пример их использования? В приведенном ниже коде показано, как….

// разрешение означает успех
// отклонение означает ошибку

function getValue(){
let value = 0;
return new Promise (function (resolve , reject){
setTimeout ( function (){
value = 10;
resolve(value);
} , 1000);
});
}
// здесь getValue — обещание

Это с JavaScript? Не совсем… давайте обсудим и попрактикуемся в программировании и других функциях в будущих блогах. Если вы хотите узнать больше о фреймворках приложений, оставайтесь на связи

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

Что такое контроль версий?

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

Какова цель использования системы контроля версий?

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

Вот некоторые термины, которые мы будем использовать при управлении версиями

Репозиторий — каталог/местоположение с набором файлов
Магазин — также известен как основная ветвь. Весь стабильный код (рабочий код) хранится здесь.
Стадия — пометить файлы для отслеживания изменений
Коммит — это как снимок с изменениями, внесенными в файлы
Ветка — копия основной ветки будет взята в качестве ветки, и все доработки функций и исправления ошибок будут выполняться здесь. Одновременно может быть несколько веток, что помогает другим разработчикам использовать код.
Оформить заказ — пометить/разблокировать файл для изменения
Объединить — объединение веток в ветку Master для обновления
Конфликт слияния — эти ошибки возникают при слиянии файла, который был изменен двумя разными ветками

GitHub, GitLab, Beanstalk, PerForce — одни из самых популярных систем контроля версий, и в этом блоге мы будем обсуждать систему контроля версий GitHub.

GitHub — самая популярная система контроля версий, поскольку она бесплатная и с открытым исходным кодом. По сравнению с другими системами он быстрее и поддерживает несколько протоколов (HTTP, SSH).

Познакомимся с некоторыми командами Git
•Git init
•Git clone
•Git add
•Git stage< br /> • Git commit
• Git push

Теперь мы подошли к последней части блога, где мы закончим кратким введением в базы данных NoSQL.

NoSQL, значит ли это, что нет SQL?

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

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

Здесь используется механизм JavaScript SpiderMonkey (это первый механизм JavaScript). MongoDB имеет встроенное файловое хранилище под названием «Файловая система Grid». По умолчанию это чтение и запись на первичном.
Каковы основные запросы в MongoDB?
• Вставить (добавить)
• Найти (поиск)
• Обновить (изменить)
•Удалить (удалить)

Вот и все..!! давайте обсудим больше о разработке веб-приложений очень скоро.