Книги для программистов
55.1K subscribers
1.36K photos
283 videos
24 files
1.23K links
Книги по программированию, библиотека электронных книг для разработчиков.


По всем вопросам @evgenycarter

РКН clck.ru/3Ko9cz
Download Telegram
Xplorer - это красивый файловый менеджер, созданный с нуля для полной настройки.

• Работает на Windows, GNU/Linux и MacOS.
• Поддерживает предварительный просмотр не только изображений или документов, но и видео

#GitHub | #TypeScript #File

👉 @Githublib
🔥15👍5
Media is too big
VIEW IN TELEGRAM
Сравнение размеров игровых миров в сравнении друг с другом | 2021 🗾

#gamedev

👉 @game_devv
👍10🔥2
Как настроить и запустить систему отслеживания измененных данных PostgreSQL

PostgreSQL предлагает метод логического декодирования и делает возможным сбор данных об изменениях на основе логирования. Вы сможете настроить и запустить CDC в несколько шагов.

Архитектура современных веб-приложений состоит из нескольких программных компонентов, таких как информационные панели (дашборды), аналитические системы, базы данных, озёра данных (Data Lakes), кэшевые хранилища, функции поиска и т.д.

Статья rus

Статья eng


#PostgreSQL

👉 @database_info
👍12🔥1👏1
Modern Python Cookbook: 133 recipes to develop flawless and expressive programs in Python 3.8
Автор: Steven F. Lott (2020)

Знакомя с Python с помощью серии простых рецептов, эта книга дает представление о конкретных фичах языка в конкретных задачах. Наличие контекста помогает облегчить понимание языка и стандартной библиотеки.

Во время чтения книги вы:
✔️Изучите сложные детали синтаксиса Python и способы его использования в ваших интересах;
✔️Научитесь эффективно управлять данными с помощью встроенных структур;
✔️Познакомитесь с передовыми методами программирования на Python;
✔️Интегрируете прикладное программное обеспечение с помощью Python;
✔️Напишите тесты, чтобы убедиться, что программа работает так, как планировалось.

Скачать книгу
👍8💩1
Forwarded from React
Как работает хук useInsertionEffect в React 18

CSS-in-JS библиотеки генерируют стили на лету и вставляют их в документ. Для этих библиотек важно знать, в какой момент можно вставлять теги <style> в документ, т.к. это может повлиять на производительность.

При добавлении или удалении CSS правил браузер пересчитывает стили у всех элементов. Для того чтобы избежать лишнего пересчета стилей для элементов на странице при изменении CSS правил, необходимо изменять их одновременно с другим изменением DOM, например, когда React мутирует DOM, перед чтением макета (например clientWidth) и до отрисовки в браузере.

Для того, чтобы добиться такого поведения, можно использовать хук useInsertionEffect. По сигнатуре он похож на useEffect, но он запускается синхронно перед изменениями DOM.

Внутри хука можно изменять глобальные DOM элементы, такие как <style> или <defs>. Он запускается перед хуком useLayoutEffect. Основное предназначение данного хука – изменение стилей в CSS библиотеках.

function useCSS(rule) {
useInsertionEffect(() => {
if (!isInserted.has(rule)) {
isInserted.add(rule);
document.head.appendChild(getStyleForRule(rule));
}
});
return rule;
}
function App() {
let className = useCSS(rule);
return <div className={className} />;
}


https://blog.saeloun.com/2022/06/02/react-18-useinsertioneffect

✍️ @React_lib
👍11
Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook
Автор: Workman Publishing (2020)

В этой книге вы найдете все ключевые понятия, приемы, определения, диаграммы и рисунки, которые помогут вам понять информатику. Подходит для абсолютных новичков и детей.

Темы в книге:
✔️Вычислительные системы;
✔️Бинарный код;
✔️Алгоритмы;
✔️Циклы, события и процедуры;
✔️Программирование на Scratch и Python;
✔️Логические выражения;
✔️Веб-разработка;
✔️Безопасность;
✔️HTML, CSS;
✔️И другие.

