Розробка через тестування (TDD)

У процесах розробки програмного забезпечення одним із методів для підвищення якості коду, зменшення кількості помилок та зниження витрат на обслуговування є Test-Driven Development (TDD), який набуває все більшої популярності серед розробників. TDD — це підхід, який передбачає написання тестів до написання коду.

pic

Що таке Test-Driven Development?

Test-Driven Development (TDD) — це методологія розробки програмного забезпечення, коли тести пишуться до написання коду. У цьому підході процес розробки базується на наступному циклі:

  1. Написати тест (Red): Пишеться юніт-тест, який, звісно, не пройде.
  2. Написати код (Green): Пишеться мінімум коду, щоб тест пройшов.
  3. Рефакторинг: Покращується дизайн коду, при цьому тест повинен продовжувати проходити.

Цей … Читати далі

Налаштування Lombok у вашій IDE

Редактор Jetbrains IntelliJ IDEA сумісний з Lombok без плагіна починаючи з версії 2020.3 і до версії 2023.1.

Для версій до 2020.3 або пізніше ніж 2023.1, ви можете додати плагін Lombok для IntelliJ, щоб додати підтримку lombok для IntelliJ:

  • Перейдіть у File > Settings > Plugins
  • Клікніть на Browse repositories...
  • Знайдіть Lombok Plugin
  • Клікніть на Install plugin
  • Перезапустіть IntelliJ IDEA

Для Eclipse або STS потрібно завантажити файл JAR для Lombok, який ви можете отримати тут.

Запустіть файл JAR, і він автоматично виявить вашу IDE. Якщо цього не сталося, вкажіть папку location вашої IDE.

pic

Встановлення Lombok в STS

Перекладено … Читати далі

Документування RESTful API в Spring за допомогою специфікації Open API

pic

YouTube посібник

youtube tutorail

Вступ

Open API (раніше Swagger) — це найпоширеніший у світі стандарт опису API, який надає формальну специфікацію для опису HTTP API.

Це дозволяє людям зрозуміти, як працює API і як послідовність API взаємодіє між собою.

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

Специфікація Open API має широке застосування, тому користується підтримкою великої кількості постачальників та інструментів.

Історія

Swagger запропонував специфікацію для опису RESTful API.

Ця специфікація створює RESTful інтерфейс для зручної розробки та використання API, ефективно відображаючи всі ресурси та операції, пов'язані з ним.

Специфікація Swagger була прийнята … Читати далі

Створення всебічного веб-додатку для торгівлі на фінансових ринках за допомогою Streamlit

pic

## Вступ

У сьогоднішньому швидко змінюваному фінансовому світі важливо залишатися попереду ринкових трендів і приймати обґрунтовані інвестиційні рішення. З розвитком технологій фінансові інструменти для аналізу стали доступнішими для всіх — від досвідчених інвесторів до новачків. У цій статті я проведу вас через процес створення комплексного веб-додатку для торгівлі на фінансових ринках за допомогою Streamlit, потужного фреймворку для створення інтерактивних веб-додатків на Python.

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

Розуміння автоматичного диференціювання через обчислювальні графи

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

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

pic

Рис. 1: Обчислювальний граф для функції f

Це … Читати далі

Якщо швидкість є відносною, чому ж кінетична енергія не є відносною?

pic

Можливо, цей заголовок не зовсім зрозумілий. Як щодо того, щоб я просто поставив запитання, яке зараз популярне в Інтернеті? Ось воно.

Швидкість є відносною, тому збільшення з 10–20 метрів на секунду має бути таким же, як і збільшення з 0–10 м/с у русі відносної системи. Однак зміна кінетичної енергії від 10 до 20 м/с втричі більша, ніж зміна КЕ від 0 до 10 м/с. Що з цим?

Добре, давайте швидко перевіримо.

Розрахунок зміни кінетичної енергії

Невелике нагадування — кінетичну енергію об’єкта можна обчислити за формулою:

pic

Щоб спростити числа, припустимо, що в нас є об’єкт масою 2 кілограми (тобто 1/2 м … Читати далі

Python для початківців: 3 ключові кроки для старту вашої подорожі в програмуванні

pic

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

Крок 1: Зрозуміти основи програмування на Python

Перш ніж поринути в складні проекти, важливо ознайомитися з основами Python. Почніть із розуміння основних … Читати далі

Розуміння TypeVar у Python

У сучасному Python активно використовуються підказки типів (type hints) для того, щоб зробити код більш зрозумілим та зручним для підтримки. Одним із потужних інструментів є TypeVar, який допомагає розробникам створювати гнучкий та повторно використовуваний код через узагальнення (generics). У цій статті ми розглянемо, що таке TypeVar, як його використовувати, його зв'язок з узагальненнями, а також чому це не є наслідуванням (inheritance). Крім того, ми торкнемося кращих практик використання TypeVar і змін, внесених у Python 3.13.

pic

Фото Rubaitul Azad на Unsplash

Що таке TypeVar?

TypeVar є частиною модуля typing в Python. Він дозволяє створювати узагальнені типи, що дає змогу … Читати далі

Роль дизайну в MVP

У нашому попередньому дописі ми обговорювали основні концепції MVP та як їх створювати. Одним з ключових аспектів розробки MVP є визначення UX/UI (користувацького досвіду та інтерфейсу), який найкраще відповідає цільовій аудиторії та меті продукту. Для кого ми його створюємо? Для кінцевих користувачів, як у випадку платформи для електронної комерції, чи для користувачів організації, яка прагне виконувати завдання? Чи повинен наш продукт виділятися серед конкурентів за допомогою дизайну? Якщо так, то чому? Зрозумівши цільових користувачів і цілі продукту, ми можемо ухвалювати обґрунтовані рішення щодо того, скільки інвестицій вкласти в UX/UI дизайн.

Баланс між дизайном, розробкою, часом та бюджетом можна виразити … Читати далі

Повернення до життя 10-річного застосунку на Ruby on Rails

Минулого тижня ми опублікували кейс-стаді, можливо, одного з наших перших проектів: crclup. Crclup — це груповий чат. Ви могли створити групу і спілкуватися з друзями чи колегами. Легко було вести бесіди в реальному часі або безперешкодно підключатися через розсилку, додаючи трохи асинхронності в загальну картину. Для контексту, цей проект був задуманий в той час, коли Slack тільки з'явився.

Виявляється, ми не публікували кейс-стаді crclup з кількох причин. По-перше, у нас немає відгуку на Clutch, а ми хочемо, щоб наші кейс-стаді мали хоча б один. По-друге, з моменту завершення проекту минуло 10 років, і ми не мали жодних фотографій … Читати далі