ЧтоВыДумаетеОПравилах НаименованииМетодовИПеременных?

ЧтоВыДумаетеОПравилах НаименованииМетодовИПеременных?

30 Dec 2022Заметки 498 ~ 0 мин.

НеНужноНедооцениватьЦенностьЧитабельностиКода

ПрограммистыНеДолжныНедооцениватьЦенностьЧитабельностиКода.СегодняМыПоговоримЕщеРазПроОбщиеПрактики,КоторыеВсеМы,Кажется, ПринимаемЗаДолжное: НаименованиеПеременныхИМетодов.

ВродеТакаяНезначительнаяНаПервыйВзглядВещь,Верно?КакойКейсОбычноИспользуютПрограммистыЧтобыСвязатьСлова:Верблюжий,ЗмеиныйИлиШашлычный(Кебаб), ИВообще, ТакЛиЭтоВажно?

ЧитаемостьюКодаНеСледуетПренебрегать.ЭтоВлияет,КакЛегкоВыМожетеПеремещатьсяИПониматьСвойИлиЧужойКод.

ИтакЯзыкиРаннегоПрограммированияНеИмелиТехЖеСоглашений,КоторыеМыИмеемСегодня.ТакиеЯзыки,КакLispИCOBOL,ПоявилисьДоШирокойПоддержкиASCII. ПрописныеИСтрочныеБуквы,АТакжеСпециальныеСимволы,ТакиеКакПодчеркивание,ПростоНеПподдерживалисьКомпиляторамиЕщеВНачале50-хИ60-хГодов.

ИЛиспИКоболПозволяютДефисамРазделятьСлова.АнализаторLispБылДостаточноУмен,ЧтобыОпределить,БылЛиДефисМеждуДвумяСловами, ИлиЕгоСледуетИспользоватьВКачествеОператораВычитания.ВCOBOLВКачествеОператоровИспользуютсяТолькоПолныеСлова,ИНеИмеетЭтуПроблему. ВотПримерВычитанияВКоболе:


SUBTRACT data-item-1 FROM data-item-2

ПосколькуДефисНеЯвляетсяЗарезервированнымКлючевымСловом,ЕгоМожноИспользоватьДляРазделенияСлов.

КогдаЯзыкиПрограммированияСозрелиВ80-хИ90-хГгодах,СталоЯсно,ЧтоДефисДолженБытьЗарезервированДляМатематическихОпераций.ЕщеОднаПроблемаСУмнымодходомLispЗаключаласьВТом,ЧтоОнНеМасштабировалсяВСовременныхЯзыкахИЗначительноЗамедлялТокенизацию.

Пробелы,Очевидно,НикогдаНеМогутБытьИспользованы,ТакКакПочтиКаждыйЯзыкПрограммированияИспользуетИхВКачествеГраницМеждуТокенами.ТакЧтоЖеОстается?КакМыМожемНаписатьНесколькоСловКакОдно,СохраняяЧитаемостьЭтихСлов?

ИМыПодошлиКТомуПочемуСегодняМыОсталисьСДвумяОсновнымиСсоглашениями:CamelCase,ЛибоСоСтрочнойБуквыЛибоСЗаглавнойИSnakeCase.КстатиЗаглавныйРегистрCamelCaseТакжеНазываетсяPascalCase.

ПоБольшейЧастиВКаждомЯзыкеИмеетМестоБытьОдинИзЭтихВариантов.МожноСказатьЧтоЭтоПростоВопросПринциповСообществ(ПриветПайтонистам),ИПокончитьСЭтим.

НоПоднимаяТемуЧитабельностиКодаНеСложноЗаметитьЧтоCamelCaseДелаетТекстБолееТруднымДляЧтенияПоСравнениюСSnakeCase.

ЕслиСравнитьДваНижеСледующихВариантаНаписанияПеременной:


userId
user_id

ВашМозгУжеПодсказываетВамЧтоЕмуЛегчеПрочесть,Верно? :)

ИЭтоДействительноТак:CamelCaseБолееКомпактен:ВамНеНужноПисатьБольше.НоЭтоНеТотСтильКоторыйБлижеВсегоКТому,КакЧеловеческийМозгНаСамомДелеЧитаетТекст.

ЭтоСущественныйАргумент,КоторыйИмеетЗначениеВДискуссии:КакСделатьТакЧтобыНашемуМозгуБылоКакМожноПрощеЧитатьИПониматьКод.

ЧитаемыйКодСнижаетКогнитивнуюНагрузку.МеньшаяКогнитивнаяНагрузкаОзначаетБольшеПамятиДляЛюдейЧтобыДуматьОДругихВещах,ТакихКакНаписаниеБизнесЛогики.

"ИВесьПостТолькоОПользеПодчеркивания?" КонечноНет,НеТолькоИз-заЭтого. НаписаниеЧитаемогоКодаНамногоБольше, ЧемСоглашенияОбИименовании. НоТакиеМелочиПомогаютПолучитьБолееЛучшееРешение.

Что думаешь?

Категории
  • PHP 59
  • Заметки 12
  • Nginx 2
  • ИТ новости 2
  • Флуд 1
  • Видео 1
  • Архитектура 0
Делаем из мухи слона

sergeymukhin.com

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