Telegram Web
Милее шпаргалок по Git трудно будет найти

В этих милейших гайдах вы сможете разобраться, как работают несколько популярных команд в Git: merge, rebase, pull, push, cherry-pick и log.

#git
А вот и вторая часть про конвейер DevOps

В первой части мы разбирались, как развернуть собственное облако с помощью KVM и libvirt.

Теперь Олег Филон расскажет, как выбрать ВМ и настроить облака с помощью Fedora Core и инструмента mise. В статье вы узнаете об особенностях FreeBSD, Fedora Core и о том, как же правильно настроить Fedora Core сервер для команды разработчиков.

https://tprg.ru/4HER

#devops #linux #fedora
Forwarded from Веб-страница
Что такое прототипные методы в JavaScript

Давайте сегодня разберем одну из ключевых концепций в JavaScript — прототипные методы. Что это такое и какую роль они играют в нашем коде?

В JavaScript каждое значение имеет прототип — объект, от которого оно «унаследует» свойства и методы. Это позволяет создавать структуры, которые могут делиться функциональностью. Прототипы помогают избежать дублирования кода и облегчить его поддержку.

Как работают прототипные методы?

Когда мы создаем объект, он может использовать методы, определенные в его прототипе. Например, у всех объектов, созданных на основе Array, есть общие методы, такие как .push() и .pop(). Эти методы определены в Array.prototype. Если вы не знаете, что такое prototype, подумайте о нем как о шаблоне для создания объектов.

Давайте рассмотрим простой пример. Мы создадим конструктор для объекта Person и добавим метод greet в его прототип:

function Person(name) {
this.name = name;
}
// Добавляем метод greet в прототип Person
Person.prototype.greet = function() {
console.log(`Привет, меня зовут ${this.name}!`);
};
// Создаем нового человека
const alice = new Person('Алиса');
const bob = new Person('Боб');
// Вызываем метод greet
alice.greet(); // Привет, меня зовут Алиса!
bob.greet(); // Привет, меня зовут Боб!


В этом примере метод greet не дублируется для каждого отдельного объекта, а хранится в прототипе. Это экономит память и делает код более организованным.

Использование прототипов полезно по нескольким причинам:

1. Экономия памяти. Методы хранятся в одном месте, а не копируются в каждый объект.
2. Упрощение кода. Легче добавлять, изменять и удалять методы.
3. Наследование. Можно создавать иерархии объектов, где один объект наследует свойства и методы другого.

Если у вас есть вопросы или хотите обсудить тему подробнее, пишите в комментариях!

#простымисловами
Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной

Новички, начиная погружение в бэкенд, сталкиваются с тем, что результаты их работы, как будто, не очень и заметны. Фронтендеры могут показать красивую кнопку, анимацию или целый интерфейс. А вот бэкендерами особо и показать нечего, кроме консоли. Особенно знакомым, которые далеки от разработки и не поймут всю крутость ваших достижений.

Но давайте это исправим? Вадим Ваганов из Газпромбанка рассказал, как визуализировать работу бэкенд-разработчиков, чтобы и похвастаться можно было, и лучше понять как работает ваш код. В статье не только советы, но и разбор ключевых метрик и инструкции по их получению.

#бэкенд
Создаем собственного оператора OpenAI с помощью open source-инструментов

Чтобы сделать своего ИИ-агента, который будет иметь доступ к браузеру, можно воспользоваться Browser Use. Этот фреймворк позволяет сделать это всего в несколько строк Python-кода. При этом он работает с Claude, gpt-4o и Llama 3, а также интегрируется с Gradio для веб-интерфейса.

При этом он исполняется с участием человека для безопасной работы. Вам достаточно сказать ему, что делать и Browser Use выполнит задачу.

#инструменты
10 лучших платформ для создания приложений без единой строчки кода

Если у вас есть крутая идея для проекта, но нет достаточных навыков, то можно воспользоваться и no-code платформой. Так вы сможете реализовать что-то интересное, не откладывая в долгий ящик.

В этой статье мы разобрали 10 таких платформ и рассмотрели их плюсы и минусы:

https://tprg.ru/Bkev

#nocode
Полезный алгоритм для выбора языка программирования. Если стоите в самом начале пути, то поможет вам определиться с выбором. Или не поможет.
Карты высот для пиксельной игры с видом сверху

Небольшой полезный материал для гейм-разработчиков. Автор поделился своим опытом создания карт высот с помощью каналов цвета.

