Skróty i akronimy w żargonie programistów, które musisz znać


DDD, BDD, TDD, DRY.., czyli najpopularniejsze skróty w żargonie programistów! Przydadzą się nie tylko podczas rekrutacji ;)


Zdarzyło Ci się pracować z programistami o kilkukrotnie dłuższym stażu od Ciebie? Kojarzysz sytuację w której rozmawiali żargonem, który dla Ciebie brzmiał jakby obcy język? Mi tak i najgorsze, że byłem zbyt dumny, żeby się przyznać, że nie rozumiałem. Uznałem, że niewiedza to powód do wstydu. A w rzeczywistości jest zupełnie odwrotnie, bo większym wstydem było nieprzyznanie się i udawanie, że wiem o co chodzi.

Dlatego dziś przedstawię subiektywny zestaw skrótów, które uważam za obowiązkowe dla każdego programisty. Prędzej czy później się z nimi spotkasz, dlatego warto przygotować się zawczasu.

Skróty i akronimy związane z samym kodem

  • YAGNI - You aren't gonna need it - nie będziesz tego potrzebować.
  • KISS - Keep it simple, stupid! - zrób to najprościej jak potrafisz. Prostota jest ważniejsza niż złożoność
  • DRY - Don’t Repeat Yourself - nie powtarzaj się
  • SOLID - akronim do dobrych zasad programowania obiektowego. Każda literka rozwija się jako kolejna dobra praktyka. Niżej rozwinięcia:
    • SRP - Single Responsibility Principle - zasada pojedynczej odpowiedzialności. Klasa powinna posiadać tylko jeden powód do zmiany
    • OCP - Open-Closed Principle - zasada otwarte-zamknięte - Klasa powinna być otwarta na rozszerzenia i zamknięta na modyfikacje
    • LSP - Liskov Substitution Principle - zasada podstawienia Liskov - musi istnieć możliwość zastępowania typów bazowych ich podtypami
    • ISP - Interface Segregation Principle - wiele dedykowanych interfejsów jest lepsze niż jeden ogólny.
    • DIP - Dependency Inversion  Principle - moduły wysokopoziomowe nie powinny zależeć od modułów niskopoziomowych. Obie grupy modułów powinny zależeć od abstrakcji.
  • GRASP - akronim od General Responsibility Assignment Software Patterns - zbiór zasad projektowania klas i relacji między nimi
  • SASS, LESS i SCSS - preprocesory css pozwalające na proste programowanie styli css
  • LoD - Law of Demeter - prawo demeter, które mówi żeby odwoływać się tylko do "bliskich przyjaciół"
  • SLAP - Single Level of Abstraction Principle - zasada mówiąca, że każda linijka kodu powinna operować na tym samym poziomie abstrakcji
  • SPOF - Single point of failure - pojedynczy punkt awarii, czyli miejsce które w przypadku błędu potrafi zatrzymać cały system
  • OOP - Object-Oriented Programming - paradygmat programowania obiektowego

Skróty i akronimy odnoszące się do procesu pisania oprogramowania

  • DDD - Domain Driven Design - podejście do tworzenia oprogramowania, które szczególny nacisk kładzie się na tworzenie obiektów dokładnie odzwierciedlających zachowanie ich odpowiedników istniejących w rzeczywistości
  • ES - Event Storming - metoda zbierania założeń i konkretyzowania wiedzy o domenie
  • TDD - Test Driven Development - technika wytwarzania oprogramowania opartą o cykl test->kod->refaktor
  • BDD - Behavior Driven Development - proces rozwoju oprogramowania determinowany zachowaniem, ukierunkowany na spełnienie określonych wymagań. Często mylony ze scenariuszami
  • CD - Continuous Delivery - ciągłe dostarczanie, czyli proces ciągłego dostarczania funkcji biznesowych
  • CI/CD - Continuous Integration / Continuous Deployment - ciągła integracja zmian i ciągle wdrażanie zmian w kodzie na produkcję
    SLA - Service Level Agreement - umowa o gwarantowanym poziomie świadczenia usług, np że system będzie działać przez 99.9% czasu dziennie na produkcji
  • SLO Service Level Objectives - wewnętrzny cel świadczenia usługi, który stanowi bufor na reakcję w celu zachowania ustalonego z klientem SLA
  • SLI - Service Level Indicator - konkretne mierzalne metryki, które pozwalają określić aktualny stan systemu

