Компоненты — это организмы

Я достаточно долго пытался сформулировать для себя, что такое «Компонент».

Я понимал термин достаточно хорошо, чтобы применять его в работе, но чувствовал, что не хватало осознания на интуитивном уровне. Мне хотелось понять, что это понятие в себя включает, как оно соотносится с другими понятиями и проектированием систем в целом.

Недавно, кажется, придумал хорошую аналогию, которая звучит так: компоненты — это организмы. Работает она на разных уровнях. Сейчас расскажу, как именно.

Компонент, как изолированная сущность

Компонент — самостоятельная изолированная сущность. Это значит, что у него есть чёткие границы, которые отделяют его от внешней среды и других компонентов.

Это важно, потому что проектировать что‑либо без чётко‑выделенных сущностей — больно и неэффективно.

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

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

ДНК компонентов

Организм развивается под действием ДНК и внешней среды. Компоненты — так же.

Для компонентов ДНК — это внутренние правила, которые определяют его цель, то есть чего компонент старается достичь, чтобы выжить. Эти же правила могут определять полезность и способ максимально‑эффективного достижения цели.

Давайте на примерах.

Чтобы Текстовое поле могло выжить, оно должно уметь показывать, что в него можно ввести текст и отображать этот введённый текст.

Кнопка должна уметь показывать, что на неё можно нажать, и по нажатию что‑то произойдёт.

Если компонент не умеет делать то, что «должен», он не нужен — то есть он не выживает.

Внутренние правила также определяют, чем компонент не должен заниматься. Текстовое поле не должно выполнять работу Кнопки, потому что:

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

Если присмотреться повнимательнее, то видно, что одно из таких «внутренних правил» — это принцип единственной ответственности. Этот принцип (SRP) — часть ДНК компонента, которая составляет часть исходных данных, которые определяют жизненный путь компонента.

Компонент во внешней среде

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

Снова на примерах. Форма поиска — это совокупность компонентов — сообщество:

У каждого организма в этой совокупности есть собственная роль — специализация:

  • текстовое поле должно принимать и отображать вводимый текст;
  • иконка должна объяснять, что текст будет воспринят, как текстовый запрос;
  • кнопка должна нажиматься и объяснять, что по нажатию будет отправлен поисковый запрос.

Внешняя среда может и будет меняться. Если среда меняется так, что наличия просто Текстового поля внутри Формы поиска недостаточно, поле может приспособиться и превратиться в Автокомплит, поле с Тегами, что‑то ещё, что позволит ему делать свою работу — выживать — лучше.

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

Если же на сайте не осталось форм в принципе, то Текстовое поле как компонент перестаёт быть нужным и вымирает. Это называется эволюция.

Эволюция компонентов

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

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

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

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

Если коротко — компоненты стремятся делать как можно меньше работы, но как можно лучше.

Эволюция среды

Внешняя среда тоже развивается. Сообщества растут или отмирают, условия развития компонентов и сообществ становятся жёстче или ослабевают. Всё это отражается на развитии компонентов.

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

Кнопка — отличный пример. Когда на сайте нет никаких форм кнопка мимикрирует под ссылки — она выглядит как кнопка, нажимается как кнопка, по нажатию что‑то происходит — но это не кнопка.

И это я ещё даже не говорю о компонентах‑паразитах; это, пожалуй, на какой‑нибудь другой раз.

Дизайн‑системы Экосистемы

Компоненты собираются в сообщества; сообщества — в группы; группы сообществ — в экосистемы. Экосистема — набор внешних и внутренних правил, по которым живёт проект.

Например, SRP — часть экосистемы, потому что диктует, как компоненты определяют свою специализацию. Наличие функции поиска на сайте — тоже часть экосистемы, потому что определяет, будет ли существовать, например, Форма поиска. Любое отношение между компонентами (симбиоз, паразитарные отношения) — всё это части экосистемы.

Экосистема (дизайн‑система) — это не «плакат со всеми сущностями в нашем проекте», нет. Это набор принципов и правил, которые определяют ценность проекта в целом и набор правил, по которым живут и развиваются сущности в этом проекте.

Капец ты двинутый

Как ни странно, всё это помогает проектировать системы с учётом таких старых друзей, как например SOLID.

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

Ну и в конце концов это просто весело — это же как играть в Цивилизацию, только на работе и по правилам, которые изначально даже неизвестны.

Ссылки

Не надо заставлять

В эфире рубрика «Лайфаки от капитана Очевидности». Рассказываю, чё делать, если не получается себя заставить чё‑то делать.

— Когда не получается заставить себя чё‑то сделать, не надо заставлять себя это делать.
— Спасибо, Кэп!

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

На примере, пожалуйста

