A PHP Error was encountered

Severity: 8192

Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Filename: mysql/mysql_driver.php

Line Number: 318

Фундамент и Инерция

Фундамент и Инерция

Вторник, 26 января 2010 г.
Рубрика: Изокод
Подписаться на комментарии по RSS
Если слово Processing вам ни о чем не говорит, значит вы достигли наконец второго уровня неуловимости, а именно: пропустили первое и второе занятия по программированию красоты и гармонии. Вернулись? Продолжаем...

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

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

Функция подобна стиральной машинке, утюгу или миксеру. Каждая конкретная функция в "доме" программы - одна, а использовать ее можно - многократно. Программы с программистами после этого сразу сильно похорошели... А вождь племени подумал тогда о том, что неплохо бы ввести налог на удовольствия получаемые от программирования... и тут же был свергнут шестью различными способами в цикле от 0 до 15-ти.

Вставляем в Processing данный код. А... давайте сразу запустим и порисуем:

Теперь смотрим код. Заметьте, выражения типа x += vx являются сокращенной записью, в данном случае от выражения x = x + vx. А, например, x-- соответствует x = x - 1. Но это так... - удобные мелочи. Дальше - больше.

В двух местах мы наблюдаем вызов одной и той же функции - drawRandomSpot2(...). Ей с собой выдаются параметры: координаты, радиус и цвет. А уж она там сама знает - что рисовать. Удобно? Красиво? Вот и у всех программистов мира - тоже так... Теперь промотаем вниз и обнаружим сами функции:

Да, да, да, их то тут три, а не одна... А зачем? Если у всех входные параметры - одинаковые, а внутренности (реализации) - разные. Вот и догадайтесь с одной подсказкой: - Для развлечения, конечно! Ну ладно, еще подсказка (подозреваю - опоздавшая)... Результатом применения функций является не только выразительная читаемость - понятность кода и не только уменьшение объема его в сотни раз..., а так же - необычайная гибкость. Ведь тогда, разные варианты исполнения того или иного действия - пишутся как несколько функций с разной реализацией. Потом, чтобы сменить одно на другое - достаточно переименовать вызов функции, а не заменять одни куски кода другими кусками, попутно исправляя названия переменных (стал бы до-архитектор по пустякам нервничать?).

Чуть не забыл! Вторая штучка - это инерция. Ее присутствие оживляет нашу программу не совсем прямым управлением процессом рисования. Как это достигнуто? При помощи простейшей математики и переменной - cInertion: это такой обратный счетчик, который затухает от максимального значения - maxInertion до нуля. А значит процесс рисования не завершается сразу как мы отпускаем (куда?) мышь, а продолжается еще некоторое время: еще несколько кадров.

А вот то, что в тексте программы фигурирует некто по имени массив, мы пока - благоразумно не заметим. Надо же что-то оставить и на завтра...

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Комментариев: 3

  1. 2010-01-30 в 16:22:06 | Андрей

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

    Стандарт кодирования Java: http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

    Особо обратите внимание на пункты

    http://java.sun.com/docs/codeconv/html/CodeConventions.doc5.html#2991

    и

    http://java.sun.com/docs/codeconv/html/CodeConventions.doc6.html#430

  2. а еще тогда объясните: почему правые скобки в этих стандартах располагаются под операторами, а не под левыми скобками. не с точки зрения логики пожалуйста..., а с точки зрения восприятия подобных элементов - что более всего и влияет на читаемость кода, теми - кто со стандартами - не знаком... ну и заодно прикиньте какое психологическое влияние оказывает длинна листинга, опять же, на кого - какое?... и для кого - этот блог...

  3. Спасибо за урок!

    А продолжение будет?

    Хочется узнать о классах, человеку ничего не смыслящему в программировании)

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена

(войти без комментирования)

Имя и сайт используются только при регистрации

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

(обязательно)