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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ВрСмя β€” дСньги. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 20

Автор Π­Π΄ Π‘Π°Π»Π»ΠΈΠ²Π°Π½

ΠœΡ‹ использовали систСму управлСния исходным ΠΊΠΎΠ΄ΠΎΠΌ Visual Source Safe (VSS) ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft. Она прСдоставляСт Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ Ρƒ Π½Π΅Ρ‘ отличная Ρ†Π΅Π½Π° β€” ΠΊΠ°ΠΊ Ρ€Π°Π· для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ бизнСса. Π₯отя обсуТдСниС VSS Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этой ΠΊΠ½ΠΈΠ³ΠΈ, я расскаТу ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ приспособили этот ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΏΠΎΠ΄ наши Π½ΡƒΠΆΠ΄Ρ‹.

ΠžΡΠ½ΠΎΠ²Ρ‹ структуры

ΠœΡ‹ структурировали наши ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ Π΄Π²ΡƒΠΌ простым элСмСнтам: частям ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌ. Π§Π°ΡΡ‚ΡŒ β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Частями ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ свои части ΠΏΠΎ собствСнному (ΠΎΠ΄Π½Π°ΠΊΠΎ согласуСмому) Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΎΡ‚ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ являлся ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΏΡ€ΠΎΠ΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. Он складывался ΠΈΠ· ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… для этого ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° частСй ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². Π₯раня Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС части ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. НапримСр, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ исправлСния ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, продолТая Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ всС силы Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π±Ρ‹Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΈ для получСния ΠΏΡ€ΠΈΠ±Ρ‹Π»ΠΈ ΠΎΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ².

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈ использованиС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° исходного ΠΊΠΎΠ΄Π°

ВсС Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², Π±Ρ‹Π»ΠΈ рассортированы ΠΏΠΎ Ρ‚Ρ€Ρ‘ΠΌ ΠΏΠ°ΠΏΠΊΠ°ΠΌ:

β€’ Product Name β€” для Ρ„Π°ΠΉΠ»ΠΎΠ², относящихся ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρƒ;

β€’ Environment β€” для Ρ„Π°ΠΉΠ»ΠΎΠ² срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ;

β€’ Imports β€” для сторонних Ρ„Π°ΠΉΠ»ΠΎΠ².

Папка Product Name содСрТала создаваСмыС Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для сборки, тСстирования ΠΈ написания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρƒ (Ρ‚Π°Π±Π». 5-1). Π’ Π½Π΅ΠΉ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Branch для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ. Π’ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Parts Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ стандартныС ΠΈ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° имСлся ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Product. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Product ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π»ΠΈΡΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° части. Π§Ρ‚ΠΎΠ±Ρ‹ эта структура Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°, Π½ΡƒΠΆΠ½ΠΎ строго ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… ΠΈ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ структуру. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² частях ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ… Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»Π° ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠΉ.

Π’Π°Π±Π». 5-1. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Π°Ρ структура ΠΏΠ°ΠΏΠΊΠΈ Β«Product NameΒ».

$/Product_Name/ β€” Π€Π°ΠΉΠ»Ρ‹, относящиСся ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρƒ

$/Product_Name/Branch/ β€” Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ направлСния Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

$/Product_Name/Parts/ β€” БовмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, входящиС Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚

$/Product_Name/Parts/Src/ β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для Parts (ΠΏΡ€ΠΈ нСобходимости совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с/Products/Src)

$/Product_Name/Parts/Doc/ β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

$/Product_Name/Parts/Help/ β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ справочной систСмы

$/Product_Name/Parts/Install/ β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ установки

$/Product_Name/Parts/Patch/ β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ вставок

$/Product_Name/Parts/Setup/ β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ установщика

$/Product_Name/Parts/Samples/ β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

$/Product_Name/Parts/Tests/ β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ тСстов, тСстовыС задания ΠΈ Ρ‚.Π΄.

$/Product_Name/Product/ β€” Π Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Product Name (ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΡŽ)

$/Product_Name/Product/Output/ β€” ΠžΠ±Π»Π°ΡΡ‚ΡŒ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, созданных Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…

$/Product_Name/Product/Src/ β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° (ΠΏΡ€ΠΈ нСобходимости совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с /Parts/Src)

$/Product_Name/Product/Doc/ β€” Π€Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρƒ (совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с /Parts/Doc)

$/Product_Name/Product/Help/ β€” Π€Π°ΠΉΠ»Ρ‹ справочной систСмы ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° (совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с /Parts/Help)

$/Product_Name/Product/Imports/ β€” Π˜ΠΌΠΏΠΎΡ€Ρ‚ (совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с /Imports)

$/Product_Name/Product/Install/ β€” Π€Π°ΠΉΠ»Ρ‹ для установки ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с /Parts/Install)

$/Product_Name/Product/Samples/ β€” ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° (совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с /Parts/Samples)

$/Product_Name/Product/Tests/ β€” ВСстовыС задания, тСстовыС сцСнарии (совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с /Parts/Tests)

Из собствСнного ΠΎΠΏΡ‹Ρ‚Π°

