Rubyrush: Объекты, переменные, и условный оператор

Ruby для новичков [Rubyrush]

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

Введение

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

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

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

А вот если задачка будет стоять более глобальная и нам нужно будет описать всё разнообразие нашего мире, нам придётся систематизировать имеющуюся информацию. К примеру разделить и сгруппировать информацию по спискам. Отделить списки живых существ от неодушевлённых предметов, больших от маленьких, красных от зелёных и так далее. для того что бы можно было пересчитать, проверить и исключить повторения в списках. Верно?!

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

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

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

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

Классы — свойства и качественные характеристики объектов: размеры, вес, запах, вкус и прочие параметры объектов, которые мы используем для того что бы описать, сравнить или группировать объекты.

В языке программирования, как и в реальной жизни существуют объекты, свойства и методы, только сильно упрощённые — в более абстрактном виде. Надеюсь вы понимаете почему? Верно! Для экономии времени и сил на написание программ. Нам ведь не нужно знать все все свойства объектов, что бы их посчитать?

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

Объект — абстрактная сущность с которой мы работаем, выстраивая правила взаимодействия в среде разработки. У каждого объекта есть свойства и методы, которые логичны и взаимосвязаны между собой.

Объектно-ориентированное программирование

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

Как я узнал из Википедии, в парадигмы программирования бывают разные и их принято называть моделями программирования.

Основные модели программирования

  • Императивное программирование
  • Декларативное программирование
  • Структурное программирование
  • Функциональное программирование
  • Логическое программирование
  • Объектно-ориентированное программирование
    • Компонентно-ориентированное программирование
    • Прототипно-ориентированное программирование
    • Агентно-ориентированное программирование

На ряду с моделями программирования структурированы и довольно подробно описаны и наиболее популярные Подходы и приёмы программирования.

Подходы и приёмы программирования

  • Структурное программирование
  • Процедурное программирование
  • Аппликативное программирование
  • Обобщённое программирование
  • Доказательное программирование
  • Порождающее программирование
  • Аспектно-ориентированное программирование
  • Агентно-ориентированное программирование
  • Рекурсия
  • Автоматное программирование
  • Событийно-ориентированное программирование
  • Компонентно-ориентированное программирование
  • Грамотное программирование

И тут я охерел от того количества информации, которую необходимо изучить. Но давайте не будем уходить в ширь и вернёмся к текущему шагу.

Ruby является объектно-ориентированным языком программирования. У него определён перечень подходов и приёмов для написания программ, так что не все так страшно. Жизни нам точно хватит для изучения, закрепления и развития своих профессиональных качеств 🙂

Синтаксические элементы в языке Ruby

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

Для чего нужны переменные в программировании

Переменные в программировании применяются для удобного хранения и работы с данными = объектами. Очень понятной аналогией будет простой пример с именами людей в реальной жизни.

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

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

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

Имена переменных в рамках одной программы должны быть уникальными.

Присваивание значения переменной осуществляется по средствам знака равенства = — оператор присваивания. Присваивает значения из правых операндов в левый операнд.

Переменная может быть пустой, то есть не указывать ни на какой конкретный объект. Как пустой бланк паспорта. А может указывать на один объект, а потом на другой, если мы так захотим.

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

Что бы не было подобных сюрпризов, обычно прибегают к временному решению — присваивают переменной объект nil.

Тут я сразу полез гуглить что такое этот nil.

В объектно-ориентированном программировании Null Object — это объект с определенным нейтральным («null») поведением. Шаблон проектирования Null Object описывает использование таких объектов и их поведение (или отсутствие такового).

Если я правильно понял. объект nil выступает в роли заглушки. Как бы временное решение. Что бы не отвлекаться на ошибки. Я пока не понимать нахрен мне объявлять новую переменную просто так, но учту эту фишку с заглушкой.

Данные, присвоеннные переменной можно изменять.

Можно переопределять эти значения и не только. Для этого существуют соответствующие методы.

Переменной можно присваивать значение другой переменной.

Операторы if и else

Оператор if есть в большинстве современных языков программирования. Он позволяет программировать сценарии, вернее вариации работы программы, в зависимости от запрограммированного условия.

Если условие выполняется, то программа работает. а если условие не выполняется — программа останавливается.

if (условие)
  сделать, если условие выполнено
else
  сделать, если условие не выполнено
end

Альтернативный сценарий мы записываем в отдельную ветку и используем для этого условие else. Теперь наша программа теперь имеет два варианта развития событий.

Условия можно вкладывать друг в друга, программируя сложные разветвлённые алгоритмы работы программы. Но не стоит этим увлекаться. Хорошо написанная программа должна легко читаться. быть краткой, лаконичной и читабельной.

После того как программа отработает в зависимости от заданных условий, она выйдет из if и продолжит свою работу, выполняя сценарии, прописанные после оператора end.

Логический тип данных — тип данных возвращающий только два варианта — true или false. Этот тип данных используется в качестве условия работы программы с условиями и ветвлением.

Значения false и nil ложны, а все остальное верно. Обратите внимание, что Ruby использует elsif, а не else if или elif.

Класс объекта

В программировании на Ruby тип объекта (строка, число, массив, метод и т п) называются класс. Если нужно проверить какой класс присвоен конкретному объекту, достаточно указать конструкцию вида:

new.class.name

В результате ввода такой команды нам вернётся название класса объекта.

Rubyrush: Объекты, переменные, и условный оператор

Программы состоят из объектов. методов и свойств.

Видео по пройденному уроку на закрепление знаний

Юрий Ронин