Skróty odnoszące się do Agile

  • DoR - Definition of Ready - określa jakie cechy powinno posiadać zadanie, aby można było rozpocząć z nim pracę
  • DoD - Definition of Done - określa kiedy zadanie można uznać za zakończone
  • AC -  Acceptance Criteria - kryteria akceptacji - lista wymogów do spełnienia, aby zespół mógł zweryfikować czy zadanie zostało zrealizowane poprawnie
  • PO - ProductOwner - kluczowa rola w projekcie, której zadaniem jest maksymalizacja wartości produktu
  • PM - ProjectManager - kolejna kluczowa rola w projekcie, która bardziej skupia się na procesach niż na projekcie
  • BA - Business Analyst - Analityk Biznesowy, to osoba, która definiuje potrzeby biznesowe w celu znalezienia optymalnych rozwiązań

Skróty odnoszące się do rozwiązań architektonicznych

  • SAAS - Software As A Service - model w którym oprogramowanie jest jako usługa serwowana w chmurze.
  • ADR - Architecture decision record - zapis ważnych decyzji dotyczących architektury
  • ADL - Architecture Decision Log - log decyzji, czyli prościej lista wszystkich ADR
  • CQS - Dommand Query Separation - podstawowa zasada mówiąca, że metoda może coś zwracać i jest wtedy query, lub wprowadzać zmianę stanu i jest wtedy jako command, ale nigdy obie czynności jednocześnie
  • CQRS -  Command Query Responsibility Segregation - zastosowanie CQS w kontekście całego systemu, czyli całkowite oddzielnie zapisu od odczytu
  • ES - Event Sourcing - to technika polegająca na odtworzeniu stanu aplikacji na podstawie zdarzeń
  • SOA - service oriented architecture - koncepcja oprogramowania zorientowanego na usługi

Skróty odnoszące się do konkretnych narzędzi

  • CRM - Customer Relationship Management - system automatyzujący i wspierający zarządzanie i kontakt z klientem
  • CTA - Call To Action - przycisk nakłaniający do akcji, np zakupu "Zobacz", "Kliknij"
  • CMS - Content Management System - system zarządzania dynamiczną treścią na stronie
  • RWD - Responsive Web Design - technika tworzenia stron internetowych, aby te dopasowywały się do wielkości okna przeglądarki, bądź urządzenia
  • GH - GitHub - repozytorium
  • MR / PR - Merge Request / Pull Request - (w zależności od narzędzia) wygenerowanie zmian w kodzie, które można oddać do weryfikacji w procesie Code Review
  • CR - rzadziej stosowane, ale ogólne określenie, na wspomniane wcześniej Code Review
  • SO - StackOverflow - serwis internetowy będący kopalnią wiedzy

Inne, czy skróty które nie są czysto techniczne, ale które warto znać

  • LMGTFY - Let Me Google That For You - nie trzeba tłumaczyć ;)
  • SMART - akronim od Specific, Measurable, Achievable, Relevant, Time-bound - czyli koncepcja definiowania celów. Te powinny być skonkretyzowane, mierzalne, osiągnalne, istotne i przede wszystkim zdefiniowane w czasie
  • SMARTER - rozszerzona wersja SMART o dodatkowo exciting oraz recorded

Podsumowanie

Część skrótów odnosie się do więcej niż jednej kategorii. Starałem się umieścić w kontekście takiej grupy, w której sam słyszałem je najczęściej.

Niektóry skróty pojawiają się więcej niż jeden 1, na przykład ES, jako EventStorming w kontekście podejścia do zbierania założeń, albo EventSourcing jako praktyka odtwarzania stanu na podstawie zapisanych zdarzeń.

A Wy znacie jeszcze jakieś skróty, które są warte wymienienia i ich tu nie uwzględniłem? Jeśli tak, to koniecznie podzielcie się tym w komentarzu.
A może poznaliście coś nowego? Chętnie dowiem się, czy inni również mieli podobne problemy.

Jun 10, 2021

Najnowsze wpisy

Zobacz wszystkie