<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Григорій Лізанець</title>
    <description>The latest articles on DEV Community by Григорій Лізанець (@gr555).</description>
    <link>https://dev.to/gr555</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2648383%2F70064536-0b74-4499-948e-6d256c4dbae6.png</url>
      <title>DEV Community: Григорій Лізанець</title>
      <link>https://dev.to/gr555</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gr555"/>
    <language>en</language>
    <item>
      <title>TDD у Python</title>
      <dc:creator>Григорій Лізанець</dc:creator>
      <pubDate>Mon, 14 Apr 2025 09:56:51 +0000</pubDate>
      <link>https://dev.to/gr555/tdd-u-python-2494</link>
      <guid>https://dev.to/gr555/tdd-u-python-2494</guid>
      <description>&lt;h2&gt;
  
  
  Коли код сам собі довіряє
&lt;/h2&gt;

&lt;p&gt;Уяви себе таксистом у нічному мегаполісі - швидкість, неонове сяйво і жодного права на помилку. Тестування через розробку (Test Driven Development) - це твій навігатор. Пишеш тест - пишеш код - рефакториш - і знову по колу. Результат? Код стає впевненим у собі, як той крутий бородатий водій таксі: знає маршрут, у броні, і зі шевроном "TDD" на плечі.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Переваги TDD:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Розробка стає осмисленішою: ти не просто пишеш код, ти доводиш, що він робить саме те, що має робити.&lt;/li&gt;
&lt;li&gt;Менше багів, більше гнучкості. Безпечний рефакторинг? Легко! &lt;/li&gt;
&lt;li&gt;Покращення дизайну: якщо важко написати тест - значить, архітектура просить допомоги.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Практичні поради:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Почни з простого - напиши один тест перед кожною фічею, навіть якщо це просто &lt;code&gt;assert func() == expected&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Користуйся &lt;strong&gt;pytest&lt;/strong&gt;, він швидкий, гнучкий і має круті фішки, як-от параметризація.&lt;/li&gt;
&lt;li&gt;Працюй циклічно: &lt;strong&gt;Червоний - Зелений - Рефакторинг&lt;/strong&gt;. Не скачи через кроки - у цьому й фішка TDD.&lt;/li&gt;
&lt;li&gt;Читай чужі тести - відкрий будь-який репозиторій на GitHub, і подивись, як тестують профі.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Простір імен</title>
      <dc:creator>Григорій Лізанець</dc:creator>
      <pubDate>Thu, 23 Jan 2025 07:49:20 +0000</pubDate>
      <link>https://dev.to/gr555/prostir-imien-45ka</link>
      <guid>https://dev.to/gr555/prostir-imien-45ka</guid>
      <description>&lt;h2&gt;
  
  
  Простір імен - Namespace
&lt;/h2&gt;

&lt;p&gt;Це спосіб уникнути хаосу в програмі. Уявіть, що усі змінні в програмі лежать в одній купі, Знайти потрібну і зрозуміти, що вона робить, буде дуже важко. Простори імен дозволяють розділити змінні на групи, що полегшує їх використання та розуміння коду.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ключові моменти, які варто запам'ятати:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Простір імен - це контейнер для імен.&lt;/li&gt;
&lt;li&gt;Кожен простір імен - це окрема область.&lt;/li&gt;
&lt;li&gt;Простори імен запобігають конфліктам між іменами.&lt;/li&gt;
&lt;li&gt;Приклади просторів імен: вбудовані функції, глобальні змінні, локальні змінні функцій, атрибути об'єктів.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>python</category>
      <category>learning</category>
    </item>
    <item>
      <title>Декоратори</title>
      <dc:creator>Григорій Лізанець</dc:creator>
      <pubDate>Mon, 20 Jan 2025 21:47:04 +0000</pubDate>
      <link>https://dev.to/gr555/diekoratori-1jlc</link>
      <guid>https://dev.to/gr555/diekoratori-1jlc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Декоратори&lt;/strong&gt; - це спеціальні функції, що дозволяють модифікувати або розширювати поведінку інших функцій або методів без зміни їхнього коду. Це приклад паттерну "Декоратор" у програмуванні.&lt;br&gt;
