Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 184

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

Π‘Ρ€Π΅Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

ΠŸΠΎΡ‡Ρ‚ΠΈ всС срСдства, рассматриваСмыС Π΄ΠΎ сих ΠΏΠΎΡ€ Π² этой Π³Π»Π°Π²Π΅, ΠΏΠΎ сущСству ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой срСдства Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π£ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠΈΡ… Π² ОБ Windows, нСсомнСнно Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ срСдами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (IDE, Integrated Development Environment). IDE β€” это графичСская ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ собраны вмСстС всС ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ срСдства, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для создания, ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ выполнСния прилоТСния. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½Π° ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ содСрТит Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ срСдство для выполнСния прилоТСния ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π’ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹Π΅ срСды Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ исходных Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Π±Π°Π·Π΅ шаблонов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², интСграция с систСмой управлСния исходным ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ автоматичСскоС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… ΠΌΡ‹ рассмотрим ΠΎΠ΄Π½Ρƒ Ρ‚Π°ΠΊΡƒΡŽ IDE, KDevelop, ΠΈ упомянСм Π΄Ρ€ΡƒΠ³ΠΈΠ΅ IDE, доступныС для ОБ Linux сСгодня. Π­Ρ‚ΠΈ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с коммСрчСскими прСдлоТСниями.

KDevelop

KDevelop β€” это IDE для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языках Π‘ ΠΈ Π‘++. Она обСспСчиваСт ΠΎΡΠΎΠ±ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π² срСдС K Desktop Environment (KDE), ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… основных соврСмСнных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… графичСских интСрфСйсов Π² систСмах Linux. Π•Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ простыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘.

KDevelop β€” бСсплатноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, выпускаСмоС Π² соотвСтствии с трСбованиями ΠžΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU (General Public License, GPL), ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… дистрибутивах Linux. Π‘Π°ΠΌΡƒΡŽ ΡΠ²Π΅ΠΆΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с Web-сайта http://www.kdevelop.org. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСды KDevelop, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ стандартам, принятым для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² GNU. НапримСр, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ

autoconf
для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ make-Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ приспособлСны ΠΊ срСдС, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π² Π²ΠΈΠ΄Π΅ исходного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ с большой Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ KDevelop Ρ‚Π°ΠΊΠΆΠ΅ содСрТат ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для создания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, тСкст Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ GPL ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ инструкции ΠΏΠΎ установкС. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ², Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° KDevelop, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΡƒΠ³Π°Ρ‚ΡŒ, Π½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΊΠ΅ΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ, ΠΊΡ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π» ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π» Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ GPL.

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image035.jpg

Рис. 9.2 

Π’ срСдС KDevelop сущСствуСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° систСм CVS ΠΈ Subversion для управлСния исходным ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. На рис. 9.2 ΠΈ 9.3 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ стандартноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π‘ Π² срСдС KDevelop (Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ΠΌΠΈΡ€), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ рСдактируСтся ΠΈ выполняСтся.

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image036.jpg

Рис. 9.3 

Π”Ρ€ΡƒΠ³ΠΈΠ΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Для ОБ Linux имССтся Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΈΠ΄ΠΈ разрабатываСтся мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈ IDE, ΠΊΠ°ΠΊ бСсплатных, Ρ‚Π°ΠΊ ΠΈ коммСрчСских. НСсколько самых интСрСсных ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² Ρ‚Π°Π±Π».Β 9.6.

Π’Π°Π±Π»ΠΈΡ†Π° 9.6

Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π’ΠΈΠΏ URL ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°
Eclipse ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Π±Π°Π·Π΅ языка Java ΠΈ IDE http://www.eclipse.org
Anjuta IDE для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ графичСского интСрфСйса GNOME http://anjuta.sourceforge.net/
QtEZ IDE для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ графичСского интСрфСйса KDE http://projects.uid0.sk/qtez/
SlickEdit ΠšΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΠΈΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΈΡ… языков http://www.slickedit.com/

РСзюмС

Π’ этой Π³Π»Π°Π²Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ лишь нСсколько срСдств ОБ Linux, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ распространСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ управляСмыми. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, самоС Π²Π°ΠΆΠ½ΠΎΠ΅ β€” Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

make
ΠΈ make-Ρ„Π°ΠΉΠ»Ρ‹ для управлСния мноТСствСнными исходными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π”Π°Π»Π΅Π΅ Π²Ρ‹ познакомились с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ исходным ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСм RCS ΠΈ CVS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ рассмотрСли распространСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
patch
, совмСстного примСнСния ΠΊΠΎΠΌΠ°Π½Π΄
tar
ΠΈ
gzip
ΠΈ RPM-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ бросили взгляд Π½Π° ΠΎΠ΄Π½ΠΎ ΠΈΠ· срСдств, IDE KDevelop, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰Π΅Π΅ Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.Β 

Π“Π»Π°Π²Π° 10

ΠžΡ‚Π»Π°Π΄ΠΊΠ°

По ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ Software Engineering Institute (Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ) ΠΈ IEEE (Institute of Electrical and Electronics Engineers, Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΏΠΎ элСктротСхникС ΠΈ элСктроникС) Π² любом Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ всСгда Π΅ΡΡ‚ΡŒ Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π΄Π²Π° Π½Π° 100 строк ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΈ ошибки приводят ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ трСбуСтся, часто заставляя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ вСсти сСбя ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ошибок, ΠΈΡ… идСнтификация ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ программиста Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Ρ‚Ρ€Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим Π½Π΅Π΄ΠΎΡ‡Π΅Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ срСдства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ исслСдования Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ повСдСния. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ тСстированиС (Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΎ всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… условиях ΠΈΠ»ΠΈ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ…), хотя тСстированиС ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ взаимосвязаны, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ошибки ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² процСссС тСстирования.

Π‘ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

β–‘ Ρ‚ΠΈΠΏΡ‹ ошибок;

β–‘ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ;

β–‘ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ gdb ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдств;

β–‘ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° соблюдСния условий (макрос

assert
);

β–‘ устранСниС ошибок использования памяти.

Π’ΠΈΠΏΡ‹ ошибок

Ошибка, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ выявлСния ΠΈ устранСния.

β–‘Β ΠžΡˆΠΈΠ±ΠΊΠΈ описания ΠΈΠ»ΠΈ спСцификации. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅Π²Π΅Ρ€Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°, ΠΎΠ½Π°, нСсомнСнно, Π½Π΅ смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ трСбуСтся. Π”Π°ΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ программист Π² ΠΌΠΈΡ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ€ΠΎΠΉ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ (ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅), ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅ ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΎ прСдставляСтС, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π’Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ ΠΈ устранитС мноТСство ошибок спСцификации (Ссли Π½Π΅ всС), обсуТдая трСбования ΠΈ получая ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρƒ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² дальнСйшСм.

β–‘Β ΠžΡˆΠΈΠ±ΠΊΠΈ проСктирования ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΠ΅Ρ€Π΅Π΄ созданиСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, нСдостаточно просто ΡΠ΅ΡΡ‚ΡŒ ΠΊ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, нСпосрСдствСнно Π½Π°Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сразу Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. НуТно врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠ°ΠΊΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ всС Π² дСталях, это ΡƒΠ±Π΅Ρ€Π΅ΠΆΠ΅Ρ‚ вас ΠΎΡ‚ многочислСнных ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² дальнСйшСм.

β–‘Β ΠžΡˆΠΈΠ±ΠΊΠΈ кодирования. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, всС Π΄Π΅Π»Π°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· вашСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” Π½Π΅ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ процСсс. ИмСнно здСсь появляСтся ΠΌΠ½ΠΎΠ³ΠΎ ошибок. Когда Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с ошибкой Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π½Π΅ упускайтС возмоТности Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ваш исходный ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ попроситС ΠΎΠ± этом ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΡ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ошибок ΠΈ Π½Π΅Π΄ΠΎΡ‡Π΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ, обсуТдая Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ с ΠΊΠ΅ΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅.