Программирование | книги
47.8K subscribers
2.41K photos
20 links
Для программистов разных областей науки.

Навигация по тегам всегда в закрепе.

Чат канала: https://t.me/+bpI2SjrfGQc1ZWJi

По всем вопросам: @altmainf

Регистрация в перечне РКН https://goo.su/PqEImo3
Download Telegram
#ПрогрИнженерия 2021

Методы метавычислений и их применение

Автор: Абрамов С. М

Книга сотрудника Института программных систем РАН, представляющая собой описание вопросов теории метавычислений и их применения. Метавычисления раздел теории и практики программирования, посвященный разработке методов анализа и преобразования программ за счет реализации конструктивных метасистем (метапрограмм) над программами.
В книге приводятся основные понятия метавычислений, примеры построения и использования простых метапрограмм. Изложе ние рассчитано на специалистов в области программирования.
#ПрогрИнженерия #Компиляторы 2023

Создай свой собственный язык программирования: Руководство программиста по разработке компиляторов, интерпретаторов и доменно-ориентированных языков для решения современных вычислительных задач

Автор: Kлинтoн Л. Джeффepи

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

Создание новых языков для конкретных целей – одно из противоядий от кризиса программного обеспечения. Эта книга посвящена созданию новых языков программирования. Вводится тема проектирования языка программирования, хотя основной акцент делается на реализации языка программирования. В рамках этой интенсивно изучаемой темы новым аспектом данной книги является слияние традиционных инструментов компиляции (Flex и Byacc) с двумя языками реализации более высокого уровня. Язык очень высокого уровня (Unicon) обрабатывает структуры данных и алгоритмы компилятора, как нож масло, в то время как основной современный язык (Java) показывает, как реализовать тот же код в более типичной производственной среде.

Для кого эта книга:
Эта книга предназначена для разработчиков программного обеспечения, заинтересованных в идее создания собственного языка или разработки языка, специфичного для конкретной предметной области. Студенты, изучающие информатику на курсах построения компиляторов, также найдут эту книгу весьма полезной в качестве практического руководства по реализации языка в дополнение к другим теоретическим учебникам. Чтобы извлечь максимальную пользу из данной книги, требуются знания среднего уровня и опыт работы с языком высокого уровня, таким как Java или C++.
#ПрогрИнженерия 2023

Software: Ошибки и компромиссы при разработке ПО

Авторы: Лелек Томаш, Скит Джон

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

Книга предназначена для разработчиков, которые хотят изучить паттерны, используемые в реальных системах, и связанные с ними компромиссы. Также она учит избегать неочевидных ошибок. Книга начинается с низкоуровневых решений, что очень полезно для начинающих разработчиков. Затем рассматри ваются более сложные темы — это пригодится даже опытному специалисту.
Большинство примеров, паттернов и фрагментов кода написаны на Java, но сами решения не привязаны к этому языку.
#ПрогрИнженерия #TypeScript 2021

Программируй & типизируй

Автор: Ришкуция Влад

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

Причиной многих программных ошибок становится несоответствие типов данных. Сильная система типов позволяет избежать целого класса ошибок и обеспечить целостность данных в рамках всего приложения. Разработчик, научившись мастерски использовать типы в повседневной практике, будет создавать более качественный код, а также сэкономит время, которое потребовалось бы для выискивания каверзных ошибок, связанных с данными.
#ПрогрИнженерия #ИБ 2021

Безопасно by design

Авторы: Джонсон Дэн Берг, Деоган Дэниел, Савано Дэниел

«Безопасно by Design» не похожа на другие книги по безопасности. В ней нет дискуссий на такие классические темы, как переполнение буфера или слабые места в криптографических хэш-функциях. Вместо собственно безопасности она концентрируется на подходах к разработке ПО. Поначалу это может показаться немного странным, но вы поймете, что недостатки безопасности часто вызваны плохим дизайном. Значительного количества уязвимостей можно избежать, используя передовые методы проектирования. Изучение того, как дизайн программного обеспечения соотносится с безопасностью, является целью этой книги. Вы узнаете, почему дизайн важен для безопасности и как его использовать для создания безопасного программного обеспечения.
#ПрогрИнженерия 2021