Кулстори из прошлого. Когда‑то давно, ещё до того, как я придумал себе нормальную систему деления рабочего времени, я не мог заставить себя делать перерывы.

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

«Не так» было то, что я отвлекался на уведомление, что пора отдохнуть, отмечал его в голове «как прочитанное» и продолжал работать дальше.

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

Мне ничего больше не оставалось, как встать из‑за стола и поделать что‑то ещё, потому что иначе — скучно. То есть я не мог не выполнить уговор с собой, потому что не было возможности не выполнить его :–)

Радикально как‑то

Ну да! Но такой способ даёт понять, действительно ли мне так важна эта хрень, которую я не могу заставить себя сделать. Если нет, то ну и зачем она мне?

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

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

Другие о том же

Бесценный обесцененный опыт

Пришёл домой от терапевта, а значит настало время для ещё одного поста ¯\_(ツ)_/¯
Сегодня расскажу о вреде обесценивания прошлого опыта. Приготовьте там чаю себе, пост длинный.

О чём в этот раз

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

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

Почему это вредно

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

Когда я обесцениваю прошлый опыт, я лишаю себя опоры и перестаю понимать, как относиться к ситуации

Без опыта нет ориентиров. Становится непонятно, куда мне хочется двигаться и как я себя вижу в этом мире. Я как будто отформатированная флешка, во мне ничего ещё нет.

Обесценивание заслуг вызывает страхи, что всё, что я сделал — не по‑настоящему. Что в один момент это раскроется, и все поймут, что я ничего не умею и абсолютно бесполезен. Неважно: связано с работой, лично жизнью или чем‑то ещё.

Только разница с чистой флешкой в том, что на ней и страхов тоже нет. Она не боится сделать ошибку, а я в таком состоянии — боюсь.

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

Давай‑ка на примере

Вот примитивный пример: я поставил себе крайне оптимистичный срок на задачу. Не уложился, расстроился, из‑за чего на следующий день не успел в новый срок, который сам себе поставил.

Вечером я уже накручиваю, что если не смог справиться с простецкой задачкой, то какой из меня нафиг специалист и вообще, всё что я сделал до этого не имеет значения, раз я не могу взять себя в руки и разобраться с какой‑то фигнёй. Профессионалы вообще не зависят от настроения, просто берут засовывают своё плохое настроение себе… и работают.

Чувствуете, как быстро дошло до абсурда?

Только снаружи абсурд видно, а изнутри — нет. Изнутри всё получается как‑то стройно, логично и вообще — начинаю себе верить.

Откуда берётся этот голос

Только не кидайтесь в меня сейчас ничем. Это объяснение человека с высшим образованием в этой области. Я не хочу никого ни в чём убеждать, просто рассказываю, чо там у меня.
(Перед применением проконсультируйтесь со специалистом.)

Так вот. Личность состоит из множества субличностей, которые как‑то пытаются друг с другом коммуницировать. Об этом писал Курпатов в «Красной таблетке», где приводил пример, как поведение людей меняется в зависимости оттого, находятся они рядом со своими родителями или детьми. Разный контекст — разные модели поведения.

Какая‑то из субличностей проявляется чаще — она ведущая. Это та субличность, с которой мы себя ассоциируем, когда думаем о своих чувствах и переживаниях. Есть и другие, скрытые, они эпизодически пытаются себя проявлять в зависимости от ситуации.

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

Когда между ними возникает конфликт интересов, скрытая субличность пытается обратить на себя внимание, чтобы что‑то рассказать и объяснить. А самый удобный механизм для этого — обратиться к воспоминаниям или опыту и использовать их.

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

Когда какая‑то из моих скрытых субличностей пытается выйти на контакт, ведущая воспринимает это как угрозу и начинает беспокоиться. Но мне нужно осознать, что критика от скрытой субличности — это критика, в ней есть благое зерно. Эти претензии — просьба как‑то поменять обстоятельства, чтобы удовлетворить мои потребности. (Потребности — тоже мои, потому что исходят изнутри.)

Что советует терапевт

Надо учиться слышать этот голос не как голос страха, ужаса, стыда и прочих ништяков, а как голос критика, который пытается донести мнение со стороны. Для этого мне посоветовали несколько вещей.

Проговаривать страхи вслух

Раз абсурд заметно со стороны, надо слушать себя со стороны. Я уже как‑то писал об этом в посте о неправильных выводах.

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

На ней как бы появляется больше слоёв, из‑за чего она становится более конкретной. Это и помогает найти изъяны.

Осознать свою полезность в прошлом

Не может быть, чтобы я не приносил никакой пользы никому и никогда. Если бы это было так, то у меня не было бы ни друзей, ни работы. Поэтому важно вспомнить (и записать!) несколько ситуаций, когда я действительно принёс ощутимую пользу людям.

