Главная » C# » Программирование с использованием идей – приложение для вычисления налогов Visual C# (Sharp)

0

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

Допустим, что вы написали  набор базовых  классов, представляющих общее ядро налогообложения, на  основе информации, представленной в разд. "Введение  в  оовы налогообложения"ранее в этой главе. Чтобы применить эти базовые классы, нужна конкретная задача, и вы ожидаете клиента с такой задачей. Вскоре к вам оащается такой клиент из Великобритании с заказом программы для вычисления налогов. Так как у вас уже имеется базовая заготовка программы, вы приятно удивляете клиента, сообщая ему, что он может получить свою программу намного быстрее, чем рассчитывал. В этом и заключается суть базовых классов — создав одну базовую заготовку программы, сэкономить время на разработке приложений под конкретные требования. Теоретически, без базовых классов, каждое приложие нужно было бы разрабатывать практически с нуля.

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

В чем же причина? Может быть, виноваты разработчики,  которые создали "не те" базовые классы? Или же программа вычисления налогов очень сложная, и труднтей в ее реализации никак нельзя избежать? Ни то, ни другое. Настоящая причина

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

Все сказанное не следует воспринимать как утверждение, что базовые классы сами по себе или разработка общей инфраструктуры являются плохой идеей. К чему я веду, так это к тому, что для разработки полезных базовых классов необходимо иметь знания в области их применения. Если у вас таких знаний нет, то вам не слует писать базовые классы.

Но каким образом можно  получить опыт в области применения  базовых классов, который позволил бы вам их разрабатывать? Можно  начать  с  изложения  своих идей  в  виде  конструкций  С#,  а  потом  реализовывать  эти  идеи.  Генерация  идей с последующей их реализацией является частью процесса разработки, называющося разработкой программного обеспечения, управляемого тестами (test-driven architecture).

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

В программировании на языке С# общие идеи воплощаются в исходный код с пощью   интерфейсов.

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии