Добавил:
связь https://discord.gg/sRPpSvnP Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом БСТ2104 Первухина А.А / ВКР_Первухина А.А. - 5 страница с содержания.docx
Скачиваний:
41
Добавлен:
03.07.2025
Размер:
7.31 Mб
Скачать
  1. Выбор средств разработки приложения

    1. Язык программирования

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

– Go

– Python

– C#

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

Начнем с языка программирования Go, который считается одним из наиболее эффективных решений для разработки высоконагруженных систем и облачных сервисов. Он был создан компанией Google с акцентом на простоту, производительность и удобство работы с многопоточностью. Go широко применяется в микросервисной архитектуре, разработке серверных приложений и инфраструктурных сервисов. Рассмотрим, как этот язык соответствует ключевым критериям оценки. С точки зрения производительности, Go работает быстро благодаря компиляции в машинный код и эффективному управлению памятью. Встроенная сборка мусора помогает снизить задержки, что делает его подходящим для высоконагруженных систем. Однако в задачах, требующих сложных вычислений, могут быть более оптимизированные решения. Экосистема библиотек и фреймворков в Go позволяет разрабатывать широкий спектр приложений, включая веб-сервисы и сетевые системы. Стандартная библиотека предоставляет многие необходимые инструменты, что снижает зависимость от сторонних решений. Кроссплатформенность является одним из преимуществ Go. Компилятор позволяет создавать исполняемые файлы для разных операционных систем без дополнительных зависимостей, что делает язык удобным для разработки приложений, работающих на различных платформах. Сообщество Go активно растет, но пока уступает более зрелым экосистемам. Тем не менее, язык поддерживается Google, а документация и форумы помогают разработчикам решать возникающие вопросы. Читаемость кода в Go высокая благодаря строгому и лаконичному синтаксису. Код получается понятным и удобным в сопровождении, что особенно важно при командной разработке. Гибкость и масштабируемость Go делают его хорошим выбором для распределенных систем и облачных сервисов. Однако строгие ограничения языка могут потребовать дополнительных решений при работе с более сложной логикой. В плане безопасности Go предлагает надежные механизмы защиты, такие как строгая проверка типов и автоматическое управление памятью. Это снижает вероятность ошибок, связанных с утечками памяти и уязвимостями. Инструменты разработки в Go позволяют автоматизировать форматирование кода, тестирование и анализ ошибок, что упрощает процесс написания программ. Однако экосистема сред разработки может быть менее удобной по сравнению с более зрелыми языками.

Перейдем к языку программирования Python, который является одним из самых универсальных и широко используемых в различных областях – от веб-разработки до искусственного интеллекта и автоматизации. Его главные преимущества – простота, гибкость и развитая экосистема, что делает его популярным среди разработчиков всех уровней. Рассмотрим, как Python соответствует основным критериям. С точки зрения производительности, Python уступает компилируемым языкам, так как является интерпретируемым. Это может снижать скорость выполнения программ, особенно в вычислительно-интенсивных задачах. Однако в большинстве случаев его удобство и быстрота разработки компенсируют этот недостаток, а современные версии языка включают механизмы оптимизации. Экосистема Python достаточно развита и включает широкий набор инструментов для различных направлений программирования. Разработчики могут создавать веб-приложения, автоматизировать процессы, обрабатывать данные и работать с различными системами без необходимости глубоко вникать в низкоуровневые детали. Мультиплатформенность является сильной стороной Python, так как программы на нем могут работать на Windows, macOS и Linux без значительных изменений. Однако иногда могут возникать сложности с зависимостями и совместимостью версий, особенно при развертывании проектов в разных средах. Сообщество Python – одно из самых крупных и активных среди всех языков программирования. Это обеспечивает широкую доступность документации, учебных материалов и поддержку со стороны разработчиков, что значительно упрощает процесс обучения и работы. Читаемость кода в Python – один из главных факторов его популярности. Простой синтаксис, понятная структура и отсутствие лишних элементов делают код легким для восприятия. Это особенно важно в командной разработке и при сопровождении крупных проектов. Гибкость и масштабируемость Python позволяют использовать его в проектах разного уровня сложности – от небольших скриптов до крупных информационных систем. Однако для работы с высокими нагрузками могут потребоваться дополнительные механизмы оптимизации или использование более производительных решений в критических частях кода. В вопросах безопасности Python предоставляет базовые механизмы защиты, но интерпретируемый характер языка и динамическая типизация могут привести к определенным рискам. При разработке критически важных приложений необходимо уделять внимание дополнительным мерам безопасности. Инструменты разработки для Python включают удобные среды программирования, средства отладки и тестирования, что делает процесс написания и поддержки кода комфортным и эффективным.

