Актуальность исследования обусловлена реальностью современного информационного общества, детерминирующего процессы восприятия и усвоения информации, что составляет основу человеческого существования. Проблема, инициировавшая выбор темы, может быть обозначена, как проблема лавинообразного роста информации, ежедневно воспринимаемой человеком, ее осмысления и безразличного потребления. Так или иначе, но эти перечисленные вопросы отсылают к необходимости рефлексии относительно базовых понятий, что есть обязательный начальный момент любого исследования.
Что такое информация? Термин происходит от латинского «information» и переводится как «сведение, представление, идею» [9]. Само это понятие, как и аналогичное с ним по смыслу (ε?δος – eidos), использовалось еще в античные времена Платоном [11]. В наше время информация – один из важнейших ресурсов. Информационные процессы, возникающие в человеческом обществе и в живой природе, изучаются многими научными дисциплинами (философия, маркетинг, лингвистика, семиотика, информационные технологии). Сегодня каждый человек окружен информацией. Информация всюду, она оказывает грандиозное влияние на человечество в целом, на каждого из нас, и ее объем многократно возрастает день за днем. Но было ли так всегда? Конечно, нет. В книге «Сигнал и Шум» Нейт Сильвер отмечал, что информационный «бум» начался с изобретения Иоганном Гутенбергом печатного пресса в 1440 году [1, с. 7]. До этого момента знания передавались в основном устным путем, при непосредственном контакте с человеком, либо через книги. Разумеется, переданные в устной форме знания часто искажались, книги же в этом плане были гораздо лучше; однако, до появления печатного пресса, они были очень дорогими, и позволить себе их могли очень богатые люди. Кроме того, книги довольно быстро приходили в негодность, а их копирование также было весьма трудоемким процессом. Для копирования одной книги привлекались десятки переписчиков, но даже и они, бывало, не успевали сделать копию, прежде чем страницы полностью изнашивались. Кроме того, в силу человеческого фактора, при копировании допускались ошибки, многократно дублируемые другими переписчиками, что делало процесс накопления информации очень трудоемким. Печатный пресс изменил ситуацию в корне. Стоимость книг снизилась, а их производство стало расти в геометрической прогрессии; накопленная информация стала увеличиваться быстрее. Тем не менее, появились и трудности. Несмотря на увеличение объема накопленной информации, ее качество оставалось неоднозначным, ведь допущенные ошибки теперь воспроизводились уже в гораздо большем масштабе. Кроме того, объем знаний начал расти гораздо быстрее, чем способность людей подтвердить достоверность информации и понимание того, как же правильно воспользоваться ей. «Информационный бум» повлек и более крупные, чем опечатка или ошибка в тексте, проблемы. Нейтон Сильвер писал: «Обладая слишком большим объемом информации, люди стали относиться к ней избирательно, отбирать то, что пришлось по душе, и игнорировать все остальное, превращая в союзников тех, кто разделяет их мнение, и относясь ко всем остальным как к врагам» [1, с.8].
Несмотря на возникшие преграды, постепенно развивались философия и наука. Ученые и философы познавали мир, исследовали его, собирали знания по крупицам. В результате деятельности каждый раздвигал границы известного чуть дальше своего предшественника, внося свой вклад в развитие. Одним из таких открытий, изменивших человечество, стало изобретение парового двигателя в 1775 году [1, с 10]. С этого момента началась промышленная революция, сопровождающаяся экономическим ростом, и общество стало изменяться еще быстрее. Маршал Маклюэн отметил, что каждый раз с появлением новых изобретений и технологий происходит перестроение форм восприятия, ибо каждая новая технология расширяет наши возможности и тем самым нарушает прежний установившийся баланс, меняет наше восприятие и, таким образом, в процессе формирования нового баланса, изменяется восприятие [5, с. 61]. Аналогичную ситуацию можно описать при рассмотрении функционирования ДНК. Как только хотя бы один ген в ней меняется, это приводит к мутациям всего организма [10].
Экспоненциальный рост информации повлек за собой много хорошего, но, чтобы эта польза проявилась, потребовалось 335 лет, начиная от создания печатного пресса в 1440 году и до изобретения парового двигатели в 1775 году. С появлением компьютеров в 1970 годах и всемирной паутины в 1990 году скорость накопления знаний увеличилась еще значительнее. С тех пор постоянно растущий объем информации продолжает оцифровываться, храниться или появляется сразу в цифровом виде в форме новостей, блогов, веб-страниц, научных статей, книг, изображений, звука, видео и социальных сетей; становится все сложнее выделить необходимое. Тема восприятия и обработки информации интересна тем, что она затрагивает универсальное явление – код. Ведь можно сказать, что все есть код. Кодом является язык – специально детерминированный код [2]. Кодом можно назвать музыку и кино (визуальный код). Это математические формулы и выкладки, произведения искусства – от картин до поэзии. Код есть и в живых структурах (ДНК), и в неживой материи – кристаллическая решетка вещества.
Понятие кода широко используется в области информационных технологий для обозначения компьютерных программ (программный код, исходный код). Его суть – в переводе инструкций, написанных на искусственных языках в машинные инструкции. В теории информации код определяется как система сигналов. Физически же код – система знаков и правил, по которым производится преобразование, хранение и перенос информации. В философии код имеет несколько значений: это и знаковая структура, и система сочетания символов. У. Эко определяет код как строго «случайное», непредвиденное взаимообратное соответствие одного символа одному означаемому [7], или, более строго, «код представляет собой систему вероятностей, которая накладывается на равновероятность исходной системы, обеспечивая тем самым возможность коммуникации» [2, с.56]. Итак, У. Эко определял код как систему, устанавливающую: 1) репертуар противопоставленных друг другу символов; 2) правила их сочетания; 3) окказионально взаимооднозначное соответствие каждого символа какому-то одному означаемому» [2, c.57]. Ю.М. Лотман полагал, что понятие кода психологически настраивает человека на машинную модель общения и искусственный язык. Ф. Соссюр писал, что наиболее близким по смыслу примером кода является язык, так как он представляет собой систему организации высказываний [8]. Существует также понятие социокода (или культурного кода). Такой код дает возможность понять смысл знаков, символов, норм, ритуалов, смыслов культуры. Он обеспечивает связь между символьным знаком и смыслом. Например, в древних культурах социокодом можно считать систему имен. Часто объект имел два имени – одно общеизвестное и одно истинное. И, поскольку имя было неотделимо от объекта, с ним проводили магические обряды. В качестве примера социокода можно рассматривать и временные интервалы, содержащие в себе смысл культуры (картина мира христианина строится, исходя из времени пришествия Иисуса Христа). Словом, код есть везде. По сути, код – это язык, на котором, в конечном итоге, выражаются потребности.
С точки зрения программирования, от хорошего кода зависит эффективность, читабельность и стабильность выполняемых компьютером программ, успешная поддержка целых IT-проектов, а также их эффективность. Хороший код в программировании еще называют чистым кодом [4, с. 29]. Есть немало примеров, когда чистый код мог бы спасти целую компанию только потому, что его намного проще поддерживать и модифицировать. Основной задачей такого кода является достижение понимания не только самим автором, но и другими программистами, которым приходится с ним работать. Чистый код в программировании – это признак мастерства. С ним удобно и приятно работать, он понятен и надежен. Написание такого кода – настоящее искусство и владение таким навыком, безусловно, важно для каждого программиста.
Цель данной статьи – дать описание понятию «чистый код», ответив на вопросы, что же такое чистый код, в каких областях его можно использовать, есть ли примеры применения, и если есть, то к каким результатам это привело.
В области информационных технологий чистым кодом называют программный код, написанный по определенным правилам, соответствующий критериям удобочитаемости и самодокументируемости и передающий намерения программиста (то есть, код, понятный тем, кто читает его) [4, с. 30]. Создание чистого кода – далеко не тривиальный процесс, требующий определенного уровня знаний. Этот процесс имеет много общего с искусством. Чтобы написать чистый код, необходимо сознательно применять разнообразные приемы, руководствуясь различными правилами и чувством «чистоты». Главную роль здесь играет «чувство кода» [4, с. 29]. Кто-то с этим чувством рождается, а кто-то усердно работает над его приобретением. Программист с таким чувством способен преображать плохой код.
Но что такое компьютерная программа? Это описание алгоритма на искусственном языке, набор инструкций, включающий в себя определенную логику. По сути, компьютерная программа содержит в себе информацию, сообщаемую компьютеру и понимаемую компьютером. Это очень похоже на процесс коммуникации, который Никлас Луман описывает в своей статье «Что такое коммуникация?». Этот процесс устанавливается через синтез трех различных элементов: информации, сообщения и понимания [6]. Следовательно, программа – это коммуникация с компьютером, так как она состоит из синтеза трех селекций: селекции информации, селекции сообщения этой информации и селективного понимания этой информации. Селективные процессы связаны с выборкой и отличием. Без селекции возможно лишь восприятие без коммуникации, без понимания сути. Понимание также является селекцией: присоединяется к предыдущему опыту коммуникации и становится предпосылкой соединения следующей коммуникации в самой коммуникативной системе [3].
Понятие коммуникации пришло из социологии общественных систем и философии. И раз уж чистый код применяют в коммуникации с машиной, очевидно, что возможно его использования в какой-либо коммуникации вообще. Подобно владению боевым искусством, суть которого в умении применять различные приемы (также своего рода код), способности быстро учиться и концентрироваться на одном (а не распыляться на многое), владение искусством чистого кода заключается в умении кодировать и декодировать информацию. Коммуникация и код присутствуют в кино, в рекламе, в архитектуре, в искусстве, в литературе, в музыке – во всех сферах нашего общества, определяя ход его развития. Код – глубинная тайна коммуникации, ибо код есть основание любой коммуникации, и суть самой коммуникации (информация, сообщение, понимание) заключена в кодировании и декодировании информации [12]. Но, согласно Никласу Луману, коммуникация позволяет сознанию создавать помехи. В коммуникационной системе появляются решения «да», «нет», переспрос, задержка ответа или воздержание от принятия решения – то есть решения, которые могут трактоваться в коммуникации [13]. Также Луман отмечает, что у коммуникационных систем есть память, и они запоминают опыт помех и, более того, накапливают его, что является минусом таких систем.
Стоит также отметить, что коммуникационный процесс между двумя участниками подвержен воздействию шума. Как написал Умберто Эко, этот шум может быть физическим или семантическим. При этом физический шум воздействует на сигнал во время его пути от источника информации к приемнику, а семантический – на значащее сообщение, воспринятое приемником. Семантический шум может быть обусловлен отсутствием либо неверным восприятием контекста сообщения, наличием неоднозначности у сообщения.
Подытоживая вышесказанное, можно отметить, что под воздействием шума возможно искажение информации. Как же «искусство чистого кода» может помочь в такой ситуации? Подобно тому, как в программировании хороший код должен передавать намерения программиста, должен быть компактным и содержательным, однозначным, легко читаться, быть полон четких абстракций и недвусмысленно передавать намерения программиста, словом, должен быть свободным от всякого шума. Так и в любой коммуникации, использующей как знаковые, так и визуальные, архитектурные, кинематографические, музыкальные и многие другие коды – передаваемая информация не должна допускать разных восприятий и неоднозначности. Например, фраза «I vitelli dei romani sono belli» имеет разные значения на итальянском языке и на латинском. С латинского эта фраза переводится как «Ступай, Вителлий, на воинственный глас римского бога», а на итальянском означает, что телята хороши собой [2].
В наше время ежедневно появляется такое огромное количество информации, что человеку уже не по силам обрабатывать такие объемы. Более того, ручной анализ неэффективен для больших объемов данных, ведь он ограничен скоростью, погрешностями и ошибками, обусловленными человеческим фактором. Человек подобно губке, впитывающей воду, не успевает не только усваивать, но даже воспринимать такие объемы, переставая даже интересоваться источниками информации. Ярким примером этого является ситуация присваивания в социальных сетях высказываний неизвестных авторов знаменитыми писателями, политиками или философами. Практически никто не пытается проверить авторство высказывания; возникает явление, которой можно назвать «смысловой пустотой» [3, с. 8]. Пресыщенное сознание становится безразличным к воспринимаемой информации и продолжает ее потребление автоматически [14].
Если сравнить объем информации, воспринимаемый человеком ежедневно в наши дни с объемом, который человек получал 100 – 300 лет назад, то становится хорошо заметно, что теперь каждый человек постоянно находится под воздействием огромного разнообразия источников информации: радио, телевидения, интернета, книг, даже обычного общения. Однако, полезная часть воспринимаемой информации существенно меньше ее объема и владение «искусством чистого кода» оказывает неоценимую поддержку в процессе усвоения и создания информации.
Какие выводы можно сделать? Во-первых, применение навыков по «созданию чистого кода» возможно не только в технической среде (в программировании), но в любой коммуникации вообще. Во-вторых, «зашумленная» информация может трактоваться неоднозначно или вообще быть отвергнута, ведь часто, когда человек что-то не понимает, возникает подсознательное желание переключиться на что-нибудь другое, поэтому так важно владеть «искусством чистого кода». В-третьих, так как информации вокруг очень много, чувство чистого кода может помочь выделять полезную, информативную часть из общего потока, поскольку оно помогает упорядочивать информацию в системе коммуникации. Вся наша жизнь состоит из коммуникаций. Понимание как элемент коммуникации невозможно без взаимосвязанного процесса кодирования-раскодирования, поскольку собеседники-представители разных профессий не смогут понять друг друга, если будут употреблять профессиональную лексику в диалоге. Код как основание всякого понимания (смысла, если оно есть, и бессмыслицы, если оно теряется, или невозможно) и, следовательно, коммуникации и есть глубинная суть коммуникации. Потоки коммуникаций, которые человек не успевает усваивать, теряя в них связь между «означаемым» и «означающим» приводят к потере кода как основания коммуникации и, следовательно, к «концу социального» [14].