Lista Awesome fai-da-te, o GitHub al posto del blocco note

Lista Awesome fai-da-te, o GitHub al posto del blocco note

Ciao, Habr! Probabilmente ognuno di noi ha un file in cui conserva qualcosa di utile e interessante. Alcuni link a articoli, libri, repository, e manuali. Possono essere segnalibri nel browser o semplicemente schede aperte lasciate per dopo. Col tempo tutto ciò si accumula, i link smettono di funzionare e gran parte del materiale diventa obsoleto.

E se condividessi questa risorsa con la comunità e pubblicassi questo file su GitHub? Allora i tuoi sforzi potrebbero essere utili a qualcun altro, e la manutenzione della sua attualità potrebbe avvenire collettivamente, accettando aggiornamenti da chiunque desideri tramite i tradizionali PR. Questo è proprio lo scopo del progetto. Awesome lists. È tra i primi 10 repository di GitHub, ha 138K stelle, e il link al tuo lavoro potrebbe trovarsi direttamente nel suo README principale, attirando un enorme pubblico verso le tue creazioni. Certo, dovrai impegnarti un po'. Vorrei condividere con te la mia esperienza in questo ambito.

Mi chiamo Maxim Gramin. Presso KROK mi occupo di sviluppo Java e ricerche nel campo dei database. In questo post ti parlerò di cosa siano le Awesome Lists e di come creare il tuo vero e proprio repository awesome.

Cosa sono le Awesome Lists

Quando devo affrontare una nuova tecnologia o un linguaggio di programmazione, la prima cosa che faccio è andare qui — trovo la sezione giusta, e al suo interno le liste pertinenti. E a giudicare dal numero di stelle e dalla loro continua crescita, non sono l'unico a farlo.
Lista Awesome fai-da-te, o GitHub al posto del blocco note

In realtà, si tratta di un semplice readme.md, che vive in una directory separata repository, occupando così l'ottavo posto tra tutti i repository di GitHub e contiene link ad altre liste dedicate a temi specifici. Ad esempio, nella sezione Linguaggi di Programmazione, si possono trovare le liste Awesome Python e Awesome Go, mentre nello Sviluppo Front-End ci sono una miriade di risorse per la WEB development. E naturalmente c'è la sezione Databases (ci torneremo più tardi). E sì, tutto questo non si limita solo a temi tecnici. Ad esempio, nelle sezioni Intrattenimento e Gaming si può trovare molto di interessante (personalmente sono rimasto colpito da awesome-fantasy).
). La caratteristica principale è che tutte queste liste non sono curate personalmente dall'autore, ma dalla comunità e sono redatte secondo un manifesto molto specifico e rigoroso awesome manifesto. Ogni lista è una comunità di specialisti a sé stante, vive di vita propria ed è aperta ai tuoi pull request, che la miglioreranno ulteriormente. Inoltre, chiunque lo desideri può creare una propria lista se un tema non è stato ancora trattato.

L'ideatore e coordinatore di tutto questo è il leggendario Sindre Sorhus, il primo su GitHub, autore di oltre 1000 moduli npm, ed è lui a ricevere i tuoi PR.
Lista Awesome fai-da-te, o GitHub al posto del blocco note

Come entrare in una awesome-list

Se non hai trovato la lista giusta per l'argomento che ti interessa, questo è il primo segnale che devi crearla tu stesso!

Ti parlerò del mio progetto Awesome Database Tools — Di progetto in progetto mi trovo a lavorare con diversi database, e quindi ho creato un file in cui raccolgo strumenti utili per lavorarci, vari migratori di database, IDE, pannelli di amministrazione, strumenti di monitoraggio e tanto altro. Strumenti che ho già utilizzato o che prevedo di utilizzare. Ho condiviso questo file con i miei colleghi in KROK e oltre. Questo è stato utile e interessante per molti. Alla fine, ho desiderato una maggiore visibilità quando ho notato che nella sezione Databases non c'era affatto una lista su questo tema. Così ho deciso di aggiungere la mia.

