Сьогодні дізнався: Режими запиту IRB | Режим запиту xmp (частина 1)

Нещодавно я дізнався про режими запиту IRB. Мої останні два пости стосувались стандартного (Default) і простого (Simple) режимів запиту, а в цій статті я розгляну режим запиту xmp.

У мануалі описано такі прапорці як --prompt і --prompt-mode:

--prompt mode
--prompt-mode mode
Змінює режим запиту. Попередньо визначені режими запиту: default, simple, xmp та inf-ruby.

Щоб використовувати режим запиту xmp в IRB, достатньо вказати прапорець prompt (або prompt-mode) і встановити значення на xmp:

❯ irb --prompt=xmp

💡 Зверніть увагу, що після цієї команди не з'являється очевидного відгуку. Цей режим не має іконок запиту.

Порівняння:

Читати далі

Патерн проєктування Mediator — зроблено простим

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

У нашому прикладі є хлопець на ім'я Рей, який натискає кнопку, що на стіні. Кнопка не керує вентилятором напряму, а лише передає сигнал медіатору, який вирішує, чи включити вентилятор чи вимкнути його. Така взаємодія значно спрощує код, робить його більш гнучким і дозволяє зменшити зв'язування між … Читати далі

Розширені патерни проєктування Python для великих проєктів

Уявіть, що ви будуєте не просто будинок, а хмарочос. Для цього вам необхідні детальні плани, спеціалізовані будівельні техніки та чітке розуміння того, як всі частини структури будуть взаємодіяти одна з одною. Саме так виглядає підхід до розробки великих і складних програм на Python.

«Просунуті патерни проєктування Python для великих проєктів» — це своєрідний посібник, що містить найкращі методики для створення та підтримки масштабних застосунків. Він не просто розповідає, як писати код, а як створювати програмне забезпечення, яке:

  • Легко масштабується — здатне справлятися з ростом кількості користувачів, даних і функцій без збоїв.
  • Залишається підтримуваним — код, який не стає важким для
Читати далі

Творчі патерни: Будівельник

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

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

Ми розглянемо три основні типи патернів: Творчі (Creational), Структурні (Structural) та Поведенкові (Behavioral). Я надам вам прості приклади та чіткі пояснення, щоб ви зрозуміли, як кожен з них працює.

Якщо ви вже маєте деяке розуміння Java … Читати далі

Творчі патерни: Прототип

pic

У цій статті ми з вами розглянемо патерни проєктування в Java — їх значення, важливість і застосування в реальних проектах. Не хвилюйтеся, ми будемо поступово розглядати все і тримати пояснення простими.

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

Ми розглянемо три основні типи патернів: Творчі (Creational), Структурні (Structural) та Поведенкові (Behavioral). Кожен тип буде розглянуто через приклади з детальними поясненнями.

Якщо ви вже знайомі з Java і розумієте основи об’єктно-орієнтованого програмування, то можете сміливо почати. Поїхали!

pic

Фото: Amélie Читати далі

Творчі патерни: Синглтон

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

Ми розглянемо три основні категорії патернів: Творчі (Creational), Структурні (Structural) та Поведенкові (Behavioral). Кожен тип буде розглянутий з прикладами та чіткими поясненнями. Якщо ви вже знайомі з основами Java та об’єктно-орієнтованого програмування, таких як класи та об’єкти, ви готові до цього!

Патерн Сінглтон є частиною творчих патернів і гарантує, що … Читати далі

Патерни проєктування — давайте організуємо все, щоб було гарно?

Система реєстрації екземплярів (Instance Registry Pattern) використовує центральний смарт-контракт (реєстр) для управління адресами інших розгорнутих контрактів. Це схоже на версію DNS для смарт-контрактів: замість того, щоб запам’ятовувати складні адреси, ви просто запитуєте ім’я і отримуєте необхідну адресу. Це спрощує керування контрактами та забезпечує зручний доступ до потрібних адрес без необхідності хардкодити значення в коді.

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

Простий приклад реалізації реєстру на Solidity:

solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

contract Registry {
mapping(bytes32 … Читати далі

🧠 Організація смарт-контрактів за допомогою патерну реєстрації екземплярів (Solidity для розробників Web3)

Система реєстрації екземплярів (Instance Registry Pattern) використовує центральний смарт-контракт, який керує адресами інших розгорнутих контрактів. Це схоже на версію DNS для смарт-контрактів, де замість того, щоб запам’ятовувати складні адреси, ви запитуєте ім’я і отримуєте необхідну адресу. Це значно спрощує процес управління контрактами.

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

Для прикладу, у базовій версії реєстру ви можете зареєструвати адресу контракту за певним ім’ям, наприклад, "UserStorage", і отримати її пізніше. Це дуже корисно в … Читати далі

Git/Github — CLI, VIM та AWS CLI

Вступ до системи контролю версій охоплює налаштування та конфігурацію Git, використання основних команд Git, розуміння та інтеграцію з GitHub, а також гілкування та злиття в Git. Це також включає введення в командний рядок (CLI), основні команди CLI, роботу з редактором VIM, його навігацію та редагування, встановлення VS Code, а також налаштування AWS CLI.

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

Переваги використання контролю версій очевидні: він дозволяє … Читати далі

VIM — це як гра в бойову гру з системою комбо

pic

Використання Vim, як і гра в бойову гру з системою комбо, вимагає практики, точності та глибокого розуміння механізмів для досягнення майстерності. Як у Street Fighter або Tekken, в Vim кожен рух має своє призначення, і, щоб досягти швидкості і ефективності, необхідно поєднувати різні елементи. Розглянемо, як Vim працює схоже на системи комбо в іграх і чому це робить його таким потужним інструментом для редагування тексту.

Основні рухи у бойових іграх, такі як хода, присідання та стрибки, можна порівняти з клавішами h, j, k, l у Vim, які служать для навігації по тексту. Проте досвідчені користувачі Vim не просто натискають … Читати далі