Architecture Decision Record

Active theme: Light

← ឧទាហរណ៍កំណត់ត្រាការសម្រេចចិត្ត

ការកំណត់រចនាសម្ព័ន្ធអថេរបរិស្ថាន

មាតិកា៖

សង្ខេប

បញ្ហា

យើងចង់ឱ្យកម្មវិធីរបស់យើងអាចកំណត់រចនាសម្ព័ន្ធបានហួសពីវត្ថុ/ប្រព័ន្ធគោលពីរ/កូដប្រភព ដើម្បីឱ្យការ build មួយអាចដំណើរការខុសគ្នាអាស្រ័យលើបរិស្ថានដាក់ពង្រាយរបស់វា។

  • ដើម្បីសម្រេចបានរឿងនេះ យើងចង់ប្រើការកំណត់រចនាសម្ព័ន្ធអថេរបរិស្ថាន។

  • យើងចង់គ្រប់គ្រងការកំណត់រចនាសម្ព័ន្ធដោយប្រើឯកសារដែលយើងអាចត្រួតពិនិត្យកំណែបាន។

  • យើងចង់ផ្តល់ភាពងាយស្រួលខ្លះដល់បទពិសោធន៍អ្នកអភិវឌ្ឍន៍ ដូចជាការដឹងថាអ្វីខ្លះអាចកំណត់រចនាសម្ព័ន្ធបាន និងតម្លៃលំនាំដើមដែលពាក់ព័ន្ធ។

ការសម្រេចចិត្ត

បានសម្រេចជ្រើសឯកសារ .env ជាមួយឯកសារលំនាំដើមដែលពាក់ព័ន្ធ និងឯកសារគ្រោងការណ៍។

ស្ថានភាព

បានសម្រេច។ បើកចំហក្នុងការពិចារណាសមត្ថភាពថ្មីៗនៅពេលដែលវាកើតមាន។

ព័ត៌មានលម្អិត

ការសន្មត់

យើងពេញចិត្តនឹងការញែកកូដកម្មវិធី និងកូដបរិស្ថានចេញពីគ្នា។ យើងសន្មត់ថាកម្មវិធីត្រូវដំណើរការខុសគ្នាក្នុងបរិស្ថានផ្សេងៗ ដូចជាបរិស្ថានអភិវឌ្ឍន៍ បរិស្ថានសាកល្បង បរិស្ថានបង្ហាញ បរិស្ថានផលិតកម្ម ។ល។

យើងពេញចិត្តនឹងការអនុវត្តរបស់ឧស្សាហកម្ម “12 factor app” ហើយកាន់តែពេញចិត្តនឹងការអនុវត្តពាក់ព័ន្ធ “15 factor app”។

គម្រោងមុនៗរបស់យើងជាច្រើនបានប្រើអនុសញ្ញាឯកសារ .env ឬថត .env ស្រដៀងគ្នា។ មានការអនុវត្តធម្មតាក្នុងការទុកទាំងនេះក្រៅពីការត្រួតពិនិត្យកំណែ ហើយប្រើវិធីផ្សេងដើម្បីដាក់ពង្រាយវា កំណត់កំណែវា និងគ្រប់គ្រងវា។

ឧបសគ្គ

យើងចង់រក្សាសម្ងាត់ឱ្យនៅក្រៅប្រព័ន្ធត្រួតពិនិត្យកំណែ (VCS) នៃការគ្រប់គ្រងកូដប្រភព (SCM) របស់យើង។

យើងចង់ខិតខំសម្រាប់ភាពត្រូវគ្នាជាមួយក្របខ័ណ្ឌកម្មវិធី និងបណ្ណាល័យពេញនិយម។ ឧទាហរណ៍ Node មានម៉ូឌុល “dotenv” សម្រាប់អានការកំណត់រចនាសម្ព័ន្ធអថេរបរិស្ថាន។

ជំហរ

