Как стать автором
Обновить
30.31

Профессиональная литература *

Полезное чтиво

Сначала показывать
Порог рейтинга
Уровень сложности

Две новых книги по Python от американского и российского авторов с промокодом

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 4.6K

Привет, Хабр!  Мы с почином — в блоге SSP SOFT стартует новая рубрика с анонсами выхода книг по программированию и операционным системам от издательства «БХВ-Петербург». Узнав об этой инициативе, издатель подарил всем читателям Хабра специальную скидку по промокоду, который вы найдете в тексте. Начнем рубрику, пожалуй, с пары новых книг про Python, которые вышли за последний месяц. Ревью книг — не копия текста с сайта издательства, а сугубо наше мнение, после прочтения.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 8

Новости

Как потерять управление оболочкой… Расследование

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 2.6K

image


Несколько недель назад я занимался хаком языковых серверов в Zed, пытаясь заставить Zed определять, когда заданный бинарник языкового сервера, например gopls, уже присутствует в $PATH. Если так, вместо загрузки нового бинарника Zed должен использовать его.


Трудность: часто $PATH динамически изменяется такими инструментами, как direnv, asdf, mise и другими, которые позволяют в данной папке установить определённый $PATH. Почему эти инструменты так делают? Потому что это даёт возможность, скажем, в начале $PATH добавить ./my_custom_binaries, пока вы находитесь в my-cool-project. Поэтому нельзя просто использовать $PATH, связанный с процессом Zed, нужен $PATH, как он есть, когда выполняется cd в каталог проекта.


Легко, подумал я. Просто запусти $SHELL, выполни cd в проект, чтобы запустить direnv и всё такое, запусти env, сохрани окружение, выбери $PATH, найди в нём бинарники. И это было легко. Вот часть кода, та часть, которая запускает $SHELL, cd и получает env:


fn load_shell_environment(dir: &Path) -> Result<HashMap<String, String>> {
    // Получает $SHELL
    let shell = std::env::var("SHELL")?;

    // Конструирует команду, которую хочется выполнить в $SHELL
    let command = format!("cd {:?}; /usr/bin/env -0;", dir);

    // Запускает $SHELL как интерактивную оболочку (чтобы использовались файлы пользователя rc).
    // и выполняет `command`:
    let output = std::process::Command::new(&shell)
        .args(["-i", "-c", &command])
        .output()?;

    // [... проверка кода выхода, получение stdout, превращение stdout в HashMap и т. д. ...]
}

За исключением одного: после запуска экземпляра Zed в терминале, который выполнял эту функцию, я больше не мог убить Zed, нажав Ctrl-C.

Что?
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 8

Методы декомпозиции функциональности приложения

Уровень сложности Средний
Время на прочтение 2 мин
Количество просмотров 533

Одной из важных стадий формирования UX (User experience) диджитал-продукта является релиз MVP (Minimal Viable Product, он же минимально жизнеспособный продукт). Эта такая версия вашего приложения или программы, которая подразумевает минимальное количество реализованных в продукте функций, достаточное при этом для формирования пользовательского опыта и фидбека. Это помогает понять, устраивают ли пользователей имеющиеся функции и как его улучшить.

Однако даже после выделения MVP оставшиеся функции могут оказаться многосоставными - раскладывающимися на более мелкие. Отличный метод декомпозиции функциональности — картирование пользовательских историй (User Story Mapping).

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Книга «Грокаем Continuous Delivery»

Время на прочтение 10 мин
Количество просмотров 9.8K
image

Привет, Хаброжители!

Код должен быть готов к релизу всегда!

Пайплайн Continuous Delivery автоматизирует процессы контроля версий, тестирования и развертывания при минимальном вмешательстве разработчика. Освойте инструменты и методы непрерывной доставки, и вы сможете быстро и последовательно добавлять функции и выпускать обновления.

«Грокаем Continuous Delivery» — это руководство по настройке и работе с пайплайном непрерывной доставки. В каждой главе рассматривается отдельный сценарий, с которым вы столкнетесь при создании системы CD, и приводятся реальные примеры, например автоматическое масштабирование и тестирование унаследованных приложений. Кристи Уилсон сопровождает каждый шаг иллюстрациями, кристально четкими объяснениями и практическими упражнениями для закрепления полученных знаний.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 5

Истории

Книга «Дизайн для разработчиков»

Время на прочтение 20 мин
Количество просмотров 6K
image

Привет, Хаброжители!

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

Книга раскрывает основные принципы дизайна и особенности пользовательского восприятия, которые должен знать каждый веб-разработчик. Читателю определенно понравится, как автор демонстрирует новые идеи на примерах популярных сайтов и пользовательских интерфейсов. Откройте методы исследования поведения юзеров и научитесь использовать цвет, типографику и верстку для создания удобных и привлекательных веб-интерфейсов. К концу книги вы поймете, что хорошее чувство дизайна действительно является ценным подспорьем для разработчика!
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 5

Книга «Объектно-ориентированный Python, 4-е изд.»

Время на прочтение 19 мин
Количество просмотров 6.9K
image Привет, Хаброжители!

Глубоко погрузитесь в различные аспекты объектно-ориентированного программирования на Python, паттерны проектирования, приемы манипулирования данными и вопросы тестирования сложных объектно-ориентированных систем. Обсуждение всех понятий подкрепляется примерами, написанными специально для этого издания, и практическими упражнениями в конце каждой главы. Код всех примеров совместим с синтаксисом Python 3.9+ и дополнен аннотациями типов для упрощения изучения.

Стивен и Дасти предлагают вашему вниманию понятный и всесторонний обзор важных концепций ООП, таких как наследование, композиция и полиморфизм, и объясняют их работу на примерах классов и структур данных Python, что заметно облегчает проектирование. В тексте широко используются UML-диаграммы классов, чтобы было проще понять взаимоотношения между классами. Помимо ООП, в книге подробно рассматривается обработка исключений в Python, а также приемы функционального программирования, пересекающиеся с приемами ООП. В издании представлены не одна, а две очень мощные системы автоматического тестирования: unittest и pytest, а в последней главе детально обсуждается экосистема параллельного программирования в Python.

Получите полное представление о том, как применять принципы объектно-ориентированного программирования с использованием синтаксиса Python, и научитесь создавать надежные и устойчивые программы.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 3

Что я понял, изучив 50 книг про IT?

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 30K

За прошедшие 3-4 года я прочитал в общей сложности более 25 000 страниц технической литературы и стал замечать, как сильно изменились подходы к выбору книг и их изучению. В этой заметке хочу поделиться наблюдениями и выводами, которые помогут читателю сэкономить время, сохранить мотивацию к чтению и выбрать действительно полезную книгу.

Читать далее
Всего голосов 34: ↑31 и ↓3 +28
Комментарии 31

Не читал? Я осуждаю! 5 имен, которые должен знать каждый тестировщик

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 12K

«Дедушка российского тестирования», тестировщик с 50-летним стажем Александр Александров объясняет, почему классическая научная литература по тестированию по-прежнему актуальна и с каких основополагающих текстов стоит начинать свой путь в этой профессии.

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 6

Книга «Эволюционная архитектура. Автоматизированное управление программным обеспечением. 2-е межд. изд.»

Время на прочтение 19 мин
Количество просмотров 2.8K
image Привет, Хаброжители!

Новые инструменты, фреймворки методики и парадигмы вновь и вновь меняют экосистему
разработки программного обеспечения. Непрерывный прогресс основных практик разработки
на протяжении последних пяти лет заставил искать новые пути и подходы к архитектуре, чтобы
соответствовать постоянно меняющимся требованиям пользователей. В обновленном издании
авторы Нил Форд, Ребекка Парсонс, Патрик Куа и Прамод Садаладж приводят реальные примеры, соответствующие потребностям современной разработки ПО.

«Эта книга знаменует собой важную веху, обозначающую нынешний уровень понимания проблемы. По мере того как люди начинают осознавать роль ПО в XXI веке, информация о том, как реагировать на изменения, сохраняя достигнутое, становится важнейшим навыком в области создания программного обеспечения». — Мартин Фаулер.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 8

Книга «Terraform: инфраструктура на уровне кода. 3-е межд. изд.»

Время на прочтение 26 мин
Количество просмотров 6.4K
image Привет, Хаброжители!

Terraform — настоящая звезда в мире DevOps. Эта технология позволяет управлять облачной инфраструктурой как кодом (IaC) на облачных платформах и платформах виртуализации, включая AWS, Google Cloud, Azure и др. Третье издание было полностью переработано и дополнено, чтобы вы могли быстро начать работу с Terraform.

Евгений (Джим) Брикман знакомит вас с примерами кода на простом декларативном языке программирования Terraform, иллюстрирующими возможность развертывания инфраструктуры и управления ею с помощью команд. Умудренные опытом системные администраторы, инженеры DevOps и начинающие разработчики быстро перейдут от основ Terraform к использованию полного стека, способного поддерживать трафик огромного объема и большую команду разработчиков.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 3

Издательство Питер. Колонка редактора

Время на прочтение 3 мин
Количество просмотров 4.6K
image

Привет, Хаброжители!

Предлагаем ознакомиться с краткими обзорами новинок, отправленных в типографию.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 3

Книга «Python для сложных задач: наука о данных. 2-е межд. изд.»

Время на прочтение 11 мин
Количество просмотров 8.1K
image Привет, Хаброжители!

Python — первоклассный инструмент, и в первую очередь благодаря наличию множества библиотек для хранения, анализа и обработки данных. Отдельные части стека Python описываются во многих источниках, но только в новом издании «Python для сложных задач» вы найдете подробное описание IPython, NumPy, pandas, Matplotlib, Scikit-Learn и др.

Специалисты по обработке данных, знакомые с языком Python, найдут во втором издании решения таких повседневных задач, как обработка, преобразование и подготовка данных, визуализация различных типов данных, использование данных для построения статистических моделей и моделей машинного обучения. Проще говоря, эта книга является идеальным справочником по научным вычислениям в Python.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 3

Топ-14 книг для тестировщика на русском языке

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 4.7K

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

Если вы тестировщик, начинающий свой путь в мире QA или опытный профессионал, стремящийся к постоянному совершенствованию, то в этой статье вы найдете золотую подборку из 14 книг, которые помогут вам расширить знания, улучшить навыки и поднять свой профессиональный уровень.

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 7

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Книга «Как сочинить видеоигру: 201 совет от сценариста Broken Sword и Resident Evil»

Время на прочтение 6 мин
Количество просмотров 6.3K
image Привет, Хаброжители!

Разработка сценария для видеоигры — увлекательное дело. Но игровым писателям приходится постоянно учиться и бросать вызов ограничениям.

Это связано с тем, что игровая индустрия развивается и становится все более зрелой. Тут и стремительное совершенствование технологий, которое мы наблюдаем из года в год, и растущие ожидания игроков.

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

Перед вами книга, в которой собран 201 легко усваиваемый совет от легендарного гейм-дизайнера.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 3

Четверка за Пересечение асимптоты как подарок

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.6K

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

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 13

Книга «Kali Linux в действии. Аудит безопасности информационных систем. 2-е издание»

Время на прочтение 11 мин
Количество просмотров 9.2K
image Привет, Хаброжители!

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

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

Вы последовательно пройдете все шаги, необходимые для проведения аудита безопасности информационных систем и тестов на проникновение: от общих понятий, рассмотрения стандартов и необходимых действий перед проведением аудита до методов проникновения в информационную систему и закрепления в ней. Каждая глава книги подкреплена реальными примерами и содержит практическую информацию по применению тех или иных методов.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 2

Книга «Python с нуля»

Время на прочтение 19 мин
Количество просмотров 13K
image Привет, Хаброжители!

Эта книга даст вам основные знания и инструменты, которые помогут стать опытным разработчиком на Python.

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

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

По мере приобретения навыков работы с Python вы познакомитесь с более продвинутыми темами, включая объектно-ориентированное программирование, обработку исключений и регулярные выражения. Узнаете, как работать с библиотеками и API, что позволит еще больше расширить функциональность Python.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 6

Книга «Software Dynamics: оптимизация производительности программного обеспечения»

Время на прочтение 11 мин
Количество просмотров 2.4K
image Привет, Хаброжители!

Программное обеспечение — начиная с мобильных и облачных приложений, заканчивая видеоиграми и системами управления автономным транспортом — становится все более и более ограниченным по времени. Оно должно обеспечивать надежные результаты плавно, последовательно и практически мгновенно. Неспособность гарантировать это приведет к недовольству потребителей, а в некоторых случаях даже может создать риск для человеческих жизней. Когда комплексное ПО работает плохо или дает сбой, инженерам необходимо выявить и исправить первопричины. Задача непростая, и для ее решения существовало не так уж много инструментов. Ричард Л. Сайтс, эксперт по анализу производительности, решает задачу напрямую, предлагая действенные способы и профессиональные инструменты для выявления динамики сложных, ограниченных по времени программ, а также для повышения надежности и устранения проблем с производительностью.

За плечами автора несколько десятков лет практической работы и обучения профессиональных разработчиков. Он знакомит читателя с принципами и техниками, которые применимы в любой среде, начиная со встраиваемых устройств и заканчивая дата-центрами, и подкрепляет их примерами на основе подключенных по Ethernet систем x86 и ARM под управлением Linux. Опираясь на полученную с помощью KUtrace информацию, читатели смогут использовать конкретные решения, а не просто перебирать техники, такие как отключение кэша или ядер.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 1

Книга «Основы компиляции: инкрементный подход»

Время на прочтение 14 мин
Количество просмотров 4.6K
image Привет, Хаброжители!

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

Вместо этого в «Основах компиляции» выбран инкрементный подход: компилятор совершенствуется последовательно, и читатель может написать весь код самостоятельно. Книга помогает создать собственный компилятор для небольшого, но достаточно мощного языка программирования, постепенно, шаг за шагом вводя все более сложные языковые средства.

Джереми Сик объясняет важнейшие концепции, алгоритмы и структуры данных, лежащие в основе современных компиляторов, и закладывает основу для изучения более сложных тем. Это краткое, но доступное руководство уже давно используют студенты и профессионалы.
Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 6

Издательство Питер. Колонка редактора

Время на прочтение 3 мин
Количество просмотров 6.8K
image

Привет, Хаброжители!

Предлагаем ознакомиться с краткими обзорами новинок, отправленных в типографию.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 3

Вклад авторов