The 8 reference contexts in paper Gleb Chermennov A., Elena Kovalevskaya V., Глеб Черменнов Анатольевич, Елена Ковалевская Владимировна (2016) “РАЗРАБОТКА ПРИКЛАДНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ПЛАТФОРМЕ.NET С ПРИМЕНЕНИЕМ АСПЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ // APPLICATION SOFTWARE DEVELOPMENT POWERED BY.NET USING THE ASPECT-ORIENTED PROGRAMMING” / spz:neicon:statecon:y:2013:i:5:p:193-195

  1. Start
    3267
    Prefix
    Вполне может оказаться, что программист отчитывается перед двумя разными людьми, и каждый из них ждет от него 100%-ной производительности, так что приходится выполнять работу на 200%. Программисты должны разбираться в приложении, которое разрабатывают, в предметной области и в особенностях используемой программной платформы
    Exact
    [3]
    Suffix
    . При проектировании системы необходимо решить сразу несколько задач: например, как система выполняет предъявленные к ней требования с точки зрения бизнеса, как она достигает высокой скорости работы, масштабируется ли и как обходит ограничения платформы.
    (check this in PDF content)

  2. Start
    3759
    Prefix
    В процессе разработки часто выясняется, что написанный код выполняет несколько задач сразу, что является примером низкокачественного проектирования. В этом случае необходимо улучшить разделение обязанностей (separation of concerns)
    Exact
    [1]
    Suffix
    . Равно как и каждый член команды, каждый фрагмент написанного кода должен быть сфокусирован на выполнении ровно одной задачи в отдельно взятый момент времени. К счастью, времена, когда количество профессиональных инструментов для разработки, тестирования и разворачивания приложений было невелико, безвозвратно ушли в прошлое.
    (check this in PDF content)

  3. Start
    6344
    Prefix
    Экспериментальная часть Инфраструктурные требования к современным приложениям постоянно усложняются – нужно записывать ошибки, произошедшие во время выполнения приложения (logging), сохранять и изменять введенные пользователями данные (persistence), обрабатывать исключительные ситуации и учесть еще множество различных вопросов
    Exact
    [4]
    Suffix
    . В связи с этим, все чаще складывается ситуация, когда разработчик пишет не код, отвечающий за непосредственный функционал приложения, а занимается обеспечением вышеперечисленных задач. Это не только не приносит пользы компании, на которую он работает, но и зачастую привносит в код приложения элементы, засоряющие проект.
    (check this in PDF content)

  4. Start
    7494
    Prefix
    АОП предлагает средства по вынесению вышеуказанного функционала из кода приложения в аспекты (aspects) – блоки кода, позволяющие компактно организовать реализацию сквозных обязанностей. Этот подход также предоставляет механизм для объединения аспектов и собственно кода приложения в рабочую систему во время компиляции или во время выполнения
    Exact
    [8]
    Suffix
    . Таким образом, исходный код приложения освобождается от навязанных ему сторонних обязанностей, и команде разработчиков будет легче его поддерживать и расширять. В каждом более-менее крупном приложении всегда присутствуют определенного рода соглашения внутри команды разработчиков – не только в плане стандарта кодирования, но и в плане подходов к реализации тех или иных компонентов системы.
    (check this in PDF content)

  5. Start
    8989
    Prefix
    ограничения различного рода – к примеру, если информация об объекте передается по сети, он должен быть способен к сериализации (сохранению своего состояния в тот или иной формат передачи данных). Код, написанный только для удовлетворения этих ограничений, имеет тенденцию к разбуханию, – более того, написание и поддержка такого кода не несут непосредственной пользы для приложения
    Exact
    [5]
    Suffix
    . В результате по всей системе распространяются знания о конкретной библиотеке или компоненте, что почти всегда ведет к жесткому связыванию (tight coupling) инфраструктурной части системы и бизнес-логики и затрудняет поддержку всего приложения.
    (check this in PDF content)

  6. Start
    10109
    Prefix
    Кроме того, аспектно-ориентированное программирование зачастую заставляет идти на технические компромиссы, одним из следствий которых является сложность тестирования компонентов, поведение которых изменяется или контролируется аспектами. Те из библиотек, которые преобразовывают промежуточный код по окончании процесса компиляции, зачастую немного замедляют процесс сборки приложения
    Exact
    [7]
    Suffix
    . Таким образом, можно прийти к выводу, что в полной мере ощутить мощь аспектно-ориентированного подхода смогут лишь опытные программисты, которые хорошо представляют себе, что именно происходит «за кулисами» того или иного инструмента, знают его достоинства и недостатки и пользуются им в случаях, когда это действительно оправданно.
    (check this in PDF content)

  7. Start
    10954
    Prefix
    Возможности WPF дают разработчикам массу возможностей, но в то же время накладывают ограничения на написанный ими код – в первую очередь это относится к реализации интерфейса INotifyPropertyChanged, посредством которого происходит уведомление об изменениях данных, привязанных к элементам пользовательского интерфейса
    Exact
    [6]
    Suffix
    . Большинство современных платформ для разработки обладает средствами для реализации аспектно-ориентированного подхода. В среде Java наиболее широко распространены AspectJ и SpringAOP, в .NETFramework пользуются популярностью PostSharp и Aspect.
    (check this in PDF content)

  8. Start
    12601
    Prefix
    Решением инфраструктурных сложностей служат облачные технологии, и в первую очередь платформа Windows Azure от Microsoft, предоставляющая широкий набор возможностей и инструментов для разработчиков
    Exact
    [2]
    Suffix
    . С помощью Windows Azure можно решить проблемы масштабируемости распределенных приложений и повышения их отказоустойчивости за счет использования современных методик настройки промежуточной среды.
    (check this in PDF content)