Перейти к основному содержимому

Таблицы и код

Эта страница демонстрирует различные типы таблиц и блоков кода.


Простые таблицы

Базовая таблица

НазваниеОписаниеСтатус
Проект AОписание проекта A✅ Активный
Проект BОписание проекта B🚧 В разработке
Проект CОписание проекта C❌ Приостановлен

Таблица с выравниванием

ЛевыйЦентрПравыйЧисло
Текст слеваЦентрированныйСправа100
Длинный текст слеваКороткийТекст1,234
ABC5.67

Сложные таблицы

Таблица с различными типами контента

КомпонентКодОписаниеПример
Button<Button />Базовая кнопкаПример
Input<Input type="text" />Поле вводаВажно
Select<Select options={[]} />Выпадающий списокОпционально
Checkbox<Checkbox checked />ФлажокУстарело

Таблица технических характеристик

ХарактеристикаЗначениеЕдиница измеренияПримечание
Размер1024MBМаксимальный размер файла
Скорость150MB/sСкорость передачи данных
Латенция5msСредняя задержка
Пропускная способность10GbpsМаксимальная пропускная способность
Температура45-85°CРабочий диапазон температур

Блоки кода

Простой код без подсветки синтаксиса

Это простой блок кода
без подсветки синтаксиса.
Он отображается как есть.

JavaScript код

// Функция для вычисления факториала
function factorial(n) {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}

// Пример использования
const result = factorial(5);
console.log(`Факториал 5 = ${result}`);

// Асинхронная функция
async function fetchData(url) {
try {
const response = await fetch(url);
const data = await response.json();
return data;
} catch (error) {
console.error('Ошибка при загрузке данных:', error);
throw error;
}
}

Python код

# Класс для работы с пользователями
class User:
def __init__(self, name, email):
self.name = name
self.email = email
self.active = True

def __str__(self):
return f"User(name='{self.name}', email='{self.email}')"

def deactivate(self):
"""Деактивировать пользователя"""
self.active = False
print(f"Пользователь {self.name} деактивирован")

# Создание и использование
user = User("Иван Иванов", "ivan@example.com")
print(user)
user.deactivate()

# Список пользователей
users = [
User("Петр Петров", "petr@example.com"),
User("Мария Сидорова", "maria@example.com"),
User("Алексей Смирнов", "alexey@example.com")
]

# Фильтрация активных пользователей
active_users = [user for user in users if user.active]
print(f"Активных пользователей: {len(active_users)}")

JSON конфигурация

{
"name": "my-project",
"version": "1.0.0",
"description": "Описание моего проекта",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"build": "webpack --mode production"
},
"dependencies": {
"express": "^4.18.0",
"mongoose": "^6.5.0",
"jsonwebtoken": "^8.5.1"
},
"devDependencies": {
"nodemon": "^2.0.19",
"jest": "^28.1.3",
"webpack": "^5.74.0"
},
"author": "Автор",
"license": "MIT"
}

SQL запросы

-- Создание таблицы пользователей
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Создание индекса для быстрого поиска по email
CREATE INDEX idx_users_email ON users(email);

-- Вставка данных
INSERT INTO users (name, email) VALUES
('Иван Иванов', 'ivan@example.com'),
('Петр Петров', 'petr@example.com'),
('Мария Сидорова', 'maria@example.com');

-- Сложный запрос с JOIN
SELECT
u.name,
u.email,
COUNT(o.id) as order_count,
SUM(o.total) as total_spent
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at >= '2023-01-01'
GROUP BY u.id, u.name, u.email
HAVING COUNT(o.id) > 0
ORDER BY total_spent DESC
LIMIT 10;

Bash скрипты

#!/bin/bash

# Скрипт для автоматического деплоя
set -e

PROJECT_DIR="/var/www/myproject"
BACKUP_DIR="/var/backups/myproject"
DATE=$(date +%Y%m%d_%H%M%S)

echo "Начинаем деплой в $DATE"

# Создаем бэкап
echo "Создание бэкапа..."
if [ -d "$PROJECT_DIR" ]; then
sudo cp -r "$PROJECT_DIR" "$BACKUP_DIR/backup_$DATE"
echo "Бэкап создан: $BACKUP_DIR/backup_$DATE"
fi

# Обновляем код
echo "Обновление кода..."
cd "$PROJECT_DIR"
git pull origin main

# Устанавливаем зависимости
echo "Установка зависимостей..."
npm ci --production

# Сборка проекта
echo "Сборка проекта..."
npm run build

# Перезапуск сервиса
echo "Перезапуск сервиса..."
sudo systemctl restart myproject

echo "Деплой завершен успешно!"

Код с выделенными строками

JavaScript с выделением

function calculateSum(numbers) {
let sum = 0; // Эта строка выделена

for (let i = 0; i < numbers.length; i++) {
if (numbers[i] > 0) { // Эти строки
sum += numbers[i]; // также
} // выделены
}

return sum;
}

Python с выделением изменений

def process_data(data):
result = []
for item in data: # Добавлена валидация
if validate_item(item): # Новая проверка
result.append(transform_item(item))

# Сортировка результата
return sorted(result, key=lambda x: x.priority) # Изменена логика сортировки

Инлайн код в таблицах

ФункцияСинтаксисОписание
Maparray.map(fn)Применяет функцию к каждому элементу
Filterarray.filter(fn)Фильтрует элементы по условию
Reducearray.reduce(fn, initial)Сворачивает массив в одно значение
Findarray.find(fn)Находит первый подходящий элемент
Somearray.some(fn)Проверяет наличие подходящих элементов
Everyarray.every(fn)Проверяет соответствие всех элементов

Код в адмонишенах

Полезный совет

Используйте console.log() для отладки:

function debugFunction(data) {
console.log('Input data:', data);
const result = processData(data);
console.log('Result:', result);
return result;
}
Внимание

Избегайте использования eval():

// ❌ Плохо - небезопасно
const result = eval(userInput);

// ✅ Хорошо - безопасно
const result = JSON.parse(userInput);

Многоязычные примеры

Один алгоритм на разных языках

JavaScript

function quickSort(arr) {
if (arr.length <= 1) return arr;

const pivot = arr[Math.floor(arr.length / 2)];
const left = arr.filter(x => x < pivot);
const middle = arr.filter(x => x === pivot);
const right = arr.filter(x => x > pivot);

return [...quickSort(left), ...middle, ...quickSort(right)];
}

Python

def quick_sort(arr):
if len(arr) <= 1:
return arr

pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]

return quick_sort(left) + middle + quick_sort(right)

Java

public static int[] quickSort(int[] arr, int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
return arr;
}

private static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = (low - 1);

for (int j = low; j < high; j++) {
if (arr[j] <= pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}

int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;

return i + 1;
}