Мифический человеко-месяц, или Как создаются программные системы

Автор: Брукс Фредерик

"Немногие книги по управлению проектами можно назвать столь же значимыми как ""Мифический человеко-месяц"". Смешение примеров из реальной разработки ПО, мнений и размышлений создает яркую картину управления сложными проектами. Эти эссе основаны на пятидесятилетнем опыте работы Брукса менеджером проектов в IBM System/360, а затем в OS/360.

Первое издание книги вышло 45 лет назад, второе 25 лет назад. Возникают новые методологии, появляются новые языки программирования, растет количество процессоров, но эта книга продолжает оставаться актуальной. Почему?"
#ПрогрИнженерия 2019

Оформление программного кода

Автор: А.В. Столяров

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

Начинающие программисты обычно полагают, что текст программы предназначен для компьютера. У опытных программистов на этот счёт иное мнение. Совсем не сложно написать программу так, чтобы её «понял» компилятор или интерпретатор, и при этом можно совершенно не задумываться о том, удачно ли выбраны имена переменных и подпрограмм, правильно ли программа разбита на строки, служат ли своей цели структурные отступы, можно писать текст как попало, компилятору более-менее всё равно.

Пособие ориентировано на студентов, преподавателей, программистов.
#ПрогрИнженерия 2023

Тайная жизнь программ. Как создать код, который понравится вашему компьютеру

Автор: Стейнхарт Джонатан

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

Введение в архитектуру программного обеспечения

Автор: Гагарина Л.Г.

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

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

Введение в теорию алгоритмических языков и компиляторов

Автор: Гагарина Л.Г.

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

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

Оценка качества программного обеспечения. Практикум

Авторы: Черников Б. В., Поклонов Б. Е.

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

Языки программирования и методы трансляции

Автор: Свердлов С. З.

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

Искусство чистого кода

Автор: Майер Кристиан

Большинство разработчиков ПО тратят тысячи часов на создание излишне сложного кода. Девять основных принципов книги «Искусство чистого кода» научат вас писать понятный и удобный в сопровождении код без ущерба для функциональности. Главный принцип — это простота: сокращайте, упрощайте и перенаправляйте освободившуюся энергию на самые важные задачи, чтобы сэкономить бесчисленное количество часов и облегчить зачастую очень утомительную задачу поддержки кода. Автор бестселлеров Кристиан Майер помог тысячам людей усовершенствовать навыки программирования и в своей новой книге делится опытом с читателями.
#ПрогрИнженерия #Agile 2023

Современная программная инженерия. ПО в эпоху эджайла и непрерывного развертывания

Автор: Дэвид Фарли

Дэвид Фарли, легендарный разработчик и создатель continuous delivery, рассказывает о фундаментальных принципах разработки современного ПО. Пора познакомиться с наиболее эффективными и грамотными методами управления рабочими процессами, которые позволят повысить качество ваших приложений, вашей жизни и жизни ваших коллег.
Ключевые концепции, лежащие в основе эффективной разработки ПО, — это непрерывное обучение и управление сложностью. Дэвид Фарли анализирует их и формулирует принципы, следование которым приведет к улучшению дизайна ПО и качества кода, а также методы и подходы, доказавшие свою эффективность и приводящие к успеху. Речь идет не об абстракциях, вы освоите реальные приемы, которыми пользуются опытные разработчики ПО. Эти техники эмпирические и итеративные, они основаны на обратной связи и сосредоточены на выполнении кода, то есть соответствуют всем требованиям современной разработки.
#ПрогрИнженерия 2022

Проектирование гибких программ. Как не загнать себя в угол

Авторы: Сассман Дж. Дж., Хансон К.

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

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

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