Советы программистам

У правильных программ выделяется несколько уровней. И правильные программисты стараются эти уровни не перемешивать друг с другом.

Например, есть уровень бизнес-логики. Это, собственно, то, ради чего создаются программы. Есть уровень представления или говоря другим языком — то, что мы видим на экране или на принтере. Некоторые учения о программировании различают и другие уровни, но я бы сейчас не хотел углубляться в детали.

На уровне бизнес-логики работа ведется с числами или кодам, которое располагаются где-то в памяти и не имеют никакого графического изображения. Глупо задавать вопрос — как выглядит бит, как выглядит байт, как выглядит цепочка байтов (блок). Байты могут представлять собой какое-то число (например, Пи или чью-то зарплату), а могут быть пикселами изображения, или мгновенным уровнем звукового сигнала. Да чем угодно!

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

Второй уровень — уровень представления — он как раз отвечает за представление обезличенных байтов. В консольных программах, байты можно вывести на экран как числа, или как текстовые строки. В графических приложения — тоже самое, но еще и в виде графики. Смотря чем программа занимается. Графика против текста — это всегда огромные объемы данных и, как следствие, — длительность передачи.

Когда ваша программа на уровне бизнес-логики будет написана и отлажена, то вы можете к ней прикручивать любой интерфейс. Забудьте про бизнес-логику, там уже все идеально, займитесь качественным отображением результатов работы и дружественностью интерфейса.

Мои слова не следует понимать так, что других подходов в программировании не существует. Например, в свое время были Delphi и VisualBasic, которые позволяли перемешивать (и взбалтывать!)эти два уровня. В них можно было хранить данные в элементах (виджетах) экранных форм. Экранные формы (окна) не разрушались, а делались невидимыми, и таким образом доступ к сохраненным в них данным всегда был возможен.

Надо ли говорить, что все данные и алгоритмы их обработки были размазаны по всему приложению. Попробуйте-ка найти кто меняет «дату платежного поручения»! — Придется облазить весь проект! Тем не менее, такой подход в программировании имеет место быть в жизни. Небольшие одно-авторские проекты таким макаром еще можно как-то писать, но даже спустя год понять свой проект становится весьма трудно — данные, бизнес-логика и обработка размазаны по всему проекту, как манная каша по тарелке. Кому-то нравится.

Однако, я отошел от мысли. Я хотел сказать, что до тех пор, пока у Вас нет четкого понимания, что должна делать программа, как должна обрабатывать данные, подниматься на уровень представления преждевременно. Сначала нужно допилить бизнес-логику. И только потом, на на основе безупречных данных, можно строить интерфейс — отображать их на экране. Не сваливайте все в одну кучу. Не делайте из программы винегрет.

Есть хорошая пословица — разделяй и властвуй. Вот тут она будет к стати.

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

Реклама

2 responses to “Советы программистам

  1. Например, в свое время были Delphi и VisualBasic, которые позволяли перемешивать (и взбалтывать!)эти два уровня. В них можно было хранить данные в элементах (виджетах) экранных форм. Экранные формы (окна) не разрушались, а делались невидимыми, и таким образом доступ к сохраненным в них данным всегда был возможен.
    Delphi и Visual Basic (VBA, VB.NET) есть и сейчас. Никто ведь не мешает размещать код обработки данных в отдельных модулях, не связанных с формами. Это уже вопрос чистоплотности программиста.

    • Это-точно. Программист программисту — рознь.

      Можно писать код, как бог на душу положит, и считать, что это нормально — «работает же!»
      А можно предъявлять к себе очень высокие требования и оставаться недовольным.

      Забавно отметить. Ранее на electronix.ru задавали вопросы типа «как сделать …», сейчас задают вопросы «у кого-нибудь есть библиотеки …»
      Ладно бы спрашивали библиотеки файловой системы или TCP/IP стека, так ведь спрашивают библиотеки подключения DS18B20 или подключения LCD. Ну разве народ не измельчал? А как понимать тех «инженеров», которые разрабатывают свой девайс из готовых «кубиков» CMSYS уповая на «а-а, фигня! У Кортекса скорости и ресурсов с избытком. Вытянет!». И даже не удосуживаются разобраться как это все устроено и работает там, под капотом? Какой уж там — вгрызаться в кракозяьры cstartup.s!

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s