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

Теперь давайте подробно рассмотрим, что мы узнали и обсудили за первую и вторую недели.

1 неделя

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

В этом курсе мы сосредоточимся на разработке приложений с использованием отраслевых стандартов и ведущих отраслевых фреймворков и в основном сосредоточимся на фреймворках Java, JavaScript и некоторых базах данных NoSQL, таких как MongoDB. Далее наш лектор также раскрыл названия некоторых инструментов, которые мы собираемся использовать позже. Например, JavaScript, React JS, NodeJS, KoaJS, Graph QL, Java, Spring Boot, MongoDB и Docker.

А потом мы перешли к основной теме лекций. То есть Принципы. Есть 4 основных принципа, которым мы должны следовать или придерживаться во время разработки. Они есть,

S.O.L.I.D

Приближаемся к решению

Внедрение решения

Практики

Остановимся на этом подробнее.

S.O.L.I.D

В программной инженерии S.O.L.I.D — это аббревиатура пяти разработанных объектно-ориентированных принципов, призванных сделать разработку программного обеспечения более понятной, гибкой и удобной в сопровождении.

Расширение S.O.L.I.D выглядит следующим образом:

  • Единаяответственность
  • Oзакрыть пером
  • Лисковзамена
  • Iразделение интерфейсов
  • Dинверсия зависимостей

затем мы подробно изучили каждый принцип.

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

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

Принцип подстановки Лисков: он гласит, что любой объект подкласса должен быть заменяемым для объекта надкласса, из которого он получен. «S является подтипом T, тогда объекты типа T могут быть заменены объектами типа S». Производные типы должны быть полностью заменяемыми для своих базовых типов.

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

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

Приближаемся к решению

На лекциях мы научились находить техническое решение бизнес-задачи.

  • Продумайте всю проблему: прежде чем приступать к каким-либо решениям, мы должны очень хорошо обдумать проблему. мы должны убедиться, что у нас есть понимание проблемы без каких-либо сомнений.
  • Разделяй и властвуй: разделите проблему на более мелкие проблемы, сделайте ее управляемой и определите уровень приоритета.
  • ПОЦЕЛУЙ: говори просто и глупо и не переусердствуй.
  • Учитесь на ошибках
  • Всегда помните, что программное обеспечение существует
  • Помните, что вы не пользователь.

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

Внедрение решения

Есть некоторые рекомендации, которым мы должны следовать при реализации решения.

  • YAGNI: «Тебе это не понадобится (тебе это не понадобится)». Это состояние всегда реализует вещи, когда они вам действительно нужны, и никогда, когда вы просто предвидите, что они могут вам понадобиться.
  • СУХОЙ: «Не повторяйся» гласит, что код всегда используется повторно.
  • Примите абстракцию: убедитесь, что ваша система работает правильно, даже если вы не знаете, как реализован каждый компонент.
  • DRITW: «Не изобретайте велосипед». Возможно, кто-то уже решал эту проблему. Сделать большинство из них.
  • Напишите код, который хорошо справляется с одной задачей
  • Отладка сложнее, чем написание кода: по возможности делайте его читабельным. Компактный код предпочтительнее читаемого кода.
  • КАЙДЗЕН: Оставьте лучше, чем когда вы его нашли: исправьте не только проблему, но и код, который ее окружает.

Практики

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

На этом информация о лекциях первой недели заканчивается. Далее мы рассмотрим лекции второй недели.

Неделя 2

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

JavaScript (JS)

В настоящее время JavaScript является одним из самых популярных и широко используемых языков программирования в мире. Он растет быстрее, чем любой другой язык программирования. Долгое время JS использовался только в браузерах для создания интерактивных веб-страниц. Но в настоящее время мы можем создавать полноценные веб-приложения, мобильные приложения, а также сетевые приложения. Первоначально JS был разработан для работы только в браузерах, поэтому в каждом браузере есть то, что мы называем JS Engine, который может выполнять код JS. В 2009 году инженер Райан Даль взял движок JS с открытым исходным кодом в Chrome (браузере) и встроил его в программу на C++. Теперь мы назвали эту программу Node. Node — это программа на C++, включающая движок JavaScript. Теперь с этим мы можем запускать код JS вне браузера. В результате мы можем передать наш JS-код в Node для выполнения. А с помощью JS мы можем создавать серверную часть для веб-приложений и мобильных приложений. Браузеры и Node предоставляют среду выполнения для кода JS.

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

Доступно несколько фреймворков JavaScript. Такой как,

  • Angular JS: среда веб-разработки Google, которая предоставляет набор современных функций разработки и дизайна для быстрой разработки приложений.
  • React JS: это в основном поддерживается Face Book. Хорошо подходит для фронтенд-разработки
  • Meteor JS: в основном используется для разработки серверной части.
  • jQuery

В JavaScript существует три разных метода создания объекта.

  • Литерал объекта
  • Экземпляр объекта
  • Метод конструктора. функция-конструктор используется с ключевым словом «new» при создании объекта. Функция конструктора — это просто еще одна функция. Когда функция используется с ключевым словом «новое», эта функция действует как класс.

Примеры

Объектный литерал: object={property1:value1, property2:value2, …}

Экземпляр объекта: var objectName=new object();

Конструктор: функция работник(идентификатор, имя, зарплата){ this.id=id; это.имя=имя; this.salary=зарплата;}

Прототипы

Это также еще один экземпляр объекта. Благодаря универсальности JavaScript существует множество различных способов создания и расширения классов. Прототипы — лучший способ сделать это.

Затем мы узнали об этом ключевом слове. Внутри объекта «это» относится к самому объекту. Когда функция, использующая ключевое слово this, передается другому объекту, this относится к этому объекту, а не к исходному объекту, в котором функция была объявлена.

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

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

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

Автор: Dharsan.R (IT20003982)