Радно окружење програмера¶
За решавање задатака на рачунару увек су неопходни одређени алати. На пример, ако желиш да направиш презентацију о некој теми за час Историје, неопходна ти је апликација за израду слајд презентације, нпр. PowerPoint или Google Slides. Тако је и за програмирање неопходан сет алата, односно апликација.
Циљ овог поглавља је да припремиш своје радно окружење за програмирање у програмском језику C са одређеним сетом алата и да разумеш чему ти алати служе и како се користе.
Развој алгоритама¶
Подсети се прве лекције из претходног поглавља о животном циклусу развоја софтвера. Након дефинисања системских и софтверских захтева, програмер треба да изради алгоритам који ће јасно, у коначном броју корака, описати поступак за решавање дефинисаног задатка. Алгоритам може да запише неформално, у неком псеудојезику или да га прикаже дијаграмом тока.
Прва апликација са којом ћеш се сусрести управо је апликација за запис алгоритама помоћу дијаграма тока. Апликација се зове Flowgorithm, бесплатно се преузима и једноставно инсталира и користи. Поступак за преузимање и инсталацију апликације Flowgorithm биће објашњен у некој од следећих лекција.
Едитор и компајлер¶
Након израде алгоритма следе дизајн програма, кодирање, тестирање и употреба. За ове фазе неопходан је едитор за унос изворног кода програма, компајлер за превођење изворног кода у извршни и дебагер за откривање грешака у изворном коду. Компајлером се данас сматра мало сложенији сет алата који се састоји из препроцесора, компајлера, асемблера и линкера, док су раније то били засебни алати. Такви технички детаљи уопште нису битни да успешно савладаш овај курс - битно је да знаш да, када неко каже да користи одређени C компајлер, заправо мисли на цео сет алата који долазе са тим компајлером.
У програмском језику C можеш програмирати на рачунарским системима различитих архитектура, са различитим оперативним системима, користећи различите алате. На персоналним рачунарима са оперативним системом Windows, за развој апликација у програмском језику C, данас се најчешће користе следећи C компајлери:
MSVC (Microsoft Visual C++)
GCC (GNU Compiler Collection - MinGW и Cygwin)
LLVM Clang
…и следећи едитори:
Microsoft Visual Studio Code
NetBeans
Eclipse
Интегрисано развојно окружење¶
Интегрисано развојно окружење (енгл. IDE - Integrated Development Environment) обједињује едитор, компајлер, дебагер и прегршт других алата за развој апликација у јединствену апликацију. На персоналним рачунарима са оперативним системом Windows, за развој апликација у програмском језику C, могу да се користе следећа интегрисана развојна окружења:
Microsoft Visual Studio
Code::Blocks
Dev-C++
Како је Microsoft Visual Studio препоручено развојно окружење у Плану наставе и учења за наставни предмет Програмирање, а свакако и најпопуларније развојно окружење које ћеш користи касније за програмирање у програмском језику C#, у наредним лекцијама биће описан поступак за његово преузимање и инсталацију, као и његови основни елементи.
Остали алати¶
Данас програмери, у зависности од пројекта на којем раде, користе огроман број алата. Један курс на Петљи сигурно не би био довољан да се наброје и опишу сви алати које програмери данас користе. Алати могу бити апликације инсталиране на рачунару, веб-апликације на интернету или комбинација десктоп и веб-апликација.
Пошто програмери раде у тиму, први сет алата укључује алате за комуникацију и сарадњу (нпр. Microsoft Teams, Slack, Asana и др.), као и алате за управљање пројектима (нпр. Microsoft Project, monday.com, Notion и др.).
Следећа група алата тиче се управљања развојем самог софтвера. Када више програмера ради на развоју исте апликације, неопходни су алати за складиштење и контролу верзија изворног кода (нпр. Git и GitHub, Subversion, Mercurial и др.).
Приметио си да се апликације константно ажурирају у циљу исправки грешака (багова) или додавања нових функционалности. Следећа група алата тиче се управљања задацима за решавање проблема и багова у апликацијама (нпр. Jira, Bugzilla, Trello и др.).
Један од задатака програмера је да документују свој рад. Тако постоји и група алата за генерисање, писање и објављивање софтверске документације (нпр. Doxygen, Sphinx, Javadoc и др.).
Наведено је само неколико категорија алата који су данас у употреби. Наравно, постоји много више категорија и много више алата доступних у свакој категорији. Ако апликација која се развија користи базу података, онда ће се користити алати за дизајн и управљање базама података; ако је апликација намењена мобилним платформама, онда ће се користити додатни оквири и библиотеке за мобилне уређаје и платформе за дистрибуцију мобилних апликација итд.