Releases: phys-dev/soft-dev-book
Release list
v10.0 — стиль бакалаврской работы и назывные заголовки
Проза книги приведена к стилю бакалаврской работы автора. Пять коммитов, 80 файлов.
Образец
Эталон стиля — бакалаврская работа автора (KENV и REDPIC): безличная академическая манера ВКР. По ней сняты приметы регистра: отсутствие обращения к читателю, авторское «мы» в выкладках («рассмотрим», «запишем», «введём»), безличные конструкции («необходимо», «достаточно»), страдательный залог («была разработана», «рассматривается»), лексика «является», «представляет собой», «позволяет», «обеспечивает», полные предложения с причастными оборотами, без шуток, метафор и разговорных слов.
Переписывание
Обращение на «ты» и повелительное наклонение к читателю убраны полностью: 149 «ты»-форм и около сотни императивов («запусти», «посмотри», «попробуй») заменены авторским «мы», безличными оборотами, страдательным залогом и обобщённым субъектом («разработчик», «пользователь», «студент»). Разговорная лексика и метафоры заменены книжной («сломается» → «приведёт к ошибке», «мышкой» → «в графическом файловом менеджере», «вроде» → «наподобие»). Вступления глав переведены в форму «В настоящей главе рассматривается…», итоги начинаются с «Таким образом». Слово «данный» в значении «этот», вычищенное в v9.0, не возвращалось.
Первый проход сделал «следует» главной заменой императивов: 1,84 на тысячу слов против 0,15 в ВКР. Прорежено со 154 до 52 вхождений; оставлены значения вывода («отсюда следует») и единичные советы, остальное переведено в утверждения, «необходимо», «рекомендуется», «целесообразно», «достаточно» и условные конструкции с чередованием, чтобы не возникла новая доминанта.
| на 1000 слов | v9.0 | v10.0 | ВКР |
|---|---|---|---|
| «ты», «тебе», «твой» и т. п. | 1.82 | 0 | 0 |
| «является» | 0.04 | 2.84 | 1.74 |
| «необходимо» | 0.05 | 1.89 | 0.73 |
| «следует» | 0.07 | 0.64 | 0.15 |
| «рассмотрим» | 0.10 | 0.49 | 1.60 |
| «вроде» | 0.42 | 0 | 0 |
Объём прозы 81 700 → 83 400 слов (+2 %): переписывание регистра, не сокращение и не разбавление. Блоки кода, инлайн-код, адреса ссылок, формулы, картинки и числа сверены с прежней версией побайтно по каждому файлу.
Заголовки
Заголовки глав и разделов оставались учебными: «Зачем физику алгоритмы», «Как устроен Git», «Пишем хороший Python код», «Что сдавать». В ВКР заголовки назывные; переименованы 107 заголовков и девять названий частей в оглавлении: «Инструменты разработчика», «Операционная система Linux», «Язык Python», «Алгоритмы и структуры данных», «Инженерные практики», «Обработка данных», «Ускорение расчётов», «Разбор реальных кодов», «Практикум». Убрана нумерация «Часть 1», «Часть 2» внутри глав. Ссылки в прозе, якоря предметного указателя, описание печатного издания и логика сборки заданий обновлены вслед за заголовками.
Вычитка
Все главы прочитаны заново после переписывания; найдено и починено 27 поломок: два смысловых сдвига («однако требует более короткого кода» вместо «причём более коротким кодом», «выглядит корректным» вместо «не вызывает подозрений» про квадратичный код), утраченная модальность («может вводить в заблуждение»), рассогласования после замены субъекта, местоимения без антецедента через блок кода, слитые запятой предложения, повторы «необходимо» и «рассматривается» в соседних фразах. Заодно исправлены одиннадцать мест, унаследованных от исходного текста: «пара» в главе о хешах введена как пара «ключ — значение», абзац о выборе сортировки в стандартных библиотеках получил подлежащее, описание DBSCAN — тоже, разнобой «Цель:»/«Цель.» выровнен.
Комментарии внутри листингов на «ты» переписаны безлично (четыре); подсказки для Copilot в листингах оставлены как команды модели. Осталось вне правки: реплики в диалогах оператора с SAVA и цитата Кнута.
Состояние книги
77 глав, SUMMARY и файлы на диске сходятся; внутренние ссылки, якоря заголовков и пути к картинкам целы; предметный указатель полон — 200 терминов из 200, 271 отметка; сборка mdbook без предупреждений.
Печатная вёрстка
416 страниц (было 406 в v9.0), 52 уч.-изд. л., 48,4 усл. печ. л. Формат А4 (60×84 1/8), полоса 170×257 мм, поля 20 мм, Times New Roman, абзацный отступ 10 мм — по требованиям ИПЦ НГУ. Объём блока чётный.
Что заполняет автор перед сдачей
Без изменений с v9.0: ISBN, фамилии рецензентов, номер и дату протокола кафедры, тираж, номер заказа, дату подписания в печать; подтвердить в библиотеке НГУ УДК 004.4:53(075.8), ББК 32.973-018я73 и авторский знак Ф33.
v9.0 — сквозное ревью, правки по нему и чистка от воды
Сквозное ревью книги, правки по нему и чистка текста от воды. Тридцать коммитов, 76 файлов.
Ревью
Книгу прошли семнадцать рецензентов: одиннадцать по разделам и шесть по сквозным линзам — терминология, структура, ссылки и печатная сборка, запускаемость листингов, дидактика, физика и математика. Каждую находку затем проверял отдельный агент, обязанный открыть файл, сверить цитату дословно и воспроизвести дефект; 18 находок на этом отсеяны. После схлопывания дубликатов осталось 138 пунктов, 12 из них критичные.
Самое серьёзное из найденного:
- раздел «Одна задача в четырёх хранилищах» написан на Flask, но фреймворк в книге не назывался ни разу — не запускался ни один из тринадцати листингов;
- обе функции SciPy, на которых держится численная часть главы про KENV, удалены из библиотеки (
cumtrapzс 1.14,scipy.misc.derivativeс 1.12); - блок про
SettingWithCopyWarningописывал механизм, которого в pandas 3.x нет; - «потоки не помогут никогда» подано как закон языка при существующей с 3.13 свободнопоточной сборке;
- ускоренная
is_primeобъявляла простыми ноль и все отрицательные числа; - пять листингов падали с
NameErrorиз-за неимпортированных имён; - вводная глава учила неверной модели
timeit, противореча двум главам ниже.
Правки по ревью
Применены 172 правки, 43 — с отступлением от предложенной формулировки там, где она не вставала в грамматику соседней фразы. Двенадцать коммитов по частям книги, каждый с обоснованием в сообщении.
Осталось автору — то, что требует его рук: перемерить joblib в главе про GIL (нынешнее число опровергает вывод главы), вклеить профили line_profiler в главу про скорость, перегенерировать блокнот экспресс-курса на Python 3.12+, нарисовать четыре картинки взамен горячих ссылок на imgur (в печать они не попадают), решить судьбу dR_rmsdz = 35.4e-3 в главе про KENV, удалить 38 осиротевших картинок, разобраться с позициями [20]–[22] списка литературы, ни на что не опирающимися.
Замечание о том, что части «Обрабатываем данные» и «Ускоряем код» не обеспечены заданиями практикума, остаётся открытым.
Чистка от воды
Текст читался как написанный языковой моделью — не из-за словаря, а из-за риторических рамок вокруг каждого факта: фраза-анонс перед ним («Итераторы относятся к фундаментальным концепциям Python, применяемым ежедневно…»), оценочное подмигивание внутри («не формальность», «честно», «с которого стоило начать») и афоризм после («Навык программирования от чтения не появляется»). Плюс антитезы с соломенным чучелом («Git как рабочий инструмент, а не набор заученных заклинаний») и метафоры в кавычках («посчитал за обед»).
Рамки сняты, факты оставлены. Три волны, 75 глав, объём прозы 83 000 → 72 200 слов (−13 %). Блоки кода, заголовки, адреса ссылок, формулы, числа и инлайн-код сверены с прежней версией побайтно. После каждой волны дифф вычитывался на потерю факта, разрыв связи и грамматику; найдено и починено 43 поломки, почти все — обрубки после снятых придаточных.
| на 1000 слов | до | после |
|---|---|---|
| открывашки абзацев «Дальше / Теперь / Заодно / Отдельно» | 1.14 | 0.24 |
| усилители «именно / ровно / вовсе / принципиально / честно» | 0.89 | 0.18 |
| модальное «стоит» | 1.40 | 0.90 |
| антитезы «не X, а Y» | 1.63 | 1.54 |
| канцелярское «данный» вместо «этот» | 8 вхождений | 0 |
Две вещи не улучшились, и о них честно. Доля фраз короче восьми слов выросла с 29,5 до 32,2 %: когда с длинной фразы снимаешь придаточное-подмигивание, остаётся короткое утверждение. Теперь эти короткие фразы — факты, а не афоризмы, но стаккато-ритм, если он мешал на слух, никуда не делся; лечится он обратным проходом — сращиванием, а не вычёркиванием. И плотность причастных оборотов, которую в v6.x поднимали до авторской, просела примерно на седьмую часть: часть снятой риторики сама была в них завёрнута. Частота «который» при этом не выросла, а тоже снизилась — обороты не превращались в придаточные, а уходили вместе с рамкой.
Состояние книги
77 глав, SUMMARY и файлы на диске сходятся; внутренние ссылки, якоря заголовков и пути к картинкам целы; парность блоков кода соблюдена; предметный указатель полон — 200 терминов из 200, 271 отметка; overfull-боксов 11, все — длинные URL и листинги.
Печатная вёрстка
406 страниц (было 418 в v8.0 и 428 после правок по ревью), 50,75 уч.-изд. л., 47,2 усл. печ. л. Формат А4 (60×84 1/8), полоса 170×257 мм, поля 20 мм, Times New Roman, абзацный отступ 10 мм — по требованиям ИПЦ НГУ. Объём блока чётный, колофон на последней странице.
Что заполняет автор перед сдачей
ISBN, фамилии рецензентов, номер и дату протокола кафедры, тираж, номер заказа, дату подписания в печать. В библиотеке НГУ подтвердить УДК 004.4:53(075.8), ББК 32.973-018я73 и авторский знак Ф33.
v8.0 — оригинал-макет для ИПЦ НГУ
Версия, подготовленная к сдаче в Издательско-полиграфический центр НГУ.
Объём блока приведён к чётному
Было 417 страниц. У листа две стороны, поэтому объём блока обязан делиться на два, а выходные данные должны приходиться на последнюю страницу. В шаблон добавлен долив: если колофон пришёлся бы на нечётную страницу, перед ним встаёт одна пустая. Стало 418, колофон последний.
Обрати внимание: 418 делится на два, но не на 4 и не на 16. При формате 60×84 1/8 полная тетрадь — 16 страниц, и типография может попросить кратности. До ближайшей кратной шестнадцати величины, 432, не хватает 14 страниц; доливать их вслепую я не стал — это вопрос к ИПЦ, потому что при цифровой печати и перфопереплёте чётности достаточно.
Мёртвые ссылки
Проверены все 210 внешних ссылок книги. Три ссылки на материалы Дэвида Бизли по корутинам отдавали 404: сам сайт dabeaz.com жив, а раздел с корутинами с него убран. Переведены на снимки Web Archive, все три отвечают 200. В печати мёртвая ссылка неисправима, поэтому архив лучше, чем ничего.
Остальные неотвечающие адреса разобраны и оставлены намеренно: mygroup/beamtool и nsu-phys/beam-dynamics — выдуманные адреса в примерах команд, dictionary.yandex.net — константа внутри листинга, isyspac/accumulator — закрытый репозиторий, ссылку на который автор просил сохранить.
Состояние книги
Проверено перед выпуском: 77 глав, SUMMARY и файлы на диске сходятся; внутренние ссылки, якоря заголовков и пути к картинкам целы; парность $$ и блоков кода соблюдена; предметный указатель полон — 200 терминов из 200; overfull-боксов ноль.
Плотность причастных оборотов, главная примета авторского стиля, — 71.2 на 1000 слов против 43.5 до стилевой правки.
Печатная вёрстка
418 страниц, 52.25 уч.-изд. л., 48.6 усл. печ. л. Формат А4 (60×84 1/8), полоса 170×257 мм, поля 20 мм, Times New Roman, абзацный отступ 10 мм — по требованиям ИПЦ НГУ.
Что заполняет автор перед сдачей
ISBN, фамилии рецензентов, номер и дату протокола кафедры, тираж, номер заказа, дату подписания в печать. В библиотеке НГУ подтвердить УДК 004.4:53(075.8), ББК 32.973-018я73 и авторский знак Ф33.
v7.1 — глава о себе и место работы
Правка вводной части.
Глава «О себе» переписана сдержаннее
Последняя треть читалась как резюме, а не как рассказ автора о себе. Убраны перечень навыков «что я умею делать руками» — от асинхронного кода до очередей сообщений; фраза о том, что автор даст продукту («найти и расшить узкое место, чтобы продукт вышел быстрее»); размер команды и должность в коммерческой компании; список курсов повышения квалификации; «с отличием» при дипломе; перечисление журналов, в которых опубликованы результаты — настоящие статьи и без того стоят в списке литературы.
Оставлено то, что объясняет читателю происхождение материала: работа на линейном ускорителе инжектора СКИФ, откуда взяты примеры; программы, которым в пособии отведены отдельные главы; четыре года коммерческой разработки — но переписанные так, чтобы отвечать на вопрос, почему в книге по физике есть жизненный цикл программы, тестирование, непрерывная интеграция и базы данных.
Попутно выправлена хронология: из прежнего текста выходило, будто коммерческая работа была до института, хотя в ИЯФ автор с 2018 года, а в компании работал с 2021 по 2024.
291 слово вместо 539, глава умещается на одну страницу.
Место работы
Значилось «младшим научным сотрудником в отделе ускорительных систем ЦКП „СКИФ“». На деле это сектор 5-13 ИЯФ СО РАН, а ЦКП «СКИФ» — отдельная организация, а не подразделение института. Упоминания установки («линейный ускоритель инжектора ЦКП „СКИФ“») в остальных пяти местах книги верны и не тронуты: автор участвует в пуско-наладочных работах на ней, но числится не там.
Печатная вёрстка
417 страниц, 52.125 уч.-изд. л., 48.5 усл. печ. л., overfull-боксов ноль, указатель 200 из 200. Формат А4 (60×84 1/8) по требованиям ИПЦ НГУ.
v7.0 — четыре переписанные главы и новая аннотация
Переписаны четыре главы, целиком заменена глава про визуализацию и переработана аннотация.
Визуализация на физических данных
Прежняя глава была выгрузкой чужого Jupyter-ноутбука: 3104 строки, 912 КБ, 32 листинга на 551 слово прозы, данные о продажах видеоигр с Kaggle. В тексте стояло «я выбрала» — женское первое лицо в книге автора-мужчины, то есть глава писалась не им и не была под него переписана.
Написана новая глава на данных физического эксперимента: осциллограмма с цилиндра Фарадея, квадрупольное сканирование с теми же значениями эмиттанса и параметров Твисса, что в главе про SciPy, матрица отклика 64×48 из главы про коррекцию орбиты, огибающая по уравнению Капчинского—Владимирского. Одна и та же огибающая проходит через все три библиотеки, поэтому разница между ними видна на общем материале. Отдельная глава про HoloViews влита сюда же — вместо двух глав подряд стала одна. Добавлен график параллельных координат из доклада автора: тысяча прогонов оптимизации оптики линака инжектора ЦКП «СКИФ». Объём — 32 КБ вместо 912.
Три главы про собственные системы
Из глав про цифровой двойник, мультиагентного помощника и автономного исследователя убран критический разбор: в первых двух он занимал половину текста, в третьей заканчивался упражнением. Взамен добавлено то, чего в них не было вовсе, — схемы и листинги из доклада автора и из репозиториев самих систем.
| Глава | Что появилось |
|---|---|
| Цифровой двойник ускорителя | Схема «клиент → EPICS Channel Access → ElegantIOC → Elegant», схема фермы из девяноста контейнеров на трёх машинах с оркестратором на Optuna, восемь листингов настоящего кода, три рисунка, проверка двумя командами caget и caput |
| Мультиагентный помощник | Схема роутера с контроллером, консультантом и секретарём, пятишаговый конвейер поиска по документации, пять сценариев работы с настоящими именами каналов и числами |
| Автономный исследователь | Системный промпт в том виде, в каком он задан системе, таблица придуманных ею идей с оценками, результат гибрида SVD и нейросети |
Ограничения у автономного исследователя оставлены перечнем, как в докладе автора, без морали в конце.
Аннотация
Первая фраза была перечислением на сорок слов — оглавление, разложенное в абзац, и ни одного утверждения о том, чему книга учит. Теперь начало называет предмет, а перечисление подчинено фразе «от основания к применению», как это сформулировано во вводной главе. В различительной фразе стояли три «а» подряд, она развёрнута через двоеточие. В адресации убрано «для… для».
Конвейер печати
Функция fix_images считала уже обработанным любой путь, начинающийся с img/, поэтому картинки из новых глав в сборку не попадали и XeLaTeX не собирал книгу. Теперь путь сперва проверяется относительно каталога главы. Картинок в макете стало 51 вместо 45.
Из предметного указателя убран термин «Seaborn», искавшийся по заголовку удалённой главы, и добавлен «Plotly». Обещание разобрать Seaborn, стоявшее в экспресс-курсе, приведено к тому, что в книге есть на самом деле.
Печатная вёрстка
418 страниц, 52.25 уч.-изд. л., 48.6 усл. печ. л., overfull-боксов ноль, указатель 200 из 200. Формат А4 (60×84 1/8) по требованиям ИПЦ НГУ.
Печатное издание одной книгой, А4
Четыре ревью прошли по книге целиком: техническая достоверность Python, алгоритмов и производительности; GNU/Linux, базы данных, машинное обучение и ИИ; физика ускорителей и практикум; отдельный проход по смысловым сдвигам, оставленным стилевой правкой. Утверждения проверялись запуском кода и сетевыми запросами, а не по памяти.
Формулы в главе про KENV — восемь ошибок
Пришли из первоначального импорта диссертации и до сих пор пережили все правки. Каждая проверена выкладками самой главы.
| Место | Было | Стало |
|---|---|---|
| Проверка теоремы Гаусса | π вместо скорости, дважды | υ |
| Полная жёсткость | k_x + k_xsc |
k_x − k_xsc |
| θ-компонента силы Лоренца | r̈ |
ṙ |
| Подстановка ψ = πr²B_z | ψ₀/(πr) |
ψ₀/(πr²) |
| Жёсткость квадруполя | eG/(pc) |
eG/p |
| Уравнение для полуоси b | ε_x²/b³ |
ε_y²/b³ |
| Разложение векторного потенциала | (r/2)^(2n+1/2) |
(r/2)^(2n+1) |
| Параксиальное приближение | потерян множитель 2 | e/(2pc) |
Там же в листинге dgdz шло без минуса, хотя глава двумя абзацами выше сама объясняет, что минус обязателен: поля резонаторов заданы отрицательными.
Фактические ошибки
- Параметры планировщика вынесли в debugfs в ядре 5.13, а не в 6.6. Команды книги не работали бы на Ubuntu 22.04 и Debian 12 — самых ходовых системах. Раздел разложен на три случая.
- Образ
jupyter/scipy-notebookпереехал на quay.io; по прежнему адресу Docker Hub отдаёт 404, то есть команда под заголовком «тег фиксируем ради воспроизводимости» не работала. - В примере LVM
pvcreateбрал диск целиком, аvgcreateсобирал группу из разделов, которые подpvcreateне попадали. - Граница привилегированных портов 1024, а не 1000.
SYSCALL_DEFINE3(write)живёт вfs/read_write.c. Код 304 Not Modified стоял в строке «ресурс переехал». У внешних ключей MySQL оговорки есть — MyISAM иforeign_key_checks=0в дампах.xargs -Pне даёт линейного ускорения по числу ядер. rangeописан как создающий список — остаток Python 2, причём напечатанный тут же вывод его опровергал. Листинг переписан и теперь исполняется ровно в напечатанный результат.is_primeвозвращалаTrueдля нуля и отрицательных чисел.- С CPython 3.11 кадры питоновских функций живут в куче, и рекурсия доходит до миллиона уровней — книга утверждала обратное для диапазона версий, который сама же объявляет рабочим.
- Замер сортировки: копия стоит около 2 %, а не 10 %, и на отсортированном списке выходит 13 мс, а не 4. Воспроизведено.
Выдуманная ссылка
DOI 10.1103/PhysRevAccelBeams.23.104601 не существует: Crossref отдаёт 404, соседние DOI того же журнала — 200. Заменён на настоящую статью Kaiser et al., PRAB 27, 054601 (2024). Ровно та галлюцинация, о которой предупреждает глава про ИИ этой же книги.
У статьи Никифорова исправлен диапазон страниц: 158–167 по оригиналу с сайта ОИЯИ вместо 158–170.
Смысловые сдвиги после стилевой правки
Около шестидесяти мест, где причастный оборот цеплялся не к тому слову, приписывал действие не тому деятелю или переворачивал причинность. Среди худших: предложение, потерявшее сказуемое; вставка «в сорок раз меньше» при отношении 50/2; замер «на двух ядрах», сделанный на десятиядерной машине; утверждение «все они возвращают число по всему массиву» прямо перед примером с axis=0.
Плотность причастий после починки 70.9 на 1000 слов против 43.5 до стилевого прохода. Чуть ниже целевого коридора — смысл важнее числа.
Практикум
Критерии задания про котиков требовали expose, сборки через docker compose build и обратного проксирования, которых в книге не было ни строчки. В главу про Docker добавлен раздел о разнице ports и expose и о nginx перед сервисами, так что критерии стали выполнимыми.
Прочее
Предметный указатель снова полон: термин «Амортизированная сложность» искался по строке с \\( O(1), а к моменту поиска формулы уже переведены в $O(1)$. Проставлены дата свидетельства ACCUMULATOR (№ 2026668488 от 07.07.2026) и запись о нём в списке свидетельств; у SAVA прямо сказано, что свидетельство не оформлено.
Печатная вёрстка
416 страниц, 52 уч.-изд. л., 48.4 усл. печ. л., overfull-боксов ноль. Формат А4 (60×84 1/8) по требованиям ИПЦ НГУ.
Печатное издание одной книгой, А4
Стилевая правка по всей книге: причастный оборот — самая устойчивая примета авторского стиля, и в тексте его было вдвое меньше, чем в бакалаврской и магистерской работах.
Плотность причастий, на 1000 слов
| вид | было | стало | цель |
|---|---|---|---|
действительное настоящее (-ющий) |
10.4 | 16.15 | 16–18 |
страдательное прошедшее (-нный) |
30.7 | 40.42 | 40–45 |
страдательное настоящее (-аемый) |
11.5 | 13.75 | 13–16 |
| итого | 43.5 | 71.98 | 72–78 |
| «который» | 6.61 | 4.15 | у автора 5.98 |
Полной авторской плотности (96 и 90) не добивались сознательно: обе работы автора — ВКР, жанр с обязательным формальным залогом, а пособие обращается к студенту на «ты». Страдательное настоящее выше 16 не поднимали по той же причине.
Главным приёмом была свёртка придаточных с «который» в оборот — это заодно вернуло сам «который» к авторской частоте.
Вводная глава оставлена на 59: там 774 слова, каждый оборот на виду, и наполнитель ради числа читался бы хуже прежнего текста.
Восстановленные числа
Прошлые проходы стиля в четырёх местах превратили цифры в слова там, где рядом стоят код и формулы. Возвращены: предел рекурсии 1000 (глава про графы), условие n = 0 и разметка предметов цифрами 1 и 0 (глава про рекурсию), нижняя граница произведения в определении факториала (структуры данных).
Проверка сохранности
Сверка с e411c60: листинги, формулы, заголовки и ссылки совпадают везде. Числа изменились в двух местах, оба проверены — в kenv.md добавлены 2 МэВ и 0.03 Тл, взятые из кода той же главы, в structure.md — значение swappiness 60 по умолчанию.
Печатная вёрстка
415 страниц, 51.875 уч.-изд. л., 48.2 усл. печ. л., overfull-боксов нет. Формат А4 (60×84 1/8) по требованиям ИПЦ НГУ.
Печатное издание одной книгой, А4
406 страниц, 50.75 уч.-изд. л., 47.2 усл. печ. л.
Формат 60×84 1/8 по требованиям ИПЦ НГУ.
Что изменилось с v5.1
Текст сверен с обеими работами автора — бакалаврской и магистерской — и
подтянут по двум приметам, которые к жанру ВКР не сводятся.
Длинное тире
Прошлый проход вычистил его слишком усердно: 1.17 на 1000 слов против 2.64
и 7.25 у автора. Возвращено примерно каждое третье из снятых, и только
по трём поводам:
- тяжеловесная глагольная связка: «Массивом называют набор однотипных
данных» снова стало «Массив — набор однотипных данных»; - пропущенное сказуемое, где тире обязательно по правилам: «системный
вызов — микросекунды, чтение с диска — миллисекунды»; - парное тире вокруг вставной конструкции там, где запятые перегружены.
Где стоял нормальный союз или причастный оборот, не тронуто. Формы
чередовались нарочно: если несколько определений идут подряд, часть
оставлена на «называют».
Слово «данный»
У автора это лексическая привычка, в книге его почти не было: 0.20 против
4.63 и 2.12. Добавлено 96 вхождений в формальных местах — разборы программ,
описания методов, требования к заданиям. Там, где книга обращается
к студенту на «ты», не ставилось: там оно звучит канцеляритом.
Стиль относительно работ автора
| признак | бакалавр | магистр | книга |
|---|---|---|---|
| тире | 2.64 | 7.25 | 2.91 |
| «данный» | 4.63 | 2.12 | 1.15 |
| двоеточия | 12.73 | 21.36 | 8.88 |
| длина фразы | 15.86 | 22.17 | 14.47 |
| причастия | 72.88 | 85.04 | 39.27 |
Разрыв по причастиям и длине фразы оставлен намеренно: оба образца автора
это ВКР, жанр с обязательным формальным залогом, а пособие обращается
к студенту на «ты». «Ты» и 85 причастий на тысячу слов — несовместимые
регистры.
Проверено
78 глав, ни сирот, ни дублей, ноль битых внутренних ссылок и картинок,
все ограждения листингов закрыты, 200 терминов указателя привязаны
к тексту, типографика чистая, переполнений строк ноль. Сверка
с предыдущим коммитом: ни одного изменённого числа, формулы, листинга
или ссылки.
Печатное издание одной книгой, А4
406 страниц, 50.75 уч.-изд. л., 47.2 усл. печ. л.
Формат 60×84 1/8 по требованиям ИПЦ НГУ.
Что изменилось с v5.0
REST-сервис переехал из структур данных в базы данных
Раздел «Практика» занимал 223 строки в главе про основные структуры
данных, то есть треть самой крупной главы книги. Это REST-сервис
на Flask с PostgreSQL и Redis, стоявший в части, про которую сказано
«то, что не зависит ни от системы, ни от языка», и опиравшийся сразу
на декораторы, базы данных и веб из трёх более поздних частей.
Пример встал в главе «Базы данных» после раздела про нереляционные базы:
к этому месту читатель уже знает и SQL, и ORM, и Redis, на котором
держится последний из четырёх вариантов хранения.
Вводка переписана под новое место. Раньше она кончалась словами «ради
этой мысли глава и написана», что верно для главы про структуры данных
и бессмысленно для главы про базы. Теперь раздел называется «Одна
задача в четырёх хранилищах» и предлагает смотреть не на код, который
почти не меняется, а на то, где лежат данные и во что обходится каждая
операция.
Обе главы связаны ссылками: из структур данных вперёд на живой сервис,
из баз данных назад на арифметику сложности.
Глава про структуры данных избавилась от Flask, @app.route, psycopg2
и Redis: их там теперь ноль, а было двадцать одно упоминание.
Проверено
78 глав, ни сирот, ни дублей, ноль битых внутренних ссылок,
все ограждения листингов закрыты, переполнений строк ноль.
Печатное издание одной книгой, А4
406 страниц, 50.75 уч.-изд. л., 47.2 усл. печ. л.
Формат 60×84 1/8 по требованиям ИПЦ НГУ.
Пособие снова одной книгой
Деление на «Теорию» и «Практику» рвало зависимости. Главы про ускорение
опираются на NumPy тридцать три и двадцать раз, а сам NumPy вместе
с обработкой данных оказывался в другом томе, из-за чего приходилось
оговариваться, что читатель найдёт его во второй части.
Теперь порядок частей отвечает порядку чтения, и оговорка снята
за ненадобностью. На титуле нет «Часть N», в описании нет «в 2 ч.»
и второго ISBN, аннотация одна вместо двух.
Главы выстроены по зависимостям
Шесть перестановок, каждая снимает молчаливую опору на непройденное:
- Docker перенесён в конец части «Осваиваем Linux». Он опирается
на пространства имён и контрольные группы, на оболочку, монтирование
и потоки ввода-вывода, то есть на всю эту часть, а стоял перед ней.
Теперь глава про механику ядра перетекает в инструмент, на ней
построенный. - «Инструменты Linux» подняты в начало своей части: следующие главы
сыпалиmkfs,mountиmdadm, а оболочку объясняла глава после них. - «Погружаемся в Python» поставлена перед «Разбираемся в алгоритмах».
Часть про алгоритмы заявляет независимость от языка, но примеры в ней
написаны на Python и пользуются классами, словарями и генераторами
списков. - «Требования к коду» переставлены после «Жизненного цикла ПО»:
глава на 236 слов открывала часть, ничего не вводя, и ссылалась на CI,
который определяется в следующей главе. - Экспресс-курс вынесен в приложение. Три его главы дублировали
основные: NumPy разбирался дважды, Matplotlib дважды, основы языка
пересказывали целую часть. Удалять нельзя, там 1750 слов своего
материала, поэтому они собраны в явное приложение с пометкой, что это
беглый справочник; в печать оно не идёт.
Порядок частей:
Собираем инструменты → Осваиваем Linux → Погружаемся в Python
→ Разбираемся в алгоритмах → Пишем надёжный код → Обрабатываем данные
→ Ускоряем код → Учимся у других → Работаем самостоятельно
Вводная глава
Раздел «Как устроена книга» описывал прежний порядок и обещал алгоритмы
раньше Python. Переписан. В перечне того, чему учит книга, не было первой
её части вовсе: семь глав про ИИ-помощников и контроль версий
не упоминались. Добавлено и то, чего требует аннотация ИПЦ: чем пособие
отличается от общего курса программирования.
Врезка про чтение замеров времени занимала пять абзацев и тормозила
открытие книги методическим отступлением раньше, чем читатель увидел
первый замер. Сжата до трёх без потери мыслей.
Оборот титула
Снята заготовка «чл.-корр. РАН» из блока рецензентов: остались две пустые
строки и подсказка, что вписывать.
Сведения об авторе
Появилась должность: с 2018 года в ИЯФ СО РАН, с 2026 года младшим научным
сотрудником в отделе ускорительных систем ЦКП «СКИФ». Список
зарегистрированных программ вырос с трёх до пяти: добавлены ACCUMULATOR
(свидетельство № 2026668488) и SAVA, которым в пособии отведены
отдельные главы. Добавлено преподавание в НГУ, из которого выросло само
пособие, и журналы, где опубликованы результаты.
Проверено
78 глав, ни сирот, ни дублей, ноль битых внутренних ссылок и картинок,
все ограждения листингов закрыты, 200 терминов указателя привязаны
к тексту, непомеченных ссылок вперёд не осталось, переполнений строк ноль.