41554 blogs · [ { "id": "01a0876b-c94d-73ff-8276-ba185a41eaf8", "title": "From Conditionals to Polymorphism", "url": "https://develclan.com/from-conditionals-to-polymorphism/", "published_at": "2026-07-30T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185aea5cd4", "title": "Refactoring with Convergence Rules", "url": "https://develclan.com/refactoring-convergence-rules/", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185b585708", "title": "Factory Method Pattern", "url": "https://develclan.com/factory-method-pattern/", "published_at": "2026-07-06T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185c4493e8", "title": "Start With Ugly Code", "url": "https://develclan.com/start-with-ugly-code/", "published_at": "2026-06-30T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185ceffd09", "title": "Tests That Survive Change", "url": "https://develclan.com/tests-that-survive-change/", "published_at": "2026-06-11T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185d7f8317", "title": "Composition: Building with Parts", "url": "https://develclan.com/composition-building-with-parts/", "published_at": "2026-06-03T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185d8ada6f", "title": "Duck Typing and Inheritance in Ruby", "url": "https://develclan.com/duck-typing-inheritance-ruby/", "published_at": "2026-05-19T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185de76277", "title": "Messages Before Objects", "url": "https://develclan.com/messages-before-objects/", "published_at": "2026-04-24T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185eb8bae9", "title": "Singleton Pattern", "url": "https://develclan.com/singleton-pattern/", "published_at": "2026-04-14T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185eef47a0", "title": "The Cost of Change in Software", "url": "https://develclan.com/cost-change-software/", "published_at": "2026-02-17T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba185f0d8f62", "title": "Dependency Inversion Principle", "url": "https://develclan.com/dependency-inversion-principle/", "published_at": "2026-01-05T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba18600c5707", "title": "Interface Segregation Principle", "url": "https://develclan.com/interface-segregation-principle/", "published_at": "2025-12-29T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1860b6d78a", "title": "Liskov Substitution Principle", "url": "https://develclan.com/liskov-substitution-principle/", "published_at": "2025-12-18T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba18612f53ec", "title": "Open-Closed Principle", "url": "https://develclan.com/open-closed-principle/", "published_at": "2025-12-15T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1861fab1b8", "title": "Value Objects in Ruby: The Idiomatic Way", "url": "https://develclan.com/value-objects-ruby-idiomatic-way/", "published_at": "2025-12-04T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1862187dad", "title": "Single Responsibility Principle", "url": "https://develclan.com/single-responsibility-principle/", "published_at": "2025-11-24T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1862367da7", "title": "The N+1 Query Problem in Active Record", "url": "https://develclan.com/n-plus-1-problem-active-record/", "published_at": "2025-11-03T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1862985a84", "title": "Testing in Ruby: From Scratch to Minitest and RSpec", "url": "https://develclan.com/testing-ruby-from-scratch-minitest-rspec/", "published_at": "2025-10-29T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1862c7224e", "title": "Sinatra Tutorial: Building a To-Do Application", "url": "https://develclan.com/sinatra-tutorial/", "published_at": "2025-09-26T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba18633361d2", "title": "Build Your Own URL Shortener with Rack", "url": "https://develclan.com/build-url-shortener-rack/", "published_at": "2025-08-09T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba18639ef982", "title": "Persistent Connections in Ruby: Streaming Bodies, SSE, and WebSockets with Rack", "url": "https://develclan.com/ruby-streaming-bodies-sse-websockets-rack/", "published_at": "2025-07-31T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba18643bbb9d", "title": "Rack for Ruby: The Complete Beginner’s Guide", "url": "https://develclan.com/rack-ruby-complete-beginners-guide/", "published_at": "2025-04-30T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba186537263e", "title": "ERB: Embedding Ruby in HTML", "url": "https://develclan.com/erb-embedding-ruby-in-html/", "published_at": "2025-03-12T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1865e08bab", "title": "Using Ruby Libraries", "url": "https://develclan.com/using-ruby-libraries/", "published_at": "2025-01-22T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1866c7e37a", "title": "Do Not Use the System Ruby on macOS", "url": "https://develclan.com/system-ruby-macos/", "published_at": "2024-12-16T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba18670cf855", "title": "Install Ruby: A Step-By-Step Guide", "url": "https://develclan.com/install-ruby/", "published_at": "2024-12-13T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba186784792c", "title": "Installing and Using Tailwind CSS 4.0", "url": "https://develclan.com/installing-and-using-tailwind-css/", "published_at": "2024-08-02T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1867f9d476", "title": "How to Implement a Cookie Bar in Ruby on Rails", "url": "https://develclan.com/how-to-implement-a-cookie-bar-in-ruby-on-rails/", "published_at": "2024-07-30T00:00:00+00:00" }, { "id": "01a0876b-c94d-73ff-8276-ba1868992219", "title": "Seeding a Database in Ruby on Rails", "url": "https://develclan.com/seeding-database-ruby-on-rails/", "published_at": "2024-07-29T00:00:00+00:00" } ] posts Claim your blog
Back to develclan.com
Blog · corpus.blog/blogs/develclan.com/posts

develclan.com

develclan.com

2026

2025

2024