Построение программы AS3 (часть 3)

3. Построение программы

3.1. Структурные блоки программ

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

К основным блокам программ относятся:

  • переменные – предназначены для хранения временных (переменных) данных;
  • массивы – предназначены для хранения списка временных данных;
  • функции – предназначены для группировки участков кода и повторного их использования;
  • циклы – предназначены для циклического повторения участков кода;
  • логические структуры – предназначены для построения логики принятия решений.

Переменные

Любая программа работает с информацией. Не важно, кто или что являлось источником информации, ее нужно где-то сохранять для дальнейшей обработки и вывода результата. Роль объекта для хранения информации в памяти компьютера играет переменная.
Переменные могут содержать информацию различных типов. Наиболее распространенные типы – числовой, логический, текстовый и др.
В AS3 переменные создаются так:

var variable_name:Number;
,

где «var»(от англ. variable) — зарезервированное слово, «variable_name» – имя переменной, «Number» — зарезервированное слово для типа переменной.
Есть вариант создания переменной с присваиванием ей значения:

var variable_name:Number = 500;

Последний вариант предпочтительней и считается признаком хорошего тона программирования в AS3.
Хочу обратить особое внимание, что регистр написания букв в AS3 играет существенную роль: переменная с именем «Variable_name» будет отличаться от переменной «variable_name». Существует ряд ограничений составления имен переменных, с которыми можно ознакомиться в online справке по AS3.

Массивы

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

var my_array:Array = [];
var my_second_array:Array = new Array();

Как удобнее Вам, выбирайте сами.
Обращение к элементам массива:
my_array[0]=”First string data;

Функции

Функции обеспечивают возможность обращаться к одному и тому же набору команд в зоне видимости функции.

Примером, как обычно, может служить окружающий мир. К примеру, у человека есть метод  «Прием пищи» :))). Данный метод вызывает функцию «Жевать», которая содержит набор действий для обеспечения пережевывания пищи. Удобством функций является их возможность принимать различные параметры на вход (не обязательно) и возвращать результат
выполнения функции (не обязательно). Если рассматривать на том же примере с «пережевыванием», не важно какая пища попадает на вход функции и результатом функции будет
масса (если все прошло успешно) разной консистенции.
Кстати, признаком «хорошего тона» ООП служит факт наличия наименьшего количества действий выполняемых функцией. Если последнее число слишком велико,
постарайтесь вынести некоторые участки кода в другие функции.
ЗАПОМНИТЕ! Функция должна решать одну задачу. После этого  Ваш код будет более эффективный и удобный для повторного использования.

Вызов функции

Вызов функции — обозначает использование функции. После объявления функции, Вы можете обращаться к ней, используя имя функции.
Более подробно процесс объявления и вызова функции Мы рассмотрим позже.

Циклы

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

Условия

Условия выполняют одну из ведущих ролей в программировании, т.к. они обеспечивают программу логикой принятия решений. Благодаря условным операторам, которые
обеспечивают проверку условий, Ваш код может выполнять различный набор действий в зависимости от обрабатываемой информации.
В своей повседневной жизни, человек принимает несметное количество решений в зависимости от различных условий. Существенное отличие принятие решений человеком
от принятия решений программой в том, что в последней все условия определенны заранее программистом и самообучение не происходит. (Если кому интересна тема
«Самообразования программ», ищите понятия «Искусственный интеллект» и «Нейронные сети»).
Забегая наперед, пример на псевдокоде:
если выполняется <условие1> выполнить
начало блока 1
команда1;
команда2;

конец блока 1
в противном случае:

начало блока 2
команда7;
команда9;

конец блока 2

3.2. Комментарии

