Это пособие основывается на конспектах лекций, которые читались на первых курсах ММФ Новосибирского госуниверситета в течении последних. Отправной точкой в развитии этого курса являлось пособие «Современные средства и методы программирования», написанное в 19?? году М.М.Бежановой и И.В.Поттосиным, которые в свою очередь стояли у истоков преподавания программирования в НГУ.
Понятно, что многое поменялось за это время: появлялись и сходили на нет языки программирования, кардинально повысилась мощность и, что ещё важнее, доступность вычислительных машин, формировались и приобретали первостепенное значение новые области применения. Как следствие, изменялось и представление о профессиональных знаниях, умениях и навыках, которыми должны обладать программисты. Поэтому данный курс не претендует ни на полноту, ни на соответствие последним тенденциям современного программирования, а ставит целью критическое осмысление базовых понятий и их выражение в различных языках программирования. Предполагается, что курс закладывает основу для дальнейшего освоения объектно-ориентированного программирования, методов работы с базами данных, разработки пользовательских интерфейсов, вычислительной математики, машинной графики и многих других областей. С другой стороны, ожидается, что слушатель обладает знаниями в объёме школьного курса «Основы информатики» и соответствующими навыками работы с компьютером и способен самостоятельно написать простые программы.
Лекция 6. Приборные системы безопасности. Прикладная программа ПСБ | Противоаварийная защита
Одним из самых спорных вопросов, который возникает при постановке подобного курса, является вопрос о выборе языка программирования. Не вдаваясь в детали этого обсуждения, сразу скажем, что в данном курсе это язык С. Однако, ни в коем случае данное пособие не следует рассматриваеть как справочное руководство по языку. Мы считаем, что осваивать конкретный язык образованный программист должен самостоятельно в процессе решения практических задач, пользуясь соответствующей технической документацией. Нам же язык С требуется для демонстрации конструкций и понятий из «лексикона» программирования, а там, где его окажется недостаточно, мы будем привлекать и другие языки, такие как Паскаль, Алгол-60, Фортран, АПЛ, Алгол-68 и пр. Наша задача не столько в том, чтобы в совершенстве освоить конкретный язык или стать компьютерным полиглотом, а в том, чтобы научиться ставить вопрос: «Почему так и как можно было бы по-другому?».
Введение
Программирование можно определить как способ заставить кого-то достичь поставленной нами цели. Часто в качестве примера программирования приводят кулинарные рецепты, которые описывают пошаговый процесс приготовления из исходных продуктов некоторого блюда. Программой может служить и математический алгоритм.
Например, алгоритм Евклида задаёт последовательность операций, которые достаточно выполнить для нахождения наибольшего общего делителя по двум заданным целым числам. Однако следует иметь в виду, что последовательность и пошаговость не является неотъемлемой чертой программирования. Даже в случае с кулинарным рецептом некоторые операции можно выполнять параллельно.
Что самое необычное можно написать на С++?
Если же мы в качестве примера программы рассмотрим Правила дорожного движения, целью которых является обеспечение безопасности и избежание заторов на дорогах, то мы заметим, что это в большей степени достигается не явным предписанием того, что и в какой последовательности надо делать, а формулировкой ограничений – того, чего делать не надо. Этот пример демонстрирует и то, что исполнителей программы может быть несколько. К программированию можно отнести описание технологических процессов, рекламу, уставы организаций и многое другое. Но нас в рамках данного курса будет интересовать в первую очередь программирование для компьютера (ЭВМ).
Программирование как вид деятельности может иметь весьма разные аспекты. Условно выделим четыре вида программирования, которые рассмотрим ниже.
Прикладное программирование
Прикладные (или пользовательские) программы составляют конечную и основную цель программирования, поскольку именно они влияют на повседневную жизнь обычных людей. Этим объясняется и огромное многообразие таких программ. Сюда можно отнести, например, текстовые процессоры и электронную почту, игровые программы, бухгалтерские и банковские системы, автомобильные навигаторы, интернет-магазины, встроенные программы управления бытовой техникой и многое-многое другое. Соответственно, основное внимание в прикладном программировании должно уделяться таким вопросам, как
Надёжность, устойчивость: постоянно ломающаяся, «зависающая» программа не представляет никакой ценности для пользователя;
Безопасность, «защита от дурака». Программа может быть не только полезной, но и вредной. Даже если не рассматривать компьютерные вирусы и другое целенаправленное нанесение ущерба, должны быть предусмотрены все возможные пользовательские сценарии, в том числе и «неразумные».
Интуитивность, удобство пользовательского интерфейса. Взаимодействие программы с пользователем должно формулироваться в понятных ему терминах и соответствовать той деятельности, для которой программа используется. Эффективность интерфейса подразумевает, в частности, минимизацию суммарного количества действий, которые необходимы для достижения цели. Понятно, что действия могут различаться по сложности: от простейших – нажатий на клавиши или перемещения курсора, до выбора элемента в длинном неупорядоченном списке.
Эффективность. Программа должна обладать адекватным быстродействием. Адекватность здесь понимается как соответствие времени исполнения и других потребляемых программой ресурсов ожиданиям пользователя. Очевидно, что эти ожидания меняются со временем – по мере развития вычислительной техники там, где раньше пользователи готовы были ждать час, теперь их раздражает задержка в несколько секунд.
Гуманитарные аспекты, к которым можно отнести учёт того, что пользователь может плохо различать цвета, иметь физические проблемы с использованием клавиатуры, не знать иностранных языков и т.п.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
А как выглядит ваш прикладной код?
При разработке платформы я считаю крайне важным уделять особое внимание простоте, понятности и удобстве работы с прикладным кодом. Испробовав разные подходы, я хочу поделиться удобными рецептами из своего опыта.
Под прикладным кодом имеется в виду код, относящийся непосредственно к бизнес-логике конкретного приложения, при этом, в отличии от ядра (framework-а, платформы) такой код максимально подвержен изменениям и в крупных проектах может составлять львиную долю проекта. От удобства прикладного разработчика зависит скорость и качество разработки самым существенным образом.
Например на языке Brainfuck Hello world выглядит так:
А вот наши критерии удобства:
- Строгая статическая типизация
- Документированность
- Отсутствие “мусора”
- Однотипность
- Лаконичность
Типичным примером прикладной задачи является разработка кнопки с каким-нибудь действием по её нажатию. Кнопка может находиться на форме, на гриде или в системном меню. В зависимости от расположения у неё есть набор доступных входящих параметров (что за форма? что за грид? какие записи выделены?) и набор возможных действий (обновить, изменить, открыть и т.д.), их совокупность мы называем контекстом.
В нашей системе для создания кнопки нужно разработать класс этой кнопки, реализующий специальный интерфейс (IAction) — он описывает её внешний вид и поведение.
В примере рассмотрим приложение из предыдущей статьи — агенство недвижимости.
Кнопка добавления в закладки
Комментарии
В заголовке класса имеются XmlDoc комментарии, они имеют двойное назначение:
во первых это классический комментарий, чтобы в коде было понятно что же делает это действие
во вторых это текст (первая строка) и подсказка (последующие строки) кнопки.
Реализация интерфейса
На первый взгляд IAction> может испугать, но это не так страшно:
IAction — интерфейс всех действий системы, для того чтобы класс был кнопкой он должен реализовывать этот интерфейс.
- Форме заявки
- Контестном меню списка заявок (правый клик на элементе)
- Предложений от арендодателя
- предложений комнат (потомок)
- предложений квартир (потомок)
Атрибут
[Icon(ExtIcon.BookmarkAdd)]
Указывает с какой иконкой кнопка будет отображаться.
Метод
public void Execute(IItemContext context)
Непосредственно код, выполняемый по нажатию на кнопку.
context — это и есть Контекст действия, что в нем есть:
ExceptionHelper.Interactive — Интерактивные исключения
ParameterManager.GetParameter — запрос параметра с клиента (похоже на интерактивные исключения, но с возможностью ввести данные)
context.ShowNotification() — способ взаимодействия с клиентом.
Кнпока расчета средней цены
Атрибут
[RequireRole(Role.Agent)]
указывает на требование наличия роли Agent у пользователя для видимости кнопки.
Контексты
В этой кнопке используется IFormContext — контекст формы, в отличии от контекста элемента такие кнопки не будут доступны по контекстному меню, зато будут доступны при редактировании формы.
При этом контекст содержит дополнитеьльные параметры, например
context.FormData — это ещё не сохраненные данные формы и дополнительные методы, имеющие смысл только на форме, например:
context.ChangeFieldValue(a => a.Price, averagePrice) — изменение значения поля (без сохранения)
Больше возможностей
Контекстов много
В реальности используется несколько контекстов, использование соответствующего контекста позволяет расположить кнопку в нужном месте и получить доступ до необходимых свойств и вызывать соответствующие методы.
Атрибутов тоже много
Например в кнопке удалить:
- подтверждения с текстом подтверждения
- требования выделения (без выделения кнопка не доступна)
- горячую клавищу
Не только кнопки
- Событий сущности
- Событий форм
- Событий входа в систему
- Операций документов
- Нумераторов
Тема для дискуссии
А у вас есть примеры ERP (или других учетных) систем где прикладной код вам нравится?
1С — образец для подражания?
Источник: habr.com
Java — пишем прикладные программы. Литература. Шаг №44
Всем привет. Занимаясь прикладным программированием для DIY устройств и прикладных систем ( Embedded Systems ), далее познакомимся с написанием оконных приложений на компьютере для обработки полученных данных. Ведь прикладная программа , это своего рода вспомогательная программа, которая решает определенную задачу, связанную с обработкой данных.