Скачать книгу
👍12👎3
Forwarded from Node JS
Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации

Интро: почему я написал эту статью

Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется своя уникальная страница, на которой в зависимости от запроса может присутствовать блок Картинок, Карты, Переводчик, видеоплеер и многие другие компоненты. Все они должны запускаться и работать в памяти обычных бюджетных телефонов, которые использует большинство наших пользователей. Браузерам должно хватать ресурсов, чтобы пользователь не видел вот такого.

✍️ @nodejs_lib
👍10💩1
Forwarded from React
React Hooks: useState

Хук useState() предназначен для управления состоянием компонента. Данная функция возвращает пару геттер/сеттер - значение начального состояния и функцию для обновления этого значения. Функцию имеет следующую сигнатуру: const [value, setValue] = useState(defaultValue).

Обновление одного состояния

const UpdateState = () => {
const [age, setAge] = useState(19)

const handleClick = () => setAge(age + 1)

return (
<>
<p>Мне {age} лет.</p>
<button onClick={handleClick}>Стать старше!</button>
</>
)
}



Обновление нескольких состояний

const MultipleStates = () => {
const [age, setAge] = useState(19)
const [num, setNum] = useState(1)

const handleAge = () => setAge(age + 1)
const handleNum = () => setNum(num + 1)

return (
<>
<p>Мне {age} лет.</p>
<p>У меня {num} братьев и сестер.</p>
<button onClick={handleAge}>Стать старше!</button>
<button onClick={handleNum}>Больше братьев и сестер!</button>
</>
)
}



Обновление объекта состояния

const StateObject = () => {
const [state, setState] = useState({ age: 19, num: 1 })

const handleClick = (val) =>
setState({
...state,
[val]: state[val] + 1
})

const { age, num } = state
return (
<>
<p>Мне {age} лет.</p>
<p>У меня {num} братьев и сестер.</p>
<button onClick={() => handleClick('age')}>Стать старше!</button>
<button onClick={() => handleClick('num')}>
Больше братьев и сестер!
</button>
</>
)
}



Счетчик

const CounterState = () => {
const [count, setCount] = useState(0)

return (
<>
<p>Значение счетчика: {count}.</p>
<button onClick={() => setCount(0)}>Сбросить</button>
<button onClick={() => setCount((prevVal) => prevVal + 1)}>
Увеличить (+)
</button>
<button onClick={() => setCount((prevVal) => prevVal - 1)}>
Уменьшить (-)
</button>
</>
)
}



Более сложный пример

const Profile = () => {
const [profile, setProfile] = useState({
firstName: 'Иван',
lastName: 'Петров'
})

const handleChange = ({ target: { value, name } }) => {
setProfile({ ...profile, [name]: value })
}

const { firstName, lastName } = profile
return (
<>
<h1>Профиль</h1>
<form>
<input
type='text'
value={firstName}
onChange={handleChange}
name='firstName'
/> <br />
<input
type='text'
value={lastName}
onChange={handleChange}
name='lastName'
/>
</form>
<p>
Имя: {firstName} <br />
Фамилия: {lastName}
</p>
</>
)
}

✍️ @React_lib
👍14👎1🤯1
Как в С++ обрабатывать ошибки в конструкторах без исключений?

Преимущества использования исключений сомнительны, но мои претензии к ним не в этом. Исключения — экстраординарный инструмент, которые делает код более непонятным и запутанным. А прямую локальную обработку — слишком пространной. Исключения стали для меня худшим средством обработки ошибок. Печально, что создание объектов в С++ основано на их применении. Далее

#cpp #programming

👉 @cpp_lib
👎11👍8
Веб-приложение на Golang для чтения и записи данных в JSON файл

Golang предлагает мощные инструменты для создания веб-серверов.В Golang вы можете создавать веб-серверы, с разными адресами, разными типами запросов и разными типами контента. Для веб-разработки основными пакетами стандартной библиотеки являются net/http и html/template. Используя эти два пакета, вы можете создавать полнофункциональные веб-приложения.

