📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Помогаторы разработчика 1С

Виталий Онянов28:59

Transcription

Всем привет! Меня зовут Анина Виталий. Свой первый код за деньги на платформе 1С я написал в далёком 2008 году, и вот, в общем-то, уже 15 лет этим и продолжаю заниматься. За это время побывал, как мне кажется, во всех состояниях типового Одинэса: от программиста-стажёра до начальника большого отдела разработки. Работал инхаус на предприятии, долго проработал в крупном интеграторе. А сейчас занимаюсь продуктовой разработкой. И мне, на самом деле, повезло: практически всегда я работал в больших командах, в окружении других программистов 1С. И как я постояннонимал у них какой-то опыт, так и иногда мне казалось, что они делают что-то, ну, не так удобно, не так эффективно, как мне кажется, можно было бы это делать. И вот на каких-то таких рассуждениях у меня и родилась идея данного доклада. Он ориентирован, прежде всего, на начинающих или, может быть, мидл-разработчиков, но очень надеюсь, что и матёрые зубры 1С-разработки тоже смогут для себя что-то почерпнуть или даже, наоборот, в комментариях расскажут о каких-то своих приёмах.

На настоящий момент современной прогрессивной средой разработки считается 1С:EDT, и когда речь заходит про удобство разработки, чаще всего упоминается именно она. Но на самом деле, и старый добрый конфигуратор всё равно не стоит списывать со счетов. Поэтому, уж простите, каких-то прорывных новых идей в этом докладе, увы, не будет. Я работаю, в том числе, и в 1С:EDT, но, признаюсь честно, моим основным и любимым инструментом разработки всё ещё остаётся конфигуратор, как, наверное, и для подавляющего большинства разработчиков 1С. Я всегда работал и работаю с большими конфигурациями типа 1С:ERP, УХА, УПП, и для них, т.к., к сожалению, проигрывает скорости работы конфигуратора. Кроме того, мне по работе очень часто приходится разворачивать какие-то присланные EDT, сравнивать конфигурации, быстро что-то править, объединять, и ключевое слово здесь – быстро. Среди прочего, мы работаем и через хранилище. Я работал в командах на 20+ 1С-разработчиков, хранилище используем через сервер хранилища конфигурации, разработка идёт достаточно плотная, и каких-то особых проблем мы не наблюдаем. Поэтому сейчас вы услышите грустный доклад от старовера 1С. И если я вдруг кого-то разочаровал, то заранее прошу прощения.

Итак, когда речь заходит про удобную работу в конфигураторе, часто вспоминают два проекта. Первый из них – это Снегопад. Когда-то давно я пользовался им, покупал подписку, но по ряду причин сейчас перестал. Во-первых, работая в интеграторе, я 90% времени программировал на серверах клиентов. Там бывает проблематично вообще установить что-то, что не прошло проверку службы безопасности. И, на самом деле, не очень понятно, как в этом случае соблюдаются условия лицензионного соглашения по использованию Снегопада. Кроме того, не оперативно осуществлялась поддержка версии платформы, и если ничего сейчас не изменилось, то до сих пор не поддерживается четырёхразрядная платформа. Ну и понятно, что в тридцатидвухразрядном конфигураторе сейчас уже вообще в больших конфигурациях не поразишь. Складывается ощущение, что проект, ну, скорее мёртв, чем жив. Его сейчас даже купить нельзя. Ну, на самом деле, жаль, инструмент был очень удобный.

Второе расширение конфигуратора – TurboConf. Также я его купил когда-то на распродаже Инфостарт. Интересный продукт, облегчает жизнь по многим аспектам. Этот проект плюс-минус развивается, выходят новые релизы, но меня он всё равно не устроился по тем же примерно причинам: таскать по разным серверам разных клиентов подобные инструменты бывает, ну, затруднительно. Но если у вас есть, скажем так, стабильное рабочее место, обратите внимание и на эти расширения конфигуратора. TurboConf, кстати, работает и в 1С:EDT, и у обоих продуктов есть реальные версии для ознакомления. Ну, а мне пришлось научиться работать, скажем так, в голом конфигураторе. Давайте посмотрим, что из этого старичка ещё вообще можно выжать.

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

Итак, конфигуратор запустился, и сразу же переходим на закладку "Сервис" -> "Параметры". Тут, на самом деле, много чего интересного. Я расскажу о тех настройках, которые изменены у меня относительно стандартных. И, конечно, не не обязательно всё, что использую я, подойдёт вам, и наоборот, используемый вами функционал может быть не нужен мне. На первой вкладке "Общий" я обычно сразу убираю флаги "Делать проверку при удалении" и "Заменять при переименовании". При работе в больших конфигурациях эти вещи занимают много времени. Ну и к тому же, если я реально что-то удаляю или переименовываю, я понимаю, зачем я это делаю, и уж сам проведу все нужные проверки. На вкладке "Тесты" я убираю перетаскивание теста, так как я сам этим механизмом не пользуюсь, но иногда могу что-то зацепить нечайно мышкой. А также, чтобы не оставлять ненужных невидимых символов в конце строк, я запрещаю перемещение курсора в конце строк. Многие разработчики пользуются отображением пробелов и табуляции. Ну, тут, конечно же, по желанию. Я лично пользуюсь. Единственное, что я меняю символ табуляции с ёлочек на прямую черту. Ну и чтобы не сильно напрягать глаза, ведь работаешь с текстом весь день, я ставлю больший шрифт. Текстов, обычно, меняю на...

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

...и выбранного идентификатора. Ну, например, я ставлю серый и оранжевый. То у нас в коде начнут подсвечиваться выбранные идентификаторы. Это есть во всех средах разработки всех языков. Мне кажется, почему у нас это по умолчанию отключено, я не знаю. Затем идём в "Прочее" и устанавливаем для этих идентификаторов серый цвет. Сравните: стандартный вариант работы и доработанный. По-моему, второй намного приятнее. И вот эти вот специальные символы, табуляции, пробелов, они не мешают читать и писать основной код. Кроме того, на данной вкладке в поле "Автозамена" я ставлю "Включить". Как это используется, покажу чуть позже. А также ставлю шрифт модулей побольше, тоже 12 с десяткой. За день уж сильно глаза устают. Здесь же переходим на вкладку "Группировка". Наверняка вы знаете, что циклы и условия тоже можно группировать, и почему-то это тоже по умолчанию отключено. Ставим нужные флаги, и теперь мы можем сворачивать и разворачивать циклы и условия в модулях. Кажется, что это удобно. Ну и здесь я ставлю автоматическое сворачивание групп для областей. Если у вас большие модули, и вы, как и рекомендует фирма 1С, весь код размещаете внутри определённых областей, то открывая общий модуль, вы сразу видите его структуру без всяких лишних листаний. Вот примерно так это сразу выглядит. Я этим давно пользуюсь, и мне кажется, что так удобнее.

Переходим на закладку "Запуск 1С:Предприятие". Не все знают, что если в параметрах запуска прописать режим отладки, то там, где должны запускаться фоновые задания, они запускаться не будут, а код будет выполняться в том же сеансе. Это невероятно полезно при отладке, так как отладка фоновых – это то ещё весёлое мероприятие. А оказывается, что прописав здесь вот такое вот заклинание, отладка фоновых превращается в самую обычную отладку. Ставим раз и навсегда.

Наконец, может быть, стоит рассказать, что в конфигураторе есть возможность подключения и внешних программ для сравнения, объединения модулей. Когда-то давно, работая в поддержке, мне приходилось часто обновлять доработанные конфигурации наших клиентов, и я пользовался бесплатной, но очень функциональной программой KDiff3. Не утверждаю, что она лучше, но по крайней мере, она единственное из данного списка может выполнять автоматическое трёхстороннее объединение. То есть, при при обновлении конфигурации поставщика, вам вручную нужно будет обработать только конфликты, а все остальные модули объединятся автоматически. Сейчас у меня таких задач нет, я ей давно уже не пользовался, но быть может, вам эта информация пригодится. Ну, хорошо, параметры настроили. Далее переходим к шаблонам текста.

Про них все знают, но мало кто пользуется. Но это, на самом деле, понятно. Шаблоны текста в конфигураторе, на мой взгляд, сделаны крайне неудобно. Во-первых, вызываются шаблоны по не самой удобной комбинации Ctrl+Q. Ну, ладно, это мы победили, поставив в параметрах автозамены значение "Включить". Теперь шаблоны вызываются автоматически после нажатия простого пробела. Но стало, на самом деле, не сильно удобнее, так как теперь выскакивает какое-то окно, где надо что-то выбрать, потом ещё окно, если надо, ещё окно. Эти окна куда-то всё время съезжают, поле ввода маленькое. В общем, шаблоны больше бесят, чем помогают. И я предлагаю в настройке шаблонов ОТК учить совсем все стандартные шаблоны и добавить свои аналогичные стандартным, но уже на свой вкус и цвет, без всяких этих всплывающих окон. Это может работать примерно как-то так. Это видео записано без каких-либо склеек, все эти вставки реализованы с помощью шаблонов. С помощью них же можно добавлять выбор различных списков объектов метаданных. Всё это без нажатия каких-то дополнительных комбинаций клавиш, все шаблоны срабатывают автоматически, просто при нажатии пробела. Для похожих шаблонов вместо стандартного окна выбора шаблона, просто придумываем разные срабатывания. Тут всё уже можно построить под ваши привычки и фантазии. Видна подсветка идентификатором, можно автоматически вызывать конструктор запроса, вызывать служебные символы. Конечно, стоит сразу добавить все символы, требующие переключения раскладки клавиатуры, и навсегда забыть об этом вообще. Ну и кроме добавления каких-то общей конструкции языка, есть смысл сразу добавить что-то и специфичное для вас и вашей конфигурации. Всё это добавляется элементарно, но почему-то далеко не многие этим реально пользуются. Ну, а мы идём дальше.

Следующая, опять-таки, всем известная очевидная вещь – горячие клавиши. Часть из них обозначена в соответствующих пунктах меню конфигуратора, и если вы вдруг в какой-то ситуации идёте мышкой в меню и что-то там пытаетесь выбрать, есть смысл раз и навсегда запомнить нужную комбинацию клавиш и в дальнейшем использовать уже её. Первое время, возможно, будет неудобно, но со временем вы выучите все основные комбинации, и работа станет сильно комфортнее. В меню есть не все комбинации клавиш, все описаны в справочнике в соответствующем разделе. Там, на самом деле, очень много всего интересного, и практически любое действие в конфигураторе, которое можно выполнить мышкой, можно сделать клавиатурой. Это переключение по всем окнам, вкладкам, вызов всех меню, ну и так далее. Всё это существенно экономит время. Ну и кроме стандартных для редактора текста комбинаций, про которые, кстати, тоже не все знают, ну, или знают, или не пользуются, есть некоторые уникальные, типа Ctrl-, Ctrl+Alt+P, Ctrl+T и так далее. В общем, если вы не пользуетесь горячими клавишами или пользуетесь не всеми, я вам крайне рекомендую пройти этот, скажем так, начальный порог неудобства, и затем, я уверен, вы ощутите все преимущества.

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

Ещё один крутой инструмент, который сильно помогает в работе – это мультибуфер. Программа для мультибраузерного буфера обмена. Включается в настройках либо при первом нажатии на комбинацию Win+V. И теперь при нажатии всё той же комбинации Win+V появляется вот такое вот окошко, где перечислены 25 последних сохранённых буфер значений. Причём поддерживаются всякие картинки, стили и прочее. Кроме того, какие-то значения можно закрепить в журнале. Это удобно, если вы разрабатываете какой-то функционал, и некий определённый текст нужно всегда держать под рукой. Данная фишка сильно упрощает жизнь при написании кода, ну и вообще различных текстов.

Также я часто вижу, как программисты при разработке какого-то большого функционала тратят много времени на отладке своего решения. Причём время тратится вот именно в ожидании запуска клиента в режиме отладки. Но ведь решается довольно просто: практически любую разработку чего-то более-менее серьёзного я всегда делаю во внешних обработках. Достаточно в коде в нужном месте сделать совсем небольшую вставку. Перед этим в редактируемом модуле нажимаем Ctrl+A, Ctrl+C, весь модуль вставляем в модуль обработки, например, для разработки. И всё, дальше спокойно разрабатываем во внешней обработке. Причём тестируем также в интерфейсе, но оно сразу же работает с учётом всех внесённых изменений. Работает для общих модулей, модулей всех объектов, да чего на годно, на самом деле, даже формы объектов можно разрабатывать во внешних обработках. Тут, правда, кода чуть-чуть побольше. Вроде бы, кажется, всё это настолько просто и очевидно, что и не стоит о таких вещах вообще делать доклад. Однако я очень часто вижу, как разработчики тратят своё время в ожидании обновления конфигурации базы данных и запуска клиента. Причём дело тут даже не только во времени. Наш мозг, он крайне не любит бездействовать, и пока запускается отладка, разработчик, ну, идёт в лучшем случае ковырять другую задачу, ну, а в худшем – читать новости или проверять мессенджеры. При этом теряется главное – фокус внимания, контекст. Да, мы об этом ещё чуть позже поговорим. С помощью внешних обработок удобно также писать и отлаживать какие-то отдельные небольшие функции или большие запросы. Хотя запросы, конечно же, удобнее писать и отлаживать в консоли запросов.

Однажды в одном из осных каналов был опрос среди разработчиков: кто какую консоль запросов использует? И я был очень удивлён, увидев, что 40% разработчиков используют типовую консоль 1С. Ведь есть и поудобнее инструменты. Да, кроме того, помимо консоли запросов, есть ещё и консоль схем коммодов данных, обозреватель, редактор объектов, консоль кода, ну и так далее. И логично, что сообщество разработчиков для себя любимых создало много очень довольно-таки удобных инструментов вместо и в дополнение к типовым 1С. Если ваша конфигурация на обычных формах, то несомненным лидером тут является "Инструмент разработчика" от Сергея Рых. По моему мнению, ничего круче этого для обычных форм нет. Встраивается в виде расширения или внешних обработок, абсолютно бесплатный. В общем, описывать все достоинства функционала сейчас смысла нету. Если вы по каким-то причинам их ещё не используете, крайне рекомендую присмотреться. Очень крутая вещь. Но у "Инструментов разработчика" есть один существенный минус: ими просто неудобно пользоваться на управляемых формах. Некоторые всё же продолжают, но я в какой-то момент начал искать альтернативные инструменты, собирать себе в папочку какие-то интересные обработки с Инфостарт. В качестве консоли запросов я какое-то время пользовался "Запросник" на управляемых формах, даже дорабатывал немного под себя. На Инфостарт также есть и доработанные версии с раскраской кода. Но уже года полтора как я плотно перешёл на Infostart Toolkit. Это набор очень полезных инструментов в одном расширении. Здесь и консоль запросов, консоль СКД, консоль кода, редактора объектов, анализ прав доступа, ну и так далее. Всё в одном месте. Мне нравится это как, ну, я не знаю, набор ключей для автомеханика или как стиральная машина-автомат. К ней быстро привыкаешь, её не замечаешь, но без неё уже никак. У Infostart Toolkit один минус: да, инструмент сильно платный, но мне кажется, своих денег стоит. Но на самом деле, помимо "Инструментов разработчика", Infostart Toolkit есть и несколько других платных или бесплатных подобных инструментов. Я уверен, что каждый сможет подобрать наиболее удобный для себя. Вот список наиболее интересных, на мой взгляд, подборок.

Идём дальше. Иногда программист 1С не ограничивается программированием только в 1С. Случается так, что нужно писать какие-то скрипты по администрированию, настроить какие-то простые линии сборки, автоматизировать запуск тестов, да мало ли что ещё. Даже в нашем первом примере с запуском конфигуратора можно пойти дальше и написать, например, скрипт, который запустит конфигуратор, обновит конфигурацию из хранилища, обновит конфигурацию базы данных, да, запустит предприятие сразу в режиме отладки, и, например, поставить это всё в планировщик заданий Windows где-нибудь часов на 8:00 утра. Пришёл на работу, а тебя уже ждёт открытый, обновлённый конфигуратор. Можно и дальше продолжить мечтание автоматизации каких-то рутинных действий. Но в этом случае перед разработчиком 1С всегда встаёт вопрос: а на чём делать всю эту оптимизацию? И у нас есть два скриптовых движка: это OneScript и 1С:Исполнитель. OneScript примечателен тем, что его синтаксис почти полностью совпадает с синтаксисом платформы 1С:8. Он с такой парадигмой и создавался. Для него и на нём написано множество библиотек, даже готовых инструментов. Есть активная поддержка сообщества. Я, скажем так, давно и плотно на нём сижу. Ну, а 1С:Исполнитель использует новый язык разработки для новой платформы от фирмы 1С – 1С:Элемент. Я, если честно, его ещё не пробовал, но, возможно, стоит. Да, чтобы сразу приобщиться, скажем так, к будущим технологиям от 1С. Несомненно, путь в эти движки не будет лёгким, это надо сразу понимать. Как и с другими вещами, о которых мы сегодня говорили, потребуется некоторое усилие и время, чтобы преодолеть вот этот первоначальный порог входа, там разобраться в структуре, окружении, написать первые скрипты. Но если перед вами стоят реальная задача автоматизации, то бросайте вы эти батники или что там у вас, начните свой путь в один из этих инструментов. Уверен, путь будет настолько же сложный, насколько и увлекательный.

Помимо непосредственного написания кода, есть помощники, которые помогают писать ещё и по возможности чистый код. Наверное, лучший помощник в этом – это твой сосед-программист. Я много раз говорил о важности и полезности рецензирования кода. Если ваш код не рецензируется, ваш код будет рецензировать ты. Априори стараешься писать его более качественно. Ну, а потом это входит уже в привычку. Также существенно влияет на качество вашего кода соблюдение стандартов разработки 1С. Они опубликованы, открыты, но проблема в том, что их много. Выучить всё, конечно, можно, даже, наверное, нужно, но куда удобнее, когда тебя вот прямо на месте тыкают несоблюдение стандартов прямо в твоём коде. Для этого есть специальная конфигурация 1С:АК от фирмы 1С. Очень советую вам использовать АК в своей работе. Благодаря ей вы довольно быстро освоите основные стандарты разработки, соберёте свою коллекцию шаблонов под эти стандарты, избежите неизбежных опечаток, научитесь оформлять свой код, как в типовых решениях. Может, не все правила, конечно, из большого набора типовой поставки АПК вам подойдут, но тут уже можно договориться с командой, и какие-то правила отключить или наоборот, добавить свои. Логика проверки здесь пишется всё на том же языке платформы 1С, это удобно. Есть, кстати, и плагин APK 2 для EDT. Ну и стоит сказать, что для решения этой же задачи уже есть несколько плагинов для проверки осного кода на платформе SonarQube. Можно найти несколько публикаций на эту тему, правда, порог входа, как мне кажется, здесь уже повыше, а новые правила пишутся уже на языке Java. Эти два инструмента – плагины SonarQube, АК – они не заменяют друг друга, а скорее дополняют, так как для осного Sonar имеющийся сейчас набор правил, они несколько отличаются от апкшных. В общем, если вы свой код никак не проверяете на наличие стандартов, там, на технический долг и прочее, может быть, стоит уже наконец начать.

Ну, а от культуры написания кода мы внезапно переходим к культуре физической. Наша профессия вроде как не считается вредной, всего второй класс вредности. Однако все мы знаем, к чему приводит долгое сидение за компьютером: это и проблемы сердечно-сосудистой системой, со зрением, боли в спине и суставах, те же колени, да, лишний вес. А там же плохое и подавленное настроение, проблемы со сном. Да, вы, наверное, всё и так это знаете. Но мы же с вами здесь сегодня про разработку и продуктивность. Так и есть. Куча исследований о том, как качество нашего отдыха влияет на нашу продуктивность на следующий день. А хуже отдыха для программиста, чем проводить его опять за компьютером, придумать сложно. Да, это и не отдых, строго говоря. Из-за того же венозного застоя в шейных позвонках в течение дня мозг и так не получает достаточного питания тем же кислородом, продолжая активно работать, а вы вечером место восстановления его ещё и добиваете. Проблем со сном и питанием, ну, тоже самое можно сказать и про другие органы. Ну, а дальше всё это катится как снежный ком. Что делать? Известно. Все мы слышали про рекомендации делать перерывы в работе и про зарядку для глаз. Есть специальные программы-напоминалки и всё такое. Но мне, например, когда я погружён в работу, всё это только мешает, раздражает. Да, сколько не пробовал, пока ничего не прижилось. Выход тут – любая физическая активность до или после работы, чтобы это на самом деле не было. Не зря многие IT-компании или оплачивают абонементы на фитнес своим сотрудникам, или даже имеют собственные спортивные залы. И не нужно тут никаких исследований читать, вы и на себе, думаю, не раз чувствовали разницу, когда, например, вот после тяжёлого рабочего дня выходишь из зала со свежей головой, а чистыми мыслями, с успокоившейся нервной системой, потом быстро засыпаешь, а утром наоборот, с отличным настроением, с зарядом бодрости и приятным таким подтягиванием в мышцах идёшь на работу. То дела делаются, конечно же, намного быстрее, не говоря уж тут вообще про здоровье. А если у вас ещё есть дети старше 7 лет, то во многие секции можно ходить вместе, да, совмещая полезное с ещё более полезным, воспитывая личным примером. Да, тут мне кажется, вообще без комментариев.

И раз уж мы с вами заговорили про сон, я считаю, что сон чуть ли не главный помогатор разработчика 1С. У нас сейчас какой-то культ работы, какой-то культ личной продуктивности, и всё это часто в ущерб сна. Это, на самом деле, большая проблема, так как недостаток сна очень сильно сказывается на нашем здоровье и той самой продуктивности. Помимо таких вещей, как ухудшение работы иммунитета, да, вы чаще болеете, недосып, он снижает такую же важную для нас концентрацию. Зато сильно увеличивает вероятность тех самых страшных болезней, да, типа рака, Альцгеймера, сердечно-сосудистых заболеваний. Появляется депрессия, повышенная тревожность. Недосып провоцирует переедание, не даёт контролировать свои эмоции и вообще принимать обдуманные, взвешенные решения. В то время как наоборот, здоровый сон, он увеличивает продолжительность жизни, улучшает память и творческие способности, снижает аппетит, риск инфаркта и диабета, вообще защищает от рака, простуды и прочих других заболеваний. Сон помогает мозгу учиться, напоминать. Во время сна мы избавляемся от лишних воспоминаний, мозг делает какие-то логические выводы, пробуждает креативность. Да, можно ещё долго рассказывать про пользу сна, там гормоны, вот это всё. Но так или иначе, значение сна невозможно переоценить. Какими бы крутыми инструментами вы не запаслись, какой бы удобной не была ваша диета, если вы пришли на работу не выспавшийся зомби, рабочий день, читай, пропал. О какой-то там эффективности или продуктивности тут говорить вообще не приходится. Если вы хотите быть хорошим разработчиком, а вдобавок ещё и терпеливым супругом, рассудительным родителем и иметь при этом отличное здоровье, очень призываю вас всех обратить самое пристальное внимание на вопросы сна. Возможно, вот эта литература сможет вам как-то в этом помочь.

Ну и наконец, переходим к топ-1 моего списка. Помню ещё, учась в университете, при выполнении практических работ, я заметил, что иногда задача настолько увлекает, да, что ты вот забываешь обо всём на свете: там, об идее, времени, прочих занятиях. Есть только ты, твои мысли и твой код. И вот в эти моменты ты настолько продуктивен, что можешь буквально за несколько часов сделать то, что собирался делать неделю, или за неделю написать там дипломный проект, который должен был делать полгода, или за пару дней подготовить доклад на Инфостарт. Уже позже я узнал, что данный феномен известен и хорошо изучен. Называется он "состояние потока". И этот термин вёл американский психолог Михай Чик-Сент-Михай ещё в далёком 1975 году. И самая известная книга на эту тему у него так и называется – "Поток". И проще всего ощутить состояние потока, играя в компьютерные игры. Да, геймдизайнеры, они очень хорошо знают про эти психологические ключи, приводящие к состоянию потока, и активно ими пользуются. Игры настолько популярны, да, особенно у детей, подростков, у которых ещё не сформировалась психика. И оказывается, что для решения рабочих задач, да, и вообще, на самом деле, любых, с некоторой успешностью, можно научиться входить в состояние потока и оставаться в нём довольно продолжительное время, показывая при этом какую-то суперпродуктивность и ощущая при этом настоящее счастье от работы. По мнению автора, вообще счастье – это и есть нахождение в потоке, чем бы вы на самом деле не занимались. Научиться этому – это большая работа, которой можно и, мне кажется, нужно заниматься всю жизнь. И тут есть несколько обязательных условий. Во-первых, надо, конечно же, искренне любить то, чем вы занимаетесь. Невозможно заставить тебя делать в экстазе то, что тебе не нравится. Во-вторых, у вас должна быть всё-таки какая-то мотивация, там и возможность вообще в принципе это делать. Без этого никуда. Ну, а в-третьих, сложность задач должна соответствовать вашим навыкам, иначе вы скатитесь вот либо в тревогу, либо в скуку. В общем, почитайте о состоянии потока у данного или других авторов. Есть несколько книг на эту тему. Я не могу сказать, что прям добился каких-то супер результатов по вхождению в состояние потока, к сожалению, нет. Но всё же есть некоторые вещи, которые мне очень помогают иной раз войти и оставаться в этом состоянии. Например, это, как ни странно, быстрый запуск конфигуратора, настроенная под меня моя любимая среда разработки, мои любимые шаблоны текста, горячие клавиши, слепой метод печати, мультибуфер, тое движки, которые делают за меня всю работу, красивый код, который не стыдно показать и легко поддерживать, бодрящая физическая нагрузка, столь необходимый нам здоровый сон и то волшебное чувство счастья, творчества и продуктивности, которые я ощущаю, находясь в состоянии потока. Всё это позволяет мне, как мне кажется, оставаться продуктивным разработчиком. Чего я и вам искренне от всей души желаю. А у меня всё. С вами был Виталий Анина. Большое спасибо за внимание.