Programowanie aplikacji SQL Server

W tym artykule skupię się na narzędziach do tworzenia aplikacji Business Intelligence z wykorzystaniem pakietu SQL Server Data Tools (SSDT). W chwili pisania artykułu korzystałem z następujących wersji oprogramowania:

  • środowisko programistyczne Microsoft Visual Studio Community 2022, Version 17.13.2
  • baza danych Microsoft SQL Server 2022, Developer Edition, Version 16.0.1135.2

SSDT umożliwia projektowanie, testowanie i wdrażanie projektów bazodanowych bezpośrednio w Visual Studio. Narzędzia wchodzące w skład SSDT można odnaleźć i zainstalować poprzez przeglądarkę rozszerzeń (menu Extensions -> Manage Extensions…). Są to w szczególności trzy komponenty:

  • SQL Server Integration Services (SSIS)
  • SQL Server Reporting Services (SSRS)
  • SQL Server Analysis Services (SSAS)

Aby dowiedzieć się więcej o tych narzędziach, w pierwszej kolejności odsyłam do dokumentacji technicznej na stronach producenta:

https://learn.microsoft.com/en-us/sql/ssdt/sql-server-data-tools?view=sql-server-ver16

https://learn.microsoft.com/en-us/sql/reporting-services/create-deploy-and-manage-mobile-and-paginated-reports?view=sql-server-ver16

https://learn.microsoft.com/en-us/sql/integration-services/sql-server-integration-services?view=sql-server-ver16

https://learn.microsoft.com/en-us/analysis-services/analysis-services-overview?view=asallproducts-allversions

Wkrótce przedstawię więcej materiałów, w których będę dzielił się swoimi doświadczeniami oraz przykładowymi rozwiązaniami problemów, z jakimi można spotkać się w typowych zadaniach w codziennej pracy analityka i inżyniera danych.

Kluczowe elementy w dostarczaniu oprogramowania

Praca w roli dostawcy oprogramowania ma pewne stałe elementy, bez względu na to, czy odbiorcą jest tzw. klient wewnętrzny (np. inny dział w tej samej firmie) czy oprogramowanie powstaje na zamówienie. Z perspektywy klienta sytuacja może wyglądać nieco odmiennie, ale to ze strony jego organizacji najczęściej wypływa potrzeba zamówienia nowego oprogramowania.

Przyjrzyjmy się następującym zagadnieniom istotnym dla wewnętrznej organizacji pracy dostawcy jak również ważnym z perspektywy rozliczenia się z klientem w ramach zamówienia.

Termin realizacji

Procesy wewnątrz organizacji dostawcy obejmują: planowanie etapów pracy oraz wyznaczenie kamieni milowych.

Komunikacja między dostawcą i klientem obejmuje: regularne informowanie o postępach, aktualizacje harmonogramu, wyjaśnianie opóźnień.

Standardy

Procesy wewnątrz organizacji dostawcy obejmują: utrzymywanie spójnych i zgodnych z najlepszymi praktykami standardów projektowania i kodowania, stosowanie narzędzi do kontroli jakości kodu, jak również do zarządzania wymaganiami. O jakości końcowego produktu świadczy dokumentacja oprogramowania, zarówno ta, którą wygenerowano automatycznie na podstawie kodu, ale przede wszystkim ta, na podstawie której powstała implementacja.

Komunikacja między dostawcą i klientem obejmuje: Standardy kodowania są zazwyczaj mniej istotne dla klienta, chyba że klient ma specyficzne wymagania w zakresie utrzymywania kodu, dokumentacji projektowej i innych artefaktów powstających w trakcie tworzenia i testowania. Przekazywanie klientowi dokumentacji użytkowej i technicznej powinno być zgodnie z wymaganiami umowy.

Dostępność do zasobów

Procesy wewnątrz organizacji dostawcy: komunikacja i przepływ informacji między członkami w zespole deweloperskim, identyfikacja braków w dokumentacji projektowej przed lub w trakcie wykonywania prac, planowanie sesji wyjaśniających.

Komunikacja między dostawcą i klientem obejmuje: Ustalenie jasnych oczekiwań co do dostępności kluczowych interesariuszy, organizowanie regularnych spotkań wyjaśniających, szybka eskalacja problemów.

Weryfikacja zgodności oraz sposób odbioru

Procesy wewnątrz organizacji dostawcy: Przygotowanie wewnętrznych procedur testowania i akceptacji, planowanie i realizacja testów akceptacyjnych.

Komunikacja między dostawcą i klientem obejmuje: Uzgodnienie kryteriów akceptacji, organizacja sesji odbiorczych, dostarczanie wyników testów akceptacyjnych, uzyskiwanie formalnej akceptacji od klienta.

A według Ciebie, kto powinien przygotować i przeprowadzić testy akceptacyjne: dostawca, klient, a może niezależny audytor? Przy niejasnym określeniu tego procesu czas dostarczenia i ostatecznego rozliczenia się może znacznie się wydłużyć poza termin określony w umowie. Należy komunikować odpowiednio wcześnie wszelkie odstępstwa oraz protokołować usterki wymagające niezwłocznego usunięcia.

Dlaczego warto być programistą?

Bycie programistą jest fascynujące z wielu powodów. Jest to zawód, który przynosi wiele satysfakcji i możliwości rozwoju. Zapytaliśmy w grudniu 2023 roku sztuczną inteligencję, czyli tzw. ChatGPT o podanie kilku argumentów, dlaczego warto zainteresować się tą ścieżką rozwoju. Oto niektóre z punktów, które zostały podane w odpowiedzi:

  • Wyzwania i Rozwój: Świat technologii stale się rozwija, co oznacza, że zawsze istnieje coś nowego do nauki. Wyzwania związane z rozwiązywaniem problemów programistycznych sprzyjają ciągłemu rozwojowi umiejętności.
  • Kreatywność i Innowacje: Programowanie to sztuka tworzenia czegoś nowego. Jako programista, masz możliwość rozwijania kreatywności i tworzenia innowacyjnych rozwiązań, które mogą wpływać na życie ludzi i branże.
  • Zarobki: Zawód programisty jest często dobrze płatny, a wysoki popyt na umiejętności programistyczne sprawia, że osoby pracujące w tej branży mają często atrakcyjne oferty finansowe.
  • Wielość Obszarów: Programowanie obejmuje wiele obszarów, takich jak rozwój aplikacji mobilnych, web development, sztuczna inteligencja, inżynieria danych, gry komputerowe i wiele innych. Możesz wybierać obszar, który najbardziej Cię fascynuje.
  • Praca Zdalna i Elastyczność: Wiele miejsc pracy w dziedzinie IT oferuje możliwość pracy zdalnej. To daje elastyczność i pozwala na dostosowanie harmonogramu pracy do swoich preferencji.
  • Ciągłe Zastosowanie: Umiejętności programistyczne są powszechnie używane w różnych dziedzinach i branżach, co oznacza, że masz szansę pracować na projektach o różnorodnym charakterze.
  • Płynność Zawodowa: Programiści są na ogół bardzo poszukiwanymi specjalistami na rynku pracy. Zdobycie doświadczenia w programowaniu otwiera drzwi do różnorodnych i atrakcyjnych ofert pracy.
  • Wspólnota Programistyczna: Istnieje silna społeczność programistyczna na całym świecie. Możesz dzielić się wiedzą, współpracować nad projektami open source, a także uczestniczyć w konferencjach i spotkaniach branżowych.
  • Wpływ na Świat: Programiści mają potencjał wpływania na społeczeństwo poprzez tworzenie technologii, które zmieniają sposób, w jaki ludzie pracują, komunikują się, uczą się czy korzystają z usług.
  • Zadowolenie z Rozwiązanych Problemów: Każde rozwiązane zadanie, naprawiony błąd czy wdrożony projekt dostarcza ogromną satysfakcję i poczucie osiągnięcia.

Podsumowując, jeśli zależy Ci na nieustannym rozwoju, kreatywności i pracy w dynamicznym środowisku, które oferuje wiele możliwości, warto rozważyć karierę w zawodzie programisty.

Hello world!

Ten prosty dwuwyrazowy komunikat jest używany przy pierwszych zadaniach programistycznych w celu upewnienia się, że środowisko programistyczne jest poprawnie skonfigurowane i gotowe do użycia.

W języku C program „Hello, World!” wyglądałby tak:

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}