Чистая Архитектура

Чистая Архитектура

Книгу часто рекомендуют для введения в разроботку архитектуры ПО, поэтому я её и начал читать. Чтение лёгкое, кроме тех частей про расчёт коэффициентов связности и тому подобного. Знаний конкретного языка не требуется, потому что листинги, когда они есть, достаточно общие. Много наглядных диаграмм.

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

Эта книга Мартина не перевернула мой подход к работе, как это сделали, к примеру, Чистый код и Рефакторинг Фаулера. Чтение всё же хорошее, очень полезны разборы примеров разбиения программы на модули, информация про потоки ввода и вывода.

Зачем читать

Чтобы получить базовые понятия об архитектуре приложений и принципов её построения. Для углубления в тему стоит поискать другой источник.

Подробнее →

Вы не знаете JS: Асинхронность и Производительность

Вы не знаете JS: Асинхронность и Производительность

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

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

Вначале идут рассуждения о синхронности и однопоточной природе JS, а также реализации в нём асинхронного кода. Ничего нового за первую сотню страниц я не узнал, их можно было пропустить. Далее автор углубляется в промисы, и посвящает обещаниям много места: но зачем, когда уже давно повсеместно поддерживается async/await? Отделаться от мысли «а зачем?» сложно, поскольку большая часть книги построена на выводах этой главы.

Интересно и по делу про генераторы, веб-работников и asm.js (deprecated). Сверхполезный раздел про производительность, хронометраж (бенчмарки) и оптимизацию. Про то, что не стоит тратить время на микрооптимизации вроде i++ vs ++i нужно прочитать каждому: компилятор всё равно перемолет любые циклы и объявления переменных по-своему, и скорее всего, ещё лучше, чем вручную.

Зачем читать

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

Подробнее →

JavaScript рефакторинг: балласт в проекте и как от него избавиться

JavaScript рефакторинг: избавляемся от балласта

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

Рефакторинг подходит для больших проектов: в текущем около 300 файлов историй, и примерно столько же компонентов. PR с лишним кодом унёс с собой 1.4к строк и улучшил время сборки почти на минуту (!).
Для малых проектов лучше сберечь усилия для каких-то более существенных улучшений.

Подробнее →

Рефакторинг. Улучшение существующего кода

Рефакторинг. Улучшение существующего кода

Читал вторую редакцию, примеры в этой версии на JavaScript.

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

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

Зачем читать

Чтобы писать код лучше, а ревью на него — по делу.

Подробнее →

Вы не знаете JS. Типы и грамматические конструкции

Вы не знаете JS. Типы и грамматические конструкции

Сборник граблей и очень детальное погружение в типы и немного в грамматику JavaScript (чем отличается от синтаксиса, там написано). Как всегда, у JS есть чем удивить: какие-то старые и непонятные для меня вещи получили объяснение.

Читать интересно, воды нет, текст сжат и детален. Автор играет в адвоката дьявола и постоянно трясёт кулаком в сторону ленивых программистов, что не удосужились прочитать спеку, а обложились эзотерическими бест практиками, и просто не пишут «как не надо» и не пользуются неочевидными возможностями JavaScript. Интересная позиция.

Зачем читать

Прояснить тёмные моменты языка и понять, почему линтеры срабатывают на вроде бы безобидных участках кода. Понять JavaScript на более низком уровне.

Подробнее →

Идеальный программист. Как стать профессионалом разработки ПО

Идеальный программист. Как стать профессионалом разработки ПО

The Clean Coder: A Code of Conduct for Professional Programmers — немного более щадящее глаза название книги в оригинале. Выглядит продолжением Clean code, но вполне самостоятельное произведение.

Книга про то, как быть профессионалом и как не быть «тем парнем» с работы. Есть про «этикет» в разработке, запомнилась глава про оценку задач (estimation). Быстрое чтение, автор бодро и кратко излагает свои взгляды на хорошего разработчика.

Интересно было ещё почитать истории про былинные времена, когда Настоящие Программисты набирали код на перфокартах без права на ошибку — эти вставки к месту и разбавляют повествование.

Зачем читать

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

Подробнее →

Чистый код: создание, анализ и рефакторинг

Чистый код: создание, анализ и рефакторинг. Библиотека программиста

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

Зачем читать

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

JavaScript: сильные стороны

JavaScript: сильные стороны

Книжка из мема про JS (Definitive guide я тоже когда-то прочитал весь, что было довольно утомительно).

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

Зачем читать

Книга интерес имеет скорее исторический, с современным языком вполне можно жить и так. Читать, если хочется понимать JS на более глубоком уровне.

Подробнее →