πŸ’™ Help Ukraine, click for information πŸ’›

Welcome to PD blog

Feel’s free to follow me on social media, read my posts and leave comments.

Provisioning Keycloak with Terraform

Suppose you have a Keycloak instance that was configured manually. But how to properly manage changes? Validate that all configuration was properly deployed through all environments? You could rely on manual, visual comparisons of the UI, but there’s a better way. It’s possible to switch from manual β€œClickOps” to an automated β€œGitOps” workflow in a straightforward manner. In this article, I’ll demonstrate a working example of the infrastructure needed to establish a GitOps workflow for Keycloak. To begin, let’s set up the basic Keycloak infrastructure using the following Compose file. ...

August 6, 2025 Β· Volodymyr Liashenko

Keycloak and Reverse Proxy: A Guide to Production Setup

Reverse Proxy and Keycloak Configuration When deploying a Keycloak behind a reverse proxy, it’s crucial to understand a relationship between Keycloak’s configuration arguments and an underlying reverse proxy concepts. Based on your security requirements, you must choose between SSL termination and TLS passthrough, and configure a session affinity accordingly in your reverse proxy. There is an article on Keycloak documentation that covers parts of topic, while I had have a lot of questions after reading it. Let’s explore the topic in more detail. ...

July 10, 2025 Β· Volodymyr Liashenko

Авто-ΠΌΠΎΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΎΡ‚ Mark Seemann

Как ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡŽΠ½ΠΈΡ‚ тСсты ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Dependency Injection? Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описываСтся ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ ΡŽΠ½ΠΈΡ‚ тСстов (unit test), Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠΎΠΊ (Auto-mocking Container). Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для устранСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ…Ρ€ΡƒΠΏΠΊΠΈΡ… тСстов (Fragile Test), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊ часто происходят ΠΏΡ€ΠΈ создании тСстируСмой систСмы (system under tests - SUT) ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° ΠœΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. На этот вопрос ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Mark Seemann. ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π° этот Ρ€Π°Π· ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎΡ‚ Mark Seemann ΠΎ Π°Π²Ρ‚ΠΎ-ΠΌΠΎΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…. НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΡŽΠ½ΠΈΡ‚ тСстами ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Auto mock-ΠΎΠ² я ΡƒΠ·Π½Π°Π» Π½Π΅ Ρ‚Π°ΠΊ ΠΈ Π΄Π²Π°Π½ΠΎ. Π§Ρ‚ΠΎ-Π±Ρ‹ Π·Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ доступной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ этом ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΊ созданию тСстовых Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΎΠ² Π±Π΅Π· лишнСй Π±ΠΎΠ»ΠΈ. И ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ссылка Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» ...

September 18, 2018 Β· Volodymyr Liashenko

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ молчания ΠΈ ΡƒΡ€ΠΎΠ²Π½ΠΈ логирования

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ молчания, Ρ‚Π°ΠΊΠΆΠ΅ упоминаСтся ΠΊΠ°ΠΊ ΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ Π·ΠΎΠ»ΠΎΡ‚ΠΎ - ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ философии Unix, которая гласит, Ссли Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ-интСрСсного ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ-Π±Ρ‹ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π΅ΠΉ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ вниманию своих ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠ°ΠΊ Ρ†Π΅Π½Π½Ρ‹ΠΌ рСсурсам ΠΈ соотвСтствСнно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свои Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Π΅Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ само ΠΏΠΎ сСбС являСтся Π΄ΠΎΠ±Ρ€ΠΎΠ΄Π΅Ρ‚Π΅Π»ΡŒΡŽ. НСт Π΅Π΄ΠΈΠ½ΠΎΠΉ, стандартизированной Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ философии Unix, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, самоС простоС описаниС Π±Ρ‹Π»ΠΎ Π±Ρ‹: β€œΠŸΠΈΡˆΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ нСбольшими, простыми ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ. ΠŸΠΈΡˆΠΈΡ‚Π΅ ΠΈΡ… Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ, Π½ΠΎ Π΄Π΅Π»Π°Π»ΠΈ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ совмСстно с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ программами”. Π’ΠΎ Π΅ΡΡ‚ΡŒ, философия сосрСдотачиваСтся Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚Π° понятий малости, простоты, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, мастСрства, прозрачности, экономии, разнообразия, пСрСносимости, гибкости ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΠΈ. ...

