
Cześć, Habr! Prawdopodobnie każdy z nas ma taki plik, w którym przechowuje coś przydatnego i interesującego dla siebie. Jakieś linki do artykułów, książek, repozytoriów, podręczników. Mogą to być zakładki w przeglądarce lub nawet po prostu otwarte karty, pozostawione na później. Z czasem wszystko to narasta, linki przestają działać, a większość materiałów po prostu się dezaktualizuje.
A co jeśli podzielić się tymi wartościowymi materiałami z społecznością i umieścić ten plik na GitHubie? Wtedy Twoje starania mogą być przydatne także dla innych, a aktualność można utrzymywać wspólnie, przyjmując aktualizacje od chętnych przez stare, dobre PR-y. Właśnie do tego służy projekt . Jest w czołówce 10 repozytoriów na GitHubie, ma 138K gwiazdek, a link do Twoich materiałów może znaleźć się bezpośrednio w jego głównym README, co przyciągnie ogromną publiczność do Twojej twórczości. Prawda, trzeba się trochę postarać. Chciałbym podzielić się z Wami moim doświadczeniem w tym zakresie.
Nazywam się Maksym Gramin. W KROK zajmuję się rozwojem w Java i badaniami w dziedzinie baz danych. W tym poście opowiem, czym są Awesome Lists i jak stworzyć swoje własne oficjalne awesome-repo.
Czym są Awesome Lists
Kiedy mam do czynienia z nową technologią lub językiem programowania, pierwsze co robię, to idę właśnie tutaj — znajduję odpowiednią sekcję, a w niej odpowiednie listy. I sądząc po liczbie gwiazdek i ich stałym wzroście, nie tylko ja tak robię.

Tak naprawdę — to zwykły płaski readme.md, który żyje w oddzielnym , zajmując jednocześnie 8. miejsce wśród wszystkich repozytoriów GitHub’a i zawiera linki do innych list poświęconych jakiejś tematyce. Na przykład w sekcji Języki programowania można znaleźć listy Awesome Python i Awesome Go, a w Rozwoju Front-End jest mnóstwo zasobów dotyczących WEB-rozwoju. No i oczywiście — sekcja (do której jeszcze wrócimy trochę później). I tak, wszystko to nie ogranicza się tylko do tematów technicznych. Na przykład, w sekcjach Rozrywka i Gry można także znaleźć wiele interesujących rzeczy (osobiście ucieszyło mnie ).
Główną cechą jest to, że wszystkie te listy są prowadzone nie przez autora, ale przez społeczność i są opracowane zgodnie ze specjalnym i bardzo ścisłym Każda taka lista jest samodzielną społecznością specjalistów, żyje własnym życiem i jest otwarta na Twoje pull requesty, które uczynią ją jeszcze lepszą. Każdy może również stworzyć swoją własną listę, jeśli jakaś tematyka nie została jeszcze poruszona.
Autorem pomysłu i koordynatorem całego tego przedsięwzięcia jest legendarna Sindre Sørhus, , autor ponad , to właśnie on będzie przyjmował Twoje PR-y.

Jak dostać się do awesome-list
Jeśli przypadkiem nie znalazłeś odpowiedniej listy na interesujący Cię temat, to jest to pierwszy sygnał, że warto ją stworzyć samemu!
Opowiem na przykładzie mojego dzieła — W projektach muszę pracować z różnymi bazami danych, dlatego stworzyłem taki plik, w którym gromadziłem przydatne narzędzia do pracy z nimi, różne migratory DB, IDE, panele administracyjne, narzędzia do monitorowania i inne. Narzędzia, które już wykorzystałem lub które planowałem wykorzystać. Dzieliłem się tym plikiem z kolegami w KROK i poza nim. To pomogło wielu osobom i było interesujące. W końcu zapragnąłem większej sławy, gdy pewnego dnia zauważyłem, że w sekcji Databases brakuje listy na ten temat. I postanowiłem dodać tam swoją.
Co jest potrzebne?
- Rejestrujemy zwykłe repozytorium na GitHubie o nazwie w rodzaju awesome-coś-tam. W moim przypadku było to awesome-database-tools.
- Dostosowujemy swoją listę do formatu awesome, w tym pomoże nam , który wygeneruje wszystkie potrzebne pliki w odpowiednim formacie.
- Konfigurujemy prawdziwe CI. i Travis CI pomogą nam kontrolować naszej listy.
- Czekamy 30 dni.
- Robimy przegląd co najmniej 2 obcych PR-ów.
- I w końcu robimy PR do głównego repozytorium, gdzie dodajemy link do swojego repozytorium. Należy uważnie przeczytać wszystko i dokładnie spełnić wszystkie liczne wymagania dotyczące nowej listy i samego PR.
Mój pierwszy błąd