Cosa serve per questo?

  1. Registriamo un normale repository GitHub con un nome del tipo awesome-qualcosa. Nel mio caso, era awesome-database-tools
  2. Portiamo la nostra lista al formato awesome, per questo ci aiuterà generator-awesome-list, che genererà tutti i file necessari nel formato richiesto
  3. Impostiamo un vero CI. awesome-lint e travis ci aiuteranno a controllare la validità della nostra lista
  4. Aspettiamo 30 giorni
  5. Facciamo review di almeno 2 PR di altre persone
  6. E infine faccio un PR nel repository principale, dove aggiungo il link al mio repository. Qui bisogna leggere attentamente tutto e seguire attentamente i numerosi requisiti per la nuova lista e per il PR stesso.

Il mio primo tentativo è stato fallimentare
Lista Awesome fai-da-te, o GitHub al posto del blocco note
Ma è passato un po' di tempo, ho raccolto ancora più materiale, ho lavorato sugli errori e ho osato un secondo tentativo.

Ma ho dimenticato una cosa molto importante, di cui mi hanno fatto gentilmente notare:
Lista Awesome fai-da-te, o GitHub al posto del blocco note

Non ero molto attento e non ho aggiunto l'unicorno come segno di conferma che tutti i requisiti sono stati soddisfatti.
Lista Awesome fai-da-te, o GitHub al posto del blocco note

Poi è passato un po' di tempo, alcune correzioni suggerite e infine è arrivato il tanto atteso tweet, che il mio PR era stato accettato.

Così sono diventato l'autore della mia prima lista, e ho iniziato a ricevere PR della comunità per aggiungere nuovi strumenti. E molti di essi sono già stati inclusi in Awesome Database Tools. Se non hai voglia di seguire il link,

ecco una raccolta attuale al momento della pubblicazione del post

Awesome Database Tools Lista Awesome fai-da-te, o GitHub al posto del blocco note

Elenco di strumenti per database guidato dalla comunità

Qui raccoglieremo informazioni su strumenti utili e sperimentali che semplificano il lavoro con i database per DBA, DevOps, Sviluppatori e comuni mortali.

Sentiti libero di aggiungere informazioni sui tuoi strumenti di db o sui tuoi strumenti di db di terze parti preferiti.

Contenuti

IDE

  • AnySQL Maestro — Strumento admin multifunzionale per gestione, controllo e sviluppo di database.
  • Aqua Data Studio — Aqua Data Studio è un software di produttività per Sviluppatori di Database, DBA e Analisti.
  • Database .net — Strumento di gestione multipla per database con supporto per oltre 20 database.
  • DataGrip — IDE multipiattaforma per Database e SQL di JetBrains.
  • DBeaver — Gestore di database universale gratuito e client SQL.
  • dbForge Studio for MySQL — IDE universale per sviluppo, gestione e amministrazione di database MySQL e MariaDB.
  • dbForge Studio for Oracle — IDE potente per la gestione e amministrazione di Oracle.
  • dbForge Studio for PostgreSQL — Strumento GUI per gestire e sviluppare database e oggetti.
  • dbForge Studio for SQL Server — Ambiente di sviluppo integrato potente per sviluppo, gestione, amministrazione, analisi dati e reporting per SQL Server.
  • dbKoda — IDE moderno (framework JavaScript/Electron), open source per MongoDB. Ha funzioni per supportare lo sviluppo, l'amministrazione e l'ottimizzazione delle prestazioni su database MongoDB.
  • IBExpert — Strumento GUI completo per Firebird e InterBase.
  • HeidiSQL — Un client leggero per gestire MySQL, MSSQL e PostgreSQL, scritto in Delphi.
  • MySQL Workbench — MySQL Workbench è uno strumento visuale unificato per architetti di database, sviluppatori e DBA.
  • Navicat — Un strumento di sviluppo database che consente di connettersi simultaneamente a database MySQL, MariaDB, SQL Server, Oracle, PostgreSQL e SQLite da un'unica applicazione.
  • Oracle SQL Developer — Oracle SQL Developer è un ambiente di sviluppo integrato gratuito che semplifica lo sviluppo e la gestione del database Oracle in implementazioni sia tradizionali che Cloud.
  • pgAdmin — La piattaforma di amministrazione e sviluppo Open Source più popolare e ricca di funzionalità per PostgreSQL, il database Open Source più avanzato al mondo.
  • pgAdmin3 — Supporto a lungo termine per pgAdmin3.
  • PL/SQL Developer — IDE specificamente destinato allo sviluppo di unità di programma archiviate per Database Oracle.
  • PostgreSQL Maestro — Strumento completo e potente per la gestione, amministrazione e sviluppo di database PostgreSQL.
  • Toad — Toad è la soluzione principale per database per sviluppatori, amministratori e analisti di dati. Gestisci cambiamenti complessi nei database con un unico strumento di gestione.
  • Toad Edge — Strumento di sviluppo semplificato per MySQL e Postgres.
  • TOra — TOra è un IDE SQL open source per database Oracle, MySQL e PostgreSQL.
  • Valentina Studio — Crea, gestisci, interroga ed esplora gratuitamente i database Valentina DB, MySQL, MariaDB, PostgreSQL e SQLite.

