Структурная парадигма

Если говорить про текущую запись алгоритмов, то мы используем одну управляющую структуру – последовательность. Она позволяет нам переходить от одной инструкции к другой. Такой подход был раньше очень распространен, до того как в конце 60-ых годов мир программирования не изменился под влияниям одного из интереснейших формализмов.

Если говорить вкратце, то пришла идея отказаться от оператора goto, семантика которого заключается в том, что он позволяет перемещаться к любой строке кода. С помощью него можно было представить различную логику программы. Если вы когда-нибудь писали на ассемблер, то помните присутствие там оператора JMP, который передавал управление к некоторой строке кода. Он бывает в условной форме, т.е если некое значение чему-то ровно, то тогда происходит переход. Что позволяло организовывать ветвление.

На основе оператора JMP или goto можно реализовать любую программу. Но по мере роста кодовой базы мы столкнемся со сложностями управления. К сожалению программа будет тяжело читаема и сложна в поддержке. Взамен спонтанным переходам было предложено более чётко декларировать блоки кода с помощью введения более строгих управляющих структур.  

Всего есть три классических управляющих структуры:

  1. Последовательность – сначала A потом B;
  2. Ветвление – если P то А если нет то B;
  3. Цикл – делать B пока P ;

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

  1. Принцип. Отказаться от оператора безусловного перехода goto;
  2. Принцип. Любая программа состоит из трех управляющих структур: последовательность, ветвление и цикл;
  3. Принцип. Все три структуры могут быть вложены друг в друга в произвольном порядке. Например, цикл в цикле;
  4. Принцип. Дублирующийся код должен быть оформлен в функцию;
  5. Принцип. Нужно осознавать группы логически связанных инструкций и заключать их в блоки;
  6. Принцип. Логические законченные блоки мы должны рассматривать с одним входом и одним выходом;
  7. Принцип. Разработку нужно вести сверху вниз;

Эти семь принципов для опытного разработчика звучат довольно очевидно. И многие даже не читали их, а просто опытным путем дошли до этого. Но вот начинающим разработчикам нужно пройти через множество задач, чтобы понять описанное здесь. К сожалению, эта книга не про это. Тут вы не встретите подробного объяснения этих принципов. Далее мы разберём проявление этой парадигмы в языке C#. В дальнейшем в заданных разделах я часто буду показывать свои решения, и в них вы сможете увидеть влияние этой парадигмы и сделать для себя выводы.

Если вы нашли ошибку, пожалуйста выделите её и нажмите Ctrl+Enter.


Leave a Reply

Your email address will not be published. Required fields are marked *