Когда начинается телега с обесцениванием — освежать в памяти эти моменты. Важно: они должны быть мощными, чтобы убедить меня, иначе они тоже обесценятся.

Осознать свою полезность в настоящем

Осознание полезности в прошлом — это фундамент, но его недостаточно. Если я чувствую, что сейчас занимаюсь какой‑то фигнёй и проживаю жизнь зря, то какая разница, что было в прошлом?

Мне нужно определить, кому и как я приношу пользу сейчас. Опять же это должно быть чем‑то мощным, чтобы иметь эффект.

Определить, что пытается донести критик

Голос не возникает просто так, для этого обычно есть предпосылки. Критику что‑то не нравится в этой жизни, он пытается об этом сказать. Моя задача — определить, что именно не нравится и почему.

Найти способ коммуникации

Чтобы найти причины недовольства критика, надо найти способ с ним общаться.

В терапии есть приём, когда я как бы смотрю на себя со стороны. Прям вот сижу на диване, смотрю на кресло и стараюсь представить, как сажусь в него. Когда образ появился, надо посмотреть, как он себя ведёт: поза, выражение лица и всё такое. Это поможет понять, какие качества выражает эта субличность.

Когда образ сложился, с ним можно поговорить. Но чтобы не терять связь с ним, надо как‑то договориться, как общаться в обычной жизни. Заметка в телефоне, пометка на руке, жест, особенное слово, не знаю — что угодно. Какой‑то символ, который будет соединять меня с этим образом.

Этот символ будет переключателем, который будет давать скрытой субличности «выйти в свет» и сказать, что хочется. У меня это происходит (опять, лол) через заметки в телефоне.

Звучит как какая‑то дичь

Да я и не отрицаю.

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

Почитать на тему

Уфа, сентябрь 2018

Это ностальгический и сопливый пост о местах в Уфе, в которых происходили всякие истории из моего детства. Если вдруг в какой‑то момент вам покажется, что стало слишком сентиментально — закрывайте, дальше будет только хуже.

Ну, поехали!

Первый двор

Здесь я провёл детство до 6‑го класса. Парковки раньше не было, да и детская площадка выглядела по‑другому. Рядом с песочницей были старые железные качели, лесенка‑радуга и заросшее травой поле, на котором мы играли в футбол.

Мой первый двор
Сейчас тут парковка

В проходе между домами мы играли «в машинки». Правила простые: смотрим на дорогу и ждём, когда поедут машины. Задача в том, чтобы до того, как машина появится из‑за дома, определить, насколько она крутая и сказать «моя или не моя». Грузовики считались зашкваром, а вот бетономешалки были в почёте.

Трубы, на которых мы сидели и играли «в машинки»

Мой дом и адрес

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

ул. Свободы, 38 — мой первый адрес
Магазин «Элита»

Вначале не заходил туда, потому что было стыдно, а потом мы с родителями переехали в другую часть города. Зашёл туда только в прошлом году, когда оказался недалеко. (Нет, она там уже не работала :–)

Первая школа

Я учился в 3 школах, это первая. Раньше на месте футбольного поля и беговых дорожек был поросший бетоном пустырь.

Школа 85

В этой школе было много хороших учителей, но больше всего я благодарен учителям русского и английского — языки мне прокачали именно в начальных классах. Галина Александровна и Юлия Николаевна, спасибо!

Парк Нефтехимиков

В простонародье Химик. Чтобы покататься на аттракционах в этом парке, мы с ребятами со двора в перерывах между футболом сдавали пустые бутылки. На вырученные деньги покупали билеты и в тайне от родителей катались на американских горках.

Сейчас аттракционы выглядят не очень, а американские горки уже не такие страшные, какими казались в детстве.

Неработающий фонтан в парке Нефтехимиков
Аттракционы в парке — 1
Аттракционы в парке — 2

В этот же парк однажды классе в 5 или 6 не пришла девочка, которую я пригласил погулять ¯\_(ツ)_/¯

ДК «Новатор»

Сюда я ходил в театральный клуб, где мы ставили спектакль по «Синей птице». Я вначале попал на какую‑то роль второго плана, но потом мне отдали роль Тильтиля.

Ставили мы не всю пьесу, а только 5‑е действие, потому что за 3 месяца бы не успели выучить текст — пофлексили, так сказать :–)

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

ДК «Новатор»

А на площади около ДК я научился кататься на двухколёсном велосипеде. Там же в первый раз не справился с велосипедом и врезался в чью‑то машину. Нет, машину не поцарапал и даже не упал!

Кольцевая