GUI Manager/Client

  • Adminer — Gestione database in un unico file PHP.
  • DbVisualizer — Strumento universale per database per sviluppatori, DBA e analisti.
  • HouseOps — Interfaccia di college ClickHouse Enterprise per eseguire query, monitorare la salute di ClickHouse e fare molte altre cose.
  • JackDB — Accesso SQL diretto a tutti i tuoi dati, ovunque si trovino.
  • OmniDB — Strumento web per la gestione dei database.
  • Pgweb — Browser di database basato su web per PostgreSQL, scritto in Go e funziona su macOS, Linux e Windows.
  • phpLiteAdmin — Strumento di amministrazione database SQLite basato su web scritto in PHP con supporto per SQLite3 e SQLite2.
  • phpMyAdmin — Un'interfaccia web per MySQL e MariaDB.
  • psequel — PSequel fornisce un'interfaccia pulita e semplice per eseguire rapidamente compiti comuni di PostgreSQL.
  • PopSQL — Editor SQL moderno e collaborativo per il tuo team.
  • Postico — Un client PostgreSQL moderno per Mac.
  • Robo 3T — Robo 3T (ex Robomongo) è uno strumento di gestione MongoDB centrato sullo shell e multipiattaforma.
  • Sequel Pro — Sequel Pro è un'applicazione di gestione database Mac veloce e facile da usare per lavorare con database MySQL & MariaDB.
  • SQL Operations Studio — Uno strumento di gestione dei dati che consente di lavorare con SQL Server, Azure SQL DB e SQL DW da Windows, macOS e Linux.
  • SQLite Expert — Interfaccia grafica che supporta tutte le funzionalità di SQLite.
  • sqlpad — Editor SQL basato sul web eseguito nel tuo cloud privato.
  • SQLPro — Un gestore Postgres semplice e potente per macOS.
  • SQuirreL — Client SQL grafico scritto in Java che consente di visualizzare la struttura di un database compatibile JDBC, esplorare i dati nelle tabelle, eseguire comandi SQL, ecc.
  • SQLTools — Gestione database per VSCode.
  • SQLyog — Il GUI MySQL più completo e facile da usare.
  • Tabix — Editor SQL & Business Intelligence open source semplice per Clickhouse.
  • TablePlus — Strumento GUI moderno, nativo e amichevole per database relazionali: MySQL, PostgreSQL, SQLite & altro.
  • TeamPostgreSQL — GUI Web di amministrazione PostgreSQL — utilizza i tuoi database PostgreSQL da qualsiasi luogo, con un'interfaccia web veloce e ricca di AJAX.

