Основні концепції програмування. Встановлення Ruby-IRB. Кодові угоди.

Основні концепції програмування. Встановлення Ruby-IRB. Кодові угоди.

Ruby 🇺🇦

Сьогодні на уроці:

Нарешті ми підійшли до моменту, коли вже потрібно безпосередньо завантажувати Ruby, вітаю!

Як завантажити та встановити Ruby

Для windows я буду встановлювати найсвіжішу, рекомендовану на сьогоднішній день версію ruby 3.1.3.

Для цього перейдіть по лінку та завантажте рекомендовану версію (виділена жирним):

Після завантаження інсталятора програми – запускаємо її і бачимо перше вікно, де дуже уважно читаємо ліцензію 😊 – погоджуємося з нею та натискаємо «Next»:

Залишаємо все як є та натискаємо «Install»:

В цьому вікні обов’язково мають бути відмічені всі пункти, як на скріншоті:

Пішов процес встановлення:

Далі потрібно встановити додаткові компоненти на windows, тому, відмітивши пункт «rdk install», натискаємо «Finish»

Після чого відкривається командний рядок для встановлення додаткових компонентів. 

Нам потрібно встановити все послідовно. Спочатку вибираємо перший пункт і чекаємо завершення встановлення.

Далі другий пункт:

І в кінці вибираємо третій пункт. Завершальний етап встановлення:

Після завершення просто натискаємо «Enter» на клавіатурі.


Заходимо в командну стрічку пишемо:

ruby -v

Тішимося успішно встановленому ruby-інтерпретатору 😊

Трішки практики

Тепер, коли ви встановили ruby, зайдіть в irb. Для цього запустіть командний рядок та, написавши irb, натисніть клавішу Enter

Це програма Ruby, яка дозволяє вводити код Ruby і одразу бачити результати. Чудовий спосіб потренуватися та дізнатися про Ruby.

«Але я можу це зробити за допомогою програми-калькулятора!» - скажете ви.

Звичайно. Але сенс цього полягає в тому, щоб ви звикли набирати текст у вікні терміналу та знали як з ним працювати. Часто бувають моменти, що з великого методу вам потрібно перевірити якусь частинку логіки – це буде зручно зробити безпосередньо в irb.

Інший спосіб запустити Ruby код

Крім використання такої програми, як irb, ви можете запускати код Ruby іншим способом. Наприклад, ви можете зберегти код у файлі із розширенням .rb, а потім використати команду ruby + ім’я файлу.

ruby app.rb

В даному випадку мій шляху до файлу app.rb - C:\Users\user\Desktop\app.rb, тому мені потрібно перебувати в терміналі в цій же директорії:

Зауважте, що це потрібно зробити в одному з вікон терміналу, перебуваючи в тому ж каталозі, де й файл. Це потрібно робити не з-під irb!

 Щоб дізнатися чи ви перебуваєте в irb чи ні, потрібно подивитися на початку вводу і там буде написано irb.

Основні концепції програмування в Ruby

Отже, якщо ви дійшли до цього уроку, то ви справді зацікавлені у вивчені ruby. Навчання - це прекрасна річ і ви у правильному місці для цього!

Попереду буде потрібно багато чого навчитися, але не дозволяйте цьому завадити вам почати.

Тепер: з чого ж почати? Ви повинні почати з вивчення основних концепцій програмування.

Такі «штуки», як:

  • Змінні (локальні, глобальні, класу …)
  • Типи даних (string, integer, boolean …)
  • Умовні твердження (if, unless…)
  • Синтаксис мови програмування.

Ви знайдете багато нових слів під час навчання, не турбуйтеся, ми про це все дізнаємося покроково.

Необхідно розуміти, що мова програмування - це формальна мова.

Що це означає? В українській мові, якщо я зроблю граматичну помилку, є досить високий шанс, що ви все одно зможете мене зрозуміти. Але якщо ви зробите таку помилку в Ruby або будь-якій іншій мові програмування, ви отримаєте помилку.

Ви повинні розуміти правила мови і вміти правильно їх застосовувати. Ви вивчаєте щось нове, і це займе якийсь час, поки все не почне засвоюватися. Один із ключів – повторення. Працюйте над кожною темою, доки не зрозумієте, наскільки це корисно в загальній картині, як цим користуватися та як пояснити це іншим людям.

Що таке змінні (variables)?

Змінна (variable) - це просто мітка («лейбл»). Це спосіб давати назви речам у вашій Ruby програмі, як імена, які ми даємо речам у реальному світі.

Коли я кажу «яблуко», ви розумієте, про що я говорю - мені не потрібно це вам описувати. Або, коли когось кличу на ім’я…

Створення локальних змінних

Ви створюєте змінні, пов’язуючи об’єкт Ruby з іменем змінної.

Наприклад, в нас є об’єкт яблуко, а його ім’я змінної буде gold.

Ми називаємо це «присвоєнням змінної».

Приклад:

У слові age (вік) немає нічого особливого.

Ви можете використовувати bacon = 32, і значення все одно буде 32.

Змінні - це просто назви речей.

Як використовувати змінні

Щоб використовувати змінну, потрібно написати її ім’я:

Можна комбінувати кілька змінних разом:

Зберегти результат обчислень у нову зміну:

Важливо:

Якщо ви запускаєте цей код із файлу, а не з irb, тоді слід використовувати такий метод, як puts, щоб побачити значення змінної.

Типи змінних Ruby

Ruby має різні типи змінних. Те, що ви тут бачили, називається «локальною змінною».

Але є й деякі інші види:

  • глобальна змінна ($apple)
  • змінна екземпляра (@apple)
  • змінна класу (@@apple)
  • константа (APPLE)

Вам не потрібно занадто багато думати про них, але добре знати про їх існування.

Різниця між ними? Їх «область видимості».

Типи даних в Ruby

Типи даних представляють різні типи даних, такі як числа, логічні значення, рядки тощо. Як об’єктно-орієнтована мова, усі типи даних базуються на класах. 

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

Strings

Все, що знаходиться в одинарних чи подвійних лапках є типом даних string:

Numeric

Тип даних integer (ціле число) або ж float (число з плаваючою комою) відносяться до типу даних numeric (числовий тип даних).

Booleans

Boolean (логічний) тип даних представляє лише один біт інформації, який говорить про те, чи є значення істинним чи хибним. Значення цього типу даних повертається, коли порівнюються два значення.

Як приймати рішення в Ruby? Умовний оператор if

Наприклад, в нас є такі моменти:

  •  «Якщо в кімнаті занадто холодно, увімкнути обігрівач»
  • «Якщо у нас недостатньо цього продукту, надішли мені сповіщення про це»
  • «Якщо цей клієнт працює з нами більше 3 років, надішліть йому подарунок»

Саме такі речі я маю на увазі під прийняттям рішень. Якщо щось вірно (умова), то ви можете щось зробити. У Ruby ви робите це за допомогою операторів if:

Зверніть увагу на синтаксис. Важливо зробити це правильно.

stock < 1 - це те, що ми називаємо «умовою», що має бути правдою(true), щоб код всередині умови працював.

Простою українською мовою це означає:

«Якщо кількість запасу менше ніж 1, надрукуйте повідомлення «немає в наявності», інакше нічого не робіть».

Умовний оператор unless

За допомогою оператора if ви можете перевірити, чи щось правдиве (чи умова == true).

Але якщо ви хочете перевірити протилежне «неправда» (хибність), ви можете зробити дві речі. Ви можете змінити значення за допомогою !

Або ви можете використати умовний оператор unless (протилежний до if), але перевіряється на «невірно»:

Пам’ятайте, що використання unless у Ruby є просто протилежним до використання if.

Це виглядає так: «якщо це неправда, то зробіть це…».

Умовний оператор if з else

Ви також можете сказати «якщо це НЕправда, тоді зробіть те інше»:

Частина else не є обов’язкова, але вона може допомогти вам написати більш розширену логіку.

Ви можете піти далі й використати оператор elsif:

За допомогою elsif ви можете сказати:

«Якщо в наявності менше 1, надрукуйте це повідомлення, інакше, якщо запас дорівнює 10, надрукуйте це спеціальне повідомлення, інакше, якщо жодне з них не відповідає дійсності, надрукуйте повідомлення подяки».

Як використовувати декілька умов

Якщо ви хочете написати складніші умови, де ви перевіряєте, чи дві речі істинні одночасно, то це можна зробити за допомогою оператора && (AND):