Перейдем к языку программирования C#, который широко используется в разработке корпоративных приложений, игр и облачных сервисов. Этот язык был создан компанией Microsoft и является одним из ключевых инструментов для работы в экосистеме .NET. Он сочетает высокую производительность, строгую типизацию и удобные механизмы работы с объектно-ориентированным программированием. Рассмотрим, как C# соответствует основным критериям. С точки зрения производительности, C# демонстрирует хорошие результаты благодаря компиляции в промежуточный код, который затем выполняется в среде .NET. Оптимизация работы с памятью и управление ресурсами позволяют добиться высокой скорости работы, особенно при использовании современных версий языка. Однако из-за необходимости выполнения в виртуальной машине .NET он может уступать нативным компилируемым языкам в задачах, где критична максимальная производительность. Экосистема C# ориентирована на разработку разнообразных приложений – от настольных программ до облачных сервисов и мобильных решений. Среда выполнения .NET предоставляет обширные возможности для создания надежного и масштабируемого программного обеспечения, не требуя от разработчика глубокой работы с низкоуровневыми аспектами управления памятью.

Работа с разными операционными системами в C# значительно улучшилась с появлением .NET Core, который теперь заменен .NET 5 и новее. Это позволило разрабатывать приложения, работающие не только на Windows, но и на Linux и macOS. Тем не менее, полная совместимость с различными платформами может потребовать дополнительной настройки. Сообщество C# активно развивается благодаря поддержке Microsoft и широкому применению языка в различных сферах. Доступность документации, обучающих курсов и форумов делает его удобным для освоения как начинающими, так и опытными разработчиками. Читаемость кода в C# остается на высоком уровне благодаря строгой структуре, читаемому синтаксису и объектно-ориентированному подходу. Код получается логичным и удобным для сопровождения, особенно при использовании современных стандартов и практик разработки. Гибкость и масштабируемость C# позволяют применять его как для небольших приложений, так и для крупных корпоративных систем. Язык хорошо интегрируется с облачными технологиями, базами данных и микросервисной архитектурой, что делает его востребованным в сфере бизнеса. Безопасность обеспечивается благодаря механизмам защиты, строгой типизации и системы управления памятью. Среда выполнения .NET предотвращает многие распространенные ошибки, связанные с управлением ресурсами, что делает C# надежным инструментом для разработки безопасных приложений. Инструменты разработки для C# хорошо интегрированы в экосистему Microsoft. Использование Visual Studio и других мощных IDE обеспечивает удобную среду для написания, тестирования и отладки кода.

На основе проведенного анализа наиболее подходящим языком программирования для разработки проекта является Go. Этот выбор обусловлен его высокой производительностью, удобством работы с многопоточностью и эффективностью в разработке серверных приложений. По сравнению с Python, который обладает широкой экосистемой и простотой синтаксиса, Go значительно выигрывает в скорости работы. Python, будучи интерпретируемым языком, не подходит для высоконагруженных систем без дополнительных оптимизаций. В то же время Go изначально разработан с учетом высокой пропускной способности и минимальных затрат на управление памятью, что делает его лучшим выбором для масштабируемых решений. C# также является мощным языком с обширной экосистемой, но его зависимость от платформы .NET и необходимость выполнения в виртуальной среде могут снижать производительность в сравнении с нативными компилируемыми языками. Хотя кроссплатформенные возможности C# улучшились с появлением .NET Core, он по-прежнему остается более ориентированным на экосистему Microsoft, что накладывает определенные ограничения. Go же обеспечивает простую компиляцию в исполняемые файлы без зависимостей и возможность работы на различных операционных системах без сложных конфигураций. Кроме того, Go обладает лаконичным синтаксисом и строгими правилами форматирования кода, что снижает вероятность ошибок и упрощает поддержку проектов. Его встроенные механизмы безопасности, строгая типизация и простота сопровождения делают его надежным инструментом для разработки высоконагруженных и распределенных систем.

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

    1. СУБД

После выбора языка программирования необходимо определить СУБД, которая будет использоваться в проектируемой системе. Ключевые критерии для оценки включают архитектуру и модель данных, производительность и оптимизацию, поддержку транзакций и целостность данных, масштабируемость и отказоустойчивость, а также удобство администрирования. В рамках проектируемой системы также рассматриваются только бесплатные СУБД с открытым исходным кодом, что делает их доступными для использования без дополнительных затрат. Рассмотрим три выбранные СУБД, чтобы определить наиболее подходящую:

