Ответ
Да, у меня есть несколько проектов на GitHub. Это в основном пет-проекты, которые я создавал для изучения новых технологий или решения конкретных задач.
Примеры проектов:
- Микросервис для обработки изображений на Go, который интегрируется с S3-хранилищем и предоставляет REST API для ресайза и наложения водяных знаков.
- CLI-утилита на Python для парсинга логов Nginx и генерации отчетов по трафику.
- Веб-приложение-дашборд на React и Node.js для визуализации метрик из Prometheus.
Пример кода из CLI-утилиты (парсер логов):
import re
from collections import defaultdict
from datetime import datetime
class NginxLogParser:
LOG_FORMAT = r'(S+) - - [(.+?)] "(S+) (S+) S+" (d+) (d+)'
def __init__(self, log_path):
self.log_path = log_path
self.requests_by_ip = defaultdict(int)
self.status_codes = defaultdict(int)
def parse(self):
with open(self.log_path, 'r') as f:
for line in f:
match = re.match(self.LOG_FORMAT, line)
if match:
ip, timestamp, method, url, status, size = match.groups()
self.requests_by_ip[ip] += 1
self.status_codes[status] += 1
return self._generate_report()
def _generate_report(self):
return {
'top_ips': dict(sorted(self.requests_by_ip.items(), key=lambda x: x[1], reverse=True)[:5]),
'status_distribution': dict(self.status_codes)
}
Ссылку на профиль могу предоставить.
Ответ 18+ 🔞
А, проекты на GitHub? Ну, бывает, хуй с горы, когда руки чешутся что-то попробовать. В основном это такие пет-проекты, чтобы мозги не закисли, пока учишь какую-нибудь новую технологию или решаешь конкретную задачу, которая в жопу укусила.
Вот, смотри, что было:
- Микросервис на Go для картинок. Сделал, чтобы разобраться, как эта штука работает. Там S3-хранилище, REST API, чтобы ресайзить и водяные знаки лепить — в общем, стандартная история, но самому написать было интересно.
- CLI-утилита на Python для логов Nginx. Родилась из конкретной боли: надо было понять, кто там столько трафика сожрал и что вообще происходит. Написал парсер и генератор отчётов, чтобы глаза не вытекали от чтения сырых логов.
- Веб-дашборд на React и Node.js. Тут просто захотелось визуализировать метрики из Prometheus, чтобы красиво и понятно, а не в консоли тыкаться.
Вот, глянь, кусок кода из того самого парсера логов, чтобы понятно было, о чём речь:
import re
from collections import defaultdict
from datetime import datetime
class NginxLogParser:
LOG_FORMAT = r'(S+) - - [(.+?)] "(S+) (S+) S+" (d+) (d+)'
def __init__(self, log_path):
self.log_path = log_path
self.requests_by_ip = defaultdict(int)
self.status_codes = defaultdict(int)
def parse(self):
with open(self.log_path, 'r') as f:
for line in f:
match = re.match(self.LOG_FORMAT, line)
if match:
ip, timestamp, method, url, status, size = match.groups()
self.requests_by_ip[ip] += 1
self.status_codes[status] += 1
return self._generate_report()
def _generate_report(self):
return {
'top_ips': dict(sorted(self.requests_by_ip.items(), key=lambda x: x[1], reverse=True)[:5]),
'status_distribution': dict(self.status_codes)
}
Ну и ссылку на профиль, если надо, могу кинуть. Там ничего особенного, конечно, но хоть какая-то активность, ёпта.