Когда я ΠΏΡ€ΠΈΡˆΡ‘Π» Π² NuMega, для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Π±Ρ‹Π»ΠΎ создано Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²: Frank, Bill ΠΈ Matt. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½Π°Π΄ своим собствСнным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния, Π½Π΅ поврСТдая Ρ‡ΡƒΠΆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². Однако Ρ‚Π°ΠΌ Π±Ρ‹Π»ΠΎ ΠΌΠ°Π»ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° (ΠΎΠ΄Π½Π° большая структура Π΄Π°Π½Π½Ρ‹Ρ… для основных подсистСм). Но это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ! Π”Π°Π»ΡŒΡˆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ ΠΌΡ‹ ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· систСмы управлСния исходным ΠΊΠΎΠ΄ΠΎΠΌ. Вакая систСма ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, удСрТивая Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ. Π‘Π΅Π· Π½Π΅Ρ‘ я просто Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ПО для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π’ ΠΏΠ°ΠΏΠΊΠ΅ Environment ($/Env) хранятся Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½ΠΎ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π­Ρ‚ΠΎ всС, начиная с инструмСнтов ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ заканчивая стандартами создания ΠΊΠΎΠ΄Π° ΠΈ шаблонами для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Папка Environment содСрТит Ρ„Π°ΠΉΠ»Ρ‹ срСды, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ срСду с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния тСстирования ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π’ NuMega ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ срСду для ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ для этой Ρ†Π΅Π»ΠΈ ΠΌΡ‹ создали ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ исходного ΠΊΠΎΠ΄Π°. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° исходного ΠΊΠΎΠ΄Π° (Ρ‚Π°Π±Π». 5-2):

Π’Π°Π±Π». 5-2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Π°Ρ структура ΠΏΠ°ΠΏΠΊΠΈ Environment.

$/Env/Dev/ ПО срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств

$/Env/Dev/Bin Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ инструмСнта)

$/Env/Dev/Src Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для этих инструмСнтов (ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ)

$/Env/Dev/Doc ДокумСнтация для этих инструмСнтов (ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ)

$/Env/Dev/Etc ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹

$/Env/Test/ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ для тСстирования

$/Env/Test/Bin Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

$/Env/Test/Src Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ докумСнтация для этих инструмСнтов

$/Env/Test/Doc ДокумСнтация ΠΏΠΎ срСдС тСстирования

$/Env/Test/Etc ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹

$/Env/Documentation/ ДокумСнтация ΠΏΠΎ срСдС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

$/Env/Documentation/Templates Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ справочники ΠΏΠΎ стилям

$/Env/Documentation/Plans ΠŸΠ»Π°Π½Ρ‹ ΠΈ спСцификации ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, тСстовых Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

$/Env/Documentation/Process ВСхнологичСскиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

$/Env/Etc ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π΅ вошСдшиС Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

Π’ ΠΏΠ°ΠΏΠΊΠ΅ Imports ($/Imports) Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ инструмСнтов ΠΈΠ· сторонних ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² (Ρ‚Π°Π±Π». 5-3). Π‘Π°ΠΌΠΈ сторонниС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ Π² этой ΠΏΠ°ΠΏΠΊΠ΅ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π»ΠΈΡΡŒ, Ρ‚Π°ΠΌ Π±Ρ‹Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Imports ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Однако Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эта ΠΎΠ±Π»Π°ΡΡ‚ΡŒ использовалась для хранСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий сторонних ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Π½Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Π΅Π· Ρ‡Ρ‘Ρ‚ΠΊΠΎΠ³ΠΎ осмыслСния, ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ тСстирования ΠΈ ΡƒΡ‡Ρ‘Ρ‚Π° связСй с элСмСнтами, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ эти измСнСния ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

Π’Π°Π±Π». 5-3. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Π°Ρ структура ΠΏΠ°ΠΏΠΊΠΈ Imports.

$/Imports/RogueWave Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ RogueWave

$/Imports/ObjectSpace Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ObjectSpace

$/Imports/Visual Π‘ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ компиляции, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Visual Π‘

$/Imports/Install Shield Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Install Shield

$/Imports/ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Папки для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ инструмСнта ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ сторонних ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ

ΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Π°Ρ систСма

Π’ NuMega ΠΌΡ‹ писали сцСнарий сборки ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Β«ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΉ машинС». Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ для сборки ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· систСмы управлСния исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π­Ρ‚Π° информация Π²ΠΊΠ»ΡŽΡ‡Π°Π»Π° ΠΊΠ°ΠΊ сами срСдства ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ исходныС Ρ„Π°ΠΉΠ»Ρ‹, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Для вСдСния процСсса компиляции ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Nmake β€” популярноС срСдство управлСния ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉ. Nmake сначала собираСт всС части ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π° Π·Π°Ρ‚Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅Ρ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π» ΠΌΠ΅Ρ‚ΠΊΡƒ сборки, позволяло Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ вСрсии ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΈ ΠΎΡ‚Π±ΠΈΡ€Π°Π»ΠΈ ΠΈ срСдства сборки, ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ сборочной срСды. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ использовали стандартныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния ΠΈ макросы, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ собирали всС части ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ посрСдством ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°. Π’ΠΎ, Ρ‡Ρ‚ΠΎ наша компоновочная машина ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ использовали ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ сцСнарии ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, позволяло ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° просто ΠΈ Π±Π΅Π· ошибок.