Сергей Тарасов - Дефрагментация мозга. Софтостроение изнутри

Тут можно читать онлайн Сергей Тарасов - Дефрагментация мозга. Софтостроение изнутри - бесплатно ознакомительный отрывок. Жанр: Программы, издательство Издательство «Питер»046ebc0b-b024-102a-94d5-07de47c81719, год 2013. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Дефрагментация мозга. Софтостроение изнутри
  • Автор:
  • Жанр:
  • Издательство:
    Издательство «Питер»046ebc0b-b024-102a-94d5-07de47c81719
  • Год:
    2013
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-496-00606-4
  • Рейтинг:
    4.13/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Сергей Тарасов - Дефрагментация мозга. Софтостроение изнутри краткое содержание

Дефрагментация мозга. Софтостроение изнутри - описание и краткое содержание, автор Сергей Тарасов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

Не секрет, что основная масса софтостроения сосредоточена в секторе так называемой корпоративной разработки: от комплексных информационных систем предприятия до отдельных приложений. Поэтому немалая часть сюжетов касается именно Enterprise Programming.

Из текста вы вряд ли узнаете, как правильно склеивать многоэтажные постройки из готовых компонентов в гетерогенной среде, проектировать интерфейсы, синхронизировать процессы или писать эффективные запросы к базам данных. Подобные темы будут лишь фоном для рассказа о софтостроительной «кухне». При определенной доле любопытства вы сможете убедиться, что новое – это хорошо забытое старое, узнать, как устроены некоторые сложные системы, когда следует применять разные технологии, почему специалистам в информатике надо особенно тщательно фильтровать поступающую из множества источников информацию, и многое другое, что вы, возможно, еще не знали или уже знаете, но с другой стороны.

В книге мне хотелось показать наш софтостроительный мир разработки корпоративных информационных систем не с парадного фасада описаний программных сред, подходов и технологий, а изнутри. Насколько это получилось – судить читателю.

Дефрагментация мозга. Софтостроение изнутри - читать онлайн бесплатно ознакомительный отрывок

Дефрагментация мозга. Софтостроение изнутри - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Сергей Тарасов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Все классы домена являются расширяемыми partial что позволяет разработчику - фото 34

Все классы домена являются расширяемыми ( partial ), что позволяет разработчику вынести специфичные не поддерживаемые моделью реализации свойств и методов классов в отдельные файлы.

Перечисляемый тип создаётся вместе с классами, позволяющими локализовать пользовательские названия его элементов, описанные в модели. По умолчанию будет использован язык модели, перевод необходимо осуществлять в технологии gettext .

Рис 22Перечисляемый тип слоя домена и его локализация Рис 23Класс - фото 35

Рис. 22.Перечисляемый тип слоя домена и его локализация

Рис 23Класс Финансовый год слоя домена Для определяемых моделью сущностей - фото 36

Рис. 23.Класс «Финансовый год» слоя домена

Для определяемых моделью сущностей генерируются классы, содержащие кроме соответствующих объявленным атрибутам свойств ещё и группу служебных методов для управления объектами, например, для сохранения или выборки по запросу на HQL или даже SQL. Такие методы часто используют служебные классы, объявленные в DomainSupport.cs.

Для объявленных в модели операций генерируется соответствующий метод интерфейса. Реализовать их нужно программисту в рамках расширения partial -класса.

Рис 24Класс Учётный период слоя домена Отображение классов на структуры - фото 37

Рис. 24.Класс «Учётный период» слоя домена

Отображение классов на структуры РСУБД соответствует стратегии «одна таблица на подкласс без дублирования атрибутов предка», достаточно хорошей в большинстве случаев, но и она может быть изменена.

Фрагмент файла проекции для класса «Финансовый год»

name="Domain.Engine.FiscalYear" table="FISCAL_YEAR" schema="MYAPP">

name="Id" access="property" column="NIFISCAL_YEAR">

class="native">

name="sequence">MYAPP.SEQ_FISCAL_YEAR

name="Version" column="VERSION" type="int" access="property" />

name="Periods" table="MYAPP.PERIOD" inverse="true" lazy="true" cascade="none">

column="NI_FISCAL_YEAR" />

class="Domain.Engine.Period" />

name="EntityRegistry" class="Domain.Core.EntityRegistry" unique="true">

name="NI_ENTITY_REGISTRY" not-null="false" />

name="Name" access="property">

name="NAME" not-null="false" />

name="Granularity" access="property">

name="GRANULARITY" not-null="true" />

