Общи концепции - УПП, Седмица 1, 02.10.2025
Reading: 4 min || Created: 27 September 2025 || Edited: 27 September 2025 || GitLab source
Общи концепции
Компютър, код, компилиране
#- Компютърът е една гигантска елка с много бутони и памет
- Видео, аудио, ... се свеждат до записване на число в паметта
- Например, записване на 255 в определена памет, казва че червеното на първия пиксел е с максимална яркост
- Как числото става нещо осезаемо е въпрос по елетротехника
- В древността (около 1940те) програмистите са ръчно са размествали жички за да работят с компютъра
- Електротехниката се развива и това "разместване" се случва без нуждата от промяна в електрическата схема
- На хората им омръзва от писането на числа, изобретяват програмните езици
- Това е (неформатиран) текст, като комбинации от знаци се свеждат до съответните цифри
- Например, нека числото 200 да обозначава
"добавяне на единица към (регистър) Y" - С програмен език текста
INY
или++Y
се свежда до числото 200
- Програмите които превръщат този текст в числа се наричат компилатори. Самия процес - компилиране.
- Разногласия по какъв текст какво трябва да значи още текат, затова имаме различни (програмни) езици
- Допълнително, хората правят комбинации от знаци, които се превеждат до много числа по сложни начини
- Така се зараждат парадигмите
История на версиите, git
#- Microsoft Word, браузърите, ... следят история на действия
- Можем да се движим назад и напред
- Но ако се върнем назад и направим нова промяна, "бъдещите" промени се забравят
- Би било полезно в някои ситуации всъщност да правим разклонение и да пазим и двете редици промени
- git е програма, която пази такива разклонени редици от промени върху файловете в директории
- Всяка промяна се нарича "commit"
- Различните разклонения се наричат "branch"-ове
- Всеки "commit" трябва да има автор и описание, тоест commit-ове не се правят автоматично!
- Създаването/изтриването на файлове с/без съдържание също се включва в commit-ите
- Папка (и всички под-папки в нея) в която git следи за промени се нарича "repository" (хранилище)
- Понякога искаме да споделим нашите промени и да смесим чужди промени при нас
(примерно няколко програмиста паралелно правят модификации по един и същ код) - Можем да използваме Google Drive/Dropbox/... и ръчно да смесваме, но става сложно и тромаво
- Сайтове като GitHub са специализирани за работа с repository-та. Предоставят:
- безплатно пространство (облак) за repository-и
- съвместна интеграция с git
- "pull request": улеснено смесване на два branch-а с възможност за дискусии
- git и GitHub (или техни близки алтернативи) се използват масово от програмисти по целия свят
- С цел да видите как се ползват и свикнете с тях, ще ги използваме по време на упражнения
GitHub Classroom
#- Чрез GitHub Classroom ще създавам задания с ограничен срок (края на съответното упражнение)
- Когато вие приемете заданието, автоматично се създава git repository към което имате (ограничен) достъп
- Преди срока трябва да добавите commit с вашата работа по време на упражнението, колкото и малко да е!
- Добавя се един автоматичен "pull request" в който ще пиша отзивите.
Да, странно е, че използваме системата за смесване на branch-ове за обратна връзка, но така са решили да го направят.