👉 @golang_lib
👍5
Web Security for Developers
Автор: Malcolm McDonald (2020)

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

Во время чтения книги вы:
✔️Изучите защиту от атак с использованием SQL-инъекций, вредоносного кода JavaScript и подделки межсайтовых запросов;
✔️Добавите аутентификацию и контроль доступа к форме для защиты учетных записей;
✔️Сможете блокировать учетные записи пользователей, чтобы предотвратить атаки, основанные на угадывании паролей, краже сеансов и т.д.;
✔️Внедрите шифрование;
✔️Научитесь управлению уязвимостями в устаревшем коде.

Скачать книгу
👍11
Forwarded from React
Пример использования useDeferredValue

Дэн Абрамов поделился примером использования хука useDeferredValue из React 18:

function Form() {
const [state, setState] = useState({ value: "hello" })
const deferredState = useDeferredValue(state)
// ...


Используйте deferredState в компонентах, рендер которых не срочный: например, вычисление сложной логики. Это поведение напоминает debounce. Использовать state напрямую можно в элементах пользовательского ввода, например, input.

✍️ @React_lib
👍7💩3🔥1
Deep Learning Interviews
Автор: Shlomo Kashani, Amir Ivry (2020)

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

✔️Сотни полностью решенных задач;
✔️Проблемы из многих областей глубокого обучения;
✔️Понятные схемы и иллюстрации;
✔️Исчерпывающий указатель;
✔️Пошаговые решения задач;
✔️Не только ответы, но и показанные работы и доказательства, если необходимо.

Скачать книгу
👍61
Forwarded from BigData
This media is not supported in your browser
VIEW IN TELEGRAM
EigenGAN

TensorFlow implementation of EigenGAN: Layer-Wise Eigen-Learning for GANs

Github: https://github.com/LynnHo/EigenGAN-Tensorflow

Paper: https://arxiv.org/abs/2104.12476v1

👉 @bigdata_1
👍7👎2
Forwarded from Node JS
Как мы преобразовали нашу библиотеку Node.js в Deno (с помощью Deno)

https://www.edgedb.com/blog/how-we-converted-our-node-js-library-to-deno-using-deno

✍️ @nodejs_lib
💩3👎2👍1
Forwarded from Node JS
Создание многопользовательской игры с использованием Socket. io при помощи NodeJS и React

Это руководство детально объясняет, как ПРАВИЛЬНО создать пошаговую многопользовательскую игру при помощи Socket. io и React. Здесь будет рассмотрено как создание серверной части проекта при помощи ExpressJS, так и клиентской с помощью ReactJS.

✍️ @nodejs_lib
👍6
Структурированное логирование JSON в приложениях на Golang

Что такое «структурированное логирование»?

Ведение журнала, или логирование — очень важная часть программного обеспечения. Логи нужны для отслеживания того, что происходит в системах, и по мере роста последних важность логов только увеличивается.

Есть много отличных инструментов для парсинга логов. Мне, например, очень нравится ElasticSearch. Но большинство из них рассчитано на структурированные логи, а не на двоичные большие объекты с обычным текстом (и не факт, что эти объекты записаны в нужном формате). Далее

👉 @golang_lib
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
​Pyxel - это игровой движок для Python в стиле ретро.


Благодаря своей простоте, вдохновленной старыми игровыми консолями (например, палитра состоит всего из 16 цветов, и только 4 звука могут быть проиграны одновременно), вы можете легко создавать игры в стиле пиксель-арт.

#GitHub | #Cpp #engine

👉 @Githublib
👍24👎2🔥2
Forwarded from Node JS
События в Node.js

Подавляющее большинство функционала Node.js применяет асинхронную событийную архитектуру, которая использует специальные объекты - эмиттеры для генерации различных событий, которые обрабатываются специальными функциями - обработчиками или слушателями событий. Все объекты, которые генерируют события, представляют экземпляры класса EventEmitter. Далее

✍️ @nodejs_lib
👍8