Комментарии — это одна из важных характеристик хорошего программиста. Благодаря комментариям вы получаете значительную массу преимуществ взамен нескольким секундам, которые необходимы для написания комментариев.
Комментарии — это текст в исходном коде программы, который игнорируется компилятором и предназначен для разъяснения конкретных участков кода.
Благодаря комментариям у Вас появляется возможность быстрее разбираться в коде, который написан не Вами и наоборот. После длинного перерыва работы с конкретным участком кода, при помощи комментариев Вы в считанные секунды можете вспомнить предназначение и логику работы последнего.
Важно знать, что чрезмерное количество комментариев загромождает код и делает его нечитабельным. Текст комментария должен отвечать только на один вопрос — «Зачем?».
Виды комментариев:

  • малые заметки — занимают не более одной строки. В AS3 синтаксисе:
    // Это комментарий
  • блок комментариев — занимает более одной строки. В AS3 представлен в следующем виде:
    /* первая строка комментария
    вторая строка комментария
    ...
    n-я строка комментария
    */

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

3.3. Именование

Именование — это обширная тема и обсуждается очень часто в больших количествах. Здесь такая же ситуация как и с чрезмерным употребление алкоголя — вредит здоровью. Не стоит сильно заострять на это внимание, т.к. у каждой компании своя документация по именованию. Совет, смотрите чей-то код и находите удобное для себя и для других, чтобы это соответствовало синтаксису языка программирования.
Чтобы Вас изначально направить на истинный путь, рассмотрим основне принципы «хорошего»(мое субъективное мнение) именования:

  • переменные могут содержать буквы, цифры, знак доллара ($) и символ нижнего подчеркивания (_);
  • переменные не могут начинаться с цифр;
  • нельзя использовать зарезервированные слова как имя переменной;
  • в основном, имя переменной состоящее из двух и более слов пишится в соответсвии с CamelCase стиле написания (слово начинается с символа в нижнем регистре и каждое последующее слово начинается с символа верхнего регистра).
    Пример:
    var thisIsVariable:uint = 1986;
  • Именование констант (переменные, значение которых не изменяется на протяжении всей программы) — все прописные символы и составные слова разделяются символом нижнего подчеркивания.
    Пример:
    const MAX_SPEED:uint = 220;
  • Именование функций схоже с именованием переменных. Чаще всего, имя функции состоит из двух частей: первая (глагол) — действие, которое выполняет функция; вторая (существительное) — объект, к которому относится действие.
    Пример:
    getContact();
    validateLogin();
  • Классы именуются согласно CamelCase стиля написания, но отличие лишь в написании прописного первого символа.
    Пример:
    Ball
    Employee
  • Методы именуются так же как и функции, но к медотам с областью видимости private (поговорим об этом позже) добавляют сивол нижнего подчеркивания.
    Пример:
    findWord();
    _parseWord();
  • Свойства именуются как и переменные, но отличие в добавлении символа нижнего подчеркивания, если область видимости свойства public.
    Пример:
    employeeID
    _employeeCode
  • Пакеты(англ.packages) применяются для группировки файлов содержащих описание классов по каталогам. Именуются пакеты таким образом:
    ua.org.henry-motu — это значит, что данный пакет находится по пути .\ua\org\henry-motu\
    Пример использования:
    import ua.org.henty-motu.Study;  //импортируем класс Study, который находится в файле .\ua\org\henry-motu\Study.as

3.4. Отступы

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

package{import ua.org.henry-motu.Test1;
import ua.org.henry-motu.Test2;
import ua.org.henry-motu.Test3; public class MyNewClass{ private const MAX_SPEED:uint=5;
public var carModelName:String="BMW";//private properties
private var _lapCount:uint = 0;
//constructor
public function MyNewClass(){trace('Created!');}//public methods
public function upLap():uint{_lapCount++;return _lapCount;}}}

Пример хорошего написания кода:
package{
   import ua.org.henry-motu.Test1;
   import ua.org.henry-motu.Test2;
   import ua.org.henry-motu.Test3;
 
   public class MyNewClass{
      private const MAX_SPEED:uint=5;
      public var carModelName:String="BMW";
 
      //private properties
      private var _lapCount:uint = 0;
 
      //constructor
      public function MyNewClass(){
         trace('Created!');
      }
 
      //public methods
      public function upLap():uint{
         _lapCount++;
         return _lapCount;
      }
   }
}

Как Вы можете сами оценить, второй вариант намного читабельней.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *