Издательство Питер. Колонка редактора, октябрь 25 г

Привет, Хаброжители !
Предлагаем ознакомиться с краткими обзорами новинок, отправленных в типографию.
User
Привет, Хаброжители !
Предлагаем ознакомиться с краткими обзорами новинок, отправленных в типографию.
Привет, Хаброжители! Владея лишь основами HTML, вы сможете научиться создавать интерактивные веб-сайты, управляемые данными, используя мощное сочетание веб-стандартов и технологий с открытым исходным кодом. В последнем издании этого популярного практического руководства вы освоите динамическое веб-программирование с использованием новейших версий современных технологий — PHP, MySQL, JavaScript, CSS, HTML, Node.js и мощной библиотеки React.
Вы научитесь использовать все эти технологии в комплексе и попутно освоите ценные практики веб-программирования, в том числе оптимизацию сайтов для мобильных устройств. А в самом конце вы объедините все вместе и создадите полноценный сайт социальной сети, который можно просматривать как на настольных компьютерах, так и на мобильных устройствах.
Привет, Хаброжители! Хотите писать код один раз и запускать его на Android и iOS, сохранив нативное качество и производительность?
В этой книге вы освоите все шаги разработки полнофункциональных кросс-платформенных приложений с помощью Kotlin Multiplatform SDK — от создания проекта с нуля до миграции существующих нативных решений. Подробные инструкции, архитектурные подходы и реальные примеры помогут уверенно работать с общими модулями, многопоточностью, сетевым слоем, хранением данных и Compose Multiplatform для iOS.
Особое внимание уделено использованию нативного и общего кода в кросс-платформенном приложении, применению expect/actual, тестированию с Kotest, оптимизации разработки с помощью KSP, плагинов компилятора и ИИ-ассистентов. Вы узнаете, как создавать и публиковать собственные KMP-библиотеки, а также получите краткий справочник по Kotlin и Swift, чтобы уверенно ориентироваться в обеих экосистемах.
React по умолчанию сопряжён со скрытыми издержками. Вот аргументы в пользу более осознанного выбора подходящего фреймворка для конкретной задачи.
React больше не побеждает за счёт своих технических достоинств. Сегодня его выбирают по умолчанию. И именно это «по умолчанию» теперь тормозит инновации во всей фронтенд-экосистеме.
Когда командам нужен новый фронтенд, разговор редко начинается с вопроса: «Каковы ограничения и какой инструмент лучше всего под них подходит?» Чаще всё звучит так: «Давайте возьмём React — его все знают». Такой рефлекс запускает самоподдерживающийся цикл, в котором архитектуру определяют сетевые эффекты, а не техническая уместность.
Книга «Реальная криптография» за авторством Дэвида Вонга является весьма любопытным литературно-теоретический гибридом «упрощенного учебника по криптографии» (первая половина книги) и «реального положения дел» (вторая половина книги).
Автор позиционирует книгу как практическое руководство для широкого круга читателей, предпринимая попытки уйти от классического и набившего оскомину шифра Цезаря и прочих исторических моментов, обещая читателю актуальные примеры, рекомендации и криптографические «рецепты».
Привет, Хаброжители! "Великие вымирания" – книга, меняющая представление об истории Земли. Вместо отвлеченных фактов она знакомит с более чем 20 биологическими видами, чье влияние на планету оказалось ключевым: от косаток и неандертальцев до кораллов и трилобитов. Повествование начинается в 2150 году, где искусственный интеллект и марсианские роботы расследуют причины гибели человечества в 2100 году. Отсюда мы переносимся в прошлое. Косатки рассказывают о современной жизни на Земле и глобальном изменении климата. Последние неандертальцы повествуют о тайне своего исчезновения 40 000 лет назад. Большая белая акула, единственная, пережившая четыре великих вымирания, делится секретом выживания длиной в 400 миллионов лет. И наконец, Луна и Мировой океан свидетельствуют об эпической истории возникновения Земли и Жизни.
Написать код легко. Если у вас в голове сложилось решение, и вы уверенно владеете синтаксисом вашего любимого языка программирования, то напишете код с лёгкостью. А может быть у вас есть LLM, которая напишет за вас целые функции? Тогда ещё проще. Но сложнее всего не писать код, а читать. Требуется время, чтобы загрузить себе в голову ментальную модель системы. Вот это по-настоящему трудозатратно.
Ментальная модель складывается у вас в голове, когда вы читаете код. Это ваша внутренняя «карта», по которой понятно, как работает система, где находятся самые хитрые её части, что от чего зависит. Не имея такой карты в голове, вы просто смотрите на текстовые строки.
Когда я выполнял работу по заказу, большинство из моих заданий начинались одинаково. Мне ставили задачу пофиксить баг или добавить новую фичу в приложении, которое я видел впервые. Сначала моя ментальная модель была как чистая доска. Чтобы приступить к её заполнению, я открывал домашнюю страницу и разбирался, на что она похожа. Я открывал исходный код страницы: это React? jQuery? Сторонний плагин? Я просматривал базу кода, чтобы выяснить, используется ли у них где-нибудь ещё такая карусель, которую они просят поставить на первой страницы. Знакомился с их сборочным процессом, конфигурацией для тестирования, с тем, каким инструментарием они пользуются. Каждая мелкая деталь, которую я обнаруживал, встраивалась в ту модель, которая складывалась у меня в голове.
Привет, Хаброжители! Представьте, что ваше тело – это сложная, высокооптимизированная система. Внезапно, на пике своей функциональности, эта система начинает планомерно деградировать. Звучит знакомо? Добро пожаловать в мир старения, феномена, который большинство учёных до сих пор не могут внятно объяснить. Книга Петра Лидского "Старение: почему эволюция убивает?" предлагает радикальный взгляд: старение – это не случайное накопление ошибок, а активная, генетически запрограммированная функция, встроенная в нас эволюцией. Настоящий "системный баг", заложенный на уровне архитектуры!
Привет, Хаброжители! Дизайнеры и разработчики организуют единую систему с компонентами, стилями и гайдлайнами для многократного использования, чтобы каждый раз не изобретать велосипед. Но превратить набор шаблонов в гибкую, надежную и масштабируемую систему — задача не из легких.
Эксперт по дизайн-системам Дэн Молл раскрывает проверенные стратегии, инструменты и ключевые концепции, показывая на реальных примерах, как выстроить дизайн-систему, которая будет работать в любой среде.
В книге собраны фундаментальные знания и практические подходы для разработки, внедрения и поддержки дизайн-системы. Не просто дизайн-системы, которая будет работать здесь и сейчас, а устойчивой и масштабируемой практики, которая ускорит работу команды, оптимизирует ресурсы и поможет избежать лишних затрат в будущем.
Добрый день, Хаброжители!
Встречаем осень с хорошими новостями — в нашем интернет-магазине только что началась новая распродажа!
Недавно у меня появилась возможность прочитать книгу Себастьяна Рашки «Строим LLM с нуля», и, начав читать, я просто не мог её отложить.
Эта книга увлекательно сочетает исчерпывающую теорию, практическую реализацию кода и прекрасно и доходчиво объясняет одну из самых актуальных тем в области современного искусственного интеллекта: большие языковые модели (LLM). Как человек, который любит разбираться в тонкостях моделей ИИ, я считаю эту книгу настоящей жемчужиной. Ее обязательно нужно прочитать всем, кто серьезно интересуется LLM. Хочу отметить, что я никак не связан с автором или издателем; эта рецензия является исключительно отражением моего восхищения содержанием книги.
Как и большинство серьёзных спикеров в IT, я внимательно слежу за тем, какую роль могут сыграть в разработке ПО системы генеративного искусственного интеллекта. Думаю, возникновение больших языковых моделей (LLM) повлияет на разработку ПО примерно в той же степени, что и переход с ассемблера на первые высокоуровневые языки программирования. Чем дальше развиваются языки и фреймворки, тем сильнее абстрагируется наш код и, соответственно, возрастает продуктивность, но такие изменения пока не касаются самой природы программирования. При применении LLM – уже касаются, но я хочу поговорить о том, что LLM не только повышают уровень абстракции. Пользуясь ими, приходится учитывать, как выглядит программирование с использованием недетерминированных инструментов.
Как я уже говорил, высокоуровневые языки программирования вывели нас на совершенно новый уровень абстракции. Работая с ассемблером, я думаю о наборе инструкций для конкретной машинной архитектуры. Мне приходится продумывать даже самые простые действия, размышляя, как я буду осуществлять те или иные последовательности действий, записывая данные в нужные регистры. Но при работе с высокоуровневыми языками появилась возможность обдумывать программу как последовательность команд, в которой предусмотрены условные операторы, чтобы выбирать альтернативы для продолжения. Также в программе есть итерации, чтобы раз за разом применять команды к наборам значений данных. Многие элементы кода можно именовать, чтобы было ясно, что именно понимается под теми или иными значениями. Ранние языки программирования явно были в чём-то ограничены. Я начинал программировать на Fortran IV, где у операторов «IF» не было условия «ELSE». Поэтому мне приходилось как-то запоминать мои целочисленные переменные, и я начинал их с букв от «I» до «N».
Привет, Хаброжители! Асинхронные и многопоточные программы могут выполнять несколько задач одновременно, не теряя скорости или надежности. Но правильная организация параллельного выполнения может вызвать затруднения даже у опытных разработчиков. Эта практическая книга научит вас создавать параллельные приложения на C#, работающие с максимальной скоростью и не имеющие взаимоблокировок и других проблем синхронизации, которые ухудшают производительность и требуют огромных усилий для их обнаружения.
«C# Concurrency» помогает получить полное представление об особенностях многопоточности и асинхронного программирования. В ней особое внимание уделено практическому использованию операторов async/await в C# для упрощения асинхронных задач. Вы научитесь избегать распространенных ошибок, обходить классические проблемы многопоточности, такие как состояния взаимоблокировки и гонки, а также узнаете о многих сложных нюансах управления потоками и использования потокобезопасных коллекций.
Привет, Хаброжители!
Предлагаем ознакомиться с краткими обзорами новинок, отправленных в типографию.
Привет, Хаброжители! Технический директор сталкивается с особыми вызовами в одиночку. Многие, с энтузиазмом начав свою первую роль на этом уровне, покидают ее разочарованными, столкнувшись со сложностью задач и необходимостью осваивать новые навыки.
Это практическое руководство для тех, кто переходит или уже работает на высших руководящих позициях в инженерных и технологических командах. Книга фокусируется на ключевых задачах технического директора — выстраивании стратегии и управлении командами разработки.
С тех пор, как «банда четырёх» ещё в 90-е выпустила свою легендарную книгу «Паттерны объектно-ориентированного проектирования», сами «паттерны проектирования» стали краеугольным камнем всевозможных рассуждений о программной архитектуре. Однако, со временем этот термин становится всё более размытым. Сегодня при упоминании паттернов может иметься в виду:
Назначение этого паттерна: та проблема, для решения которой он предназначен Реализация: точная структура класса или код для воплощения этого паттерна
Рассказывая о «паттернах проектирования в Python, о которых следует забыть», мы имеем в виду как раз реализации. В самом деле, эти паттерны решают реальные задачи. Но в Python решение этих задач ничуть не напоминает те варианты, которые предлагаются на C++ или Java.
Держа в уме эту идею, делаем простой вывод:
Мишка учится лазать по деревьям, чтобы добраться до мёда. Но орлы никуда не лазают, они летают.
Привет, Хаброжители! Алгоритмы — это сердце программирования. От их правильного выбора зависит, будет ли программа работать мгновенно или заставит вас ждать вечность. Но как разобраться во всем этом, если вы только в начале пути?
Эта яркая книга делает изучение алгоритмов и структур данных простым и увлекательным. Благодаря полноцветным иллюстрациям, схемам и наглядным примерам сложные концепции становятся понятными даже новичкам.
Недавно я прочёл книгу «Паттерны разработки на Python TDD, DDD и событийно-ориентированная архитектура». Основной акцент в ней сделан на том, как именно нужно структурировать программы, чтобы они по мере роста оставались простыми и удобными в поддержке. Это моя любимая тема из области программирования, поэтому, конечно же, книга мне понравилась. Пожалуй, я не возьмусь использовать именно те приёмы, которые авторы рекомендуют в книге — но они обсуждают классные идеи, напомнившие мне о задачах, встречавшихся в моей практике на предыдущих работах. Кроме того, отмечу, что английская версия книги есть в свободном доступе онлайн, так какие вообще вопросы?
В книге рассматривается предметно-ориентированное проектирование и событийно-ориентированная архитектура (в основу которой удобно закладывать микросервисы, но это не обязательно). В этом посте я немного раскрою наиболее понравившиеся мне идеи из книги, но, прежде, чем переходить к этому, хочу артикулировать некоторые детали:
Привет, Хаброжители! Как стать экспертом в создании сложных и мощных приложений на Python, не тратя времени на повторение уже известных основ или перечисление ненужных функций? Аарон Максвелл фокусируется на первопринципах Python, которые действуют подобно катализаторам для всего остального: достаточно получить 5 % знаний в области программирования, чтобы остальные 95 % подтянулись автоматически.
Привет, Хаброжители! Хотим рассказать вам о новой книги Марка Прайса! В ней вы узнаете, как управлять исходным кодом и проектами с помощью Git, обеспечивая при этом контроль версий. Откроете для себя передовые методы отладки и стратегии выявления и устранения проблем, а также увидите, как правильно документировать код, API и сервисы, чтобы повысить удобство обслуживания проекта.
Погрузитесь в мир криптографии и освоите приемы обеспечения конфиденциальности и целостности на протяжении всего цикла разработки.
Вы сможете расширить свои навыки, познакомившись с такими продвинутыми темами, как создание интеллектуальных приложений с поддержкой пользовательских чат-сервисов на основе LLM, внедрение зависимостей, оптимизация производительности с помощью тестирования и запуск сервисов в контейнерах Docker.
В книге описаны возможности разработки облачных сервисов с применением .NET Aspire и преимущества современных облачных платформ. А знакомство с особенностями передовых архитектур программного обеспечения позволит вам создавать надежные и масштабируемые приложения, удобные в обслуживании.