Роберт

Backend-разработчик
Пишу о программировании, музыке, книгах и жизни

Блог

Мартин Роберт.  Чистый код. Создание анализ и рефакторинг

Даже плохой программный код может работать. Однако если код не является "чистым", это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и "укрощение". Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги - концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и "запахов кода", собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.
Читать

Здравствуй, Дональд Кнут!

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

Итак, для начала сделаем упражнения из примечаний к упражнениям. Это самая первая задачка из книги Дональда Кнута "Искусство программирования", по идее должна решаться моментально без проблем.

Первые два упражнения пропустим и приступим сразу к 3 упражнению.

Упражнение 3: докажите, что \(13^3 = 2197\). Обобщите ответ.

Ответ: процедура возведения степень есть перемножение числа само на себя некоторое количество раз, заданное степенью, в которое нужно возвести число. В данном случае мы должны перемножить \(13*13*13\). Проведя эту операцию, я действительно получаю результат: 2197. Также можно пойти и обратным путем. Для начала необходимо доказать, что 2197 делится на 13.

Признак делимости на 13: число делится на 13, когда число десятков, сложенное с учетверенным числом единиц, делится на 13.

\[219+(4*7) = 219+28 = 247\]

\[24+(4*7) = 24+28 = 52\]

\[{52 \over 13} = 4\]

Итак, число 2197 действительно делится на 13. Разделим 2197 на 13 и получим: 169. Разделим 169 на 13 и получим: 13. Могу также отметить, что 13 - это простое число, хотя это не важно для решения этой задачи.

Дональд Кнут.  Искусство Программирования. Решение задач

Дональд Кнут "Искусство Программирования". Решение задач
Читать

Фоер Джонатан Сафран.  Жутко громко и запредельно близко

Роман Фоера "Жутко громко и запредельно близко" - это трогательная, глубокая, искренняя и щемящая сердце история, рассказанная 9-летним мальчиком, отец которого погиб в одной из башен-близнецов 11 сентября 2001 года. Мировая премьера фильма, снятого по книге с Сандрой Буллок и Томом Хэнксом в главных ролях, состоялась в январе 2012 года.
Читать

Бхаргава Адитья.  Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

Алгоритмы - это всего лишь последовательность решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузиться в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие
Читать

Брендан Бернс.  Распределенные системы. Паттерны проектирования

Современный мир попросту немыслим без использования распределенных систем. Даже у простейшего мобильного приложения есть API, через который оно подключается к облачному хранилищу. Однако, проектирование распределенных систем до сих пор остается искусством, а не точной наукой. Необходимость подвести под нее серьезный базис назрела давно, и, если вы хотите обрести уверенность в создании, поддержке и эксплуатации распределенных систем - начните с этой книги! Брендан Бёрнс, авторитетнейший специалист по облачным технологиям и Kubernetes, излагает в этой небольшой работе абсолютный минимум, необходимый для правильного проектирования распределенных систем. Эта книга описывает неустаревающие паттерны проектирования распределенных систем. Она поможет вам не только создавать такие системы с нуля, но и эффективно переоборудовать уже имеющиеся.
Читать

Подпишитесь на обновления