Ale minęło trochę czasu, zebrałem jeszcze więcej materiałów, popracowałem nad błędami i odważyłem się na .
Ale zapomniałem o bardzo ważnej rzeczy, o której delikatnie mi przypomniano:

Byłem mało uważny i nie dodałem jednorożca jako potwierdzenie, że wszystkie warunki zostały spełnione.

Potem minęło jeszcze trochę czasu, jeszcze kilka poprawek według uwag i pojawił się długo oczekiwany że mój PR został przyjęty.
Tak stałem się autorem swojej pierwszej listy, a zaczęły przychodzić mi z społeczności dotyczące dodawania nowych narzędzi. Wiele z nich już zostało uwzględnionych w . Jeśli nie chce Ci się przechodzić przez link,
oto aktualny na moment publikacji posta zbiór
Awesome Database Tools
Społecznościowa lista narzędzi baz danych
Tutaj zbierzemy informacje o niesamowitych użytecznych oraz rewelacyjnych eksperymentalnych narzędziach, które ułatwiają pracę z bazami danych dla DBA, DevOps, programistów i zwykłych ludzi.
Czuj się swobodnie, aby dodać informacje o własnych narzędziach db lub ulubionych narzędziach osób trzecich.
Spis treści
IDE
- — Najwyższej jakości uniwersalne narzędzie administracyjne do zarządzania, kontroli i rozwoju baz danych.
- — Aqua Data Studio to oprogramowanie zwiększające wydajność dla programistów baz danych, DBA i analityków.
- — Narzędzie do zarządzania wieloma bazami danych z obsługą ponad 20 baz danych.
- — IDE wieloplatformowe dla baz danych i SQL stworzone przez JetBrains.
- — Darmowy uniwersalny menedżer baz danych i klient SQL.
- — Uniwersalne IDE do rozwoju, zarządzania i administracji bazami danych MySQL i MariaDB.
- — Potężne IDE do zarządzania, administracji i rozwoju dla Oracle.
- — Narzędzie GUI do zarządzania i rozwijania baz danych i obiektów.
- — Potężne zintegrowane środowisko do rozwoju, zarządzania, administracji, analizy danych i raportowania dla SQL Server.
- — Nowoczesne (framework JavaScript/Electron), otwarte IDE dla MongoDB. Ma funkcje wspierające rozwój, administrację i optymalizację wydajności na bazach danych MongoDB.
- — Wszechstronne narzędzie GUI dla Firebird i InterBase.
- — Lekki klient do zarządzania MySQL, MSSQL i PostgreSQL, napisany w Delphi.
- — MySQL Workbench to jednolite wizualne narzędzie dla architektów baz danych, programistów i DBA.
- — Narzędzie do rozwoju baz danych, które pozwala jednocześnie łączyć się z bazami MySQL, MariaDB, SQL Server, Oracle, PostgreSQL i SQLite z jednej aplikacji.
- — Oracle SQL Developer to darmowe, zintegrowane środowisko rozwoju, które upraszcza rozwój i zarządzanie bazą danych Oracle zarówno w tradycyjnych, jak i chmurowych wdrożeniach.
- — Najpopularniejsza i najbogatsza w funkcje platforma Open Source do administracji i tworzenia aplikacji dla PostgreSQL, najnowocześniejszej bazy danych Open Source na świecie.
- — Długoterminowe wsparcie dla pgAdmin3.
- — IDE, które jest specjalnie skierowane do rozwoju jednostek programowych dla baz danych Oracle.
- — Kompleksowe i potężne narzędzie do zarządzania bazami danych, administrowania i rozwoju dla PostgreSQL.
- — Toad to wiodące rozwiązanie bazodanowe dla programistów, administratorów i analityków danych. Zarządzaj złożonymi zmianami w bazach danych za pomocą jednego narzędzia do zarządzania bazą danych.
- — Uproszczone narzędzie do rozwoju baz danych dla MySQL i Postgres.
- — TOra to otwarte IDE SQL dla baz danych Oracle, MySQL i PostgreSQL.
- — Twórz, zarządzaj, zapytuj i badaj bazy danych Valentina DB, MySQL, MariaDB, PostgreSQL i SQLite ZA DARMO.
Menadżery/klienci GUI
- — Zarządzanie bazą danych w jednym pliku PHP.
- — Uniwersalne narzędzie bazodanowe dla programistów, DBA i analityków.
- — Enterprise ClickHouse Ops UI, abyś mógł uruchamiać zapytania, monitorować stan ClickHouse'a i robić wiele innych rzeczy.
- — Bezpośredni dostęp SQL do wszystkich Twoich danych, niezależnie od miejsca ich przechowywania.
- — Narzędzie internetowe do zarządzania bazami danych.
- — Przeglądarka baz danych oparta na sieci dla PostgreSQL, napisana w Go, działająca na systemach macOS, Linux i Windows.
- — Narzędzie administracyjne baz danych SQLite oparte na sieci, napisane w PHP z obsługą SQLite3 i SQLite2.
- — Interfejs webowy dla MySQL i MariaDB.
- — PSequel zapewnia przejrzysty i prosty interfejs do wykonywania typowych zadań PostgreSQL.
- — Nowoczesny, współczesny edytor SQL dla Twojego zespołu.
- — Nowoczesny klient PostgreSQL dla systemu Mac.
- — Robo 3T (wcześniej Robomongo) to centralne narzędzie zarządzania MongoDB na wszystkich platformach.
- — Sequel Pro to szybka, łatwa w użyciu aplikacja do zarządzania bazami danych Mac dla MySQL & MariaDB.
- — Narzędzie do zarządzania danymi, które umożliwia pracę z SQL Server, Azure SQL DB i SQL DW na systemach Windows, macOS i Linux.
- — Interfejs graficzny obsługujący wszystkie funkcje SQLite.
- — Internetowy edytor SQL działający w Twojej prywatnej chmurze.
- — Prosty, ale potężny menedżer Postgres dla macOS.
- — Graficzny klient SQL napisany w Javie, który umożliwia przeglądanie struktury bazy danych zgodnej z JDBC, przeglądanie danych w tabelach, wydawanie poleceń SQL itp.
- — Zarządzanie bazą danych dla VSCode.
- — Najbardziej kompletny i łatwy w użyciu interfejs GUI dla MySQL.
- — Edytor SQL & open source prostej inteligencji biznesowej dla Clickhouse.
- — Nowoczesne, natywne i przyjazne narzędzie GUI dla relacyjnych baz danych: MySQL, PostgreSQL, SQLite i innych.
- — GUI do administracji webowej PostgreSQL — korzystaj z baz danych PostgreSQL z dowolnego miejsca, z bogatym, błyskawicznie szybkim interfejsem AJAX.
Narzędzia CLI
- — Połączenie z bazą danych w celu wydawania poleceń SQL w IPython lub IPython Notebook.
- — Cli dla Redis z autouzupełnianiem i podświetlaniem składni.
- — Narzędzie administracyjne podobne do top dla PostgreSQL.
- — Aplikacja podobna do top dla monitorowania aktywności serwera PostgreSQL.
- — 'top' dla PostgreSQL.
- — Przeglądarki Postgres.
- — Oracle SQL Developer Command Line (SQLcl) to darmowy interfejs wiersza poleceń dla Oracle Database.
- — Uniwersalny interfejs wiersza poleceń dla PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, w tym NoSQL i baz danych nierelacyjnych!
dbcli
- — AthenaCLI to narzędzie CLI dla usługi AWS Athena, które może wykonywać autouzupełnianie i podświetlanie składni.
- — CLI dla baz danych SQLite z autouzupełnianiem i podświetlaniem składni.
- — Klient wiersza poleceń dla SQL Server z autouzupełnianiem i podświetlaniem składni.
- — Klient terminalowy dla MySQL z autouzupełnianiem i podświetlaniem składni.
- — CLI Postgres z autouzupełnianiem i podświetlaniem składni.
- — Vertica CLI z autouzupełnianiem i podświetlaniem składni.
Nawigacja i wizualizacja schematów DB
- — Szybkie i proste narzędzie, które pomoże Ci szybko narysować diagramy relacji między Twoimi bazami danych i strumieniami, używając prostego języka DSL.
- — Narzędzie do generowania diagramów relacji encji.
- — Darmowe narzędzie do odkrywania schematu bazy danych i jego zrozumienia.
- — Generowanie dokumentacji bazy danych w formacie HTML, w tym diagramów relacji encji.
- — Narzędzie przyjazne CI do dokumentacji bazy danych, napisane w Go.
Modelarze
- — Potężne i opłacalne narzędzie do projektowania baz danych, które pomoże Ci zbudować wysokiej jakości modele danych koncepcyjnych, logicznych i fizycznych.
- — Oracle SQL Developer Data Modeler to darmowe narzędzie graficzne, które zwiększa wydajność i upraszcza zadania modelowania danych.
- — Narzędzie do modelowania danych zaprojektowane dla PostgreSQL.
Narzędzia migracyjne
- — Narzędzie do konfiguracji bazy danych jako kod, które wykorzystuje koncepcję idempotentnych skryptów DDL.
- — Narzędzie do migracji bazy danych.
- — Migracja schematu online dla MySQL.
- — Biblioteka niezależna od bazy danych do śledzenia, zarządzania i stosowania zmian w schemacie bazy danych.
- — Jak diff, ale dla schematów PostgreSQL.
- — Zarządzanie migracjami baz danych w Node.js stworzone wyłącznie dla postgres. (Może być również używane w innych bazach danych zgodnych ze standardem SQL — np. CockroachDB.)
- — Zapewnia narzędzia do opisu schematu bazy danych PostgreSQL jako YAML.
- — Operator Kubernetes dla deklaratywnego zarządzania schematem bazy danych (gitops dla schematów baz danych).
- — Rozsądne zarządzanie zmianami w bazie danych, native dla rozwoju bez frameworków i solidnego wdrażania.
- — Jeszcze jedno narzędzie do wersjonowania schematu i migracji stworzone z użyciem natywnego .NET Core 3.0+ i miejmy nadzieję lepsze.
Narzędzia do generowania kodu
- — Wydobywa SQL DDL (Data Definition Language) z danych tabeli.
- — Narzędzie wiersza poleceń do eksportu schematu Oracle do zestawu skryptów inicjalizacyjnych ddl z możliwością filtrowania niepożądanych informacji, oddzielania DDL w różnych plikach, formatowania wyjścia.
Wrappery
- — Otwarty backend REST API dla aplikacji mobilnych, internetowych i IoT.
- — Błyskawicznie szybkie, natychmiastowe real-time GraphQL API na Postgres z szczegółową kontrolą dostępu, a także wyzwalanie webhooków na zdarzenia w bazie danych.
- — SQL dla strumieni JSON i CSV.
- — Zdalny wrapper danych PostgreSQL dla MySQL.
- — Aplikacja Java na poziomie średnim, ORDS mapuje polecenia HTTP(S) (GET, POST, PUT, DELETE itd.) na transakcje bazy danych i zwraca dowolne wyniki sformatowane przy użyciu JSON.
- — Prisma zamienia Twoją bazę danych w real-time GraphQL API.
- — REST API dla każdej bazy danych Postgres.
- — Sposób na udostępnienie RESTful API z dowolnych baz danych napisany w Go.
- — Generator SQL z Java i HTTP API, używa prostego RESTful HTTP API z serializacją XML lub JSON.
- — Łatwe przekształcanie bazy danych SQL w REST API.
- — Automatycznie generuje usługę RESTful API dla Twojej starej bazy danych.
- — Zaawansowany wrapper REST i UI dla Twoich zapytań SQL.
Narzędzia do tworzenia kopii zapasowych
- — Niezawodne kopie zapasowe i przywracanie PostgreSQL.
- — Menedżer kopii zapasowych i odzyskiwania dla PostgreSQL.
Replikacja/operacje na danych
- — Narzędzie do eksploracji i publikacji danych.
- — Usługa Transferu Danych Rozproszonych dla MySQL.
- — Synchronizuje dane Postgres między bazami danych.
- — System replikacji MySQL do PostgreSQL napisany w Pythonie 3. System używa biblioteki mysql-replication do pobierania obrazów wierszy z MySQL, które są przechowywane w PostgreSQL jako JSONB.
- — Serwer webowy Golang do strumieniowania zmian w Postgres przynajmniej raz przez websockets, używający funkcji logicznego dekodowania Postgres.
- — Najpopularniejszy menedżer replikacji dla PostgreSQL.
Skrypty
- — Zbiór przydatnych małych skryptów do analizy i administracji bazy danych, stworzony przez nasz zespół PostgreSQL Experts.
- — Zapytania do pomiaru statystycznych nadmiarów w indeksach i tabelach dla PostgreSQL.
- — Test SQL, który sprawdza, czy Twoja baza danych przestrzega zasad z .
- — Przydatne narzędzia PostgreSQL.
- — Przydatne skrypty SQL i polecenia od .
- — Zestaw brakujących przydatnych narzędzi dla DBA Postgres i wszystkich inżynierów.
- — Przydatne zapytania i polecenia PostgreSQL.
- — Te skrypty sqlplus są do optymalizacji wydajności Oracle Database i rozwiązywania problemów.
Monitoring/statystyki/wydajność
- — Zapewnia graficzny widok danych historii aktywnych sesji w bazie danych Oracle i PostgreSQL.
- — Monitorowanie MySQL bez agenta i ekonomiczne.
- — Monitoruj wydajność swojego SQL Server na Linuxie używając collectd, InfluxDB i Grafana.
- — Bezpieczne, proste narzędzie do zdalnego monitorowania serwera bez agenta, wyposażone w potężne funkcje, aby uczynić Twoje monitorowanie jak najbardziej efektywnym.
- — Otwarta platforma do zarządzania i monitorowania wydajności MySQL i MongoDB.
- — Kolektor statystyk pganalyze do zbierania metryk i danych z logów PostgreSQL.
- — Narzędzie diagnostyczne nowej generacji, które pozwala użytkownikom na dokładną analizę stanu baz danych Postgres.
- — Eksporter Prometheus dla metryk serwera PostgreSQL.
- — Mierzy i śledzi każdy aspekt Twoich baz danych PostgreSQL.
- — Panel wydajności dla Postgresa — kontrole zdrowia, sugerowane indeksy i więcej.
- — Zbiera i wyświetla informacje i statystyki z działającego serwera PostgreSQL.
- — Interfejs użytkownika dla planów wyjaśnienia Postgresa, plus wskazówki do poprawy wydajności.
- — Zbiera statystyki PostgreSQL, a następnie zapisuje je w plikach CSV lub wyświetla na stdout.
- — Elastyczne, samodzielne rozwiązanie do monitorowania/metryk PostgreSQL.
- — Zapewnia metryki dla Twojej bazy danych Postgres.
Zabbix
- — Agent monitorujący dla PostgreSQL.
- — Orabbix to wtyczka zaprojektowana do współpracy z Zabbix Enterprise Monitor, aby zapewnić wielowarstwowe monitorowanie, raportowanie wydajności i dostępności oraz pomiar dla baz danych Oracle, wraz z metrykami wydajności serwera.
- — To jest szablon monitorowania Zabbix dla bazy danych PostgreSQL.
- — Skrypt Python do monitorowania baz danych Oracle.
- — ZabbixDBA to szybka, elastyczna i stale rozwijająca się wtyczka do monitorowania Twojego RDBMS.
Testowanie
- — Framework do testowania baz danych, który wspiera łatwy rozwój oparty na testach Twojego kodu bazy danych.
- — Testowanie regresji Twoich zapytań SQL.
Generator danych
- — To framework do generowania realistycznych i ważnych danych testowych w dużych ilościach dla systemu testowego (unikanie antywzorca Datalite).
- — Potężne narzędzie GUI do tworzenia masywnych ilości realistycznych danych testowych.
- — Małe, ale potężne narzędzie GUI do zapełniania schematów Oracle dużymi ilościami realistycznych danych testowych.
- — Potężne narzędzie GUI do szybkiego generowania znaczących danych testowych dla baz danych.
Administracja
- — Szybki analizator logów PostgreSQL.
- — Zarządzaj rolami, członkostwami ról, własnością schematu i uprawnieniami klastra Postgres.
- — Partycjonowanie Postgresa tak prosto, jak to możliwe.
HA/Failover/Sharding
- — Rozszerzenie Postgresa, które rozprowadza Twoje dane i zapytania na wiele węzłów.
- — Szablon dla wysokiej dostępności PostgreSQL z ZooKeeper, etcd lub Consul.
- — Rozwiązanie o wysokiej skalowalności dla klastrowania MySQL i wysokiej dostępności.
- — Menedżer PostgreSQL native cloud dla wysokiej dostępności PostgreSQL.
- — Rozszerzenie i usługa Postgresa dla automatycznego failover i wysokiej dostępności.
- — Monitorowanie replikacji PostgreSQL i demon failover.
- — Wysoka dostępność dla Postgresa, oparta na branżowych odwołaniach Pacemaker i Corosync.
- — Klastra PostgreSQL o wysokiej dostępności (opartego na 'Patroni' i 'DCS(etcd)'). Automatyzacja wdrożenia z Ansible.
- — System klastrowania baz danych dla poziomej skalowalności MySQL poprzez zgeneralizowane shardowanie.
Kubernetes
- — Ułatwienie uruchamiania baz danych produkcyjnych w Kubernetes.
- — Operator Postgresa umożliwia klastery PostgreSQL o wysokiej dostępności w Kubernetes (K8s) zasilane przez Patroni.
- — HA klastry PostgreSQL z Dockerem.
- — Bazy danych PostgreSQL klasy enterprise, pełen stos na Kubernetes.
Dostosowanie konfiguracji
- — Skrypt napisany w Perl, który pozwala szybko przeglądać instalację MySQL i wprowadzać poprawki w celu zwiększenia wydajności i stabilności.
- — Darmowe narzędzie online do generowania zoptymalizowanego
postgresql.conf. - — Kreator konfiguracji PostgreSQL.
- — Prosty skrypt do analizy konfiguracji Twojej bazy danych PostgreSQL i udzielania porad dotyczących dostrojenia.
DevOps
- — DBmaestro przyspiesza cykle wydania i wspiera zwinność w całym ekosystemie IT.
- — Toad DevOps Toolkit wykonuje kluczowe funkcje rozwoju bazy danych w Twoim workflow DevOps — bez kompromisów w zakresie jakości, wydajności czy niezawodności.
Przykłady schematów
- — Schematy Przykładowych Baz Danych Oracle.
Raportowanie
- — Łatwa w użyciu aplikacja do raportowania SQL stworzona dla miłośników SQL.
Dystrybucje
- — Narzędzie, które łatwo deployuje serwery baz danych MySQL.
- — Moduł PowerShell, który możesz traktować jak wiersz poleceń SQL Server Management Studio.
- — Pełnoprawna instalacja PostgreSQL zapakowana jako standardowa aplikacja na Mac.
- — Dystrybucja Postgres przyjazna dla deweloperów.
- — Oparte na sieciowe zarządzanie PostgreSQL, które łączy w sobie kilka narzędzi i aplikacji do użycia z PostgreSQL.
Bezpieczeństwo
- — Zestaw zabezpieczeń bazy danych. Proxy bazy danych z szyfrowaniem na poziomie pola, przeszukiwanie zaszyfrowanych danych, zapobieganie atakom SQL, wykrywanie intruzów, pułapki. Wspiera szyfrowanie po stronie klienta i proxy ("przejrzyste"). SQL, NoSQL.
Formattery kodu
- — Niezależne od języka ładne formatowanie przez uczenie maszynowe.
Wkład
- Twoje wkłady są zawsze mile widziane! Proszę przeczytać najpierw.
Masz znaleziska dla baz danych — podziel się nimi. Będę także wdzięczny za feedback — PR-y i gwiazdki. Jeśli masz pytania dotyczące tworzenia własnych list — pisz także.
Źródło: habr.com
