Эгер бир нерсе иштебей калса, кабатыр болбоңуз. Эгер баары иштесе, сизди иштен бошотушат! - Mosher’s Law of Software Engineering

Программалоодо коддоо процесси канчалык маанилүү? Бул суроонун жообу биринчи караганда көрүнгөндөй түшүнүктүү эмес. Айрымдар бул программалоо деп ойлошот, бирок чындыгында андай эмес.

Программалоонун фактылары

Бул жерде программалоого байланыштуу кээ бир ачык эмес фактылар келтирилген:

  • Убакыттын 10-20% гана кодинг’ке коротулат
  • Убакыттын көбү ой-жүгүртүүгө коротулат
  • Жана убакыттын чоң бөлүгү коддун өзгөртүүсүнө коротулат (Отладка)
  • Бир күндүн ичинде көбүнчө 10 эле сызык (строка) жазылат

Чындыгында, кесипкөй иштеп чыгуучулар өз убактысынын 10-20% түз эле код жазууга жумшашат. Келгиле, программисттин чыныгы жашоодогу иш-аракеттерин, адатта, кинолордо кандайча көрсөтүлгөнүнө салыштырып көрөлү. Фильмдерде программисттер ар дайым клавиатурага бир нерсени терип жатышат, бирок кадимки жашоодо сиз башын тырмап, экранга, жазууларга же эч нерсеге көңүл бурбай турган адамды көрө аласыз. Көбүнчө программист жазган код акыркы эмес. Ал аны ар дайым өркүндөтүп, кайра жаза алат жана акырында бир нече ондогон сап код жазылып, акыркы продуктка кирет.

Программисттин деңгээлине жараша жумуш убактысынын бөлүштүрүлүшүн көрсөтүүчү графикти карап көрүңүз: башталгычтан баштап кесиптикке чейин.

Тидер эмнеден түзүлөт

Кодинг процесси тил менен түздөн-түз иштейт. Тилдин эмне экендигин билүү үчүн убакыт келди. Ар кандай программалоо тили, ошондой эле табигый тилдей, 3 элементтен турат.

Лексика

Лексика тил сөздүгүн камтыйт - анда колдонулган сөздөрдүн жыйындысы. Программалоо тилдеринде мындай сөздөрдүн топтому бир кыйла чектелген: ал табигый тилде 10 000 сөзгө каршы бир нече 10 сөздөрдү жана атайын белгилерди колдоно алат. Экинчи жагынан, программалоо тилдеринин лексикасын үйрөнүү оңой, ошондуктан анын негиздерин өздөштүрүшөт. Ачкыч сөздөрдү үйрөнүү аркылуу үйрөнүшөт жана көптөгөн тилде окшош.

Синтаксис

Тилдин экинчи элементи - синтаксис, башкача айтканда, анда болгон сөздөр жана курулмалар. Алар программа түрүндө жазылган, алар синтаксистик жактан туура болушу керек - бул сөздөр белгилүү бир тартипте жана белгилүү бир эрежелерге баш ийиши керек дегенди билдирет. Синтаксистин бузулушу ката, жана табигый тилдерден айырмаланып, программалоо тилдериндеги синтаксис өтө катаал нерсе, аны дароо бузуу катага алып келет. Биринчи программаларын жазган программисттер ушул каталарды биринчи орунга коюшат. Синтаксистик каталарды оңой эле байкаса болот - сиз бир аз ыңгайлуу болушуңуз керек. Синтаксисти билүү - программалоонун башталышы.

Семантика

Тилдин үчүнчү элементи - семантика. Синтаксистик жактан туура бир конструкцияны жазуу бир гана нерсе, бирок аны туура иштеши башка нерсе. Семантика деген эмне? - синтаксистин астында эмне болушу керек жана ал кантип иштейт деген нерсе. Семантиканы билүү тереңирээк деңгээлде жана конкреттүү конструкциялардын деңгээлинен баштап, жалпы программа менен аяктаганга чейин болгон нерсе, тигил же бул кодексте эмне болуп жаткандыгын жакшы түшүнүүнү талап кылган нерсе. Ал иштеп чыгуучуларды ар дайым жана бардык жерде коштоп жүрөт, андыктан кандайдыр бир иш-аракет эмне үчүн жасалып жаткандыгын жана эмне үчүн ушундайча иштээрин түшүнүү керек.

Чындыгында программалоо тили деген эмне?

Программалоо тилдери эки формада болот:

  • Тилдин стандарты
  • Стандарттын ишке ашыруусу

Тилдин биринчи формасы - анын стандарты. Ал синтаксисти жана семантиканы аныктайт. Бардык эле тилдерде стандарттар бар жана алар тилдин өзүнөн мурун эле кездешпейт. Обычно, кандайдыр бир тил пайда болсо

Тилдин экинчи формасы - стандартты ишке ашыруу. Алардын бир нече болушу мүмкүн, алардын бардыгын ар кандай өндүрүүчүлөр иштеп чыгышы мүмкүн, өзүлөрүнүн мүнөздөмөлөрүнө ээ, бирок бардыгы, спецификацияга (стандартка) баш ийиши керек. Спецификацияга баш ийген нерсе ар кандай чөйрөлөрдө кодду аткарууга мүмкүндүктү берет.

Эң популярдуу JavaScript программалоо тилинин мисалын колдонсок, тилдин стандартын жана аны ишке ашыруунун ортосундагы айырманы түшүнүүгө болот, ал толугу менен бардык жерде колдонулат жана дээрлик бардык проекттерде, айрыкча веб иштеп чыгууда экинчи тил болуп саналат. ECMA-262 же ECMAScript деген стандарты бар, жана JavaScript деген тил бар, ал аны ишке ашырат. Мисаалы Microsoft, ActionScript (Macromedia (Adobe)) жана башкалар ушул стандарт менен ишке ашырылган. Бирок Javascript башка жерлерде да колдоно берилет.

Ушундай чөйрөнүн бири браузер. Браузердин ар биринде өзгөчө Javascript реализациясы бар. Андан сырткары сервердик, бэкенд-реализациясы бар – бул NodeJS, ошол эле Javscript’ти колдонгон нерсе. Кээ бирлер булардын айырмасын түшүнүшпөйт дагы, JavaScript’тиби же NodeJS’тиби окушу керек деген суроолорду беришет. Бул жерде так жооп – бул JavaSсript, себеби ECMAScript стандартынын эң популярдуу ишке ашыруусу болуп эсептелинет. Мындан киин гана башка реализацияларга өтсө болот. Ошондой эле нерсе башка тилдерге байланыштуу.

Бардык тилдер үчүн чындык - бул анын спецификациясы. Көбүнчө муну окуш кыйын болот, бирок мындан да оңой танышуу жолдору бар. Эң негизги БИРОК бул – ар дайым «первоисточникке» кайрылып сизге керек жоопту табып алышыңыз зарыл. Себеби бул же башка элемент кантип иштегенин ошол жерден табасыз.

Адашуу

Программалоо тилинин синтаксисин жана семантикасын билүү – бул программалообу?

Жаңы башталгыч программисттерге таасир эткен бир маанилүү адашуу бар. Аны жайылтууга Интернеттеги көптөгөн курстар, форумдардагы баарлашуулар, жана кайда карабасаң «бул ошондой» деген адамдар жардам берет. Жаш иштеп чыгуучулар тилдин синтаксисин жана анын семантикасын билүү – бул программалоо деген ойдо болушу мүмкүн, бирок чындыгында андай эмес. Ооба, бул билим программалоону өздөштүрүүгө абдан жакын, ансыз сиз иштеп чыгуучу боло албайсыз, бирок ал эң негизгиси эмес. Себеби КАМЕРА сатып алуу жана анын документтерин изилдөө адамды фотограф кылбагандай эле, программалоо тилинин синтаксисин жана семантикасын билүү да адамды программист кыла албайт.