Как эмодзи могут улучшить ваш код (на самом деле)

Автор оригинала: TJ VanToll
  • Перевод
  • Tutorial

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


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


Мы, программисты, читаем много текста — будь то код, логи, комментарии к коммитам, документация или что-либо еще. Эмодзи бросаются в глаза, и их гораздо легче найти на простыне текста, чем обычную строку. Быстрее поиск — выше продуктивность. Хотя даже если на вашей продуктивности это никак не скажется, пользоваться эмодзи — весело! Вот некоторые вещи, которые я опробовал на практике:


Эмодзи в комментариях


Например, вам нужно добавить предупреждение в код, наподобие такого:




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




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




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


// Почему в этом месте программа падает?
// Сложность O(n²)


А поскольку это всего лишь комментарии, шанс что-то сломать очень мал.


Эмодзи в описаниях коммитов


Описания коммитов в основном довольно унылы, но эмодзи разбавляют обстановку. Я придерживался правила "не более одного эмодзи в сообщении" и пока в нем не разочаровался:



Примечание переводчика: в одном месте автор всё-таки нарушил свое правило


Хотя это несерьёзный пример, я хочу повториться — эмодзи улучшают читаемость. Если вы смотрите на огромный список коммитов, что в больших проектах не редкость, найти конкретный коммит в списке становится куда проще. В редакторе Atom от Github даже есть гайд по использованию эмодзи в коммитах.


Эмодзи в коде


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




Эмодзи также позволяют объяснить серьезную концепцию из области программирования на легких, забавных примерах:




Как набирать эмодзи


Продуктивность в использовании эмодзи зависит от того, насколько удобно вам будет их набирать. Я пользуюсь глобальным клавиатурным сочетанием Ctrl + Cmd + Пробел в OS X, которое вызывает меню с эмодзи в большинстве приложений. Оно выглядит вот так (можете судить меня по списку часто используемых символов):



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


Эмодзи и редакторы


Пользоваться эмодзи весело, но если ваш редактор их не поддерживает — увы. К счастью, большинство современных сред разработки присоединяются к эмодзи-революции. Я пишу эту статью в Sublime Text и там поддержка есть, хотя некоторые символы всё-таки искажаются.




Еще я пользуюсь Visual Studio Code, и это редактор справляется с задачей на ура:




Мой любимый терминал iTerm2 также поддерживает эмодзи. Вот так я отправляю новый коммит:




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


Примечание переводчика: хабрапарсер абсолютно не дружит с эмодзи, поэтому пришлось использовать картинки и смайлики.

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

Стали бы вы использовать эмодзи в своем проекте?

  • 29,5%Да, в комментариях :)277
  • 22,7%Да, в описаниях коммитов :P213
  • 8,1%Да, в самом коде :D76
  • 8,0%Да, в других местах B)75
  • 17,2%Не уверен :|161
  • 13,3%Нет, понимаю плюсы, но подсознательно против :\125
  • 43,5%Нет, это кошмар >:E408
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 76

    +21
    О наболевшем: пожалуй, я бы пометил некоторые участки своего старого кода картинкой с экскрементами…
      +12
      Есть одна проблемка — нарушает выравнивание в моноширинных шрифтах.
        +7
        Да здравствуют моноширинные эмодзи!
          0
          Лет 5 как ушел с моноширинных, ещё ни разу не пожалел. Основной кодинг на с++. Табов для красивого выравнивания хватает, хотя стараюсь особо ASCII-артом в коде не увлекаться, только стандартные отступы в начале строки.
          +5
          Использую в swift, что может быть лучше чем эмодзи для названия переменной?
            +3
            «что может быть лучше чем эмодзи для названия переменной?» — эмодзи для названия класса. :)
              +1
              Это, конечно, на ЯП, а просто CSS, но тоже про классы
              image
          • НЛО прилетело и опубликовало эту надпись здесь
              0
              Википедия:

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

                Части курицы не употребляются лишь частью вегетарианцев.
              • НЛО прилетело и опубликовало эту надпись здесь
                  0

                  Если вегетарианца интересует этика, то диетические яйца не проблема в этом смысле (нет зародыша — нет убийства).

                    +2
                    Все еще проще. В обиходе «вегетарианец» обозначает такого вегетарианца, у которого в рацион входят яйца и молочные продукты, или более научно — лактоововегетарианец. Если же что-то из этого маленького списка отсутствует по каким-либо причинам, то это либо лактовегетарианец(не употребляет яичные продукты), либо ововегетарианец(очевидно, без молочки). Если же вегетарианец не употребляет и это, то он веган. Правда, с веганами все немного сложнее.
                      0

                      Я не берусь судить, что значит «вегетарианец» в обиходе, но когда я был лактоововегетарианцем, на меня все смотрели круглыми глазами, когда я ел яйца и сыр: «ты же вегетарианец!!11».
                      В общем, не опирайтесь на «обиход»: обычно люди в этом не разбираются и строгих терминов не знают.


                      Правда, с веганами все немного сложнее.

                      Трудно не согласиться:)

                        0
                        >на меня все смотрели круглыми глазами, когда я ел яйца и сыр: «ты же вегетарианец!!11».

                        Я тебя так понимаю.
                        • НЛО прилетело и опубликовало эту надпись здесь
                            +1
                            Сыр ещё разный бывает. Я, например, поллотарианец, то есть ем всё, кроме млекопитающих,— но из-за этого имею проблемы с сыром: не всегда легко понять, сычужный он или микробиальный.
                              0
                              Вы ещё про сыроедение не вспомнили.
                          • НЛО прилетело и опубликовало эту надпись здесь
                          +17
                          Первая же картинка.
                          Better delete icons — почему бомба?
                          Shows an error… — почему ракета?
                          Почему мердж ветки это такой праздник? Почему тогда конфетти, а не бокал шампанского или кружки пива?

                          При этом на фоне монохромного текста цветные иконки выделяются, глаз за них автоматически цепляется.
                          Мозг работает по алгоритму картинка->ассоциация->ничего не понятно->чтение комментария. То есть три лишних этапа. Эмодзи среди текста — это визуальный шум в чистом виде.
                          Если хочется сделать логи более читаемыми (сейчас не затрагиваем вопросы совместимости) — разукрасьте текст. Или используйте однозначно понятные эмодзи: галочки и крестики.
                            0
                            Конкретное соглашение? Автор писал про гайды по комментам в гите (в т.ч. по эмодзи, вот тут https://github.com/atom/atom/blob/master/CONTRIBUTING.md#git-commit-messages) – тогда цепочка сокращается до «картинка –> понятно о чём коммит –> не читать текст пока не нужны детали». Как аналог текстовых тегов "[DOC] Update docs about adding new customer", только легкофильтруемые визуально без чтения. Или выделять только определённые чтобы глаз цеплялся – например, при внесении broken changes.
                            Интересно как у большинства разработчиков софт это будет поддерживать. Мой iTerm2, например, может и картинки в консоли показывать.
                            +47
                            Кто не любит эмодзи?

                            Я! Я этот человек.
                              +8
                              В этой нелюбови ты не один!
                                +4
                                Примите меня в свой клуб.
                                Особенно выбешивают эмодзи на iOS — то, что они третьим языком стоят.
                                  +2
                                  Так это же легко в настройках выключается
                                    +1
                                    Настройки -> Основные -> Клавиатура -> Клавиатуры
                                    Свайп по ненужной и удаляете
                                      0
                                      Да, я знаю, спасибо. Планшетом чаще жена пользуется, она просила оставить.
                                      А меня выбешивает, что они в ротации с Ру/En присутствуют.
                                    +1
                                    Присоединяюсь. Как разведутся эмодзи, так и полезут у нас переменные в виде эмодзи. Плюс стили эмодзи очень зависят от используемого пака картинок, и т.о. когда один человек привые видеть улыбающийся смайлик в логах = нет ошибок, а такой-же улыбающийся смайлик с зубами = есть некритичные ошибки, то когда он сядет за другой редактор, или другую ОС, и увидит так обратную картинку — это взорвёт мозг, и этот человек пожалеет, что начал использовать эмодзи.
                                      0
                                      не только переменные надо правильно называть, но и эмодзи. Эмодзи *smile* и *bitter smile* отличаются не только визуально, но и по написанию!
                                    +5
                                    Особенно помогают смайлики ( помимо самих эмодзи я не люблю еще и слово эмодзи ) в тот момент когда кусок кода в мессенджере превратился в веселые смайлики там где скобочки.
                                    +9
                                    Грепать логи с эмодзи, навреное, очень удобно:)
                                      –2
                                      Эмодзи по задумке автора призваны не заменить текст, а дополнить его. Как грепали по тексту, так и будем. А вот по галочкам/крестикам легче отличить info от error.
                                        0

                                        Для этого обычно использую разделения логирования по цвету, если real-time логи.


                                        Пример

                                        image

                                          0
                                          Заметить написанное капсом error довольно легко. А если даже нет, да поможет нам Ctrl-F. Хотя я не против украсить это дело эмодзи.
                                          +3
                                          alias ⚲='grep'
                                          +1
                                          как на винде то юзать?)
                                            0
                                            Да кому она нужна, эта ваша Венда ;)

                                            Вместе с кучей старых IDE, которые эти милые картиночки не поддерживают…
                                            +1

                                            Но ведь в статье они "улучшают" не код, а комменты, твиты и названия issues...

                                              +3
                                              +17
                                              Т̶̕еп͡е̷̡͠р̴̶ь͏ ̡͜жд̵͟ё̶͜͜м̸̛͠ ҉Z͏҉̡a҉l̨̛g̷͠͏ớ-̵͠к̛о̢́д̢͝а̷͠!̕
                                                +2
                                                Меня сейчас идея посетила...commit hook автоматически за̕л̸г̕оф̵и̛ц͜и͜р͟уѐт́ код который выдаёт предупреждения компилятора или статического анализатора, в общем «дурно пахнет».
                                                +4
                                                Нет! Нет, нет, нет, нет! Пожалуйста!
                                                  +12
                                                  Я вижу это так:
                                                  image
                                                    +5
                                                    Лучше так, чем действительно видеть это непотребство.
                                                    +1
                                                    >Описания коммитов в основном довольно унылы, но эмодзи разбавляют обстановку.
                                                    Создатели нескучных html 6 добрались до комментариев в коде?
                                                      0
                                                      Вот, кстати, задумался, а существуют ли в странах, где письменность иероглифическая, языки программирования на таких языках? Это ж какой уровень абстракции!
                                                        0
                                                        Да, существуют, конечно.
                                                        https://en.wikipedia.org/wiki/Non-English-based_programming_languages
                                                        +7
                                                        Детский сад, чесслово…
                                                          +1
                                                          И хипстота.
                                                            0
                                                            Забыли на каком сайте находитесь?
                                                            +13
                                                            Я считаю, что эмодзи — это мало. Нужно обязательно приделывать видео с инстаграмма или ютуба. Или писать лайвстрим с камеры разработчика. Что может быть увлекательнее, чем описание коммита с видео лайвстрима в нём?
                                                              +1
                                                              Да, мы всенепременно должны прочувствовать каждое переживание лирического героя, пока он мучительно писал код.
                                                                0
                                                                https://habrahabr.ru/post/146418/
                                                                  +2
                                                                  Smoothie-driven development
                                                                  +3
                                                                  Трэш. Против.
                                                                    –3
                                                                    Мало того, что эмоджами можно помечать… так еще и языки программирования на них есть. Но они преследуют, в общем-то, другую цель — краткость. Вместо унылых console.log'ов веселые, легко запоминающие эмоджи — самое то, для телефонного кодинга.

                                                                    Что же касается плагинов — то и под Atom есть emoji-code.
                                                                      0
                                                                      а как их вводить то под виндой/убунтой в том же VSCode например? и на сколько удобно?
                                                                        0
                                                                        Вроде была такая статья уже.
                                                                          +6
                                                                          Я исправил
                                                                          image
                                                                            +1
                                                                            Зависит от среды разработки. Кое где можно и анимированные гифки использовать — баги помечать, к примеру :)
                                                                              0
                                                                              Что это за среда?
                                                                                +2
                                                                                Это LabVIEW. Штука специфическая немного, но поскольку язык G графический, то прямо в код я могу вставлять картинки. Конечно, анимированные гифки я не использую — на них задолбает смотреть, но если там математика какая, то у меня комментарии в в виде самых настоящих формул. Ну или куски доков могу бросать рядом с кодом — это удобно, если поддержку какого-нибудь протокола для специфичной железки кодить.
                                                                              0
                                                                              Сразу вспомнилась шутка:
                                                                              «Проклятье!» — подумал китаец, заучивая сорокатысячный иероглиф. — «А ведь начиналось-то всё с простых смайлов...»
                                                                                0
                                                                                Для всех тех, кто говорит, что эмодзи попортят моноширинность кода:
                                                                                А что мешает использовать эмодзи только в комментариях? Там же моноширинность не нужна совсем, нечего элайнить.

                                                                                Ну на крайняк, можно эмодзи моноширинными сделать))
                                                                                  0
                                                                                  ▄▄▄▄▄▄▄▄▄▄
                                                                                  ▌ ▐
                                                                                  ▌ ▄██▄ ▐
                                                                                  ▌ ██▀▀██ ▐
                                                                                  ▌ ▄██ ▐
                                                                                  ▌ ▄██▀ ▐
                                                                                  ▌ ██▀ ▐
                                                                                  ▌ ██████ ▐
                                                                                  ▌ ▐
                                                                                  ▀▀▀▀▀▀▀▀▀▀

                                                                                  ▄ █ ▀ █ ▌▐

                                                                                  Ещё можно делать буквы из псевдографики. Крупно и хорошо заметно.
                                                                                  З.Ы. Тег (соде) не работает.
                                                                                    0
                                                                                    Я в институте писал на C#. И писал (будучи физиком) в основном математику. И делал я имена переменных с участием греческих букв. И было это неудобно, но зато красиво.

                                                                                    Здесь, как мне кажется, та же ерунда. Уместное использование картинок в коде (как, например, сирена возле «warning») может его сделать милее глазу. Но вот все остальные операции с текстом явно усложнит, коль скоро на клавиатуре нет кнопки с этой самой сиреной.

                                                                                    Остается только вспомнить про известную клавиатуру студии Лебедева
                                                                                      0
                                                                                      Спасибо за лайфхак с экранной клавой винды!

                                                                                      А в коде действительно эможи не нужны. К вышеперечисленным проблемам добавлю то, что в некоторых местах (мессенджерах и пр.) иногда код распознается как эмоджи. Если туда добавить еще свои эмоджи, то читаемость ухудшается во много раз.
                                                                                        0
                                                                                        Так в большинстве (если не во всех) мессенджерах нет моноширинной подсветки. А в некоторых так и вообще пробелы триммятся. Как вконтакте.
                                                                                          0
                                                                                          Вообще, очень редко пересылаю код в мессенджерах. Но если и приходится, я был бы рад не видеть там ни одной эмоджи.
                                                                                          Насчет тримминга пробелов — да, в этом плане радует скайп.
                                                                                            0
                                                                                            В скайпе в начале сообщения вводим!!! и дальше текст сообщения с новой строки.
                                                                                              0

                                                                                              В скайпе в начале сообщения вводим !! и дальше текст сообщения с новой строки. Сообщение форматируется как будто с тэгом <pre> — моноширинный шрифт, никакой замены скобок на смайлики

                                                                                                0
                                                                                                А, спасибо, буду знать :)
                                                                                          0
                                                                                          Кстати: а где этот значок? Я у себя в Win10 такого не вижу.
                                                                                            0
                                                                                            Правой по панели задач и поставить соответствующую галочку.

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

                                                                                        Самое читаемое