Diagram jako Kod — 10 minut czytania

Zrozumienie Formatu PlantUML

PlantUML pozwala tworzyć diagramy jako zwykły tekst. Dowiedz się, czym jest, jak GanttTool używa go pod maską do renderowania wykresów Gantta i jakie inne typy diagramów obsługuje.

10 minut czytania Czerwiec 2026 Autor: GanttTool

Czym Jest PlantUML?

PlantUML to narzędzie open-source, które pozwala tworzyć diagramy z opisów w zwykłym tekście. Zamiast przeciągać pola po płótnie, piszesz kilka linijek prostej składni, a PlantUML renderuje profesjonalny diagram. To podejście jest często nazywane "diagram jako kod" lub "tekst na diagram".

Minimalny diagram PlantUML wygląda tak: otwierasz znacznikiem @start<typ>, opisujesz strukturę w kilku czytelnych linijkach i zamykasz znacznikiem @end<typ>. Narzędzie analizuje ten tekst i tworzy SVG, PNG lub PDF — gdziekolwiek go renderujesz.

Dlaczego warto pisać diagramy jako tekst?

  • Kontrola wersji — Zwykły tekst daje czyste porównania w Git. Możesz śledzić każdą zmianę diagramu, sprawdzać ją w pull requeście i cofnąć, jeśli coś się zepsuje.
  • Szybkość — Wpisanie [Zadanie A] lasts 5 days jest szybsze niż rysowanie paska na płótnie i zmienianie jego rozmiaru.
  • Spójność — Silnik renderujący automatycznie stosuje jednolite odstępy, czcionki i kolory. Skupiasz się na treści, a nie na układzie.
  • Przenośność — Plik tekstowy .puml jest mały, czytelny dla człowieka i renderuje się tak samo wszędzie.
  • Automatyzacja — Diagramy mogą być generowane programowo z danych, osadzane w pipeline'ach CI i utrzymywane w synchronizacji z kodem.

Wskazówka: PlantUML jest szeroko stosowany w dokumentacji inżynierii oprogramowania (diagramy architektury, przepływy API), ale jego obsługa wykresów Gantta czyni go równie potężnym narzędziem dla kierowników projektów i liderów zespołów, którzy chcą mieć powtarzalne, wersjonowane harmonogramy.

Jak GanttTool Korzysta z PlantUML

GanttTool udostępnia wizualny edytor GUI — dodajesz zadania, ustawiasz czasy trwania, definiujesz zależności, wybierasz kolory — ale za kulisami wszystko, co zbudujesz, jest kompilowane do kodu PlantUML. Ten kod jest następnie wysyłany do serwera renderującego, który przekształca go w diagram SVG wyświetlany w twojej przeglądarce.

Potok renderowania

🖱️
Edytor GUI
zadania, daty, kolory
📄
Kod PlantUML
@startgantt … @endgantt
🔌
POST /api/kroki
ścieżka Next.js
🌐
PlantUML / Kroki
serwer renderujący
🖼️
Diagram SVG
wyświetlany w przeglądarce

Trasa API pod /api/kroki działa jako proxy między twoją przeglądarką a serwerami renderującymi. Działa w dwóch etapach:

  • Główny: serwer PlantUML.com — Kod PlantUML jest kompresowany za pomocą Deflate (poziom 9) i kodowany przy użyciu niestandardowego wariantu base-64 PlantUML. Wynikowy ciąg jest dołączany do https://www.plantuml.com/plantuml/svg/~1{zakodowane} jako żądanie GET. Limit czasu 3 sekund chroni przed wolnymi odpowiedziami.
  • Zapasowy: serwer Kroki.io — Jeśli PlantUML.com zawiedzie lub przekroczy limit czasu, surowy tekst PlantUML jest wysyłany POST jako text/plain do https://kroki.io/plantuml/svg z limitem czasu 5 sekund. Kroki to otwartoźródłowa brama renderująca, która obsługuje wiele formatów diagramów.

Niezależnie od tego, który serwer odpowie pierwszy z prawidłowym SVG, obraz jest zwracany do przeglądarki z nagłówkiem Content-Type: image/svg+xml i renderowany inline. Nigdy nie musisz myśleć o kodowaniu ani rozwiązaniach zapasowych — to po prostu działa.