July 15, 2018 Β· Volodymyr Liashenko

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sync over async deadlock

Как Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΈΠ· поста ΠΎ контСкстС синхронизации Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² контСкстС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌΠΈ рСсурсами Π² асинхронном ΠΊΠΎΠ΄Π΅, Π½ΡƒΠΆΠ½ΠΎ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ выполнятся Π½Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ‚ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π»Π°Π΄Π΅Π΅Ρ‚ этим рСсурсом. НСпонимая этого ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ программирования ΠΊΠ°ΠΊ Π½ΠΈΠΆΠ΅ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. Вспомним ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΏΡ€Π΅Π΄ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ поста. По Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Π’Π°ΠΊ ΠΊΠ°ΠΊ наш ΠΊΠΎΠ΄ асинхронный, ΠΊΠΎΠ΄ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² синхронном ΠΊΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ, для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ sync over async. Π’.Π΅. просто доТдёмся Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ асинхронной Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° taskName.Wait(). ...

April 17, 2018 Β· Volodymyr Liashenko

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ синхронизации ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Task ΠΈ Thread

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… связанными с ui-control ΠΈΠ»ΠΈ asp.net часто приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с рСсурсами доступными Π² локальном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° (thread-local storage TLS). К слову: Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° [ThreadStatic] ΠΈΠ»ΠΈ класса ThreadLocal<T>. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½ΠΈΠΌ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° dotnet выбросит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ System.InvalidOperationException с тСкстом β€˜The calling thread cannot access this object because a different thread owns it.’. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ сСбС ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ win-form ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π°ΠΌ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΄ΠΎΠ»Π³ΠΎΠΈΠ³Ρ€Π°ΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ-Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ Π² этом ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΈΠ· созданного ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° UI - вСдь рСсурсы UI ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ, Π° обращаСмся ΠΌΡ‹ ΠΊ Π½Π΅ΠΌΡƒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ Ρ‚Π° Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ ситуация, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ столкнёмся с System.InvalidOperationException. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π°ΠΌ придётся ΠΏΠΎΠ΄Ρ€ΡƒΠΆΠΈΡ‚ΡŒΡΡ с контСкстом синхронизации. ...

April 12, 2018 Β· Volodymyr Liashenko

РСализация ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° saga Π½Π° C#

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: Π£ΠΆΠ΅ Π½Π΅ помню, Ρ‡Ρ‚ΠΎ сподвигло мСня Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ этим ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠΌ, скорСС всСго Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с javascript Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ redux-saga. Знакомство Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ с описания ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° ΠΎΡ‚ Bernd RΓΌcker ΠΈ прСкрасной ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Caitie McCaffrey. ПослС ознакомлСния с этими ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌΠΈ Ρƒ мСня всё Π΅Ρ‰Ρ‘ ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ вопросы. ΠžΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ этот ΠΊΠΎΠ΄ β€œΠ² ΠΆΠΈΠ²ΡƒΡŽβ€ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ PoC-a. Π’Π°ΡˆΠ΅ΠΌΡƒ вниманию прСдставлСна ΡΡ‚Π°Ρ‚ΡŒΡ Clemens Vasters-a, которая ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΡƒΠΆΠ΅ Π² дСталях с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ...

January 14, 2018 Β· Volodymyr Liashenko

Π Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