យើងបានពិចារណាវិធីសាស្ត្រមួយចំនួន៖

  • ផ្ទុកការកំណត់រចនាសម្ព័ន្ធក្នុងកម្មវិធី ដូចជាក្នុងឯកសារ config.js។

  • ផ្ទុកការកំណត់រចនាសម្ព័ន្ធក្នុងបរិស្ថាន ដូចជាក្នុងឯកសារ .env។

  • ទាញយកការកំណត់រចនាសម្ព័ន្ធពីទីតាំងដែលស្គាល់ ដូចជាម៉ាស៊ីនមេអាជ្ញាប័ណ្ណ។

អាគុយម៉ង់

យើងបានជ្រើសវិធីសាស្ត្រឯកសារ .env ព្រោះ៖

  • វាពេញនិយម រួមទាំងក្នុងចំណោមអ្នកជំនាញ។

  • វាអនុវត្តតាមគំរូឯកសារ .env ដែលក្រុមរបស់យើងបានប្រើដោយជោគជ័យជាច្រើនដងលើគម្រោងជាច្រើន។

  • វាសាមញ្ញ។ ជាពិសេស យើងពេញចិត្តសម្រាប់ពេលនេះជាមួយការដោះដូរសំខាន់ៗដែលយើងឃើញ ដូចជាការខ្វះសមត្ថភាពសវនកម្មធៀបនឹងវិធីសាស្ត្រម៉ាស៊ីនមេអាជ្ញាប័ណ្ណ។

ផលវិបាក

យើងត្រូវរកវិធីញែកការកំណត់រចនាសម្ព័ន្ធអថេរបរិស្ថានដែលជាសាធារណៈ ចេញពីការគ្រប់គ្រងសម្ងាត់ណាមួយ។

ពាក់ព័ន្ធ

ការសម្រេចចិត្តពាក់ព័ន្ធ

យើងរំពឹងថាកម្មវិធីទាំងអស់របស់យើងប្រើវិធីសាស្ត្រនេះ។

យើងនឹងគ្រោងធ្វើបច្ចុប្បន្នភាពកម្មវិធីណាមួយរបស់យើងដែលប្រើវិធីសាស្ត្រដែលមានសមត្ថភាពតិចជាង ដូចជាការសរសេរបង្ខំក្នុងប្រព័ន្ធគោលពីរ ឬក្នុងកូដប្រភព។

យើងនឹងរក្សាកម្មវិធីណាមួយរបស់យើងដែលប្រើវិធីសាស្ត្រដែលមានសមត្ថភាពច្រើនជាងឱ្យនៅដដែល ដូចជាម៉ាស៊ីនមេអាជ្ញាប័ណ្ណ។

តម្រូវការពាក់ព័ន្ធ

យើងនឹងបន្ថែមសមត្ថភាព devops សម្រាប់ឯកសារ រួមទាំង hook តេស្ត និងការរួមបញ្ចូលជាបន្តបន្ទាប់។

យើងត្រូវបណ្តុះបណ្តាលមិត្តរួមក្រុមអ្នកអភិវឌ្ឍន៍ទាំងអស់អំពីការសម្រេចចិត្តនេះ។

វត្ថុពាក់ព័ន្ធ

ផ្នែកនីមួយៗដែលយើងដាក់ពង្រាយនឹងត្រូវការឯកសារ .env និងឯកសារពាក់ព័ន្ធផ្ទាល់ខ្លួន។

គោលការណ៍ពាក់ព័ន្ធ

អាចត្រឡប់វិញបានយ៉ាងងាយ។

កំណត់ចំណាំ

ឧទាហរណ៍ឯកសារ .env៖

NAME=Alice Anderson
EMAIL=alice@example.com

ឧទាហរណ៍ឯកសារ .env.defaults៖

NAME=Joe Doe
EMAIL=joe@example.com

ឧទាហរណ៍ឯកសារ .env.schema ដែលមានតែសោ៖

NAME
EMAIL