Strumenti CLI

  • ipython-sql — Connettiti a un database per eseguire comandi SQL all'interno di IPython o IPython Notebook.
  • iredis — Un CLI per Redis con Autocompletamento e Evidenziazione della Sintassi.
  • pgcenter — Strumento di amministrazione simile a top per PostgreSQL.
  • pg_activity — Applicazione simile a top per il monitoraggio dell'attività del server PostgreSQL.
  • pg_top — ‘top’ per PostgreSQL.
  • pspg — Pager per Postgres.
  • SQLcl — Oracle SQL Developer Command Line (SQLcl) è un'interfaccia a riga di comando gratuita per Oracle Database.
  • usql — Interfaccia a riga di comando universale per PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, e molti altri database inclusi database NoSQL e non relazionali!

dbcli

  • athenacli — AthenaCLI è uno strumento CLI per il servizio AWS Athena che offre completamento automatico e evidenziazione della sintassi.
  • litecli — CLI per database SQLite con completamento automatico e evidenziazione della sintassi.
  • mssql-cli — Un client da riga di comando per SQL Server con completamento automatico e evidenziazione della sintassi.
  • mycli — Un client terminale per MySQL con completamento automatico e evidenziazione della sintassi.
  • pgcli — CLI per Postgres con completamento automatico e evidenziazione della sintassi.
  • vcli — CLI per Vertica con completamento automatico e evidenziazione della sintassi.

Navigazione e visualizzazione dello schema DB

  • dbdiagram.io — Strumento semplice e veloce per aiutarti a disegnare i diagrammi delle relazioni del tuo database e creare flussi rapidamente utilizzando un semplice linguaggio DSL.
  • ERAlchemy — Strumento per la generazione di diagrammi di relazioni entità.
  • SchemaCrawler — Uno strumento gratuito per la scoperta e la comprensione degli schemi di database.
  • Schema Spy — Genera documentazione HTML per il tuo database, inclusi diagrammi di relazioni entità.
  • tbls — Strumento compatibile con CI per documentare un database, scritto in Go.

Modellatori

  • Navicat Data Modeler — Un potente e conveniente strumento di progettazione di database che ti aiuta a costruire modelli di dati concettuali, logici e fisici di alta qualità.
  • Oracle SQL Developer Data Modeler — Oracle SQL Developer Data Modeler è uno strumento grafico gratuito che aumenta la produttività e semplifica le attività di modellazione dei dati.
  • pgmodeler — Strumento di modellazione dei dati progettato per PostgreSQL.

Strumenti di migrazione

  • 2bass — Strumento di configurazione del database come codice che utilizza il concetto di script DDL idempotenti.
  • flyway — Strumento di migrazione del database.
  • gh-ost — Migrazione dello schema online per MySQL.
  • liquibase — Libreria indipendente dal database per tracciare, gestire e applicare modifiche allo schema del database.
  • migra — Simile a diff ma per schemi PostgreSQL.
  • node-pg-migrate — Gestione della migrazione del database in Node.js costruita esclusivamente per Postgres. (Può essere utilizzata anche per altri DB conformi allo standard SQL — ad es. CockroachDB.)
  • Pyrseas — Fornisce utilità per descrivere uno schema di database PostgreSQL come YAML.
  • SchemaHero — Un operatore Kubernetes per la gestione dichiarativa dello schema del database (gitops per schemi di database).
  • Sqitch — Gestione sensata delle modifiche native al database per uno sviluppo senza framework e un deployment affidabile.
  • yuniql — Un altro strumento di versionamento e migrazione dello schema realizzato con .NET Core 3.0+ e sperabilmente migliore.

Strumenti per generazione di codice

  • ddl-generator — Inferisce SQL DDL (Linguaggio di Definizione dei Dati) dai dati delle tabelle.
  • scheme2ddl — Utilità da riga di comando per esportare lo schema Oracle in un insieme di script di inizializzazione ddl con possibilità di filtrare informazioni indesiderate, separare ddl in file diversi, e formattare l'output in modo leggibile.