&lt;strong&gt;Декоратори можуть бути корисними для:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Переписування поведінки функцій:&lt;/strong&gt; Наприклад, логування, валідації, кешування, результатів.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Удосконалення коду:&lt;/strong&gt; Виносити повторювану логіку, наприклад, оброблення винятків чи вимірювання часу виконання.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Простоти коду:&lt;/strong&gt; Замість дублювання однієї й тієї ж логіки в кількох функціях, її можні виносити в декоратор.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>python</category>
      <category>learning</category>
    </item>
    <item>
      <title>Булеві типи і вирази</title>
      <dc:creator>Григорій Лізанець</dc:creator>
      <pubDate>Wed, 15 Jan 2025 12:34:51 +0000</pubDate>
      <link>https://dev.to/gr555/bulievi-tipi-i-virazi-38cj</link>
      <guid>https://dev.to/gr555/bulievi-tipi-i-virazi-38cj</guid>
      <description>&lt;p&gt;Цікава і потрібна тема булевих значень і операцій, яку поступово розвиватиму під цим постом. І ось перші висновки важливості даної теми:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Прийняття рішень.&lt;/strong&gt; Булеві значення (&lt;code&gt;True, False&lt;/code&gt;) дозволяють програмам виконувати умовні переходи (&lt;code&gt;if&lt;/code&gt;, &lt;code&gt;else&lt;/code&gt;), що робить код адаптивним і гнучким.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Оптимізація коду.&lt;/strong&gt; Булеві вирази спрощують логіку перевірок і можуть поєднуватися за допомогою операторів (&lt;code&gt;and&lt;/code&gt;, &lt;code&gt;or&lt;/code&gt;, &lt;code&gt;not&lt;/code&gt;), зменшуючи кількість вкладених умов.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Перевірка станів.&lt;/strong&gt; Допомагають визначати істинність або хибність певних умов в будь-якій програмі - від перевірки введених даних до контролю роботи алгоритмів.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Читабельність та тестування.&lt;/strong&gt; Легко інтерпретуються, спрощують тестування коду і полегшують пошук логічних помилок, що робить код зрозумілішим для інших розробників.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Виключення</title>
      <dc:creator>Григорій Лізанець</dc:creator>
      <pubDate>Fri, 10 Jan 2025 15:36:06 +0000</pubDate>
      <link>https://dev.to/gr555/vikliuchiennia-4hng</link>
      <guid>https://dev.to/gr555/vikliuchiennia-4hng</guid>
      <description>&lt;p&gt;Тема відлову і обробки помилок досить цікава, тому їй присвячений цей пост. Нижче, в коментах будуть приклади і варіанти. Якщо є щось нетривіального додати - ласкаво прошу! Не стримуйте себе.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>python</category>
      <category>learning</category>
    </item>
    <item>
      <title>Імпорт</title>
      <dc:creator>Григорій Лізанець</dc:creator>
      <pubDate>Mon, 06 Jan 2025 20:36:19 +0000</pubDate>
      <link>https://dev.to/gr555/import-aaa</link>
      <guid>https://dev.to/gr555/import-aaa</guid>
      <description>&lt;p&gt;Модуль - це практично будь який файл .py, який містить функції чи класи, а не тільки скрипти. Коли ми працюємо з реальними об'єктами, бажано розділяти наші функції та класи на різні модулі, щоб їх можна було регулювати та використовувати повторно.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjh6pyt030gpqoe93r8ze.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjh6pyt030gpqoe93r8ze.jpg" alt="Image description" width="297" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Функції</title>
      <dc:creator>Григорій Лізанець</dc:creator>
      <pubDate>Sat, 04 Jan 2025 21:24:24 +0000</pubDate>
      <link>https://dev.to/gr555/funktsiyi-ep8</link>
      <guid>https://dev.to/gr555/funktsiyi-ep8</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Невід'ємна частина програми і/або мови програмування.&lt;/li&gt;
&lt;li&gt;Розбивають програму на під-програму.&lt;/li&gt;
&lt;li&gt;Запобігають повторному написанню того чи іншого коду.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>python</category>
      <category>learning</category>
    </item>
    <item>
      <title>Перспективи навчання..</title>
      <dc:creator>Григорій Лізанець</dc:creator>
      <pubDate>Thu, 02 Jan 2025 21:51:16 +0000</pubDate>
      <link>https://dev.to/gr555/pierspiektivi-navchannia-5c10</link>
      <guid>https://dev.to/gr555/pierspiektivi-navchannia-5c10</guid>
      <description>&lt;p&gt;Спробую свій перший пост, за порадою шановного викладача Python - завзято кожного дня щось записувати.. Нещодавно почав вивчати цю мову, мотивуючи себе тим, що знання Python розробки допоможуть на шляху до перемоги.. та і після неї, однозначно. Перспективи очевидні і не потребують зайвих роздумів.. тож, гадаю це непоганий початок Нового 2025-го року...&lt;br&gt;
І так, що сьогодні? Відбулася чергова лекція з Пайтон-розробки, на якій швидко пробіглись по словниках і почали вивчати функції..&lt;br&gt;
&lt;code&gt;[print(i) for i in letters]&lt;/code&gt;&lt;br&gt;
Конструкція List Comprehention, цікаво - я запитував, чи можна її результат присвоїти змінній? Кажуть - можна. Перевіримо.&lt;br&gt;
До наступної лекції залишилося 1.5 доби, і бажано би засвоїти матеріал ще 2-х уроків та зробити до них ДЗ..&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>python</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