Это улица, на которой я впервые в жизни пробежал 5 километров. Тогда я понял, что мне нравятся длинные дистанции. Бегаю до сих пор, рекорд — полумарафон.

Старые дома на Кольцевой
И рядом с Кольцевой

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

Тогда я стал договариваться отдельно с каждым на разные дни, чтобы бегать не всем двором, а по 2–3 человека. Потом, правда, и это работать перестало, пришлось продолжать одному :–)

ТРК «Семья»

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

Подземный переход рядом с ТРК «Семья»

Когда‑то мы там собирались, чтобы поиграть. Было даже время, когда писали свою музыку, но очень недолго, потому что половину состава нашей, кхм, группы по очереди позабирали в армию ¯\_(ツ)_/¯

Вторая школа

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

Школа 77

Именно тогда я начал учиться выстраивать личные границы в общении и рефлексировать. Начал вставать на место тех, с кем приходилось конфликтовать, чтобы понять, как лучше действовать. Научился отстаивать свои интересы несмотря на давление со стороны.

Лес около частного сектора

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

Лес около частного сектора — 1
Лес около частного сектора — 2

Там же я готовился к экзаменам и ЕГЭ по физике и математике в 10 и 11 классах. И это никак не связано с тем, что «духовность и бла‑бла‑бла». Дома было шумно из‑за младших брата и сестры и готовиться к сдаче было некомфортно совершенно.

А ходить каждый день куда‑то, чтобы и деньги не тратить, и не напрягать особо никого, — ну я смог придумать только вот. С погодой везло, дождей не было!

Гимназия

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

Было тяжеловато, потому что и до школы добираться дальше, и одноклассники с учителями новые, и программа трудная. Но благодаря этому я научился суперважному качеству — заткнуться и делать. Оно потом не раз выручало в университете и на работе.

Гимназия 105

Там же познакомился с Костей, сдружились. В 10‑м классе заинтересовался разработкой и начал заниматься ей. Занимаюсь до сих пор :–)

Самое важное в самокопании

Тьфу, уже 3 поста о самокопании накатал, но о самой важной вещи не написал. А самое важное как ни странно:

Меньше думать!

«Шта? Сам же говорил, задавать вопросы, отвечать на них»

Да, верно. Но отвечать нужно исходя из эмоций и чувств, а не «разумных» рассуждений.

Я всегда много рационализировал, искал закономерности, паттерны и прочее. Но когда я пытаюсь разобраться с тем, что происходит в моей голове, это только мешает.

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

И это капец как отвлекает от цели — понять, что меня парит, и откуда это взялось.

Почему важно акцентировать внимание на эмоциях

Потому что нельзя разрулить логикой то, с чем она не умеет работать. Курпатов в «Красной таблетке» пишет:

Мы чересчур доверяем своему сознанию, а именно с его помощью наш мозг умело прикрывает любую свою глупость красивыми формулировками и «мудрыми» объяснениями. По сути, сознание санкционирует то, с чем, по уму, должно было бы бороться

Задача‑то не в том, чтобы придумать себе красивых отговорок, а чтобы докопаться до правды. Но без опоры на чувства всё, к чему я приду — это «объяснения», почему мир такой несправедливый, и как плохо плохая жизнь со мной обошлась.

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

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

Пусть разум задаёт вопросы

Что у меня получается с помощью логики хорошо — так это искать противоречия и задавать себе каверзные вопросы. Противоречие — отправная точка, рычаг, за который надо потянуть, чтобы найти корень проблемы. Курпатов в той же «Красной таблетке» пишет:

Сколь бы разумными мы себе ни казались, наш мозг ищет и отмечает только те факты, которые доказывают его правоту, и напротив — всё, что его установкам противоречит, он жёстко игнорирует

Противоречие возникает из‑за факта, который не вписывается в мою нынешнюю картину мира. Именно противоречия показывают, где я себя обманываю. Я стараюсь подмечать их и вовремя пресекать попытки найти им «объяснение» — задаю себе вопросы. Об этом я писал в одном из прошлых постов.

Но вот отвечать на вопросы «разуму» уже должны помогать эмоции и чувства, потому что они — такая же важная часть мышления, если не более важная. Курпатов в другой его книге «Чертоги разума» пишет:

Нам кажется, что у нас есть мышление — как способ решения жизненных задач, и другие (не мыслительные) психические процессы: воспоминания, мечтания, переживания… Это разделение ошибочно

Разделение действительно ошибочно. Я могу отвечать на один и тот же вопрос по‑разному, в зависимости от эмоционального состояния — это ли не показатель важности эмоций?

«А как научиться их замечать‑то?»

¯\_(ツ)_/¯

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

Почитать на тему

Книги:

И статьи:

Раньше ↓