Π”Π°Π½Π½Ρ‹ΠΉ тСкст явлСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π» ΠΏΠΎ ссылкС Если Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ слияниСм Π²Π΅Ρ‚ΠΎΠΊ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ HOWTO Control Source Eric Sink’s. Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ модСль бранчСвания β€œΡ€Π΅Π»ΠΈΠ·Π½Π°Ρ вСтка” (ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ссылкам Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ устарСли. По-ΠΌΠΎΠ΅ΠΌΡƒ, стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ соврСмСнных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌ git-flow, github-flow ΠΈ gitlab-flow, Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ сути Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄ΡƒΠΌΠ°ΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ). ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ β€œΠ Π΅Π»ΠΈΠ·Π½Π°Ρ вСтка” вся новая Ρ€Π°Π±ΠΎΡ‚Π° происходит Π² trunk Π²Π΅Ρ‚ΠΊΠ΅ рСпозитория. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ приблиТаСтся ΠΊ Ρ€Π΅Π»ΠΈΠ·Ρƒ, измСнСния схСмы становятся Π±ΠΎΠ»Π΅Π΅ Ρ€Π΅Π΄ΠΊΠΈΠΌΠΈ ΠΈ фризятся Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠΌΠ°Π½Π΄Π° создаСт Π²Π΅Ρ‚ΠΊΡƒ для Ρ€Π΅Π»ΠΈΠ·Π°. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° продолТаСтся Π² Ρ‚Ρ€Π°Π½ΠΊΠ΅ с измСнСниями Π² схСмС ΠΈ всСго ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π’ Π²Π΅Ρ‚ΠΊΡƒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ фиксы ошибок. ПослС Ρ€Π΅Π»ΠΈΠ·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ исправлСния с Π²Π΅Ρ‚ΠΊΠΈ Π² trunk. ...

November 25, 2017 Β· Volodymyr Liashenko

Π’ΡŒΡŽΡˆΠΊΠΈ, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ° которая Π½Π°Ρ‡ΠΈΠ½Π°Π»Π°ΡΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π±Ρ€Π΅ΠΉΠ½-Π΄Π°ΠΌΠΏ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² Π΄Π»ΠΈΠ½Π½ΡƒΡŽ ΡΠ΅Ρ€ΠΈΡŽ статСй ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ благодаря ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΈ вашим вопросам. Π’ этой ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΌΠΎΠΈΡ… мыслСй ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, вьюшки, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹. Но сначала… На самом Π΄Π΅Π»Π΅ я ΡƒΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ Π½Π° протяТСнии Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ бСсполСзны, Π½ΠΎ я, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡƒΠΊΠ»ΠΎΠ½ΡΡŽΡΡŒ ΠΎΡ‚ ΠΈΡ… использования. Jon Galloway ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°ΠΌΠΈ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΌΠ½Π΅ мусолят Π³Π»Π°Π·Π° Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Π― ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΈΠ· WinDNA идСологичСской ΡˆΠΊΠΎΠ»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всС врСмя. БСгодня я ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² качСствС API слоя для Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ слой API Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ я знаю мноТСство ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ нСсущих Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° созданиС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ этого слоя API Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π½Π΅ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ. Π’ этих прилоТСниях Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ часто приносят большС услоТнСний, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·Ρ‹. ...

November 15, 2017 Β· Volodymyr Liashenko

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° основы

Π’ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ - Ρ‚Ρ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΏΠΎ-ΠΌΠΎΠ΅ΠΌΡƒ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ способ вСрсионирования Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΡ Π’ качСствС прСдисловия я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… стратСгий вСрсионирования Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π― Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΈ истинно Π²Π΅Ρ€Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Моя Ρ†Π΅Π»ΡŒ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ измСнСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ, провСряСмом ΠΈ воспроизводимым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Π°ΠΊ ΠΊΠ°ΠΊ я ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с довольно большими схСмами Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипты ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 6 часов ΠΈ Ρ‚Π΅ΠΌ самым заморозят Π½Π° Π΄ΠΎΠ»Π³ΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½ систСму. ОпасСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΎΠ·Π²ΡƒΡ‡ΠΈΠ» Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠΎΠΉ Ρ…ΠΎΠ΄ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΈ стратСгии. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… всС измСнСния Π΅Ρ‘ схСмы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ систСмы контроля вСрсий, для этого Π’Π°ΠΌ стоит ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это Π² Π²Π°ΡˆΠΈΡ… условиях Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простым ΠΏΡƒΡ‚Ρ‘ΠΌ. ...

November 13, 2017 Β· Volodymyr Liashenko