bannerbannerbanner
logo
Войти

Искусство программирования

Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги – концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.
Наконец-то появился увлекательный и практичный способ изучать теорию вычислений и проектирование языков программирования! В этой книге теоретическая информатика излагается в хорошо знакомом вам контексте, что поможет оценить, почему ее идеи важны и как они отражаются на том, чем программист изо дня в день занимается на работе. Вместо математической нотации или незнакомого академичного языка программирования типа Haskell или Lisp в этой книге для объяснения формальной семантики, теории автоматов и функционального программирования вкупе с лямбда-исчислением применяется язык Ruby, сведенный к минимуму. Издание предназначено для программистов любой квалификации, знакомых хотя бы с одним из современных языков, но не имеющих формальной подготовки в информатике.
Неважно, каким инструментом вы пользуетесь для программной разработки – Java, .NET, или Ruby on Rails. Написание кода – это еще только полдела. Готовы ли вы к внезапному наплыву ботов на ваш сайт? Предусмотрена ли в вашем ПО «защита от дурака»? Правильно ли вы понимаете юзабилити? Майкл Нейгард утверждает, что большинство проблем в программных продуктах были заложены в них еще на стадии дизайна и проектирования. Вы можете двигаться к идеалу сами – методом проб и ошибок, а можете использовать опыт автора. В этой книге вы найдете множество шаблонов проектирования, помогающих избежать критических ситуаций, и не меньшее количество антишаблонов, иллюстрирующих неправильные подходы с подробным анализом возможных последствий. Любой разработчик, имеющий опыт многопоточного программирования, легко разберется в приведенных примерах на Java, которые подробно поясняются и комментируются. Стабильность, безопасность и дружественный интерфейс – вот три важнейших слагаемых успеха вашего программного продукта. Если в ваши планы не входит в течение последующих лет отвечать на недовольные письма пользователей, выслушивать критику заказчиков и постоянно латать дыры, устраняя возникающие баги, то прежде чем выпустить финальный релиз, прочтите эту книгу.
Язык Python настолько прост, что научиться продуктивно писать на нем программы можно быстро, но зачастую вы при этом используете не все имеющиеся в нем возможности. Данная книга покажет, как создавать эффективный идиоматичный код на Python, задействуя его лучшие – и иногда несправедливо игнорируемые – черты. Автор, Лучано Рамальо, рассказывает о базовых средствах и библиотеках Python и демонстрирует, как сделать код одновременно короче, быстрее и понятнее. Многие опытные программисты стараются подогнать Python под приемы, знакомые им по работе с другими языками. Эта книга покажет, как достичь истинного профессионализма в программировании на Python 3. Издание предназначено для программистов, уже работающих на Python, но также может быть полезно и начинающим пользователям языка.
Добавлено
Год выхода: 2016
Язык: Русский
Книга представляет собой введение в вероятностное программирование для программистов-практиков. Опис…
Книга представляет собой введение в вероятностное программирование для программистов-практиков. Описан вероятностный вывод, где алгоритмы помогают прогнозировать использование социальных сетей. Приведены примеры построения фильтра спама, диагностики ошибок в вычислительной системе, восстановления цифровых изображений. Представлен функциональный стиль программирования для анализа текстов, объектно-ориентированных моделей и моделей с открытой вселенной. Издание рассчитано на широкий круг читателей: специалистов по анализу данных и машинному обучению, программистов, студентов вузов и др.
В современных вычислениях программы нередко объединяют несколько процессов. Основная проблема, возникающая при создании таких распределенных программ, состоит в том, чтобы заставить все процессы вместе работать над решением общей задачи, даже в случае отказов некоторых из них. Данная книга содержит введение в абстракции распределенного программирования и знакомит с фундаментальными алгоритмами и их реализациями в нескольких распределенных окружениях. Перед читателем будут раскрыты важные проблемы распределенных вычислений и основные алгоритмические приемы их решения. На подробных примерах читатель сможет понять, как с помощью этих приемов конструировать распределенные приложения. Обсуждение каждой темы завершается множеством упражнений и их решений. Издание предназначено для студентов высших учебных заведений, аспирантов, а также программистов, занимающихся разработкой высоконадежных распределенных приложений.
Уже больше десяти лет программисты на Ruby обращаются к данной книге как к надежному источнику сведений о том, как эффективно писать на этом языке. А теперь Хэл Фултон и Андрэ Арко изрядно обновили этот классический труд, включив описание новых средств языка и инструментов. Новое издание охватывает версию Ruby 2.1 и содержит более 400 примеров, отвечающих на вопрос «Как это делается в Ruby?». Все примеры сопровождаются подробным описанием задачи и технических ограничений. Затем дается пошаговое объяснение одного хорошего решения с детальными комментариями, позволяющими лучше усвоить материал. Третье издание удобно организовано по темам, так что стало еще проще найти ответ на свой вопрос и писать более качественный код в согласии с духом и философией Ruby.
В этой основательной и вместе с тем доступной книге авторы объясняют принципы обобщенного программирования и стоящее за ними понятие математической абстракции. Любой достаточно квалифицированный программист, умеющий логически мыслить, уже обладает достаточными знаниями для прочтения этой книги. Авторы на удивление доходчиво сообщают необходимые сведения из общей алгебры и теории чисел. Они объясняют, какие проблемы должны были разрешить математики, и показывают, как найденные ими решения переводятся на язык обобщенного программирования и позволяют создать эффективный и элегантный код. Читая эту книгу, вы освоите мыслительный процесс, необходимый для правильного программирования, и научитесь обобщать найденные для частного алгоритмы с целью расширить область их полезного применения без потери эффективности. Вы также постигнете, в чем состоит ценность математики для программирования, – и это понимание пригодится вне зависимости от того, на каком языке вы пишете и какую парадигму применяете.
Добавлено
Год выхода: 2017
Язык: Русский
Джоэл о программировании и разнообразных и иногда родственных вопросах, которые должны быть интересн…
Джоэл о программировании и разнообразных и иногда родственных вопросах, которые должны быть интересны разработчикам программного обеспечения, проектировщикам и менеджерам, а также тем, кому посчастливилось или не повезло в каком#то качестве работать с ними. Книга представляет собой подборку эссе, опубликованных автором на его сайте http://www.joelonsoftware.com. Талант и глубокое проникновение в суть предмета сделали Джоэла мастером своего дела, а остроумие и едкий юмор принесли сайту скандальную известность среди программистов. Затронуты практически все вообразимые аспекты создания ПО от лучших способов устройства рабочего места программиста до лучших способов написания программного кода. Издание адресовано широкому кругу читателей – и тем, кто собирается руководить программистами, и самим программистам – как приверженцам Microsoft, так и сторонникам открытого кода.
Стив Макконнелл, автор бестселлера «Совершенный код», других книг и многочисленных статей о разработке ПО, убедительно показывает, что разработка ПО может быть стабильно успешной, если сделать совершеннее саму профессию разработчика ПО. Он не только показывает, почему и как отрасль пришла к своему современному состоянию, и описывает шаги, которые должен предпринять каждый, кто хочет подняться на новый уровень в создании ПО. Он также говорит о корпоративных методиках, призванных увеличить количество профессионально выполненных проектов, и о лицензировании организаций и академических учебных программ как о средстве повышения профессионализма и отдельных разработчиков, и в индустрии ПО в целом.
Все мы – безумцы, живущие в технологическом сумасшедшем доме, и создали этот безумный мир мы сами. Своими руками сотворили этот кошмар: интерфейсы, которые нас раздражают и утомляют глаза, устройства, которые приводят к болям в спине и в запястьях. Эта книга стала манифестом и до сих пор не потеряла актуальность. Дверь на свободу распахнута. Почему же мы не замечаем выхода? Об этом и рассказывает Алан Купер, объясняя разницу между интерфейсом и взаимодействием. Эй, ребята, у вас тут полно обозленных клиентов. Вам есть что им ответить? В форматах a4.pdf и ios.epub сохранены издательские макеты.
Добавлено
Год выхода: 2017
Язык: Русский
Вадим и Ринат занимаются программным обеспечением. И неожиданно разрабатывают программу, способную с…
Вадим и Ринат занимаются программным обеспечением. И неожиданно разрабатывают программу, способную стать невидимкой, проникнуть на любой сервер, в любой компьютер, и изменить или уничтожить всю информацию. С помощью этой программы они хотят остановить крупного бизнесмена, которому приглянулось их помещение фирмы. Но не успевают. Рината убивают. Обвинение падает на Вадима. В то же самое время инопланетный корабль сбившись с курса, оказался вблизи нашей планеты. Испытывая проблемы с навигацией, инопланетяне хотят найти среди аборигенов программиста, способного решить их проблемы.
Книга была создана в рамках проекта "Clickteam по-русски". Автор выражает надежду, что новая книга оправдает себя, облегчит работу и поможет творчеству читателя в таком непростом деле.
Полный спектр сведений о языке Java с примерами и разбором задач от автора учебников-бестселлеров по языкам программирования Алексея Васильева. С помощью этой книги освоить язык Java сможет каждый желающий – от новичка до специалиста.
Современный мир попросту немыслим без использования распределенных систем. Даже у простейшего мобильного приложения есть API, через который оно подключается к облачному хранилищу. Однако проектирование распределенных систем до сих пор остается искусством, а не точной наукой. Необходимость подвести под нее серьезный базис назрела давно, и, если вы хотите обрести уверенность в создании, поддержке и эксплуатации распределенных систем – начните с этой книги! Брендан Бёрнс, авторитетнейший специалист по облачным технологиям и Kubernetes, излагает в этой небольшой работе абсолютный минимум, необходимый для правильного проектирования распределенных систем. Эта книга описывает неустаревающие паттерны проектирования распределенных систем. Она поможет вам не только создавать такие системы с нуля, но и эффективно переоборудовать уже имеющиеся.
Если вам давно кажется, что вся разработка и развертывание в вашей компании донельзя замедлились – переходите на микросервисную архитектуру. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности. Книга, предназначенная для разработчиков и архитекторов из больших корпораций, рассказывает, как проектировать и писать приложения в духе микросервисной архитектуры. Также в ней описано, как делается рефакторинг крупного приложения – и монолит превращается в набор микросервисов.
Добавлено
Год выхода: 2020
Язык: Русский
Эта книга для начинающих программистов, желающих начать программировать на языке Python 3. Книга буд…
Эта книга для начинающих программистов, желающих начать программировать на языке Python 3. Книга будет полезна для студентов механиков и для цеховых конструкторов-механиков, а также для разметчиков. Предлагаемые в книге расчеты экономят рабочее время и уменьшают количество ошибок в расчетах. Язык программирования Python хорошо подходит для быстрого решения задач по определению оптимальных размеров и параметров. Программирование на Python требует меньше времени, чем на других языках. Конструкторам в цеху часто приходится быстро выполнять разнообразные расчеты - библиотека небольших программ позволяет значительно экономить время и уменьшить вероятность ошибок. Данная книга - сборник листингов рабочих программ. Все программы, в разное время, разработаны самим автором при возникновении необходимости данных расчетов. Все программы проверены и постоянно используются в работе конструктора-механика. Листинги удобно использовать в качестве готовых блоков для вновь разрабатываемых программ.
«Идеальный программист» и «Чистый код» – легендарные бестселлеры Роберта Мартина – рассказывают, как достичь высот профессионализма. «Чистая архитектура» продолжает эту тему, но не предлагает несколько вариантов в стиле «решай сам», а объясняет, что именно следует делать, по какой причине и почему именно такое решение станет принципиально важным для вашего успеха. Роберт Мартин дает прямые и лаконичные ответы на ключевые вопросы архитектуры и дизайна. «Чистую архитектуру» обязаны прочитать разработчики всех уровней, системные аналитики, архитекторы и каждый программист, который желает подняться по карьерной лестнице или хотя бы повлиять на людей, которые занимаются данной работой. В форматах: a4.pdf и ios.ePub представлены файлы от издательства.
Этот текст – сокращенная версия книги Алана Купера «Психбольница в руках пациентов». Только самые ценные мысли, идеи, кейсы, примеры. О книге В своей книге «Психбольница в руках пациентов» Алан Купер объясняет, как создать программный продукт, который будет работать как следует, успешно продаваться и иметь ценность в глазах потребителей. Будучи успешным разработчиком программного обеспечения, автор с самого начала карьеры считал, что прежде чем приступать к техническим деталям и умножать функции, нужно представить себе конечного потребителя, его нужды. Зачастую происходит наоборот. Профессиональная деформация не дает программистам увидеть программу глазами пользователя, для которого она и предназначена. В результате продукты, выпущенные ими в свет, раздражающе сложны, неудобны и непонятны, что приводит к отсутствию спроса. Принципы Купера представляют ценность в любой сфере рынка, а не только области цифровых технологий. Зачем слушать • Понять, что процесс проектирования продукта важнее, чем детали его разработки. • Сделать цифровые продукты и другие товары более удобными в использовании. • Убедиться, что повышение качества цифровых (и не только) продуктов важнее, чем снижение издержек. Об авторе Алан Купер – один из старейших разработчиков программного обеспечения. В 1990 году основал компанию Cooper. Среди его клиентов были такие компании, как Hewlett Packard, IBM, Microsoft, SAP, Varian и VISA. В 1994 году Билл Гейтс вручил Куперу премию Windows Pioneer Award за разработку языка программирования Visual Basic – первого, включавшего в себя инструменты для визуального проектирования пользовательского интерфейса.
Скачать бесплатно в формате mp3!
Добавлено
Год выхода: 2008
Язык: Русский
Каждый программист по сути своей – хакер. Ведь первоначально хакингом называли поиск искусного и нео…
Каждый программист по сути своей – хакер. Ведь первоначально хакингом называли поиск искусного и неочевидного решения. Понимание принципов программирования помогает находить уязвимости, а навыки обнаружения уязвимостей помогают создавать программы, поэтому многие хакеры занимаются тем и другим одновременно. Интересные нестандартные ходы есть как в техниках написания элегантных программ, так и в техниках поиска слабых мест. С чего начать? Чтобы перезаписывать память с помощью переполнения буфера, получать доступ к удаленному серверу и перехватывать соединения вам предстоит программировать на Си и ассемблере, использовать шелл-код и регистры процессора, познакомиться с сетевыми взаимодействиями и шифрованием и многое другое. Как бы мы ни хотели верить в чудо, программное обеспечение и компьютерные сети, от которых зависит наша повседневная жизнь, обладают уязвимостями. Мир без хакеров – это мир без любопытства и новаторских решений. (Джон Эриксон)
Популярные книги