name="FromDate" access="property">

name="FROM_DATE" not-null="true" />

name="ToDate" access="property">

name="TO_DATE" not-null="true" />

name="Closed" access="property" type="YesNo">

name="CLOSED" not-null="true" />

name="CreatedBy" access="property">

name="CREATED_BY" not-null="false" />

name="CreatedDate" access="property" type="timestamp">

name="CREATED_DATE" not-null="false" />

name="LastModifiedBy" access="property">

name="LAST_MODIFIED_BY" not-null="false" />

name="LastModifiedDate" access="property" type="timestamp">

name="LAST_MODIFIED_DATE" not-null="false" />

Слой веб-служб и интерфейсов доступа (ServiceStack)

Генерируемые для слоя веб-служб C#-файлы предназначены для создания двух сборок: собственно служб и интерфейсов к ним, используемых клиентами.

Рис 25Классы реализующие службы доступа к объектам домена Рис 26Класс - фото 38 Рис 25Классы реализующие службы доступа к объектам домена Рис 26Класс - фото 39

Рис. 25.Классы, реализующие службы доступа к объектам домена

Рис 26Класс службы сохранения объектов Интерфейсы доступа к службам также - фото 40

Рис. 26.Класс службы сохранения объектов

Интерфейсы доступа к службам также содержат описания перечислимых типов с локализацией, классы DTO для передачи состояния между программой-клиентом и доменом, классы для непосредственного доступа к вызовам служб.

Рис 27Перечисляемый тип слоя вебслужб Рис 28Классы вызова - фото 41

Рис. 27.Перечисляемый тип слоя веб-служб

Рис 28Классы вызова специфицированных методов Рис 29Классы вызова - фото 42

Рис. 28.Классы вызова специфицированных методов

Рис 29Классы вызова вебслужб касающихся финансового года Рис 30Класс - фото 43

Рис. 29.Классы вызова веб-служб, касающихся «финансового года»

Рис 30Класс адаптера для работы с объектом Финансовый год Рис 31Класс - фото 44

Рис. 30.Класс адаптера для работы с объектом «Финансовый год»

Рис 31Класс адаптера для работы с коллекцией объектов Финансовый год - фото 45

Рис. 31.Класс адаптера для работы с коллекцией объектов «Финансовый год»

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

Пример работы с DTO

CurrencyDTO curr1 = newCurrencyDTO();

curr1.Code = "RUR";

curr1.Name = "Currency 1";

UnitOfWorkDTO uow = newUnitOfWorkDTO();

uow.Save(curr1);

PersistenceRequest prq1 = newPersistenceRequest();

prq1.UnitOfWork = uow;

PersistenceResponse prr1 = client.Post("/Persistence", prq1);

Assert.IsFalse(prr1.CommitResult.HasError, prr1.CommitResult.Message);

Пример работы с адаптерами

Currency curr1 = newCurrency();

curr1.Code = "RUR";

curr1.Name = "Currency 1";

CommitResult cr1 = curr1.Save();

Assert.IsFalse(cr1.HasError, cr1.Message);

Программа-клиент

В рамках простейшего WinForms-приложения создадим форму, содержащую сетки отображения финансовых годов и их периодов. Не вдаваясь в технику разработки приложений этого типа, просто приведу фрагменты кода, запрашивающие у служб коллекции соответствующих типов.

Извлечение списка финансовых годов, отфильтрованного по названию

FiscalYearCollection years = FiscalYearCollection.GetByQuery(

"from FiscalYear where Name like: name order by Name",

newServicesQueryParams()

AddParam("name", txtYearName.Text)

);

dgvYears.DataSource = years;

Извлечение списка учётных периодов заданного года

PeriodCollection periods = PeriodCollection.GetByQuery(

"from Period where FiscalYear.Id =:yearId order by FromDate",

newServicesQueryParams()

AddParam("yearId", CurrentYear.Id),

0, 1000);

dgvPeriods.DataSource = periods;

Запускаем клиентское приложение, предварительно запустив сервер веб-служб, и видим на экране примерно такую картинку, как на рис. 32.

Рис 32Форма отображения финансовых годов и учётных периодов Остановиться и - фото 46

Рис. 32.Форма отображения финансовых годов и учётных периодов

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Сергей Тарасов читать все книги автора по порядку

Сергей Тарасов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Дефрагментация мозга. Софтостроение изнутри отзывы


Отзывы читателей о книге Дефрагментация мозга. Софтостроение изнутри, автор: Сергей Тарасов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x