Для анализа были выбраны три популярных СУБД:

  1. MariaDB – это реляционная система управления базами данных, основанная на кодовой базе MySQL, но развиваемая независимо.

  2. MongoDB – документо-ориентированная NoSQL-база, предназначенная для работы с неструктурированными и масштабируемыми данными.

  3. PostgreSQL – мощная объектно-реляционная база данных с широкими возможностями, известная своей надежностью и соответствием строгим стандартам SQL.

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

В отличие от MariaDB, которая использует традиционную реляционную модель, MongoDB предлагает иной подход к хранению и обработке данных. Это NoSQL-система, ориентированная на работу с неструктурированной информацией. В отличие от реляционных СУБД, где данные организованы в виде таблиц со строгими схемами, MongoDB использует документо-ориентированную модель. Такой подход делает её гибким инструментом для приложений, где структура данных может изменяться со временем или требует высокой степени свободы в организации хранимой информации. MongoDB представляет собой NoSQL-базу данных, предназначенную для работы с неструктурированными данными. Она хранит информацию в виде документов, что делает её удобной для приложений с динамической структурой данных. С точки зрения производительности, MongoDB обеспечивает быструю обработку большого количества операций записи и чтения. Это делает её подходящей для систем с высокой нагрузкой, однако сложные аналитические запросы могут выполняться менее эффективно, чем в реляционных базах данных. Поддержка транзакций и целостность данных реализованы, но в отличие от реляционных СУБД, механизмы контроля данных в MongoDB более гибкие и требуют дополнительного проектирования.

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

Рассмотренные ранее системы управления базами данных — MariaDB и MongoDB — обладают своими преимуществами, однако выбор оптимального решения зависит от требований к надежности, производительности и масштабируемости. В данном контексте PostgreSQL представляет собой универсальное и мощное решение, сочетающее в себе строгую реляционную модель данных и современные механизмы обработки информации. Данный подход делает PostgreSQL востребованным инструментом для широкого спектра задач, включая высоконагруженные системы, аналитические платформы и корпоративные приложения.

PostgreSQL является реляционной базой данных с высокой степенью надежности, гибкости и соответствия международным стандартам SQL. Она предоставляет расширенные возможности работы с различными типами данных, включая не только классические реляционные структуры, но и JSON-документы, географические объекты и сложные пользовательские типы данных. С точки зрения производительности, PostgreSQL обеспечивает эффективную обработку сложных SQL-запросов и аналитических вычислений. Встроенные механизмы индексации и оптимизации выполнения запросов позволяют минимизировать время обработки данных, что делает данную СУБД оптимальным решением для систем с высокой нагрузкой. Поддержка транзакций и целостность данных в PostgreSQL реализованы на высоком уровне. Строгое соблюдение ACID-принципов, гибкая система блокировок и развитые механизмы контроля целостности обеспечивают надежную работу даже в критически важных приложениях, где требуется гарантированное сохранение данных. Масштабируемость PostgreSQL позволяет эффективно распределять нагрузку, управлять большими объемами информации и обеспечивать отказоустойчивость системы. Поддержка различных механизмов репликации и балансировки нагрузки делает PostgreSQL надежным выбором для крупных распределенных систем и облачных решений. Инструменты администрирования PostgreSQL предоставляют широкий набор возможностей для мониторинга, автоматического резервного копирования и тонкой настройки производительности. Активное сообщество и обширная документация способствуют удобству эксплуатации и быстрому решению возникающих задач.

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

    1. Вывод

В результате проведённого анализа были определены оптимальные инструменты для разработки программного приложения. На основе сравнения трёх языков программирования — Go, Python и C# — выбор был сделан в пользу Go. Это решение обусловлено высокой производительностью языка, его простотой, эффективной работой с многопоточностью и возможностью компиляции в исполняемые файлы без дополнительных зависимостей. Язык Go обеспечивает надёжную и стабильную основу для реализации серверной логики приложения, а также подходит для кроссплатформенной разработки.

В качестве системы управления базами данных среди рассмотренных вариантов — MariaDB, MongoDB и PostgreSQL — была выбрана PostgreSQL. Данная СУБД сочетает в себе широкие функциональные возможности, поддержку сложных запросов, надёжность и соответствие современным требованиям к хранению и обработке данных. Она обеспечивает масштабируемость, транзакционную целостность и отказоустойчивость, что делает её подходящим решением для информационной системы, ориентированной на многопользовательский режим работы.

Таким образом, выбранная технологическая основа — язык программирования Go и СУБД PostgreSQL — в полной мере соответствует целям проекта и позволяет обеспечить стабильную, производительную и расширяемую архитектуру программного приложения.