Wrapper

  • DreamFactory — Un backend REST API open source per applicazioni mobile, web e IoT.
  • Hasura GraphQL Engine — API GraphQL in tempo reale ultra-veloci e istantanee su Postgres con controllo degli accessi a livello granulare, oltre a trigger per webhook su eventi del database.
  • jl-sql — SQL per flussi JSON e CSV.
  • mysql_fdw — Wrapper per dati estranei di PostgreSQL per MySQL.
  • Oracle REST Data Services — Un'applicazione Java di livello intermedio, ORDS mappa i verbi HTTP(S) (GET, POST, PUT, DELETE, ecc.) a transazioni di database e restituisce i risultati formattati in JSON.
  • Prisma — Prisma trasforma il tuo database in un'API GraphQL in tempo reale.
  • PostgREST — API REST per qualsiasi database Postgres.
  • prest — È un modo per servire un'API RESTful da qualsiasi database scritto in Go.
  • restSQL — Generatore SQL con API Java e HTTP, utilizza una semplice API HTTP RESTful con serializzazione XML o JSON.
  • resquel — Converti facilmente il tuo database SQL in un'API REST.
  • sandman2 — Genera automaticamente un servizio API RESTful per il tuo database legacy.
  • sql-boot — Wrapper REST e UI avanzato per le tue query SQL.

Strumenti di backup

  • pgbackrest — Backup e ripristino affidabili per PostgreSQL.
  • BaRMan — Backup and Recovery Manager per PostgreSQL.

Replicazione/Operazione sui dati

  • Datasette — Uno strumento per esplorare e pubblicare dati.
  • dtle — Servizio di trasferimento dati distribuito per MySQL.
  • pgsync — Sincronizza i dati di Postgres tra database.
  • pg_chameleon — Sistema di replica MySQL a PostgreSQL scritto in Python 3. Il sistema utilizza la libreria mysql-replication per estrarre le immagini delle righe da MySQL che vengono memorizzate in PostgreSQL come JSONB.
  • PGDeltaStream — Un server web Golang per trasmettere le modifiche di Postgres almeno-una-volta attraverso websocket, utilizzando la funzionalità di decodifica logica di Postgres.
  • repmgr — Il gestore di replica più popolare per PostgreSQL.

Script

Monitoraggio/Statistiche/Performance

  • ASH Viewer — Fornisce una vista grafica dei dati della cronologia delle sessioni attive all'interno dei database Oracle e PostgreSQL.
  • Monyog — Strumento di monitoraggio MySQL senza agenti e conveniente.
  • mssql-monitoring — Monitora le prestazioni del tuo SQL Server su Linux utilizzando collectd, InfluxDB e Grafana.
  • Navicat Monitor — Uno strumento di monitoraggio remoto sicuro, semplice e senza agenti, ricco di potenti funzionalità per rendere il tuo monitoraggio il più efficace possibile.
  • Percona Monitoring and Management — Piattaforma open source per gestire e monitorare le prestazioni di MySQL e MongoDB.
  • pganalyze collector — Collettore di statistiche Pganalyze per raccogliere metriche e dati di log di PostgreSQL.
  • postgres-checkup — Strumento diagnostico di nuova generazione che consente agli utenti di analizzare a fondo la salute dei database Postgres.
  • postgres_exporter — Esportatore Prometheus per metriche del server PostgreSQL.
  • pgDash — Misura e traccia ogni aspetto dei tuoi database PostgreSQL.
  • PgHero — Un cruscotto di prestazioni per Postgres — controlli di salute, indici suggeriti e altro.
  • pgmetrics — Raccoglie e visualizza informazioni e statistiche da un server PostgreSQL in esecuzione.
  • pgMustard — Un'interfaccia utente per i piani di spiegazione di Postgres, con suggerimenti per migliorare le prestazioni.
  • pgstats — Raccoglie statistiche PostgreSQL, e le salva in file CSV o le stampa su stdout.
  • pgwatch2 — Soluzione di monitoraggio/cruscotto PostgreSQL flessibile e autonoma.
  • Telegraf PostgreSQL plugin — Fornisce metriche per il tuo database Postgres.

