| lang | am |
|---|---|
| direction | ltr |
| source | AGENTS.md |
| status | complete |
| generator | scripts/sync_docs_i18n.py |
| source_hash | 5036d004829b1c2da0991b637aa735da9cdf2f3e8e42ac760ff651e60d25d433 |
| source_last_modified | 2026-01-31T07:37:05.947018+00:00 |
| translation_last_reviewed | 2026-02-07 |
| translator | machine-google-reviewed |
እነዚህ መመሪያዎች እንደ የካርጎ የስራ ቦታ በተደራጀው አጠቃላይ ማከማቻ ላይ ተፈጻሚ ይሆናሉ።
- የስራ ቦታን ይገንቡ:
cargo build --workspace - ግንባታዎች 20 ደቂቃ ያህል ሊወስዱ ይችላሉ; ለግንባታ ደረጃዎች የ20 ደቂቃ ጊዜ ማብቂያ ይጠቀሙ።
- ሁሉንም ነገር ይሞክሩ:
cargo test --workspace(ይህ ሩጫ ብዙውን ጊዜ ብዙ ሰዓታትን እንደሚወስድ ልብ ይበሉ ፣ በዚህ መሠረት ያቅዱ) - Lint በጥብቅ:
cargo clippy --workspace --all-targets -- -D warnings - የቅርጸት ኮድ፡
cargo fmt --all(እትም 2024) - አንድ crate ይሞክሩ: I18NI0000040X
- አንድ ሙከራ ያሂዱ: I18NI0000041X
- ስዊፍት ኤስዲኬ፡ የስዊፍት ጥቅል ሙከራዎችን ለማስፈጸም ከ
IrohaSwiftማውጫswift testአሂድ። - አንድሮይድ ኤስዲኬ፡ ከ I18NI0000044X ሩጫ
JAVA_HOME=$(/usr/libexec/java_home -v 21) ANDROID_HOME=~/Library/Android/sdk ANDROID_SDK_ROOT=~/Library/Android/sdk ./gradlew test።
- Hyperledger Iroha የብሎክቼይን መድረክ ነው
- የ DA/RBC ድጋፍ በዋናው ሥሪት ይለያል፡ Iroha 2 በአማራጭ DA/RBC እንዲነቃ ማድረግ ይችላል። Iroha 3 DA/RBC የነቃ ብቻ ሊሆን ይችላል።
- IVM የ IVM Iroha ምናባዊ ማሽን ነው
- Kotodama ለ IVM .ko ፋይል ቅጥያ ለጥሬ ኮንትራት ኮድ የሚጠቀም እና በፋይል ወይም በሰንሰለት ሲቀመጥ ወደ ባይትኮድ ያጠናቅራል። በተለምዶ፣ .ቶ ባይት ኮድ በሰንሰለት ላይ ተዘርግቷል።
- ማብራሪያ፡ I18NT0000004X Iroha ቨርቹዋል ማሽን (IVM) ላይ ያነጣጠረ እና IVM ባይትኮድ (
.to) ያመነጫል። እሱ “risc5”/RISC-Vን እንደ ራሱን የቻለ አርክቴክቸር አላነጣጠረም። RISC-V-እንደ ኢንኮዲንግ በማከማቻው ውስጥ በሚታዩበት ቦታ፣ የIVM የማስተማሪያ ቅርጸቶች ትግበራ ዝርዝሮች ናቸው እና በሃርድዌር ላይ የሚታይ ባህሪ መቀየር የለባቸውም።
- ማብራሪያ፡ I18NT0000004X Iroha ቨርቹዋል ማሽን (IVM) ላይ ያነጣጠረ እና IVM ባይትኮድ (
- Norito የ Iroha የውሂብ ተከታታይ ኮድ ነው
- መላው የስራ ቦታ የ Rust መደበኛ ቤተ-መጽሐፍት (
std) ላይ ያነጣጠረ ነው። WASM/no-std ግንባታዎች አይደገፉም እና ለውጦችን ሲያደርጉ ግምት ውስጥ መግባት የለባቸውም።## የማከማቻ መዋቅር Cargo.tomlበማከማቻው ስር የስራ ቦታን ይገልፃል እና ሁሉንም የአባላት ሳጥኖች ይዘረዝራል።crates/- የ Iroha ክፍሎችን በመተግበር የዝገት ሳጥኖች. እያንዳንዱ ሳጥን የራሱ ንዑስ ማውጫ አለው፣ በተለይምsrc/፣tests/፣examples/እና I18NI0000053X ይይዛል።- አስፈላጊ ሳጥኖች የሚከተሉትን ያካትታሉ:
iroha- ከፍተኛ-ደረጃ ቤተ-መጽሐፍት ዋና ተግባራትን በማዋሃድ።irohad– ዴሞን ሁለትዮሽ የመስቀለኛ መንገድ አተገባበርን ያቀርባል።ivm- የ Iroha ምናባዊ ማሽን።iroha_cli- ከኖድ ጋር መስተጋብር ለመፍጠር የትዕዛዝ-መስመር በይነገጽ።iroha_core፣iroha_data_model፣iroha_cryptoእና ሌሎች ደጋፊ ሳጥኖች።
- አስፈላጊ ሳጥኖች የሚከተሉትን ያካትታሉ:
IrohaSwift/- ፈጣን ጥቅል ለደንበኛው/ሞባይል ኤስዲኬ። ምንጮቹ የሚኖሩት በI18NI0000062X ነው እና አሃዱ በTests/IrohaSwiftTests/ስር ይሞክራል። የስዊፍት ስብስብን ለመለማመድswift testን ከዚህ ማውጫ ያሂዱ።integration_tests/- በtests/ስር ያሉ የአካለ-ክፍል ሙከራዎችን የሚያስተናግድ የጭነት ሳጥን።data_model/- በሙከራዎች እና በሰነዶች ውስጥ ጥቅም ላይ የዋለ የናሙና የውሂብ ሞዴል ፍቺዎች።docs/- የፕሮጀክት ሰነዶች እና የንድፍ ማስታወሻዎች. የማርክ ማድረጊያ ምንጮች በI18NI0000069X ውስጥ ይኖራሉ።pytests/- Python ላይ የተመሰረቱ ሙከራዎች እና የደንበኛ አጠቃቀምን የሚያሳዩ ምሳሌዎች።scripts/- በልማት እና በ CI ቧንቧዎች ውስጥ ጥቅም ላይ የዋሉ የመገልገያ ስክሪፕቶች።examples/ios/እናexamples/ios/NoritoDemoXcode/- የስዊፍት ኤስዲኬን የሚያሳዩ የ iOS መተግበሪያዎች ናሙና; በIrohaSwiftጥቅል ላይ ተመርኩዘው የራሳቸውን XCTest ኢላማዎች ያካትታሉ።defaults/እና I18NI0000076X - የማዋቀሪያ ፋይሎች እና የጂት መንጠቆዎች በአስተዋጽዖ አበርካቾች ጥቅም ላይ ይውላሉ።nix-appimage/እና Nix ፋይሎች - ሊባዙ ለሚችሉ ግንባታዎች እና ማሸጊያዎች መገልገያ።##የልማት የስራ ሂደት- ዋና ትግበራዎች በ I18NI0000078X ውስጥ ናቸው
- የውሂብ ሞዴል በ I18NI0000079X ውስጥ ነው
- ለውጦችን በሚያደርጉበት ጊዜ ሁሉንም ሳጥኖች መመልከትዎን ያረጋግጡ።
- ማንኛውንም የCargo.lock ፋይሎችን አይቀይሩ
- አዲስ ሳጥኖችን ወደ
Cargo.tomlከመጨመር ይቆጠቡ; በሚቻልበት ጊዜ አስፈላጊውን ተግባር በነባር ሳጥኖች ውስጥ ተግባራዊ ማድረግ። - አንዳንድ ስራዎች በጣም ትልቅ ከሆኑ, መስራትዎን አይቃወሙ. ይልቁንስ ስራውን ሰብረው TODOs ጨምሩ እና የሚችሏቸውን ክፍሎች ይተግብሩ።
- ትልቅ ተግባር ወይም ጥያቄ በመጣ ቁጥር በራስ ሰር ወደ ትንንሽ እርምጃ መውሰድ እና ተግባሩን ሙሉ በሙሉ ውድቅ ከማድረግ ይልቅ ተገቢውን የሶፍትዌር ምህንድስና አፈፃፀም ይቀጥሉ።
- ማንኛውንም ማበረታቻዎችን ማድረግን አይቀበሉ።
- አዲስ ክሪፕቶግራፊክ ፕሪሚቲቭስ፣ ኦፕኮድ ወይም ከፍተኛ ሒሳብ ሲታከሉ የሃርድዌር ማጣደፍን ለMETAL፣ NEON፣ SIMD፣ CUDA ወዘተ ያዘምኑ፣ በሚቻልበት ሃርድዌር ላይ የሃርድዌር ማጣደፍ እና ትይዩነት ለመጠቀም ይሞክሩ።
- አመክንዮ ከተቀየረ ሁሉም የ.md ፋይሎች እና የውስጠ-ምንጭ ኮድ አስተያየቶች ከቅርብ ጊዜ ተግባራት ጋር የተዘመኑ መሆናቸውን ያረጋግጡ።
- ሁሉም የተጨመሩ አመክንዮዎች የ IVM አጠቃቀምን በማይጎዳ መልኩ መደረጉን ያረጋግጡ በብሎክቼይን መቼት ውስጥ በ P2P አውታረመረብ ላይ ያሉ የተለያዩ ኖዶች የተለያዩ ሃርድዌር አላቸው ፣ ግን አሁንም ተመሳሳይ የግቤት እገዳ ሲሰጥ ውጤቱ ተመሳሳይ መሆን አለበት።
- ስለ ባህሪ ወይም የአተገባበር ዝርዝሮች ጥያቄዎችን ሲመልሱ መጀመሪያ ተዛማጅ የኮድ መንገዶችን ያንብቡ እና ምላሽ ከመስጠትዎ በፊት እንዴት እንደሚሰሩ መረዳትዎን ያረጋግጡ።
- ውቅር፡ ለሁሉም የአሂድ ጊዜ ባህሪ ከአካባቢ ተለዋዋጮች ይልቅ
iroha_configመለኪያዎችን ይምረጡ። አዲስ ቁልፎችን ወደ I18NI0000082X (ተጠቃሚ → ትክክለኛ → ነባሪዎች) እና እሴቶችን በግንባታ ሰሪዎች ወይም በጥገኝነት መርፌ (ለምሳሌ፣ አስተናጋጅ አዘጋጅ) በግልፅ ይጨምሩ። ማንኛውንም አካባቢን መሰረት ያደረጉ መቀያየሪያዎችን ለገንቢ ምቾት ብቻ በሙከራዎች ያስቀምጡ እና በምርት መንገዶች ላይ አይተማመኑ። ከአካባቢ ተለዋዋጮች በስተጀርባ ያለውን የመላኪያ ባህሪያትን አንደግፍም—የምርት ባህሪ ሁል ጊዜ ከውቅረት ፋይሎቹ የመነጨ መሆን አለበት፣ እና እነዚህ ውቅሮች አስተዋይ የሆኑ ነባሪዎችን ማጋለጥ አለባቸው ስለዚህ አዲስ መጤ ሪፖውን ለመዝጋት፣ ሁለትዮሾችን ለማስኬድ እና ሁሉም ነገር እሴቶችን በእጅ ሳያስተካክል “ልክ ይሰራል”።- ለIVM/I18NT0000005X v1 ጥብቅ የጠቋሚ-ABI አይነት ፖሊሲ ሁል ጊዜ ተፈጻሚ ይሆናል። የ ABI-ፖሊሲ መቀያየር የለም; ኮንትራቶች እና አስተናጋጆች የ ABI ፖሊሲን ያለ ምንም ቅድመ ሁኔታ ማክበር አለባቸው።
- በ IVM syscalls ወይም opcodes ውስጥ ጥቅም ላይ የዋለ ማንኛውንም ነገር በሮች አትስጡ; እያንዳንዱ የIroha ግንባታ በመስቀለኛ መንገዱ ላይ የመወሰን ባህሪን ለመጠበቅ እነዚያን የኮድ መንገዶች መላክ አለበት።
- ተከታታይነት፡ ከሰርዴ ይልቅ በየቦታው I18NT0000008X ይጠቀሙ። ለሁለትዮሽ ኮዴኮች
norito::{Encode, Decode}ይጠቀሙ; ለ JSON የnorito::jsonአጋዥዎችን/ማክሮዎችን (norito::json::from_*፣to_*፣ I18NI0000087X፣Value) ይጠቀሙ እና ወደ I18NI000000089X በጭራሽ አይመለሱም። በቀጥታ I18NI0000090X/I18NI0000091X ጥገኞችን በሳጥኖች ውስጥ አታክል; ሰርዴ ከውስጥ የሚፈለግ ከሆነ፣ በNorito's መጠቅለያዎች ይተማመኑ። - CI ጠባቂ፡ I18NI0000092X SCALE (
parity-scale-codec) በNorito የቤንችማርክ ማሰሪያ ውስጥ ብቻ እንደሚታይ ያረጋግጣል። የተከታታይ ኮድ ከነካህ በአካባቢው አሂድ። - Norito የሚጫኑ ጭነቶች አቀማመጣቸውን ማሳወቅ አለባቸው፡ ወይ የስሪት ቁጥር ካርታዎች ወደ ቋሚ ባንዲራ ስብስብ፣ ወይም የNorito አርዕስት ባንዲራዎቹን መፍታት ያውጃል። የታሸጉ ቅደም ተከተሎችን ከሂዩሪስቲክስ አይገምቱ; የጄኔሲስ መረጃ ተመሳሳይ ህግን ይከተላል.- ብሎኮች ጸንተው መሰራጨት አለባቸው ቀኖናዊውን I18NI0000094X ቅርጸት (I18NI0000095X/I18NI0000096X) በመጠቀም የስሪት ባይት ቅድመ ቅጥያ ከ Norito አርእስት ጋር። ባዶ ጭነት አይደገፍም።
- ማንኛውንም ጊዜያዊ ወይም ያልተሟላ አተገባበር የሚያብራራ የ
TODO:አስተያየት ያክሉ። - ሁሉንም የዝገት ምንጮችን በ I18NI0000098X (እትም 2024) ይቅረጹ።
- ሙከራዎችን አክል፡ ለእያንዳንዱ አዲስ ወይም ለተሻሻለ ተግባር ቢያንስ አንድ አሃድ ሙከራን ያረጋግጡ፣ በ
#[cfg(test)]መስመር ውስጥ ወይም በ cratetests/ማውጫ ውስጥ የተቀመጠ። cargo testን በአገር ውስጥ ያሂዱ፣ ማንኛውንም የግንባታ ችግሮችን ያስተካክሉ እና ማለፉን ያረጋግጡ። ይህንን ለአንድ የተወሰነ ሳጥን ብቻ ሳይሆን ለጠቅላላው ማከማቻ ያድርጉት።- ለተጨማሪ የሊንት ቼኮች
cargo clippy -- -D warningsበአማራጭ ያሂዱ።
- ሁልጊዜ የሣጥን ደረጃ ሰነዶችን ያክሉ፡ እያንዳንዱን ሳጥን ይጀምሩ ወይም የሙከራ ሣጥን በአጭር የውስጥ ዶክ አስተያየት (
//! ...)። - በማንኛውም ቦታ (የውህደት ሙከራዎችን ጨምሮ)
#![allow(missing_docs)]ወይም የንጥል ደረጃ#[allow(missing_docs)]አይጠቀሙ። የጎደሉ ሰነዶች በስራ ቦታው ውስጥ ተከልክለዋል እና ሰነዶች በመጻፍ መስተካከል አለባቸው። - Norito ኮዴክ፡
norito.mdበሪፖ ስርው ላይ ለቀኖናዊ ሽቦ አቀማመጥ እና የአተገባበር ዝርዝሮች ይመልከቱ። የNorito ስልተ ቀመር ወይም አቀማመጦች ከተቀየሩnorito.mdን በተመሳሳይ PR ያዘምኑ። - ቁሳቁሶችን ወደ አካዲያን በሚተረጉሙበት ጊዜ በኩኒፎርም የተፃፈ የትርጉም አተረጓጎም ያቅርቡ። ፎነቲክ በቋንቋ ፊደል መጻፍን ያስወግዱ፣ እና ትክክለኛ የጥንት ቃላት ሲጠፉ ሀሳቡን የሚጠብቁ ግጥማዊ የአካዲያን ግምቶችን ይምረጡ።
ማስታወሻ፡ የመጀመሪያ ልቀት መመሪያ
- ይህ የመጀመሪያው ልቀት ነው እና አንድ ነጠላ የኤቢአይ ስሪት (V1) አለን። እስካሁን ምንም V2 የለም። ከዚህ በታች ሁሉንም ከABI-ነክ የዝግመተ ለውጥ እቃዎች እንደ የወደፊት መመሪያ ይያዙ; ለአሁን፣ ኢ18NI00000108X ብቻ ኢላማ ያድርጉ። የውሂብ ሞዴል እና ኤፒአይዎች እንዲሁ በመጀመሪያ የተለቀቁ ናቸው እና ለመላክ እንደ አስፈላጊነቱ በነፃነት ሊለወጡ ይችላሉ፤ ያለጊዜው መረጋጋት ይልቅ ግልጽነት እና ትክክለኛነትን ይመርጣሉ።
አጠቃላይ፡-
-
የ ABI ፖሊሲ ያለ ምንም ቅድመ ሁኔታ በ v1 (ሁለቱም syscall surface እና pointer-ABI አይነቶች) ተፈጻሚ ነው። የሩጫ ጊዜ መቀየሪያዎችን አይጨምሩ።
-
ለውጦች በሃርድዌር እና በእኩዮች መካከል ቆራጥነትን መጠበቅ አለባቸው። በተመሳሳይ PR ውስጥ ሙከራዎችን እና ሰነዶችን ያዘምኑ።
-
syscals ካከሉ/ ካነሱ/ እንደገና ከቆጠሩ፡-
ivm::syscalls::abi_syscall_list()ያዘምኑ እና እንደታዘዘ ያድርጉት።is_syscall_allowed(policy, number)የታሰበውን ወለል እንደሚያንጸባርቅ ያረጋግጡ።- በአስተናጋጆች ውስጥ አዳዲስ ቁጥሮችን መተግበር ወይም ሆን ብሎ አለመቀበል; ያልታወቁ ቁጥሮች ወደ
VMError::UnknownSyscallካርታ ማድረግ አለባቸው። - ወርቃማ ሙከራዎችን ያዘምኑ;
crates/ivm/tests/abi_syscall_list_golden.rscrates/ivm/tests/abi_hash_versions.rs(መረጋጋት + ስሪት መለያየት)
-
የጠቋሚ-ABI ዓይነቶችን ካከሉ፡-
- አዲሱን ተለዋጭ ወደ
ivm::pointer_abi::PointerTypeያክሉ (አዲስ የ u16 መታወቂያ ይመድቡ ፣ ነባር መታወቂያዎችን በጭራሽ አይቀይሩ)። - ለትክክለኛው
abi_versionካርታivm::pointer_abi::is_type_allowed_for_policyያዘምኑ። crates/ivm/tests/pointer_type_ids_golden.rsያዘምኑ እና አስፈላጊ ከሆነ የፖሊሲ ሙከራዎችን ያክሉ።
- አዲሱን ተለዋጭ ወደ
-
አዲስ የ ABI ስሪት ካስተዋወቁ፡
- ካርታ
ProgramMetadata.abi_version→ivm::SyscallPolicyእና Kotodama ማጠናከሪያውን በማዘመን አዲሱን እትም ሲጠየቅ ለመልቀቅ። abi_hashን ያድሱ (በivm::syscalls::compute_abi_hash) እና መገለጫዎች አዲሱን ሃሽ መክተታቸውን ያረጋግጡ።- በአዲሱ እትም ስር ለተፈቀዱ/ያልተፈቀዱ syscalls እና ጠቋሚ ዓይነቶች ሙከራዎችን ያክሉ።
- ካርታ
-
መግቢያ እና መግለጫዎች;
- መግቢያ I18NI0000122X/
abi_hashበሰንሰለት መገለጫዎች ላይ እኩልነትን ያስፈጽማል; ይህንን ባህሪ እንደተጠበቀ ያቆዩት። - በ
iroha_core/tests/ውስጥ ለመጨመር / ለማዘመን ሙከራዎች: አዎንታዊ (ተዛማጅabi_hash) እና አሉታዊ (አለመጣጣም) ጉዳዮች።- ሰነዶች እና የሁኔታ ዝመናዎች (ተመሳሳይ PR): crates/ivm/docs/syscalls.md(ኤቢ ኢቮሉሽን ክፍል) እና ማንኛውም የሳይክል ሠንጠረዦችን ያዘምኑ።status.mdእናroadmap.mdን ከ ABI ለውጦች እና የሙከራ ዝመናዎች አጭር ማጠቃለያ ጋር ያዘምኑ።
- መግቢያ I18NI0000122X/
- በሣጥኖች ውስጥ አሁን ላለው የማጠናቀር/የአሂድ ጊዜ ሁኔታ
status.mdበሬፖ ስር ላይ ያረጋግጡ። - ቅድሚያ ለተሰጣቸው TODOs እና የትግበራ እቅድ
roadmap.mdያረጋግጡ። - ስራውን ከጨረሱ በኋላ, በ
status.mdውስጥ ሁኔታን ያዘምኑ እናroadmap.mdበአስደናቂ ተግባራት ላይ ያተኩሩ.
- በማንኛውም መስፈርት ላይ ማብራሪያ ከፈለጉ ከጥያቄዎ ጋር የChatGPT ጥያቄን ያቁሙ እና ይቅረጹ፣ ከዚያ ከመቀጠልዎ በፊት ለተጠቃሚው ያካፍሉ።
- ለውጦችን በትንሹ እና በስፋት ያቆዩ; በተመሳሳዩ መጣፊያ ውስጥ የማይዛመዱ አርትዖቶችን ያስወግዱ።
- አዲስ ጥገኛዎችን ከመጨመር ይልቅ ውስጣዊ ሞጁሎችን ይመርጣሉ;
Cargo.lockአያርትዑ። - በሃርድዌር የተጣደፉ ዱካዎችን ለመጠበቅ የባህሪ ባንዲራዎችን ይጠቀሙ (ለምሳሌ፡
simd፣ I18NI0000135X) እና ሁል ጊዜ የሚወስን የውድቀት ዱካ ያቅርቡ። - ውጽዓቶች በሃርድዌር ላይ ተመሳሳይ መሆናቸውን ያረጋግጡ; በማይወስኑ ትይዩ ቅነሳዎች ላይ ከመተማመን ይቆጠቡ።
- ይፋዊ ኤፒአይዎች ወይም ባህሪ ሲቀየሩ ሰነዶችን እና ምሳሌዎችን ያዘምኑ።
- የNorito አቀማመጥ ዋስትናዎችን ለመጠበቅ በ
iroha_data_modelውስጥ ተከታታይ ለውጦችን ከዙር ጉዞ ሙከራዎች ጋር ያረጋግጡ። - የውህደት ሙከራዎች እውነተኛ ባለብዙ-አቻ አውታረ መረቦችን ይፈትሉ; የሙከራ ኔትወርኮችን በሚገነቡበት ጊዜ ቢያንስ 4 አቻዎችን ይጠቀሙ (ነጠላ-አቻ ውቅሮች አይወክሉም እና በ Sumeragi ውስጥ ሊገድቡ ይችላሉ)።
- በፈተናዎች ውስጥ DA / RBC ን ለማሰናከል አይሞክሩ (ለምሳሌ በ
DevBypassDaAndRbcForZeroChain); DA ተፈፃሚ ሆኗል እና ያ ማለፊያ ዱካ በአሁኑ ጊዜ በsumeragiውስጥ በስምምነት ጅምር ላይ ተዘግቷል። - የQC ምልአተ ጉባኤ በድምጽ ሰጪዎች (
min_votes_for_commit) መሟላት አለበት። የተመልካች መደረቢያ በተገኝነት/በቅድሚያ/በቅድሚያ የምልአተ ጉባኤ ቼኮች ላይ አይቆጠርም፣ስለዚህ QCዎችን ያጠቃልሉት በቂ አረጋጋጭ ድምጾች ከደረሱ በኋላ ነው። - በDA የነቃ መግባባት አሁን ለውጦችን ከማየትዎ በፊት ረዘም ያለ ጊዜ ይጠብቃል (የምልአተ ጉባኤ ጊዜ ማብቂያ =
block_time + 4 * commit_time) RBC/ተገኝነት QC በቀስታ አስተናጋጆች ላይ እንዲያልቅ።
- የፍለጋ ኮድ:
rg '<term>'እና ፋይሎችን ዘርዝር:fd <name>. - ሳጥኖችን ያስሱ:
fd --type f Cargo.toml crates | xargs -I{} dirname {}. - ምሳሌዎችን/አግዳሚ ወንበሮችን በፍጥነት ያግኙ፡
fd . crates -E target -t d -d 3 -g "*{examples,benches}"። - Python ጠቃሚ ምክር: አንዳንድ አካባቢዎች
pythonአይሰጡም; ስክሪፕቶችን በሚያሄዱበት ጊዜ በምትኩpython3ይሞክሩ።
- የክፍል ሙከራዎች፡- ለንጹህ ትንተና፣ codegen ረዳቶች እና መገልገያዎች (ፈጣን ፣ ምንም ማጠናከሪያ አልተሳተፈም)።
- የዩአይ ፈተናዎች (trybuild)፡- የማጠናቀር ባህሪን እና የዲሪቭ/ፕሮክ-ማክሮን ምርመራዎችን ለማረጋገጥ (ስኬት እና የሚጠበቁ የሽንፈት ጉዳዮች በ
.stderr) ለማረጋገጥ ይጠቀሙ። - ማክሮዎችን ሲጨምሩ / ሲቀይሩ ሁለቱንም ይምረጡ፡ የክፍል ሙከራዎች ለውስጣዊ አካላት + የተጠቃሚን ፊት ለፊት ለሚመለከቱ ባህሪ እና የስህተት መልዕክቶች የዩአይ ሙከራዎች።
- ድንጋጤን ያስወግዱ; ግልጽ የሆኑ ምርመራዎችን (ለምሳሌ፣ በ
syn::Errorወይምproc_macro_error)። መልዕክቶችን በተረጋጋ ሁኔታ ያቆዩ እና ሆን ተብሎ ለሚደረጉ ለውጦች.stderrያዘምኑ።
የለውጦቹ አጭር ማጠቃለያ እና እርስዎ የሮጧቸውን ትዕዛዞች የሚገልጽ የTesting ክፍል ያካትቱ።