«Якщо ім’я дорівнює «Девід», а країна — «Україна», то зробіть щось».

P.S. в ruby абревіатури України позначаються за допомогою uk, зазвичай.


Також можна використовувати || (АБО) оператор:

«Якщо вам 10 або 20 років, то робіть щось».

Зверніть увагу, як ці два оператори (&&, ||) дозволяють вам поєднувати умови. Ви не можете просто написати так:

Це невірна умова після ||. Вам потрібна повна умова з кожного боку:

age == 10 || age == 20

Типи умов

В першому прикладі я використовую символ «менше» <, але є й інші символи, які можна використовувати для інших значень.


Ось таблиця:

Зверніть увагу, що ми використовуємо два символи доврівнює ==, щоб позначити рівність (1 == 1)!

Один знак рівності = у Ruby означає «присвоєння», тому використовуйте ==, якщо ви хочете дізнатися, чи дві речі є однакові.

Гарний «тон» в Ruby кодуванні

При написані коду є ряд рекомендацій яких вартує притримуватися, щоб було зручніше читати, редагувати та розуміти ваш код.

Це все набудеться з досвідом, але вартує знати про існування такого поняття. Тому не вартує «завчати». + Існують деякі інструменти, які за цим слідкують та навіть автокорегують – про це розповім в подальших уроках.

Форматування

  • Використовуйте відступ 2 пробілу, без табуляції.
  • Використовуйте порожні рядки, щоб розбити довгий метод на логічні абзаци.
  • Тримайте рядки коротшими за 80 символів.
  • Уникайте кінцевих пробілів.

Синтаксис

  • Використовуйте def із дужками, коли є аргументи.
  • І навпаки, уникайте дужок, якщо їх немає.
  • Ніколи не використовуйте for, якщо можна без проблем замінити на each або loop.
  • Ніколи не використовуйте then, достатньо нового рядка.
  • not замість !
  • Уникайте, if not, використовуйте unless.
  • Для багаторядкових блоків надавайте перевагу do… end над {…}.
  • Надавайте перевагу {…} над do…end для однорядкових блоків.
  • Уникайте return, де це не потрібно.

Найменування

  • Використовуйте snake_case для методів.
  • Використовуйте CamelCase для класів і модулів. (Зберігайте такі акроніми, як HTTP, RFC і XML, великими літерами.)
  • Використовуйте _ для невикористаних змінних.

Дизайн коду

  • Уникайте непотрібного метапрограмування.
  • Уникайте довгих методів.
  • Уникайте довгих списків параметрів, замість цього подумайте про те, щоб використовувати хеш із задокументованими значеннями за замовчуванням.
  • Віддавайте перевагу функціональним методам над процедурними (поширені методи нижче):
  • each - Застосувати блок до кожного елемента
  • map - Застосуйте блок до кожного елемента та запам'ятайте повернуті значення.
  • select - знайти всі відповідні елементи
  • detect - знайти перший відповідний елемент
  • inject — еквівалент foldl з Haskell
  • Використовуйте мінливу версію функціональних методів (наприклад, map!), де це можливо, замість використання тимчасових змінних.
  • Використовуйте стандартні бібліотеки, де це можливо (перегляньте документи для різних API):

·       Hash, Array та Set

·       String

·       Fixnum та Integer

·       Thread та Mutex

·       Complex

·       Float

·       Dir та File

·       Random

·       Time

  • Віддавайте перевагу інтерполяції рядків “blah#{expr}” замість додавання до контитації string-ів.

Загальне

  • Тримайте код простим.
  • Будьте послідовними.
  • Використовуйте здоровий глузд.


Додаткові джерела:

Завантажити Ruby інсталятор для windows:

https://rubyinstaller.org/downloads/

Рубі за 12 хвилин – офіційний сайт ruby

Практика вирішення задач: codewars


#devnote


На цьому на разі все. За декілька днів у коментарях під уроком на каналі будуть опубліковані вікторини з питаннями по сьогоднішній темі. Також нагадую, що ми завжди можемо спілкуватися в чаті.

Був радий знову вийти на зв'язок з вами.

До зустрічі!

Завантажити сьогоднішній матеріал файлом можна тут.

Report Page