Как написать логику приложения
Создавая приложения в банковской и других сферах, команда разработчиков принимает на себя большую ответственность. Такие программы должны работать безупречно, обеспечивая абсолютную надёжность. Основу для создания продукта представляет собой проектирование архитектуры программного комплекса.
Для её создания удобно применять специальные конструкторы, использование которых не требует подготовки программиста. No-code платформа позволит обеспечить создание надёжной и эффективной логики приложения на профессиональном уровне без необходимости вникать в детали технической реализации. Работая с компанией «Финансовые Информационные Системы», пользователи могут провести разработку банковских приложений с помощью специального конструктора в соответствии со своими требованиями.
1. Конструктор приложения — что это
Создание программного комплекса для использования в различных сферах человеческой деятельности представляет собой большой и сложный труд. Обеспечить разработку, программирование, тестирование и эксплуатацию такой системы должна команда профессиональных специалистов. Правильная организация её работы представляют собой сложную задачу.
Одной из проблем при её работе является то, что программисты, которые фактически осуществляют основную часть реализации проекта редко могут в полной мере понимать все особенности практического использования. Обычно их консультируют профессионалы, обеспечивающие создание системы, которая им необходима.
Использование No-code платформ позволяет избежать погружения в технические детали реализации. В этом случае за разработку программного комплекса могут взяться те, кто является специалистами в сфере его будущего применения.
2. Особенности банковских приложений
Программирование позволяет создавать продукты, которые могут использоваться практически во всех сферах человеческой жизни. В большинстве случаев они работают безупречно, но иногда приходится сталкиваться со сбоями или проявлениями несовершенства. Фактически такие ситуации являются элементами развития программного комплекса. Но в банковских системах ситуация совершенно другая.
Здесь программы не должны давать никаких сбоев. Они могут постепенно совершенствовать логику, улучшать интерфейс, совершенствоваться, но ошибки при проведении любых банковских операций должны быть исключены. При переводах денег не могут возникать сбои.
Это налагает на программистов и тех, кто определяет алгоритмы работы банковских комплексов особые требования. Логика работы таких приложений должна быть безупречной. Применение конструктора приложений позволяет сосредоточиться на её разработке, не отвлекаясь на другие аспекты работы.
Внесение изменений иногда может затронуть работу уже существующих алгоритмов, что для работы банковской системы недопустимо. Качественный конструктор таких приложений должен обеспечивать модульность системы, исключающую незапланированное влияние изменений в одних компонентах на другие.
3. Как пользоваться конструктором
Использование FIS Platform даёт возможность начать проектирование банковской программы в редакторе диаграмм. При помощи специальных графических обозначений специалист рисует алгоритм работы создаваемого комплекса. Такое изображение позволяет сделать работу наглядной, легко оценить работоспособность предложенного алгоритма, даёт возможность лучше понять особенности его реализации.
В процессе работы нет необходимости непосредственно заниматься программированием. Таким образом разработчик комплекса может сконцентрироваться на создании безупречной логики работы банковского приложения. Таким образом на практике можно создать прототип системы в течение 1-2 недель.
При создании программ клиенты могут воспользоваться библиотекой уже готовых решений. Она постоянно пополняется, предлагая решения тем, кто занимается типовыми задачами. Далеко не всегда требуются особенно сложные продукты, часто пользователям достаточно использовать проверенные временем типовые решения, которые они могут взять из предоставляемых библиотек.
4. Общая информация о процессе разработки
На первом этапе работы нужно составить диаграмму, соответствующую алгоритму работы приложения. При этом в графическом виде изображают все этапы его реализации. Каждый элемент фактически станет модулем программной системы.
Для взаимодействия с пользователями банковского продукта будет необходимо создать формы для ввода. Для этой цели можно использовать специальный редактор. В нём имеется более сорока различных типов элементов. При проектировании достаточно произвести перетаскивание нужных элементов на соответствующее место в форме.
Для того, чтобы освоить работу в FIS Platform, можно воспользоваться демо-доступом. Здесь имеется большое количество справочной информации. При необходимости можно получать консультации у специалистов службы поддержки.
Использование конструктора для создания банковских приложений позволит создать надёжную и удобную программу с минимальными затратами. Проектирование архитектуры таким образом позволяет сосредоточиться на создании алгоритма работы банковского продукта и сделать его безупречным.
Бизнес-логика приложения – это, по сути, описание схем, по которым приложение взаимодействует с пользователем. Когда пользователь оформляет подписку, или заполняет форму заказа, или просто авторизуется – все эти действия обрабатываются «под капотом» приложения в определенном порядке.
Какие данные нужно запросить? Соответствуют ли введенные данные заданному формату? Что произойдет после того, как пользователь нажмет кнопку «Подтвердить»? А есть ли вообще у него права доступа к данной операции? На все эти и многие другие вопросы можно ответить, изучив, как построена бизнес-логика конкретного приложения.
Простейший пример: администратор авиакомпании (пользователь) регистрирует пассажира на рейс (вносит информацию в базу данных).
2.Заполняет форму регистрации: вводит номер рейса, выбирает пассажира, указывает место и статус регистрации.
3.Нажимает кнопку «Подтвердить»
4.Видит нового пассажира в общем списке.
Как это выглядит с точки зрения бизнес-логики приложения:1.Приложение проверяет, авторизован ли пользователь и имеет ли права доступа к выбранной странице, а также операции регистрации.
2.Ждет, пока пользователь заполнит форму.
3.Обрабатывает введенные данные:
a. Проверяет, соответствуют ли введенные данные требованиям приложения (эти требования заранее прописаны программистом): например, в поле «Номер рейса» должно быть целое число.
b. Получает из базы данных информацию: например, о рейсе и связанных с ним регистрациях (чтобы внести изменения), пассажире (чтобы проверить, действительно ли этот пассажир есть в базе данных).
d. Отправляет информацию в базу данных, отдавая команды на создание в ней новых записей или обновлении существующих.
4.Выводит обновленную информацию на экран.
Общая логика приложения строится из бизнес-процессов – схем, описывающих конкретные операции в системе: создание записи о пассажире, добавление в систему нового рейса, редактирование информации о регистрации.
Когда речь идет о классическом программировании, то для описания всех процессов используются блоки кода. Многие из них пишутся по шаблонам – просто используются в разной последовательности и для работы с разными данными.
Именно благодаря этой «шаблонности» в no-code разработке появилась возможность использовать инструменты визуального программирования – так называемые дизайнеры бизнес-логики. Они помогают выбрать нужные блоки, скомпоновать в нужной последовательности, настроить. И даже создать некоторые блоки автоматически, в зависимости от настроек других компонентов приложения. Итог – готовая бизнес-логика без необходимости проводить многие часы над строками кода.
Что общего между программистом и художником, кроме творческого беспорядка на столе? Они оба создают интересные вещи, используя креативность и выходя за рамки привычного мышления. Главное отличие в том, что программист следует законам логики и разрабатывает точные алгоритмы создания произведения. Об этом мы сегодня и поговорим.
Где логика?
Логика – это наука о правильном мышлении. Или в нашем случае – о правильной постановке команд, которые приведут к нужному результату.
Последовательность таких команд в виде инструкций, описывающих порядок действий, называется Алгоритмом. Набор инструкций, которые идут друг за другом по определённому алгоритму, называется Программой.
Наименьшая автономная часть программы – это инструкция (команда или набор команд). По-другому инструкции называют «оператор» или «statements». Один оператор выполняет конкретный программный код. Это главная часть любой программы.
Пишите максимально подробные и логичные инструкции для компьютера, чтобы он понял команду именно так, как вам требуется. Если этого не сделать – нужного результата не выйдет.
По сути, инструкции и алгоритмы – это то, чему подчиняются все процессы в реальном мире. Чтобы наглядно показать, как всё это работает, приведем пример из жизни.
Разбираем «на пальцах»
Вот Алексей. Он обычный парень, который любит играть в футбол. Нам необходимо прописать программу, симулирующую игру Лёши. Для этого мы прописываем конкретную инструкцию, которая состоит из таких команд:
Надеть спортивную одежду.
Поставить мяч на землю.
Ударить по мячу.
Запускаем игру и понимаем, что что-то идёт не так. Причина в том, что Алексей вышел играть в туфлях, а не в спортивной обуви, так как мы не учли в инструкции этот нюанс.
Возвращаемся назад и дополняем:
Надеть спортивную одежду.
Надеть спортивную обувь.
Поставить мяч на землю.
Ударить по мячу.
Теперь игра идёт так, как мы задумали.
Этот вариант примитивный. В настоящей программе инструкций будет гораздо больше. Каждое действие Алексея придётся прописывать подробно. Например, выход из дома:
Подойти к лифту.
Нажать на кнопку.
Нажать кнопку первого этажа.
Выйти из лифта и т. д.
Чем подробнее прописаны стейтменты, тем более качественно работает программа.
Представьте количество команд, инструкций и сложность алгоритма в искусственном интеллекте или роботе. Сколько подробных инструкций предусматривает и прописывает программист, чтобы искусственный интеллект самостоятельно принимал решения, а робот ходил, разговаривал, отвечал и реагировал на действия.
Программа – живой организм, который постоянно развивается и изменяется. Актуализировать её придётся бесконечно: дописывать инструкции, расширять функционал, упрощать. При этом программа всё ещё не будет идеальной. Всегда есть что добавить или изменить.
В случае с Алексеем, дополнительно понадобилось бы прописать и то, что он идёт на выбранную спортивную площадку или стадион, зовёт с собой друзей и т. д.
Учитывайте тот факт, что ваша программа обязательно будет изменяться и дополняться. Тот, кто после вас займётся её поддержкой и развитием, должен понять вашу логику. Не слишком стремитесь к упрощению и минималистичности.
Виды алгоритмов
Последовательность команд и инструкций может быть разной. Но в основе лежат три вида алгоритмов:
Линейный
Каждое действие выполняется последовательно друг за другом в строгом порядке. Когда выполнено одно, начинается другое. И так до последнего.
Циклический
По достижении определенного действия алгоритм возвращается на любое из предыдущих сколько угодно раз. Это делается с помощью циклов, которые мы обсудим на следующих уроках. В примере с футболистом цикличным алгоритм считался бы в том случае, если бы Алексей бесконечно бил по мячу.
Ветвление
В одной из команд (или нескольких) прописывается разветвление. Доходя до него, необходимо выбрать на какую из ветвей пойти дальше. Представьте, что идёте по дороге и встречаете развилку. Вам необходимо выбрать путь налево или направо. Это и есть алгоритм ветвления.
В чистом виде эти алгоритмы встречаются лишь в простейших программах. Чаще всего они комбинируются между собой. Именно комбинируемый алгоритм – самый распространённый вид алгоритма.
Каждая программа состоит из сложного набора инструкций, где есть и циклы, и ветвления, и прямые линии. Со стороны это похоже на большое дерево с множеством веток, которые растут в разные стороны.
Все алгоритмы выполняют конкретные логические задачи: сортировка, поиск, сравнение и т. д. В каждой из задач эффективными будут разные алгоритмические последовательности. Для сортировки одни, для поиска другие.
Для разработки подходящего алгоритма и потребуется креативность. Вы сами выбираете путь и способы достижения результата, вдохновляясь природными процессами, опираясь на собственные ощущения, и описываете их в программе. Вспомните об этом, когда кто-нибудь снова скажет, что программирование – это только математика :)
Домашнее задание
Напишите линейный, циклический или разветвленный алгоритм. Это должен быть порядок действий, список команд, конкретная инструкция. Программа должна упростить вашу жизнь, делать то, что сами вы делать не хотите.
Давайте разберемся, что же такое бизнес-логика:
Бизнес-логика описывает работу всех бизнес-процессов, существующих в продукте.
И да и нет. Под термином «Бизнес-логика» действительно понимают UX, но есть существенный нюанс.
Обычно к UX-дизайну относятся только пользовательские сценарии. Тогда как бизнес-логика описывает именно бизнес-процессы, происходящие под капотом UX с сугубо технической точки зрения.
Если бизнес-логика отвечает на вопрос:
«Как продукт должен работать технически?»
То UX-дизайн отвечает на вопрос:
«Как пользователь будет пользоваться продуктом и как сделать этот процесс максимально удобным и быстрым?».
UX-дизайн рассматривает ситуации (сценарии), с которыми сталкивается пользователь в процессе использования продукта; проблемы, которые продукт должен решить, чтобы им было интересно, выгодно или, как минимум, удобно пользоваться.
Бизнес-логика, наоборот, есть набор различных бизнес-процессов, возникающих внутри продукта. Они связаны между собой сугубо технически и никак не связаны с UX-дизайном.
UX-дизайн
То, как видит логику работы части приложения UX-дизайнер.
- Пользователь очень хочет смуззи!
- Он открывает приложение.
- Выбирает смуззи, указывает количество и нажимает кнопку «Купить»
- Ввводит адрес доставки, адрес проверяется, переходит к оплате смуззи.
- Оплачивает смуззи.
- Получает подтверждение покупки и видит информацию о дате и времени доставки, и ждет курьера.
Бизнес-логика
То, что должен видеть хороший UX-дизайнер и продакт менеджер.
- Пользователь авторизован / не авторизован
- Пользователь выбирает смуззи из всех доступных на данный момент
- Пользователь указывает характеристики смуззи
- Система проверяет, что для смуззи есть ингредиенты и запускает пользователя в процесс покупки смуззи.
- Пользователь указывает адрес доставки.
- Система проверяет условия доставки и можно ли вообще доставить смуззи за МКАД по указанному адресу.
- Пользователь переходит к оплате смуззи.
- Если пользователь авторизован, то его направляют на выбор способа оплаты.
- Если пользователь не авторизован, то его направляют на регистрацию.
- Пользователь выбирает способ оплаты.
- Пользователь указывает «Оплата наличными». Пользователь может выбрать и другой вариант.
- Пользователь указывает «Оплата банковской картой».
- Пользователь вводит данные банковской карты и нажимает на кнопку «Оплатить».
- Платежный шлюз проверяет реквизиты платежа
- Платежный шлюз принимает оплату и сообщает системе, что платеж принят.
- Заказ поступает в ближайшую к клиенту смуззишную.
- Заказ готовится.
- Заказ готов и передается курьеру.
- Курьер доставляет заказ пользователю.
- Курьер отмечает факт доставки заказа.
- Данные о завершении заказа попадают в систему.
- Система направляет пользователю предложение оценить сервис.
В реальной жизни бизнес-процесс устроен несколько сложнее, но общая идея и различие с UX-дизайном должны быть понятно.
Термин «Бизнес-логика» вы вряд ли услышите в стартапе, нацеленном на продажу смуззи, зато этот термин в широком ходу в B2B и интеграторах.
Теперь вас точно не испугаешь замысловатым вопросом «А как устроена бизнес-логика?». Помните, что бизнес-логика – это про весь механизм работы продукта, а UX-дизайном является лишь то, что по факту увидит пользователь в интерфейсе, в email и sms, отправленные вашим продуктом.
Приступим непосредственно к программированию, работать будем с файлом src/com.example.projectn/MainActivity.java. Найдем этот файл в Package Explorer см. рис. 4.13, откроем и начнем редактировать.
Рис. 4.13. Файл MainActivity.java в Package Explorer
Пока файл выглядит следующим образом, см. рис. 4.14.
увеличить изображение
Рис. 4.14. Файл MainActivity.java после создания приложения
Можно заметить, что класс MainActivity является наследником класса Activity и в нем уже реализован метод onCreate() , который запускается при первоначальном создании активности, нам потребуется его дополнить, но об этом чуть позже.
Мы предполагаем программно менять информацию в поле TextView, получать значение из поля EditText и обрабатывать события нажатия на кнопку Button, поэтому необходимо объявить соответствующие переменные, как поля класса MainActivity :
Чтобы не было ошибок, необходимо импортировать пакет android . widget , который содержит все элементы графического интерфейса:
На самом деле среда разработки подскажет, что делать.
Теперь необходимо связать эти переменные с элементами интерфейса, уже добавленными нами в activity_main.xml, сделать это необходимо в методе onCreate() , а для получения уже созданного элемента интерфейса воспользуемся методом findViewById() . Итак в метод onCreate() добавим следующие строки:
Метод findViewById() возвращает объект класса View , который является общим предком для всех компонентов пользовательского интерфейса, для того чтобы избежать возможных ошибок в скобках перед вызовом метода указываем до какого конкретно компонента необходимо сузить возможности объекта View .
Пришло время выполнить обработку нажатия на кнопку. Вернемся к файлу activity_main.xml в графический режим редактирования, выберем элемент Button и на вкладке со свойствами элемента найдем свойство On Click и запишем в него onClick - имя метода, который будет обрабатывать нажатие на кнопку. Как это выглядит показывает рис. 4.15.
увеличить изображение
Рис. 4.15. Настройка свойства On Click для кнопки
Эти же действия можно выполнить в фале activity_main.xml, достаточно дописать выделенную на рис. 4.16 строку:
Рис. 4.16. Настройка свойствами On Click для кнопки в файле XML
Для настройки свойств элементов интерфейса достаточно использовать любой способ: графический или редактирование XML файла.
Вернемся в файл MainActivity.java, в класс активности необходимо добавить метод:
Имя метода не обязательно должно быть onClick() , главное, чтобы оно совпадало с именем, указанным в свойстве On Click. В этом методе и будет происходить все наше программирование в этой лабораторной работе.
Нам потребуются две переменные:
- целочисленная для хранения загаданного числа (случайное число от 1 до 100);
- логическая для хранения состояния закончена игра или нет.
Обе эти переменные имеет смысл объявить как поля класса активности, первоначальные значения присвоить в методе onCreate .
Получить целочисленное значение из поля ввода, можно с помощью следующей конструкции:
изменить значение текста в информационном поле можно с помощью следующей конструкции:
в данном случае в информационном поле появится значение строкового ресурса с именем ahead .
Осталось реализовать логику приложения в методе onClick() . Предлагаем написать код этого метода самостоятельно, для контроля в приложении предложен листинг, который содержит один из вариантов кода описанного приложения.
Задания для самостоятельной работы:
Разумеется предложенная в приложении реализация не идеальна, требует доработок:
Читайте также: