Күнделікті құрастыру және үздіксіз интеграция: Бағдарламалық жасақтаманы дамыту тәсілдері
Daily build
Күнделікті жинау (daily build) – бағдарламаның соңғы нұсқасын күн сайын құрастыру, қателерді тексеру және жаңа мүмкіндіктерді пайдалану үшін жасалады. Бағдарлама жасауда маңызды!
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Күнделікті немесе түнгі құрастыру – бағдарламаның ең соңғы нұсқасының бағдарламалық жасақтамасын күн сайын аяқтау тәжірибесі. Бұл, ең алдымен, қажетті барлық тәуелділіктердің бар екенін қамтамасыз ету және мүмкін болатын қателердің жоқ екенін тексеру үшін құрастырылып, сынақтан өтілуі үшін жасалады. Күнделікті құрастыру көбінесе көпшілікке қолжетімді болады, бұл пайдаланушыларға соңғы мүмкіндіктермен танысып, пікір білдіруге мүмкіндік береді. Осы ретте, құрастыру – бағдарламаны құрайтын барлық файлдарды жинау және байланыстыру нәтижесі. Күнделікті құрастыру сияқты қатаң процедураларды қолдану, әсіресе көптеген бағдарламашылардың бір бағдарламалық жасақтама үстінде жұмыс істейтін ірі ұйымдар үшін аса қажет. Күнделікті құрастыру жасау, бағдарламашыларға пайда болған жаңа қателердің соңғы күні жасаған жұмыстарынан туындағанын біліп жұмыс істеуге көмектеседі. Күнделікті құрастыруларға әдетте "тесттік сынақ" деп аталатын сынақтар жинағы қосады. Бұл сынақтар соңғы құрастыруда енгізілген өзгерістердің нені бұзғанын анықтауға көмектеседі. Бұл процестің маңызды бөлігі – жоба дамыған сайын жаңа және жаңартылған сынақтарды қосу болып табылады.
A daily build or nightly build is the practice of completing a software build of the latest version of a program, on a daily basis. This is so it can first be compiled to ensure that all required dependencies are present, and possibly tested to show no bugs have been introduced. The daily build is also often publicly available allowing access to the latest features for feedback. In this context, a build is the result of compiling and linking all the files that make up a program. The use of such disciplined procedures as daily builds is particularly necessary in large organizations where many programmers are working on a single piece of software. Performing daily builds helps ensure that developers can work knowing with reasonable certainty that any new bugs that show up are a result of their own work done within the last day. Daily builds typically include a set of tests, sometimes called a "smoke test." These tests are included to assist in determining what may have been broken by the changes included in the latest build. The critical piece of this process is to include new and revised tests as the project progresses.
Тұрақты интеграция
Күнделікті құрастыру 1990-шы жылдары бағдарламалық қамтамасыз етуді дамытудың ең жақсы тәжірибесі саналғанмен, қазір олардың орнына жаңа тәсілдер келді. Тұрақты интеграция енді дерлік үздіксіз жүргізіледі, бастапқы кодқа соңғы өзгеріс енгізілгеннен бастап цикл уақыты шамамен 20-30 минутты құрайды. Тұрақты интеграция серверлері бастапқы кодты басқару жүйесін үнемі қадағалайды. Бұл серверлер жаңа өзгерістерді анықтағанда, бағдарламалық жасақтаманы қайта құру үшін құрастыру құралын пайдаланады. Бүгінде үздіксіз интеграцияны үздіксіз тестілеудің бір бөлігі ретінде қолдану – жақсы тәжірибе, сондықтан әр құрастыру кезінде бірлік тесттері қайтадан орындалады, ал функционалдық тестілеу (құрастырудан ұзаққа созылатындықтан) оның ұзақтығына қарай мүмкіндігінше жиі жүзеге асырылады.
Although daily builds were considered a best practice of software development in the 1990s, they have now been superseded. Continuous integration is now run on an almost continual basis, with a typical cycle time of around 20 30 minutes since the last change to the source code. Continuous integration servers continually monitor the source code control system. When these servers detect new changes, they use a build tool to rebuild the software. Good practice today is also to use continuous integration as part of continuous testing, so that unit tests are re run for each build, and more extensive functional testing (which takes longer to perform than the build) performed as frequently as its duration permits.