SOFTURE

Projekt własny
OSS / .NET ecosystem
Od 2024 (rozwój ciągły)
Maintainer / Founder
#OSS#NuGet#.NET#DDD#Observability

Główny rezultat

Zestaw 7 publicznie dostępnych pakietów skracających rozpoczynanie nowych projektów

problem.analyze()
business_problem.md

Problem biznesowy

Każdy nowy projekt programistyczny wymaga ponownej budowy tych samych elementów infrastruktury (logowanie, monitoring, integracje, podstawowe komponenty). Brakowało własnego, ujednoliconego zestawu skracającego ten powtarzalny etap.

state.initial()
initial_state.log

Stan wyjściowy

Powtarzalna konfiguracja w każdym nowym projekcie — logowanie, monitoring, integracje, podstawowe komponenty.

constraints.list()
constraints.json

Ograniczenia projektu

01Każdy moduł niezależnym pakietem — używasz tylko tego, czego potrzebujesz
02Wsparcie dla wielu wersji środowiska
03Sensowne ustawienia domyślne bez nadmiarowej konfiguracji
solution.implement()

Rozwiązanie

Stworzyłem zestaw 7 niezależnych pakietów (publicznie dostępnych) — gotowy fundament, który skraca rozpoczynanie nowych projektów. Każdy pakiet odpowiada za jeden konkretny obszar (logowanie, monitoring, podstawowe komponenty, integracje z systemami zewnętrznymi, automatyzacja serwerów).

architecture.design()
architecture.md

Architektura

Modularna kolekcja paczek z minimalnymi cross-dependencies. Każde repo to osobny projekt z własnym CI/CD do publikacji na nuget.org. SOFTURE.Common.* zawiera infrastrukturę mikroserwisów (JWT, MediatR pipeline, OpenTelemetry, Polly retry/circuit-breaker, Strongly-Typed IDs). SOFTURE.Domain to DDD building blocks (Entity, AggregateRoot, state machine, Result/Error, request contracts).

decisions.key()
01

Modularna struktura zamiast jednego wielkiego pakietu

02

Wsparcie wielu wersji środowiska — niezależność od wersji projektu klienckiego

03

Bezpieczne typy zamiast prostych identyfikatorów — mniej błędów

04

Automatyzacja serwerów w tej samej rodzinie pakietów — kompletny fundament

features.list()
features.config

Funkcjonalności

01Pakiet do logowania i autoryzacji
02Pakiet z gotowymi klockami architektonicznymi
03Pakiet do monitoringu aplikacji
04Pakiet do automatycznego ponawiania błędów
05Pakiet z bezpiecznymi typami identyfikatorów
06Pakiet z podstawowymi klockami domeny
07Pakiet ze wzorcem zwracania wyników i błędów
08Klient API Fakturowni
09Klient API GUS (REGON)
10Klient szybkiej wyszukiwarki
11Pakiet do automatyzacji konfiguracji serwerów
12Komponenty pomocnicze dla aplikacji webowych
tech.stack()
package.json

Technologie

C#
.NET 6
.NET 8
.NET 9
.NET 10
MediatR
OpenTelemetry
Polly
Ansible
results.success()

Rezultaty

7 publicznie dostępnych pakietów aktywnie używanych przez deweloperów
Wykorzystywane w projektach komercyjnych (m.in. PETSEO)
Strona organizacji softure-cosmos.vercel.app
Publikacja w oficjalnym repozytorium dla automatyzacji serwerów
responsibilities.mine()
my_role.md

Moje odpowiedzialności

01Projektowanie publicznych interfejsów pakietów
02Wdrożenie wszystkich modułów
03Konfiguracja procesu publikacji
04Wsparcie wielu wersji środowiska
05Dokumentacja każdego pakietu
challenges.overcome()
01

Wyzwanie

Utrzymanie spójności między wszystkimi pakietami

Rozwiązanie

Jasne zasady wersjonowania — bez psucia istniejących projektów

02

Wyzwanie

Wybór sensownych ustawień domyślnych bez wymuszania konwencji

Rozwiązanie

Konwencje i metody pomocnicze zamiast wymuszanych klas bazowych

03

Wyzwanie

Zarządzanie wersjami bez psucia istniejących projektów

Rozwiązanie

Każdy pakiet z własnym dziennikiem zmian

Potrzebujesz wsparcia w budowie własnego stacku .NET? Pogadajmy.

Porozmawiajmy o Twoim projekcie i sprawdźmy, jak mogę pomóc w realizacji podobnych wyzwań.