From 758c7cb3bc0e2752b6bc6c438643b3cfffa4661c Mon Sep 17 00:00:00 2001 From: SenDen Date: Sun, 26 May 2019 18:32:58 +0300 Subject: [PATCH] Introduction and conclusion update --- project/text/sen/CONCLUSION.tex | 13 +++++++------ project/text/sen/INTRODUCTION.tex | 12 +++++++----- project/text/sen/conclusion.tex | 13 +++++++------ project/text/vor/CONCLUSION.tex | 14 ++++++++++---- project/text/vor/INTRODUCTION.tex | 16 +++++++++------- project/text/vor/StateManager.tex | 8 +++++++- project/text/vor/TestingTasks.tex | 6 +++--- project/text/vor/conclusion.tex | 14 ++++++++++---- 8 files changed, 60 insertions(+), 36 deletions(-) diff --git a/project/text/sen/CONCLUSION.tex b/project/text/sen/CONCLUSION.tex index 2a941cd..e108096 100644 --- a/project/text/sen/CONCLUSION.tex +++ b/project/text/sen/CONCLUSION.tex @@ -1,12 +1,13 @@ \anonsection{ВИСНОВКИ} -Для виконання поставлених завдань було проведено аналіз характеристик існуючих систем планування, зокрема обсяг їх можливостей. При підготовці до проектування було приділено увагу окремим частинам процесу підготовки розкладу на прикладі факультету комп’ютерних наук, фізики та математики ХДУ. +Для виконання поставлених завдань було проведено аналіз характеристик існуючих систем планування, зокрема обсяг їх можливостей. -На основі проведеного аналізу розроблено базові вимоги щодо можливостей додатку та його інтерфейсу. -Суттєву частину роботи приділено аналізу існуючих технологій всіх рівнів для створення веб-додатків. Детально досліджено роботу клієнт-серверних додатків та проектуванню API. +При підготовці до проектування було приділено увагу окремим частинам процесу підготовки розкладу на факультеті комп’ютерних наук, фізики та математики ХДУ. -Відповідно до створених вимог розроблено проект додатку та бекенд частини. Розроблено робочий прототип бекенд частини (зокрема реалізовано структуру бази даних засобами PostgreSQL, моделі з використанням ORM Squalize та окремі частини API і інтерфейсу додатку. +На основі проведеного аналізу розроблено базові вимоги щодо можливостей серверної частини. Суттєву частину роботи приділено аналізу існуючих технологій всіх рівнів для створення веб-додатків веб-сервісів. Детально досліджено роботу клієнт-серверних додатків та супутніх технологій. Розглянуто та обгрунтовано використання мікрсервісного підходу при проектуванні системи. -Сформовано проект документації до публічного API. При написанні ключових частин використано спеціальну форму коментарів, що забезпечують інтеграцію опису функцій та їх параметрів в підказки популярних IDE (інтегрованих середовищ розробки). Останнє є корисним при подальшій розробці, особливо при використанні існуючої кодової бази сторонніми розробниками, що є цілком можливим, зважаючи на модульність проекту при використанні мікросервісної архітектури. +Відповідно до створених вимог розроблено серверну частину спроектованої системи. Після проведення аналізу популярних технологій розробки веб-сервісів для реалізації основної частини системи обрано Node.js з бібліотекою Express. Реалізовано структуру бази даних засобами PostgreSQL, моделі з використанням ORM Squalize. -При розробці проекту використовується система контролю версій git з публічним репозиторієм на сервісі GitHub (github.com/ Rembut/gCalShedule), що дозволяє використовувати сучасні методи сумісної роботи та, одночасно з тим, дозволяє використовувати результати проведеного дослідження всім охочим під ліцензією MIT. +Розроблено публічний прикладний програмний інтерфейс (API), та сформовано документацію до нього. При написанні ключових частин використано спеціальну форму коментарів, що забезпечують інтеграцію опису функцій та їх параметрів в підказки популярних IDE. Останнє є корисним при подальшій розробці, особливо при використанні існуючої кодової бази сторонніми розробниками, що є можливим, зважаючи на модульність проекту при використанні мікросервісної архітектури. + +При розробці проекту використовується система контролю версій git з публічним репозиторієм на сервісі GitHub~\cite{gCalShedule}, що дозволяє використовувати сучасні методи сумісної роботи та дозволяє використовувати результати проведеного дослідження всім охочим під ліцензією MIT. diff --git a/project/text/sen/INTRODUCTION.tex b/project/text/sen/INTRODUCTION.tex index f1c9f52..333c842 100644 --- a/project/text/sen/INTRODUCTION.tex +++ b/project/text/sen/INTRODUCTION.tex @@ -12,20 +12,22 @@ \textbf{Актуальність дослідження} полягає в необхідності забезпечення всіх учасників освітнього процесу доступом до актуальної версії розкладу занять у будь-який час, а також можливості спрощення процесу формування розкладу та подальшої інформатизації освітнього процесу. -\textbf{Об’єкт дослідження}~--- системи для планування та підтримки планування розкладу. \textbf{Предмет дослідження}~--- система для підтримки планування розкладу в закладах освіти з поділом учнів (вихованців, здобувачів освіти тощо) на стабільні академічні групи. +\textbf{Об’єкт дослідження}~--- системи для планування та підтримки планування розкладу. + +\textbf{Предмет дослідження}~--- серверна частина системи для підтримки планування розкладу в закладах освіти з поділом учнів (вихованців, здобувачів освіти тощо) на стабільні академічні групи. \textbf{Метою роботи} є проектування та розробка розширюваної системи підтримки редагування розкладу в закладах освіти з можливістю використання всіма учасниками освітнього процесу та реалізація відкритого API для взаємодії з системою. -Для реалізації мети поставлено наступні \textbf{завдання роботи}: +Для реалізації мети поставлено наступні \textbf{завдання дослідження}: \begin{enumerate} \item Проаналізувати характеристики існуючих систем планування, зокрема обсяг їх можливостей. \item Проаналізувати окремі частини процесу підготовки розкладу на прикладі факультету комп'ютерних наук, фізики та математики ХДУ. - \item На основі проведеного аналізу розробити вимоги щодо можливостей системи. - \item Відповідно до створених вимог розробити серверну частину, зокрема реалізувати структуру бази даних та API. + \item На основі проведеного аналізу розробити вимоги щодо можливостей серверної частини системи. + \item Відповідно до створених вимог розробити серверну частину, зокрема реалізувати структуру бази даних та публчний API (прикладний програмний інтерфейс). \item Розробити документацію до публічного API. \item Обґрунтувати використані технології при проектуванні серверної частини. \end{enumerate} -Очікується, що спроектований продукт буде придатний до використання всіма учасниками освітнього процесу в ЗВО. +Очікується, що спроектований продукт буде придатний до використання всіма учасниками освітнього процесу в закладах вищої освіти. Робота складається з 2 розділів, містить \totalfigures\ рисунків. diff --git a/project/text/sen/conclusion.tex b/project/text/sen/conclusion.tex index 2a941cd..e108096 100644 --- a/project/text/sen/conclusion.tex +++ b/project/text/sen/conclusion.tex @@ -1,12 +1,13 @@ \anonsection{ВИСНОВКИ} -Для виконання поставлених завдань було проведено аналіз характеристик існуючих систем планування, зокрема обсяг їх можливостей. При підготовці до проектування було приділено увагу окремим частинам процесу підготовки розкладу на прикладі факультету комп’ютерних наук, фізики та математики ХДУ. +Для виконання поставлених завдань було проведено аналіз характеристик існуючих систем планування, зокрема обсяг їх можливостей. -На основі проведеного аналізу розроблено базові вимоги щодо можливостей додатку та його інтерфейсу. -Суттєву частину роботи приділено аналізу існуючих технологій всіх рівнів для створення веб-додатків. Детально досліджено роботу клієнт-серверних додатків та проектуванню API. +При підготовці до проектування було приділено увагу окремим частинам процесу підготовки розкладу на факультеті комп’ютерних наук, фізики та математики ХДУ. -Відповідно до створених вимог розроблено проект додатку та бекенд частини. Розроблено робочий прототип бекенд частини (зокрема реалізовано структуру бази даних засобами PostgreSQL, моделі з використанням ORM Squalize та окремі частини API і інтерфейсу додатку. +На основі проведеного аналізу розроблено базові вимоги щодо можливостей серверної частини. Суттєву частину роботи приділено аналізу існуючих технологій всіх рівнів для створення веб-додатків веб-сервісів. Детально досліджено роботу клієнт-серверних додатків та супутніх технологій. Розглянуто та обгрунтовано використання мікрсервісного підходу при проектуванні системи. -Сформовано проект документації до публічного API. При написанні ключових частин використано спеціальну форму коментарів, що забезпечують інтеграцію опису функцій та їх параметрів в підказки популярних IDE (інтегрованих середовищ розробки). Останнє є корисним при подальшій розробці, особливо при використанні існуючої кодової бази сторонніми розробниками, що є цілком можливим, зважаючи на модульність проекту при використанні мікросервісної архітектури. +Відповідно до створених вимог розроблено серверну частину спроектованої системи. Після проведення аналізу популярних технологій розробки веб-сервісів для реалізації основної частини системи обрано Node.js з бібліотекою Express. Реалізовано структуру бази даних засобами PostgreSQL, моделі з використанням ORM Squalize. -При розробці проекту використовується система контролю версій git з публічним репозиторієм на сервісі GitHub (github.com/ Rembut/gCalShedule), що дозволяє використовувати сучасні методи сумісної роботи та, одночасно з тим, дозволяє використовувати результати проведеного дослідження всім охочим під ліцензією MIT. +Розроблено публічний прикладний програмний інтерфейс (API), та сформовано документацію до нього. При написанні ключових частин використано спеціальну форму коментарів, що забезпечують інтеграцію опису функцій та їх параметрів в підказки популярних IDE. Останнє є корисним при подальшій розробці, особливо при використанні існуючої кодової бази сторонніми розробниками, що є можливим, зважаючи на модульність проекту при використанні мікросервісної архітектури. + +При розробці проекту використовується система контролю версій git з публічним репозиторієм на сервісі GitHub~\cite{gCalShedule}, що дозволяє використовувати сучасні методи сумісної роботи та дозволяє використовувати результати проведеного дослідження всім охочим під ліцензією MIT. diff --git a/project/text/vor/CONCLUSION.tex b/project/text/vor/CONCLUSION.tex index b0bb0d6..5ce7edb 100644 --- a/project/text/vor/CONCLUSION.tex +++ b/project/text/vor/CONCLUSION.tex @@ -1,12 +1,18 @@ \anonsection{ВИСНОВКИ} -Для виконання поставлених завдань було проведено аналіз характеристики існуючих систем планування, зокрема обсяг їх можливостей. При підготовці до проектування було приділено увагу окремим частини процесу підготовки розкладу на прикладі факультету комп’ютерних наук, фізики та математики ХДУ. +Для виконання поставлених завдань було проведено аналіз характеристик існуючих систем планування, зокрема обсяг їх можливостей. + +При підготовці до проектування було приділено увагу окремим частини процесу підготовки розкладу на прикладі факультету комп’ютерних наук, фізики та математики ХДУ. На основі проведеного аналізу розроблено базові вимоги щодо можливостей додатку та його інтерфейсу. -Суттєву частку роботи приділено аналізу існуючих технологій всіх рівнів для створення веб-додатків. Детально досліджено роботу клієнт-серверних додатків та проектуванню API. -Відповідно до створених вимог розробити проект додатку та бекенд частини. Розробити робочий прототип бекенд частини (зокрема реалізувано структуру бази даних засобами PostgreSQL, моделі з використанням ORM Squalize та окремі частини API і інтерфейсу додатку. +Суттєву частку роботи приділено аналізу існуючих технологій всіх рівнів для створення веб-додатків. Детально досліджено роботу клієнт-серверних додатків та взаємодію через API (прикладний програмний інтерфейс). + +Відповідно до створених вимог розроблено проект додатку у відповідності до загальноприйнятих принципів побудови веб-додатків. + +При реалізації веб-додатку використано бібліотеку React, завдяки якій було розроблено набір компонентів, що використовувались як в веб-додатку, так і в мобільному додатку. Останнє було досягнуто завдяки вибору платформи React Native~--- фреймворку для розробки мобільних додатків з відкритим кодом. + +Розроблені додатки використовують публічний API для реалізації бізнес-логіки та взамодії з серверною частиною. -Сформовано проект документації до публічного API. При написанні ключових частин використано спеціальну форму коментарів, що забезпечують інтеграцію опису функцій та їх параметрів в підказки популярних IDE (інтегрованих середовищ розробки). Останнє є корисним при подальшій розробці, особливо при використанні існуючої кодової бази сторонніми розробниками, що є цілком можливим, зважаючи на модульність проекту при використанні мікросервісної архітектури. При розробці проекту використовується система контролю версій git з публічним репозиторієм на сервісі GitHub (github.com/ Rembut/gCalShedule), що дозволяє використовувати сучасні методи сумісної роботи та, одночасно з тим, дозволяє використовувати результати проведеного дослідження всім охочим під ліцензією MIT. diff --git a/project/text/vor/INTRODUCTION.tex b/project/text/vor/INTRODUCTION.tex index ee51fee..dc2b58b 100644 --- a/project/text/vor/INTRODUCTION.tex +++ b/project/text/vor/INTRODUCTION.tex @@ -12,20 +12,22 @@ \textbf{Актуальність дослідження} полягає в необхідності забезпечення всіх учасників освітнього процесу доступом до актуальної версії розкладу занять у будь-який час, а також можливості спрощення процесу формування розкладу та подальшої інформатизації освітнього процесу. -\textbf{Об'єкт дослідження}~--- інтерфейси системи для планування та підтримки планування розкладу. \textbf{Предмет дослідження}~--- мобільний та веб-додатки для підтримки планування розкладу в закладах освіти з поділом учнів (вихованців, здобувачів освіти тощо) на стабільні академічні групи. +\textbf{Об'єкт дослідження}~--- інтерфейси системи для планування та підтримки планування розкладу. -\textbf{Метою роботи} є проектування розширюваного веб-додатку редагування розкладу та мобільного додатку для перегляду розкладу в закладах освіти з можливістю використання всіма учасниками освітнього процесу та розробка їх робочих прототипу. +\textbf{Предмет дослідження}~--- мобільний та веб-додатки для підтримки планування розкладу в закладах освіти з поділом учнів (вихованців, здобувачів освіти тощо) на стабільні академічні групи. -Для реалізації мети поставлено наступні \textbf{завдання роботи}: +\textbf{Метою роботи} є проектування розширюваного веб-додатку редагування розкладу та мобільного додатку для перегляду розкладу в закладах освіти з можливістю використання всіма учасниками освітнього процесу та їх розробка. + +Для реалізації мети поставлено наступні \textbf{завдання дослідженняи}: \begin{enumerate} \item проаналізувати характеристики існуючих систем планування, зокрема обсяг їх можливостей; \item проаналізувати окремі частини процесу підготовки розкладу на прикладі факультету комп’ютерних наук, фізики та математики ХДУ; \item на основі проведеного аналізу розробити вимоги щодо можливостей додатків та їх інтерфейсів; - \item відповідно до створених вимог розробити проект додатку; - \item розробити робочий прототип і інтерфейс додатку; - \item використовувати публічне API розробленого сервісу системи пыдтримки редагування розкладу для збережання та отримання даних; + \item відповідно до створених вимог розробити проекти додатків; + \item розробити додатки відповідно до створених проектів; + \item використовувати публічне API розробленого сервісу системи підтримки редагування розкладу для збережання та отримання даних; \item обґрунтувати використані технології при проектуванні клієнтської частини. \end{enumerate} -Очікується, що спроектований продукт буде придатний до використання всіма учасниками освітнього процесу в ЗВО. +Очікується, що спроектований продукт буде придатний до використання всіма учасниками освітнього процесу в закладах вищої освіти. Робота складається з 2 розділів, містить \totalfigures\ рисунків. diff --git a/project/text/vor/StateManager.tex b/project/text/vor/StateManager.tex index 4909fd8..0186ea2 100644 --- a/project/text/vor/StateManager.tex +++ b/project/text/vor/StateManager.tex @@ -99,4 +99,10 @@ \subsubsection{Обробка побічних ефектів} \paragraph{Redux Thunk} -TODO \ No newline at end of file +За замовчуванням дії в Redux відправляються синхронно, що є проблемою для будь-якої нетривіальної програми, яка потребує в зв'язку з зовнішнім API або виконує побічні ефекти. На щастя, Redux дозволяє використання проміжних обробників , які знаходиться між відправленними діями та діями, що досягають редукторів. Є дві дуже популярні бібліотеки проміжного програмного забезпечення, які допускають побічні ефекти та асинхронні дії: Redux Thunk та Redux Saga. + +Redux Thunk~--- це проміжне програмне забезпечення, яке дозволяє викликати творців дій, які повертають функцію замість об'єкта дії. Ця функція отримує метод розсилки сховища, який потім використовується для відправлення регулярних синхронних дій всередині тіла функції після завершення асинхронних операцій. + +Найбільш поширеним випадком використання для Redux Thunk є асинхронне спілкування з зовнішнім API для отримання або збереження даних. Redux Thunk дозволяє легко розсилати дії, які слідують за життєвим циклом запиту до зовнішнього API. + +Наприклад, з урахуванням загального прикладу програми todo, створення нового елемента задачі зазвичай передбачає першу відправлення дії, щоб вказати, що створення елемента todo почалося, тоді, якщо елемент todo успішно створено і повернуто зовнішнім сервером, відбувається відправлення іншої дії з новим елементом завдання. У випадку, якщо є помилка, і завдання не може бути збережено на сервері, замість цього може бути надіслано дію з помилкою. diff --git a/project/text/vor/TestingTasks.tex b/project/text/vor/TestingTasks.tex index 05fe98f..b9bfcea 100644 --- a/project/text/vor/TestingTasks.tex +++ b/project/text/vor/TestingTasks.tex @@ -4,15 +4,15 @@ \subsubsection{Задачі контролю якості} Ідея полягає в тому, щоб писати тести для кожної нетривіальною функції або методу. Це дозволяє досить швидко перевірити, чи не призвело чергову зміну коду до регресії, тобто до появи помилок в уже покритих тестами місцях програми, а також полегшує виявлення і усунення таких помилок. -\paragraph{Переваги модульного тестування} +\subparagraph{Переваги модульного тестування} Мета модульного тестування~--- ізолювати окремі частини програми і показати, що окремо ці частини працездатні. -\paragraph{Заохочення змін} +\subparagraph{Заохочення змін} Модульне тестування пізніше дозволяє програмістам проводити рефакторинг, будучи впевненими, що модуль як і раніше працює коректно (регресійні тестування). Це заохочує програмістів до змін коду, оскільки досить легко перевірити, що код працює і після змін. -\paragraph{Спрощення інтеграції} +\subparagraph{Спрощення інтеграції} Модульне тестування допомагає усунути сумніви з приводу окремих модулів і може бути використано для підходу до тестування «знизу вгору»: спочатку тестуються окремі частини програми, потім програма в цілому. \paragraph{Документування коду} diff --git a/project/text/vor/conclusion.tex b/project/text/vor/conclusion.tex index b0bb0d6..5ce7edb 100644 --- a/project/text/vor/conclusion.tex +++ b/project/text/vor/conclusion.tex @@ -1,12 +1,18 @@ \anonsection{ВИСНОВКИ} -Для виконання поставлених завдань було проведено аналіз характеристики існуючих систем планування, зокрема обсяг їх можливостей. При підготовці до проектування було приділено увагу окремим частини процесу підготовки розкладу на прикладі факультету комп’ютерних наук, фізики та математики ХДУ. +Для виконання поставлених завдань було проведено аналіз характеристик існуючих систем планування, зокрема обсяг їх можливостей. + +При підготовці до проектування було приділено увагу окремим частини процесу підготовки розкладу на прикладі факультету комп’ютерних наук, фізики та математики ХДУ. На основі проведеного аналізу розроблено базові вимоги щодо можливостей додатку та його інтерфейсу. -Суттєву частку роботи приділено аналізу існуючих технологій всіх рівнів для створення веб-додатків. Детально досліджено роботу клієнт-серверних додатків та проектуванню API. -Відповідно до створених вимог розробити проект додатку та бекенд частини. Розробити робочий прототип бекенд частини (зокрема реалізувано структуру бази даних засобами PostgreSQL, моделі з використанням ORM Squalize та окремі частини API і інтерфейсу додатку. +Суттєву частку роботи приділено аналізу існуючих технологій всіх рівнів для створення веб-додатків. Детально досліджено роботу клієнт-серверних додатків та взаємодію через API (прикладний програмний інтерфейс). + +Відповідно до створених вимог розроблено проект додатку у відповідності до загальноприйнятих принципів побудови веб-додатків. + +При реалізації веб-додатку використано бібліотеку React, завдяки якій було розроблено набір компонентів, що використовувались як в веб-додатку, так і в мобільному додатку. Останнє було досягнуто завдяки вибору платформи React Native~--- фреймворку для розробки мобільних додатків з відкритим кодом. + +Розроблені додатки використовують публічний API для реалізації бізнес-логіки та взамодії з серверною частиною. -Сформовано проект документації до публічного API. При написанні ключових частин використано спеціальну форму коментарів, що забезпечують інтеграцію опису функцій та їх параметрів в підказки популярних IDE (інтегрованих середовищ розробки). Останнє є корисним при подальшій розробці, особливо при використанні існуючої кодової бази сторонніми розробниками, що є цілком можливим, зважаючи на модульність проекту при використанні мікросервісної архітектури. При розробці проекту використовується система контролю версій git з публічним репозиторієм на сервісі GitHub (github.com/ Rembut/gCalShedule), що дозволяє використовувати сучасні методи сумісної роботи та, одночасно з тим, дозволяє використовувати результати проведеного дослідження всім охочим під ліцензією MIT.