Как это работает и почему круто — в статье.

#gamedev
Правильно составляем ТЗ для разработчика и заказчика

Вместе с Юлией Ходаковой, начальником управления анализа и развития банковских технологий, разобрались, как создать правильное ТЗ. В статье вы узнаете, как подготовить ТЗ, которое не сведет с ума исполнителя и поможет выполнить задачу правильно:

https://tprg.ru/mMIF

#it #советы
Партиционирование данных: что это такое и зачем нужно

Простыми словами, партиционирование — это разбиение больших таблиц на более мелкие части. Такой подход полезен не только аналитикам, но и всем, кто работает с базами данных — он ускоряет работу отчетов и позволяет быстрее получать ответы на запросы.

У нас на сайте появилась статья, в которой вы сможете узнать больше подробностей о партиционировании, способах его реализации и отличиях от шардирования. Вы также увидите, как это работает в разных СУБД. Прочитайте, потому что это та база, которая пригодится каждому: https://tprg.ru/xHb6

#бд #datascience
Forwarded from Метод утёнка
Сегодня отмечаем День Рунета!

7 апреля 1994 года был зарегистрирован национальный домен .ru, что ознаменовало рождение уникального пространства для всех пользователей русскоязычного интернета.

Сегодня домен .ru занимает 7-е место в мире по количеству зарегистрированных сайтов. Самые популярные домены — универсальный .com (156,3 млн сайтов), китайский .cn (19,7 млн) и немецкий .de (17,7 млн).

А с какого сайта началось ваше знакомство с Рунетом? Поделитесь в комментариях!
Пишем стек TCP/IP с нуля: Ethernet, ARP, IPv4 и ICMPv4

Написание собственного стека TCP/IP поначалу может показаться пугающей задачей. И в самом деле, за свой тридцатилетний срок жизни TCP впитал в себя множество спецификаций.

В этой серии статей мы научимся реализовывать минимальный стек TCP/IP пользовательского пространства для Linux. Так мы сможем глубже изучить сетевое и системное программирование.

#сети
Media is too big
VIEW IN TELEGRAM
Как устроены хэш-таблицы

HashSet — это самая популярная структура данных, используемая в программировании. Она позволяет проверять в ней наличие любого элемента за О(1) времени.

В этом видео вы разберетесь, как она устроена и что позволяет ей быстро перебирать массив данных. Вы также узнаете, как модифицировать ее так, чтобы получить хэш-таблицу — структуру данных, хранящую пары ключ-значение. Обе эти структуры данных очень популярны и используются в любом проекте.

А еще на их знание очень часто задают вопросы на собеседовании, поэтому три самых популярных из них также разбираются в этом видео.

#видео #основы #структурыданных
Максимально жизненная демонстрация разницы. Так вы точно не перепутаете на собесе
Как внимательность разработчика спасла Linux от масштабной атаки

Представьте: вы замечаете задержку в 500 мс при подключении по SSH. Мелочь? Но для Андреса Фройнда это стало сигналом тревоги. Он обнаружил, что в библиотеку XZ Utils был внедрён бэкдор, позволяющий злоумышленникам получать удалённый доступ к серверам. Этот код мог скомпрометировать миллионы Linux-систем.

К счастью, благодаря внимательности Фройнда атаку удалось предотвратить. Подробнее о расследовании этой захватывающей истории читайте в статье.
Forwarded from Веб-страница
Что делает код трудным для чтения? Визуальные паттерны сложности

Сегодня мы погрузимся в исследование визуальных паттернов кода, которые заставляют мозг плавиться при попытке прочитать его. Вы узнаете о 8 визуально различимых свойствах, которые помогут программистам любого языка улучшить читаемость кода.

Подробнее: https://habr.com/ru/articles/893820/

#советы
Функции без стека: возможно ли это?

Многие разработчики считают, что вызов функции всегда связан с использованием стека. Однако это не всегда так. В некоторых архитектурах, например, мейнфреймах IBM, функции вызываются без стека: адрес возврата сохраняется в регистре, параметры передаются через регистры, а локальные переменные размещаются в статически выделенной памяти.

Хотите узнать, как это работает и какие существуют альтернативы стеку? Читайте первую часть статьи о вызовах функций, стеке, куче и продолжениях.
2025/05/30 02:55:15
Back to Top
HTML Embed Code: