Разработчики часто говорят о «самых сложных проблемах» программного обеспечения: об аннулировании кеша и именовании вещей. Это насмешливая шутка, в которой много правды. Очень сложно взять абстрактную концепцию и свести ее к одному имени, и это то, что разработчикам приходится делать постоянно в своей повседневной работе. Будь то код, который они пишут, или разговаривают с коллегой или группой, одна из самых важных вещей, которые может сделать разработчик, - это научиться формулировать абстрактные идеи - на самом деле это так важно, что часто это то, что проверяется на собеседованиях.

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

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

Бесшумный терпеливый паук Уолта Уитмена

Бесшумный терпеливый паук,
Я отметил, где на небольшом мысе он стоял изолированно,
Знал, как исследовать безлюдное пространство,
Он запускал нить, нить, филамент, выходящий из себя,
Когда-либо разматывая их, когда-либо без устали ускоряя их.

И ты, о моя душа, где ты стоишь,
Окруженный, отрешенный, в безмерных океанах космоса,
Непрерывно размышляя, рискуя, бросая, ища сферы, чтобы соединить их,
До моста ты будешь нужно быть сформированным, пока прочный якорь не держится,
Пока ты не швыряешь тонкую нить куда-нибудь, о душа моя.

Если вам интересно, «паутинка» определяется как «тонкая пленчатая субстанция, состоящая из паутины, сотканной небольшими пауками, что особенно заметно осенью». Одним словом, Уитмен связывает воедино концепцию человека, бросающего свое внимание и «душу» в мир, чтобы найти смысл для себя, с буквальным пауком, плетущим свою паутину. Это определенно скупо со словами.

Большинство разработчиков программного обеспечения, с которыми я работал, довольствуются тем, что абстрактное понятие называют абстрактным, и просто усваивают его значение. В Javascript есть понятие «объект»; реальная конкретная вещь, существующая в языке, которая имеет большое значение, но представлена ​​словом настолько широким по значению, что это будет непонятно для любого, кто еще не знает этот термин.

В традиционном выражении «объектом» считается вещь, существо или понятие. Так что по сути ни хрена. В программном обеспечении этот термин возник из информатики и предназначен для описания чего-то, что имеет адрес в памяти и значение, связанное с ним (это может означать переменные, функции, методы или структуры данных). И все же «объекты» в Javascript обладают вполне реальными характеристиками. Они представляют собой структуру данных, которая связывает вещи со строками, которые являются фактическими значениями (строки или числа) или ссылками (другие объекты или массивы).

Если вы не знакомы с Javascript или его типом «объект», вероятно, все это немного эзотерично. Давайте создадим метафору, которая точно описывает, как выглядит объект, используя идиому, с которой все мы хорошо знакомы: шкаф.

Допустим, вы стоите перед шкафом:

let cabinet = {};

С полкой для обуви («полки», кстати, вмещают все, что может вместить шкаф! Мы называем их «массивами» в Javascript и большинстве других языков):

let cabinet = {
  shoes: ['boots', 'sneakers', 'climbing']
}

С какой-то изолентой на полу (это очень беспорядочно):

let cabinet = {
  shoes: ['boots', 'sneakers', 'climbing']
  duct_tape: true
}

Рядом с изолентой сидит очень необычный кусок письма:

let cabinet = {
  shoes: ['boots', 'sneakers', 'climbing']
  duct_tape: true,
  derivative_work: "It was the best of cabinets, it was the worst of      
    cabinets..."
}

С моим возрастом (ох!)

let cabinet = {
  shoes: ['boots', 'sneakers', 'climbing']
  duct_tape: true,
  derivative_work: "It was the best of cabinets, it was the worst of      
    cabinets..."
  age: 33
}

И вот что: там есть даже другой шкаф со своим собственным хламом внутри.

let cabinet = {
  shoes: ['boots', 'sneakers', 'climbing']
  duct_tape: true,
  derivative_work: "It was the best of cabinets, it was the worst of      
    cabinets..."
  age: 33
  another_cabinet: { ... }
}

Ну это все. Мы должны называть объекты Javascript «шкафами», верно? ;)

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

Но это не значит, что для объяснения нужно полагаться на жаргон.

Я предполагаю (или надеюсь), что кто-то, кто не был компьютерно грамотным, читая эту статью, к ее концу сможет описать объект Javascript как «шкаф, в котором можно хранить записи, числа, вещи, полки и другие шкафы, »- и тогда они не за горами. Они могут даже знать кого-то с похожей структурой шкафа и сказать: «Да, объекты Javascript похожи на гаражный шкаф дяди Джима», и все в комнате, знавшие дядю Джима, понимающе кивнули.

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

Отредактировал Кристина Кинг

Хакерский полдень - это то, с чего хакеры начинают свои дни. Мы часть семьи @AMI. Сейчас мы принимаем заявки и рады обсуждать рекламные и спонсорские возможности.

Чтобы узнать больше, прочтите нашу страницу о нас, поставьте лайк / напишите нам в Facebook или просто tweet / DM @HackerNoon.

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