Awesome-ліст сваімі рукамі, або GitHub замест нататніка
Прывітанне, Хабр! Мусіць, у кожнага з нас ёсць такі файлік, куды мы прыхоўваем нешта карыснае і цікавае для сябе. Нейкія спасылкі на артыкулы, кнігі, рэпазітары, мануалы. Гэта могуць быць закладкі ў браўзэры ці нават проста адчыненыя ўкладкі, пакінутыя на потым. З часам усё гэта набракае, спасылкі перастаюць адкрывацца, а большая частка матэрыялаў проста састарваецца.
А што калі падзяліцца гэтай прыдатнасцю з супольнасцю і выкласці гэты файлік на гітхаб? Тады вашыя працы могуць быць карысныя яшчэ каму-небудзь, а падтрымліваць актуальнасць можна сумесна, прымаючы абнаўленні ад жадаючых праз старыя добрыя PR'ы. Менавіта для гэтага прызначаны праект Awesome lists. Ён уваходзіць у ТОП-10 рэпазітараў гітхаба, валодае 138К зорак, і спасылка на вашу працу можа апынуцца прама ў яго каранёвым README, што прыцягне велізарную аўдыторыю да вашай творчасці. Праўда, для гэтага давядзецца крыху пастарацца. Аб маім вопыце такіх старанняў хачу падзяліцца з вамі.
Мяне клічуць Максім Грамін. У КРОК займаюся Java-распрацоўкай і даследаваннямі ў вобласці БД. У гэтым пасце я раскажу, што такое Awesome Lists і як зрабіць свой сапраўдны афіцыйны awesome-рэпо.
Што такое Awesome Lists
Калі мне трэба будзе разабрацца з якой-небудзь новай тэхналогіяй ці мовай праграмавання, то я перш за ўсё іду менавіта сюды - знаходжу патрэбны раздзел, а ў ім прыдатныя лісты. І судзячы па колькасці зорак і іх сталаму росту, так раблю не толькі я.
Насамрэч - гэта звычайны плоскі readme.md, які жыве ў асобным рэпазітары, займае пры гэтым 8-е месца сярод усіх рэпазітараў GitHub'а і ўключае спасылкі на іншыя лісты, прысвечаныя якой-небудзь тэматыцы. Напрыклад у раздзеле Programming Languages можна знайсці лісты Awesome Python і Awesome Go, а ў Front-End Development ёсць вялікая колькасць рэсурсаў па WEB-распрацоўцы. Ну і, вядома ж, - раздзел Базы дадзеных (Да яго мы яшчэ вернемся крыху пазней). І так, усё гэта не абмяжоўваецца толькі тэхнічнымі тэмамі. Напрыклад, у раздзелах Entertainment і Gaming таксама можна знайсці шмат чаго цікавага (мяне асабіста парадаваў awesome-fantasy).
Галоўная асаблівасць заключаецца ў тым, што ўсе гэтыя лісты вядуцца не асабіста аўтарам, а супольнасцю і складзены ў адпаведнасці са спецыяльным і вельмі строгім. awesome manifesto. Кожны такі ліст з'яўляецца самастойнай супольнасцю адмыслоўцаў, жыве сваім жыццём і адчынены для вашых pull request'ов, якія зробяць яго яшчэ лепш. А таксама любы ахвочы можа зрабіць свой уласны ліст, калі нейкая тэма яшчэ не была асветлена.
Аўтар ідэі і каардынатар усёй гэтай гаспадаркі - легендарны Сіндрэ Сорхус, першы чалавек на GitHub'е, аўтар больш 1000 npm-модуляў, і менавіта ён будзе прымаць вашыя PR-ы.
Як патрапіць у awesome-list
Калі раптам вы не знайшлі падыходнага ліста на цікавую для вас тэму, то гэта першая прыкмета таго, што яго трэба зрабіць самому!
Раскажу на прыкладзе свайго стварэння Awesome Database Tools — З праекту ў праект мне даводзіцца працаваць з самымі рознымі базамі дадзеных, і таму ў мяне завёўся такі файлік, у якім я збіраў карысныя тулзы для працы з імі, усякія БД-мігратары, IDE-шкі, адмін-панэлі, сродкі маніторынгу і ўсякае. рознае. Інструменты, якія я ўжо выкарыстоўваў, ці толькі планаваў пачаць прымяняць. Дзяліўся я гэтым файлікам з калегамі ў КРОК і за яго межамі. Гэта шмат каму дапамагала і было цікава. У выніку я захацеў славы большага, калі аднойчы заўважыў, што ў раздзеле Databases якраз няма ліста на гэтую тэму. І я вырашыў дадаць туды свой.
Што для гэтага трэба?
Рэгіструем звычайны GitHub-рэпо з імем выгляду awesome-нешта-там. У маім выпадку гэта быў awesome-database-tools
Прыводзім свой ліст да фармату awesome, у гэтым нам дапаможа generator-awesome-list, які згенеруе ўсе патрэбныя файлы ў патрэбным фармаце
Наладжваем самы сапраўдны CI. awesome-lint і travis ci дапамогуць нам кантраляваць валіднасць нашага ліста
Чакаем 30 дзён
Які робіцца рэўю як мінімум на 2 чужых PR'а
І нарэшце робім PR у галоўнае РЭПО, куды дадаем спасылку на сваё РЭПО. Тут трэба ўважліва ўсё прачытаць і старанна выканаць усе шматлікія патрабаванні да новага ліста і самому PR.
Але прайшло крыху часу, я сабраў яшчэ больш матэрыялу, папрацаваў над памылкамі і адважыўся на другую спробу.
Але я забыўся пра вельмі важную рэч, пра што мне мякка намякнулі:
Я быў не вельмі ўважлівы і не дадаў аднарога ў знак пацверджання таго, што ўсе ўмовы выкананы
Затым прайшло яшчэ крыху часу, яшчэ крыху правак па заўвагах, і з'явіўся доўгачаканы твіт, Што мой PR быў прыняты.
Так я стаў аўтарам свайго першага ліста, і мне сталі прыходзіць PR'ы з супольнасці на даданне новых тулзаў. І многія з іх ужо ўключаны ў Awesome Database Tools. Калі лянота пераходзіць па спасылцы,
вось актуальная на момант публікацыі паста падборка
Awesome Database Tools
Driver Community list of database tools
Тут будуць ахоўваць інфармацыю аб неверагодных функцыйных і неверагодных experimentálníх інструментах, якія няпроста робяцца з データベースамі для DBA, DevOps, Developers and mere mortals.
Дастатковыя для атрымання інфармацыі аб вашым уласных db-tools або вашы творы third-party db-tools.
dbForge Studio for SQL Server - Powerful integrated development environment for SQL Server development, management, administration, data analysis, and reporting.
dbKoda - Modern (JavaScript / Electron framework), Open Source IDE для MongoDB. Гэта мае магчымасці для развіцця развіцця, кіравання і вызначэння tuning на MongoDB databases.
IBExpert - Comprehensive GUI tool for Firebird and InterBase.
HeidiSQL - A lightweight client для кіравання MySQL, MSSQL і PostgreSQL, written in Delphi.
Варштат mysql - MySQL Workbench з'яўляецца пастаўленым інструментам Visual Database architects, developers, and DBAs.
Навікат — Аб'явы ў сістэме развіцця 데이터베이스, якія могуць выкарыстоўвацца адначасова з MySQL, MariaDB, SQL Server, Oracle, PostgreSQL і SQLite databases from a single application.
Распрацоўшчык Oracle SQL — Oracle SQL Developer is a free, integrated development environment that simplifies the development and management of Oracle Database in both traditional and Cloud deployments.
pgAdmin — Найбуйнейшая і найвялікшая рэчаісная адукацыя Open Source і развіццё платформы для PostgreSQL, вялікае новае Source Source Database in the world.
PL / SQL Developer - IDE, якое лічыцца specifical targeted at development of stored program units for Oracle Databases.
PostgreSQL Maestro - Complete and powerful database management, admin and development tool for PostgreSQL.
Жаба - Прадугледжана гэта папярэдняя праграма абмену прадуктамі для разработчиков, admins and data analysts. Сістэма менеджменту комплекснага абмену метадамі з цэлым метадам менеджменту менеджменту.
Toad Edge - Simplified database development tool for MySQL and Postgres.
TOra - TOra is an open source SQL IDE для Oracle, MySQL і PostgreSQL dbs.
Студыя Валянціны - Create, administer, query and explore Valentina DB, MySQL, MariaDB, PostgreSQL і SQLite databases for FREE.
GUI Managers/Clients
Адміністратар - Database management in a single PHP file.
DbVisualizer - Universal database tool for developers, DBAs and analysts.
HouseOps - Enterprise ClickHouse Ops UI для вашых трэніровак, маніпуляцыя ClickHouse фізічных асоб і для большасці іншых думак.
JackDB - Direct SQL access to all your data, no matter where it lives.
Працяг Pro - Sequel Pro з'яўляецца простым, добрым спосабам выкарыстання Mac Database Management application for working with MySQL & MariaDB databases.
SQL Operations Studio — A data management tool that enable working with SQL Server, SQL Server DB and SQL DW from Windows, macOS and Linux.
Эксперт па SQLite - Graphical interface supports all SQLite features.
sqlpad - Web-based SQL editor run in your own private cloud.
SQLPro - A simple, powerful Postgres manager for macOS.
SQuirreL — Graphical SQL client разгортваецца ў Java, што можа адпавядаць вам структуру JDBC Compliant Database, распрацоўваць data ў tables, issue SQL commands etc.
sqlcl - Oracle SQL Developer Command Line (SQLcl) з'яўляецца свабодным сістэмным інтэрфейсам для Oracle Database.
usql - A Universal Command-Line Interface for PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, and many other databases including NoSQL and non-relational databases!
dbcli
athenacli — AthenaCLI з'яўляецца CLI інструментам для AWS Athena сэрвісу, які можа ажыццявіць аўта-complementation і syntax highlighting.
litecli - CLI для SQLite Databases with auto-completion and syntax highlighting.
mssql-cli - Command-line client для SQL Server with auto-completion and syntax highlighting.
міклі - A Terminal Client для MySQL з AutoCompletion and Syntax Highlighting.
pgcli - Postgres CLI with autocompletion and syntax highlighting.
vcli - Vertica CLI with auto-completion and syntax highlighting.
DB-schema navigation and visualization
dbdiagram.io — Рэзюмэ: Quick and simple tool for help you draw your database relationship diagrams and flow quickly using simple DSL language.
SchemaCrawler - A free database schema discovery and comprehension tool.
Schema Spy - Generating your database to HTML documentation, including Entity Relationship diagrams.
tbls - CI-Friendly tool for document a database, written in Go.
Modelers
Мадэлятар дадзеных Navicat — А патэнцыйным і cost-effective database дызайн інструментаў, якія выкарыстоўваюць вашу будову высокага якасці conceptual, logical and physical data models.
Oracle SQL Developer Data Modeler — Oracle SQL Developer Data Modeler з'яўляецца бясплатным графічным інструментам, які спрыяе прадукту вытворчасьці і simplifies data modeling tasks.
pgmodeler - Data modeling tool designed for PostgreSQL.
Migration tools
2bass - Database configuration-as-code Tool, які выкарыстоўвае канцэпцыю idempotent DDL scripts.
node-pg-migrate - Node.js database migration management built exclusively for postgres. (Быць можа быць выкарыстаны для іншых DBs, якія вызначаюць SQL standard — eg CockroachDB.)
Pyrseas - Provides utilities to describe ў PostgreSQL database schema as YAML.
SchemaHero - A Kubernetes абаронцы для дэкаратыўных метадаў праграмы кіравання (gitops for database schemas).
Sqitch Sensible database-native change management for framework-free development and dependable deployment.
yuniql — Ідзе яшчэ адна сістэма versioning і migration інструментаў just made with native .NET Core 3.0+ and hopefully better.
scheme2ddl — Command line util for export Oracle schema to set of ddl init scripts with ability to filter undesirable information, separate DDL in different files, pretty format output.
абгортак
Фабрыка сноў - А Open source REST API backend для мабільных, вэб, і IoT applications.
Hasura GraphQL Engine - Blazing fast, instant realtime GraphQL APIs на Postgres з добрым патэнцыйным access control, а таксама trigger webhooks on database events.
mysql_fdw - PostgreSQL foreign data wrapper for MySQL.
Oracle REST Data Services — На аснове Java application, ORDS maps HTTP(S) verbs (GET, POST, PUT, DELETE, etc.) да databázаў трансакцый і адваротных any results formatted using JSON.
Prisma - Prisma turns your database into a realtime GraphQL API.
pg_chameleon — MySQL для PostgreSQL repplication system written in Python 3. Сістэма выкарыстоўвае library mysql-replication для запуску роўных малюнкаў з MySQL, якія знаходзяцца ў PostgreSQL як JSONB.
PGDeltaStream — A Golang webserver для Stream Postgres changes atleast-once over websockets.
repmgr - The Most Popular Replication Manager для PostgreSQL.
Scripts
pgx_scripts — Збор useful little scripts for database analysis and administration, створаны з нашага team у PostgreSQL Experts.
pgsql-bloat-estimation - Queries to mesure statistical bloat in indexes and tables for PostgreSQL.
TPT - Гэтыя sqlplus scripts ёсць для Oracle Database Performance Optimization & Troubleshooting.
Monitoring/Statistics/Perfomance
ASH Viewer - Вырабляе графічны выгляд актыўныя session history data within Oracle and PostgreSQL DB.
Monyog - Agentless & Cost-effective MySQL Monitoring Tool.
mssql-monitoring - Monitor your SQL Server на Linux распрацоўку выкарыстання калекцый, InfluxDB і Grafana.
Манітор Navicat — Як бяспечны, нядрэнны і неадпаведны remote-server monitoring tool, што packed with powerful features to make your monitoring effective as possible.
pganalyze collector - Pganalyze statistics collector for gathering metrics and log data PostgreSQL.
postgres-checkup - Новая генерацыя diagnostics інструментаў, якія дазваляюць карыстачам, каб выпрабаваць аналітычнай сыстэмы здароўя postgres databases.
postgres_exporter - Prometheus exporter for PostgreSQL server metrics.
pgDash - Measure and track every aspect of your PostgreSQL databases.
PgHero - A performance dashboard for Postgres - здароўе checks, suggested indexes, and more.
pgmetrics - Collect and display information and stats from a running PostgreSQL server.
pgMustard - A user interface for Postgres explain plans, plus tips to improve performance.
pgstats - Collects PostgreSQL статыстыка, і яе захоўваць іх у CSV файлах або print them on the stdout.
Orabbix — Orabbix is plugin designed to work with Zabbix Enterprise Monitor to provide multi-tiered monitoring, performance and availability reporting and measurement for Oracle Databases, along with server performance metrics.
pg_monz - Гэта з'яўляецца Zabbix маніторынгу template для PostgreSQL Database.
Pyora - Python script to monitor Oracle Databases.
ZabbixDBA — ZabbixDBA з'яўляецца хуткім, flexibility, і прызнана развіццю plugin для кіравання вашым RDBMS.
Тэставанне
DbFit — A database testing framework, які выкарыстоўвае магчымасць тэст-дырывен развіцця вашага database code.
StackGres - Enterprise-grade, Full Stack PostgreSQL on Kubernetes.
Configuration Tuning
MySQLTuner-perl — Script written in Perl, што дазваляе вам меркаваць аб MySQL installation quickly and make adjustments to increase performance and stability.
PGConfigurator - Free online tool to generate an optimized postgresql.conf.
Ёсць знаходкі для БД - дзяліцеся. Таксама буду рады атрымаць зваротную сувязь - PR'ы і зорачкі. Засталіся пытанні па стварэнні сваіх лістоў - таксама пішыце.