Zabbix

  • Mamonsu — Agente di monitoraggio per PostgreSQL.
  • Orabbix — Orabbix è un plugin progettato per funzionare con Zabbix Enterprise Monitor per fornire monitoraggio multi-livello, reportistica e misurazioni delle prestazioni e disponibilità per i database Oracle, insieme a metriche di prestazioni del server.
  • pg_monz — Questo è il template di monitoraggio Zabbix per il Database PostgreSQL.
  • Pyora — Script Python per monitorare i database Oracle.
  • ZabbixDBA — ZabbixDBA è un plugin veloce, flessibile e in continuo sviluppo per monitorare il tuo RDBMS.

Testing

  • DbFit — Un framework di test per database che supporta uno sviluppo semplice basato su test del codice del tuo database.
  • RegreSQL — Testing di regressione delle tue query SQL.

Generatore di dati

Amministrazione

  • pgbadger — Un veloce analizzatore di log per PostgreSQL.
  • pgbedrock — Gestisci i ruoli, le membra, la proprietà degli schemi e i privilegi di un cluster Postgres.
  • pgslice — Partizionamento Postgres facile come la torta.

HA/Failover/Sharding

  • Citus — Estensione Postgres che distribuisce i tuoi dati e le tue query su più nodi.
  • patroni — Un template per la disponibilità alta di PostgreSQL con ZooKeeper, etcd o Consul.
  • Percona XtraDB Cluster — Una soluzione ad alta scalabilità per il clustering MySQL e la disponibilità alta.
  • stolon — Gestore PostgreSQL cloud native per la disponibilità alta di PostgreSQL.
  • pg_auto_failover — Estensione e servizio PostgreSQL per failover automatico e alta disponibilità.
  • pglookout — Monitoraggio della replica PostgreSQL e demone per il failover.
  • PostgreSQL Automatic Failover — Disponibilità alta per Postgres, basata su riferimenti industriali come Pacemaker e Corosync.
  • postgresql_cluster — Cluster PostgreSQL ad alta disponibilità (basato su 'Patroni' e 'DCS(etcd)'). Automazione del deployment con Ansible.
  • Vitess — Sistema di clustering per database per la scalabilità orizzontale di MySQL attraverso lo sharding generalizzato.

Kubernetes

  • KubeDB — Rendere facile il funzionamento di database di produzione su Kubernetes.
  • Postgres operator — Il Postgres Operator consente cluster PostgreSQL altamente disponibili su Kubernetes (K8s) alimentati da Patroni.
  • Spilo — Cluster HA PostgreSQL con Docker.
  • StackGres StackGres

Ottimizzazione della configurazione

DevOps

Campioni di schema

Reportistica

  • Poli — Applicazione di reporting SQL facile da usare, costruita per gli amanti di SQL.

Distribuzioni

  • DBdeployer — Strumento che distribuisce facilmente server database MySQL.
  • dbatools — Modulo PowerShell che puoi considerare come un SQL Server Management Studio da linea di comando.
  • Postgres.app — Installazione PostgreSQL completa confezionata come un'app standard per Mac.
  • BigSQL — Una distribuzione di Postgres amichevole per gli sviluppatori.
  • Elephant Shed — Front-end di gestione PostgreSQL basato sul web che unisce diversi utilità e applicazioni per l'uso con PostgreSQL.

Sicurezza

  • Acra — Suite di sicurezza per database. Proxy per database con crittografia a livello di campo, ricerca attraverso dati crittografati, prevenzione delle iniezioni SQL, rilevamento delle intrusioni, honeypots. Supporta la crittografia lato client e lato proxy ('trasparente'). SQL, NoSQL.

Formatter di codice

  • CodeBuff — Pretty-printing indipendente dal linguaggio tramite apprendimento automatico.

Contribuire

Ci sono trovare per DB – condividete. Sono inoltre felice di ricevere feedback – PR e stelle. Per qualsiasi domanda sulla creazione dei propri elenchi – scrivete pure.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster