Разделяй и владей

“Разделяй и владей” е максима, която се приписва на Филип Македонски и е следвана стриктно от Юлий Цезар и Наполеон Бонапард. Тя е валидна и в програмирането. Със сигурност ще чуете, че модулизиран код се поддържа лесно. Обратното — трупане на всичкия код на едно място, често пъти се оприличава на “спагети”.

goto = функции

Оригинално терминът “спагети код” идва от goto инструкции в някои по-стари езици за програмиране. Навремето goto е бил единственият начин да се върнеш на старо “парче” код и то да се изпълни наново. В противен случай не е можело да бъдат реализирани цикли.

Модерните езици за програмиране обаче позволяват за извикване на функции и имат купища методологии за преизползване на код. Въпреки всичко, това не означава, че автоматично кодът ви ще е добре капсулован.

Един сайт (или програма) винаги се състои от множество функционалности. Възможно е те понякога да си взаимодействат, но принципно са разделени. Ако нямаме модули в кода си, а само хвърчащи функции, които се викат една друга — пак се получават едни спагети. Просто вместо goto викаме функция. Крайният резултат обаче е един и същ.

“Физическо” разделяне на кода

Правилното оформяне и модулизиране на код често пъти се подпомага от физическото му разделяне във файлове. При много сайтове ще видите заредени по няколко .CSS или .JS файла. Най-малкото — някои идват от plugin-и.

От една страна това води до ползи по поддръжка на кода. От друга обаче се зареждат множество файлове на страницата ни. А всеки файл кара браузър да направи нова връзка към сървъра (игнорираме HTTP2 протокол). Зареждането на 10 файла по 10KB става по-бавно от зареждането на 1 файл от 100KB. И така излиза, че е най-добре всичко да бъде в един файл.

Как да се справим тогава, с поддръжката на този огромен файл?

От няколко години вече е като стандарт статичните файлове в един сайт да минават някаква обработка. В следствие на нея може да се ползва по-модерен синтаксис. Той се преправя в код, който се поддържа от всички браузъри и позволява няколко файла да се събират в един.

Помощните средства за това за Task Runners и Bundlers. Двата типа инструменти може да се ползват по отделно или да се свържат.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните ви за коментари.