Pod maską: Widok "Kod PlantUML" w panelu bocznym GanttTool pokazuje dokładny tekst, który jest wysyłany do serwera. Możesz go skopiować, wkleić do PlantText lub serwera online PlantUML i otrzymać ten sam diagram.

Składnia Wykresów Gantta PlantUML

Każdy diagram Gantta PlantUML jest otoczony znacznikami @startgantt / @endgantt. W środku opisujesz swój projekt w naturalnym, czytelnym stylu.

Podstawowa struktura zadań

plantuml — podstawowy wykres gantta
@startgantt
' Tytuł projektu i skala
title Website Redesign Project
Project starts 2026-07-01
printscale weekly

' Separator fazy
-- Discovery --

' Zwykłe zadania: [Nazwa] lasts N days
[Requirements gathering] lasts 5 days
[Competitor analysis] lasts 3 days

-- Design --

[Wireframes] lasts 7 days
[Visual design] lasts 10 days
[Visual design] starts at [Wireframes]'s end

-- Development --

[Frontend build] lasts 14 days
[Frontend build] starts at [Visual design]'s end
[Backend integration] lasts 10 days
[Backend integration] starts at [Frontend build]'s end

@endgantt

Kamienie milowe

Kamienie milowe mają zerowy czas trwania i pojawiają się jako znacznik rombu na osi czasu. Definiuj je za pomocą happens at zamiast lasts.

plantuml — kamienie milowe i kolory
@startgantt
Project starts 2026-07-01

[Development] lasts 14 days and is colored in CornflowerBlue
[QA Testing] lasts 5 days and is colored in LightGreen
[QA Testing] starts at [Development]'s end

' Kamień milowy — występuje na końcu określonego zadania
[Release v1.0] happens at [QA Testing]'s end

' Procent ukończenia
[Development] is 70% completed

@endgantt

Separatory faz i ustawienia projektu

Otocz nazwy sekcji podwójnymi myślnikami (-- Nazwa fazy --), aby wstawić wiersz separatora. Połącz z ustawieniami ogólnymi projektu, aby uzyskać pełną kontrolę.

plantuml — separatory i ustawienia
@startgantt
title Q3 Product Launch
Project starts 2026-07-01
printscale weekly zoom 2
saturday are closed
sunday are closed
today is colored in Lavender

-- Planning --
[Kickoff meeting] lasts 1 day
[Scope definition] lasts 3 days
[Scope definition] starts at [Kickoff meeting]'s end

-- Build --
[Engineering sprint 1] lasts 10 days
[Engineering sprint 1] starts at [Scope definition]'s end
[Engineering sprint 2] lasts 10 days
[Engineering sprint 2] starts at [Engineering sprint 1]'s end

-- Launch --
[Smoke testing] lasts 2 days
[Smoke testing] starts at [Engineering sprint 2]'s end
[Go live] happens at [Smoke testing]'s end

@endgantt

Kluczowa składnia Gantta w skrócie

Składnia Co robi
[Zadanie] lasts N days Tworzy zadanie z czasem trwania w dniach
[Zadanie] lasts N weeks Czas trwania w tygodniach
[B] starts at [A]'s end Zależność koniec-do-startu
[M] happens at [A]'s end Kamień milowy na końcu zadania
-- Nazwa fazy -- Wstawia wiersz separatora fazy
[T] is 50% completed Pokazuje postęp ukończenia
printscale weekly zoom 2 Skala tygodniowa, powiększenie 2x
saturday are closed Pomiń soboty w czasie trwania
[T] is colored in Red Niestandardowy kolor paska zadania

PlantUML poza Wykresami Gantta

Gantt to tylko jeden z kilkunastu typów diagramów obsługiwanych przez PlantUML. Ta sama filozofia zwykłego tekstu — znacznik początku, opis, znacznik końca — dotyczy ich wszystkich. Oto przegląd najczęściej używanych typów.

Diagramy Sekwencji

Diagramy sekwencji pokazują, jak obiekty lub komponenty współdziałają w czasie — idealne dla przepływów API, sekwencji uwierzytelniania i komunikacji mikroserwisów.

plantuml — diagram sekwencji
@startuml
title User Login Flow

Browser -> API: POST /login {email, password}
API -> Database: SELECT user WHERE email=?
Database --> API: user record
alt valid credentials
    API --> Browser: 200 OK + JWT token
else invalid
    API --> Browser: 401 Unauthorized
end
@enduml

Diagramy Klas

Diagramy klas modelują strukturę obiektową: klasy, atrybuty, metody i relacje. Niezbędne do dokumentacji architektury oprogramowania.

plantuml — diagram klas
@startuml
class Project {
    +id: String
    +name: String
    +startDate: Date
    +getTasks(): Task[]
}

class Task {
    +id: String
    +name: String
    +duration: Number
    +complete(): void
}

class Milestone {
    +name: String
    +date: Date
}

Project "1" o-- "many" Task
Project "1" o-- "many" Milestone
Task <|-- Milestone
@enduml

Więcej typów diagramów PlantUML

👤

Diagramy Przypadków Użycia

Pokazują, którzy aktorzy wchodzą w interakcję z którymi funkcjami systemu. Przydatne do zbierania wymagań i prezentacji dla interesariuszy. Składnia: @startuml z actor, usecase i strzałkami -->.

🔄

Diagramy Aktywności

Modelują przepływ pracy, procesy biznesowe i przepływy decyzyjne z węzłami start/stop, rozwidleniami, połączeniami i gałęziami warunkowymi. Pomyśl o nich jak o schematach blokowych z formalną semantyką.

🔀

Diagramy Stanów

Przedstawiają cykl życia obiektu poprzez stany i przejścia. Idealne do modelowania statusu zamówienia, stanów sesji użytkownika lub trybów urządzenia.

🧩

Diagramy Komponentów

Pokazują, jak komponenty systemu, biblioteki i interfejsy są ze sobą połączone. Świetne do dokumentowania architektur mikroserwisów i topologii wdrożeń.

🧠

Mapy Myśli

Burza mózgów i organizowanie pomysłów w formacie drzewa radialnego. Używa wciętych znaczników * do definiowania hierarchii. Dobrze sprawdza się przy podziałach funkcji i mapach wiedzy.

🗄️

Encja-Relacja (ER)

Modeluj schematy baz danych z encjami, atrybutami i relacjami. Obsługiwane przez @startuml / słowo kluczowe entity lub przez dedykowane rozszerzenia ER.

Oto szybki przykład mapy myśli PlantUML, aby zilustrować, jak diagramy inne niż Gantt podążają za tą samą filozofią tekst-najpierw:

plantuml — mapa myśli
@startmindmap
* Project Planning
** Scope
*** Requirements
*** Deliverables
** Schedule
*** Gantt chart
*** Milestones
** Team
*** Roles
*** Resources
** Risks
*** Mitigation plan
@endmindmap

Wypróbuj PlantUML Online

Nie musisz niczego instalować, aby zacząć eksperymentować z PlantUML. Ekosystem ma doskonałe darmowe narzędzia online:

Zalecany przepływ pracy: Zbuduj swój wykres Gantta wizualnie w GanttTool, kliknij "Kod PlantUML" w panelu bocznym, aby zobaczyć wygenerowany tekst, a następnie wklej go do PlantText lub PlantUML.com, jeśli chcesz pracować bezpośrednio na surowej składni. Otrzymujesz to, co najlepsze z obu światów: edytor wizualny i pełny dostęp do formatu diagram-jako-kod.

Zacznij Tworzyć Wykresy Gantta

GanttTool daje ci moc PlantUML bez potrzeby pisania ani jednej linii kodu. Użyj edytora wizualnego do zbudowania harmonogramu projektu i pozwól aplikacji automatycznie obsłużyć składnię PlantUML oraz renderowanie diagramu.

  • Dodawaj zadania, kamienie milowe i separatory faz jednym kliknięciem.
  • Ustawiaj czasy trwania, zależności, kolory i procenty ukończenia wizualnie.
  • Sprawdzaj wygenerowany kod PlantUML w każdej chwili — kopiuj i używaj go ponownie gdziekolwiek.
  • Eksportuj jako SVG lub kopiuj do schowka jako PNG do prezentacji i dokumentów.
  • Opisz swój projekt zwykłym językiem i pozwól asystentowi AI wygenerować pełny szkic wykresu Gantta.

Wypróbuj GanttTool — za darmo, bez zakładania konta

Zbuduj profesjonalny wykres Gantta PlantUML w kilka minut. Aplikacja generuje kod PlantUML za ciebie — eksportuj, udostępniaj lub wklejaj go gdziekolwiek.

Otwórz GanttTool — to nic nie kosztuje