Давайте под конец рабочей недели поговорим о ведении технического (и не только) блога!
- Зачем вообще вести, как начать писать;
- Насколько глубоко уходить в тех. детали в постах;
- Свой хостинг или блогоплатформа;
- Русский или английский язык.
Кидайте ссылки на свои блоги!
Расскажите, ведёте ли вы свой блог?
как начинали?
что подтолкнуло?
что для вас самое сложное?
какие плюшки вы от блога получаете?
Я замечал за собой, что прокрастинирую я те задачи, которые кажутся большими, объёмными и _непонятными_.
Новый пост — это та ещё непонятная задача. Сами посудите:
- с чего начать?
- как сформулировать проблему?
- какая аудитория?
- что читатели должны знать перед прочтением?
Все эти вопросы так или иначе возникают при написании статьи.
Просто мы можем не отдавать себе отчёт, что они есть. Но фоном мы всё равно будем пытаться на них ответить ¯\_(ツ)_/¯
Первый принцип «Есть слона по частям» старается разбить большую непонятную задачу на маленькие куски.
Такие маленькие задачи можно решить по одной за раз. Ну типа,
- «определиться с проблемой»;
- «определить уровень знаний перед прочтением»;
- и т. д.
Этот же принцип я применяю при собственно написании текста статьи.
Я не пишу сразу огромную портянку на 40 тысяч символов — это сложно, выматывает и вообще.
Сперва я намечаю структуру заголовков — это помогает составить «карту», по которой я потом буду идти.
Причём
- сперва структура состоит только из верхних заголовков,
- потом я уточняю каждый раздел подзаголовками,
- потом в каждый подраздел накидываю тезисов.
Когда у меня появился примерный конспект из заголовков и, кхм, тегов-ключевых-фраз, я могу уже приступить к собственно тексту.
И тут наступает проблема «белого листа» — С Ч Е Г О Н А Ч А Т Ь ? 😃
Используйте второй принцип: «ну блин короче».
Начните ваш текст поста с «Ну, блин, короче...» и дальше пишите всё, что считаете нужным.
Пишите просто сплошняком, без абзацев, без разбиения на предложения. Строчите из буквомёта, пока идёт.
Не беспокойтесь, вы это отредактируете, но потом:
Третий принцип «Редактировать — отдельно».
Старайтесь разделять сессии написания и редактирования.
Это разные задачи, их решать надо тоже по-разному. При редактировании вам часто придётся убирать текст, заменять его, переформулировать, добавлять деталей и мяса.
Всё это встаёт в прямое противоречие с «написанием».
Можно сравнить написание с брейм-штормом, а редактирование — с анализом результатов.
Итак, вот белый лист мы кроем очередью из буквомёта. И в какой-то момент он перестаёт стрелять...
Как так? Неужели поток мыслей закончился? У меня что, больше не о чем написать? Всего лишь 2 абзаца сделано.
Всё нормально. Вероятно, вы устали. Возьмите перерыв.
Важно: во время перерыва я не смотрю на то, что написал. Вообще.
Если я отдыхаю от текста, то не вспоминаю о нём до следующего подхода. Даю, так сказать, нейронам остыть.
В следующий раз, когда я сяду за текст, я буду отдохнувшим от него (что позволит найти ошибки и нелогичное повествование).
Забавно, но именно во время мытья посуды или прогулки я придумываю хорошие доводы и сравнения для своих статей ¯\_(ツ)_/¯
Хорошо, вот за несколько подходов мы наполнили структуру из заголовков каким-то текстом.
Там нет абзацев, иногда нелогичные переходы, предложения не согласованы, вот это всё.
Что дальше? Дальше можно начать редактировать.
Я обычно сперва проверяю логику повествования:
- логично ли одно предложение перетекает в другое?
- движется мысль или стоит на месте?
- как связан один абзац со вторым и т. д.
На этом этапе можно переделывать структуру всего текста, как захочется, потому что сил потрачено ещё не очень много.
Можно двигать разделы, абзацы, заголовки, куда угодно.
Это пока что не булка, а тесто — месить его вполне нормально.
Когда с логикой всё хорошо, можно углубляться в сам текст:
- достаточно деталей?
- нет ли наоборот лишних деталей?
- точно каждое предложение относится к теме?
- что можно убрать без потери смысла?
- чего не хватает?
После того, как текст становится монолитом, где ни убрать, ни добавить, можно приступать к пунктуации, орфографии и грамматике.
Если есть роскошь дать кому-то почитать — обязательно дайте.
Чей-то информационный пузырь, который отличается от вашего, поможет убедиться, что текст понятный и логичный не только с вашей точки зрения.
Днём поговорим о том, что выбрать:
- свой хостинг или чью-то платформу;
- русский или английский язык.
Продолжим 🙂
Давайте ещё один опрос!
Self-hosted блог или чья-то платформа?
Я топлю и всегда топил за селф-хост.
У платформ я вижу только одно преимущество — можно сразу писать на какую-то аудиторию.
Всё, дальше только минусы 😃
- Контент — не мой;
- Площадка может на мне наживаться и вообще вести себя по-скотски (привет, Медиум!);
- Если площадка большая — пост теряется среди тысяч других;
- Не всегда удобно писать и публиковать.
Я писал немного на newline и сейчас пробую dev.to в рамках эксперимента, чтобы выйти на зарубежную аудиторию, посмотреть чё-как, почву прощупать.
Но уже сейчас понимаю, что мне, вероятно, придётся делать английскую версию сайта :–/
В селф-хосте мне нравится, что контент всегда остаётся у меня и в одном месте.
Я могу переехать со своими заметками куда захочу, устроить процесс публикации, как мне удобно:
- bespoyasov.ru/blog/new-site-…
— Но для селф-хоста нужен дизайн!
Не-а 😃
Можно наверстать сайт на чистом HTML без стилей. Если есть, что написать, это будут читать:
Но RSS для меня — единственное место, где блоги читать _удобно_.
Почта — для работы, я сейчас наоборот чищу почту ото всяких рассылок, чтобы не шумели.
Соц. сети — возможно, но там нужно следить самостоятельно, не пропустил ли чего. Это неудобно.
Поэтому для меня ответ однозначный — да, RSS нужен.
*Старческое кряхтение.*
А теперь о примерах кода 😃
Вот мы пишем статью о какой-то технологии или случае из разработки. Там будет код.
Как его правильно оформить?
Нам же одновременно надо решить почти противоречащие задачи:
- Кода должно быть не слишком много, чтобы было проще читать.
- Но кода должно быть достаточно много, чтобы передать контекст проблемы.
- Код должен быть не слишком сложен и специфичен, чтобы пример был проще для понимания.
- Но код должен быть достаточно специфичен, чтобы не быть примером а-ля `2 x 2 = 4`.
- Как быть с примерами, которые нельзя разделить на более мелкие?
- Добавлять ли слишком мелкие примеры?
Начнём с простого.
— Добавлять ли простые и маленькие примеры?
Да, лучше добавить. Это как в кино, лучше показать, чем рассказать.
Иногда парой строк кода можно выразить больше, чем несколькими абзацами текста.
Но при этом объяснения к коду тоже стоит привести.
— Писать объяснения до примера, после или внутри?
Расположение не имеет значения, но последовательность — имеет. Лучше выбрать для себя правило и следовать ему на протяжении всего поста.
Вопреки расхожему мнению, я считаю, что пояснения внутри кода в виде комментариев — хорошо.
Хорошо, потому что объяснение находится прямо в том месте, которое объясняет.
Лучше написать комментарий перед строкой с объяснением, чем потом писать «А на 6-й строке мы делаем бла-бла».
Мне ещё кажется, это более привычно для читателей, потому что они сами видят комментарии именно в таком виде на работе.
— Как выбрать, какой код добавлять в статью?
Я стараюсь добавлять код, который относится _непосредственно_ к теме статьи.
Читаю заголовок или подзаголовок, задаю себе вопрос: «Этот код относится к теме?»
Да — добавлю, нет — в топку его, иначе будет шуметь.
— Что делать с примерами, которые не делятся?
В первую очередь подумать, можно ли это отрефакторить.
Затем подумать, как бы вы группировали такой код отступами в редакторе. Где добавите пустые строки — там можно выделить отдельный кусок.
Теперь самое сложное:
— Как выбрать, какой именно код и сколько код приводить в примерах?
Откусывайте от кода маленькие кусочки до тех пор, пока откусить будет больше нечего.
Если пример кода содержит две идеи, его лучше распилить. Если в примере есть детали не по теме, из лучше убрать.
Отдохните и проверьте, понятна ли идея за примером.
Если деталей наоборот не хватает, добавляйте по одной до тех пор, пока идея примера не станет понятной.
Акцентируйте внимание на развитии примера сквозь статью.
Если приходится писать тесты для махрового легаси, которое писали до вас, то советую посмотреть на книжку Физерса «Эффективная работа с легаси»: bespoyasov.ru/blog/working-e…
Дублирование кода _на ранних этапах_ может показать, как всё на самом деле работает, и какие паттерны мы ещё не увидели.
Удаление дублирования — это прогнозирование будущего. Чем больше исходных данных удастся собрать, тем точнее будет прогноз.
Чтобы не потерять места с копипастой, помечаю их коммент-флагом `DUPLICATE`.
После самого флага пишу, какую функциональность он дублирует. Это даёт флагу осмысленное и уникальное имя, по которому потом проще искать места для рефакторинга.