ដើម្បីបង្ហាញភាពមានស្រាប់នៃកង់នៅពេលវេលាពិតប្រាកដក្នុងកម្មវិធី មិនត្រូវភ្ជាប់បរិមាណដែលត្រូវបានបញ្ចូនជាមួយភាពថ្មី និងលក្ខខណ្ឌសម្រាប់យកកង់។ ការសង្កេតប្រាប់អំពីអ្វីដែលប្រភពបានដឹងក្នុងពេលវេលាមួយ; វាមិនធានាថាកង់មួយនឹងនៅមាននៅពេលអ្នកមកដល់។
កិច្ចសន្យាចលនាគឺបំបែកផ្ទះចតកង់ រថយន្តឯកជន និងស្ថានភាពរបស់ពួកវា។ មុខងារត្រូវបកប្រែភាពខុសគ្នាទាំងនេះដោយមិនបំភាន់ចន្លោះតម្លៃមិនស្គាល់ ផ្ទះចតដែលទទេ និងប្រភពដែលមិនអាចប្រើបានជាបណ្តោះអាសន្ន។
បំបែកផ្ទះចតពីរថយន្តឯកជន
ផ្ទះចតអាចបង្ហាញរាប់កង់ និងចំនួនកន្លែងត្រឡប់វិញបាន។ រថយន្តឯកជនមានស្ថានភាពភាពមានស្រាប់ និងព័ត៌មានផ្សេងៗទៀត។ ជៀសវាងរាប់ផ្ទះចតថាជាកង់ ឬបូកបន្ថែមរាប់ចំនួនដែលបង្ហាញទៅលើសារពើភណ្ឌដូចគ្នា។
ក្នុង DTO ចលនារបស់ ROOTE, availability.bikes និង availability.docks អាចមិនស្គាល់។ វាល propulsion ឬ battery ត្រូវបង្ហាញតែពេលវាមាន ហើយផ្ទាត់មើលតាមកិច្ចសន្យា។
អានភាពថ្មី និងពេលវេលាផ្លាស់ប្តូរ
| វាល | ការបកប្រែ |
|---|---|
| freshness.state | ស្ថានភាពដែលបានប្រកាស៖ fresh, stale, unknown ឬ static |
| freshness.source_updated_at | កាលបរិច្ឆេទនៃការអាប់ដេតប្រភព ប្រសិនបើស្គាល់ |
| freshness.received_at | កាលបរិច្ឆេទទទួលដែលបង្ហាញដោយកិច្ចសន្យា |
| freshness.expires_at | ថ្ងៃផុតកំណត់ត្រឹមត្រូវ បើស្គាល់ |
| availability.bikes | បរិមាណដែលស្គាល់ ឬតម្លៃមិនស្គាល់ |
| pickup.enabled និង pickup.state | ព័ត៌មានអំពីការយកកង់នៅផ្ទះចត |
ម៉ោងដែលអ្នកហៅមិនមែនម៉ោងតាមការសង្កេតទេ។ លទ្ធផលដែលទទួលនៅម៉ោង 10 ពេលអាចមានប្រភពបានត្រូវបានបន្ទាន់សម័យនៅម៉ោង 9:45។ កុំបង្ហាញ "ត្រូវបានបន្ទាន់សម័យឥឡូវនេះ" ដោយផ្អែកលើម៉ោងទទួលពីផ្ទៃមុខរបស់អ្នកតែប៉ុណ្ណោះ។
រៀបចំស្ថានភាពបង្ហាញខុសគ្នា
| ទិន្នន័យបានទទួល | ការបង្ហាញដែលត្រូវរៀបចំ |
|---|---|
| បរិមាណស្គាល់ និងទិន្នន័យថ្មី | បរិមាណដែលបានសង្កេត និងបង្ហាញពេលវេលា |
| បរិមាណស្មើសូន្យ | គ្មានកង់ដែលត្រូវបានសង្កេតទេ ជាមួយ context ពេលវេលា |
| បរិមាណ null | ភាពមានស្រាប់មិនស្គាល់ |
| ស្ថានភាព stale ឬផុតកំណត់ | ទិន្នន័យចាស់; សូមផ្តល់ជំនួយក្នុងការផ្លាស់ប្តូរ |
| pickup.enabled=false | មិនអាចយកកង់បាន ទោះបីជានៅមានរាប់វិជ្ជមានក៏ដោយ |
| កំហុសស្វែងរក | ភាពមានស្រាប់មិនអាចប្រើបានបណ្តោះអាសន្ន ដោយមិនបម្លែងទៅសូន្យ |
កុំចាត់ថាស្ថានភាព unknown ឬ static ជាថ្មី។ ព័ត៌មានផ្ទះចតអាចមានស្ថេរភាព ពោលគឺរាប់កង់អាចរហ័សរំលង។ រក្សាការជូនដំណឹង និងតម្រូវការដែលបានទាមទារដោយចម្លើយ។
ឧទាហរណ៍នៃការធ្វើឲ្យមានទ្រង់ទ្រាយស្រួល មុននឹងបង្ហាញ
មុខងារខាងក្រោមបង្កើតស្ថានភាពបង្ហាញពីផ្ទះចតដែលបានផ្ទៀងផ្ទាត់ដោយគំរូ ROOTE។ វាមិនមែនជាប្រភពផ្ទៀងផ្ទាត់ចម្លើយពេញលេញទេ។ អត្ថន័យដែលបង្ហាញត្រូវបានយកពីសោរចំណាត់ថ្នាក់បំភ្លឺរបស់ផ្ទៃមុខរបស់អ្នក។
function availabilityView(station, now = Date.now()) {
const freshness = station.freshness;
const expiresAt = freshness.expires_at
? Date.parse(freshness.expires_at) : null;
const expired = expiresAt !== null &&
Number.isFinite(expiresAt) && expiresAt <= now;
if (station.pickup.enabled === false ||
station.pickup.state === 'unavailable_now') {
return { state: 'pickup_unavailable', count: null };
}
if (expired || freshness.state === 'stale') {
return { state: 'stale', count: null };
}
const count = station.availability.bikes;
if (freshness.state !== 'fresh' || count === null ||
!Number.isFinite(count) || count < 0) {
return { state: 'unknown', count: null };
}
return {
state: count === 0 ? 'empty' : 'observed', count,
sourceUpdatedAt: freshness.source_updated_at,
receivedAt: freshness.received_at,
pickupState: station.pickup.state
};
}
ទោះបីមានស្ថានភាព observed ក៏ដោយ កុំបំលែង pickupState=unknown ទៅជាការយកបានបញ្ជាក់។ រាប់កង់នៅតែជាការសង្កេត។ បង្ហាញ context សម្រាប់ការយក ប្រសិនបើផលិតផលរបស់អ្នកជួយអ្នកប្រើក្នុងការជ្រើសរើសផ្ទះចត។
ធ្វើការត្រួតពិនិត្យបច្ចុប្បន្នភាពដោយមិនបង្កើនការហៅមិនចាំបាច់
បំរើការត្រួតពិនិត្យដោយផ្អែកលើថ្ងៃផុតកំណត់ ឧបសគ្គសេវា និងពហុពាក្យអ្នកប្រើ។ សហការជាមួយសំណើដូចគ្នា ចៀសវាងហៅផ្ទៃខាងក្រោយកាន់តែវេននៅលើទំព័រមិនប្រើ និងបោះបង់វានៅពេលស្វែងរកត្រូវបានប្ដូរ។
ពេលវេលាដាក់ទុកក្នុងទីលំនៅមិនជាភស្តុតាងភាពថ្មីរបស់ប្រភពទេ។ បន្ទាប់ពីកំហុស អ្នកអាចរក្សាការសង្កេតចុងក្រោយដែលមានកាលបរិច្ឆេទ ប្រសិនបើផ្ទៃមុខរបស់អ្នកបង្ហាញវាឲ្យច្បាស់ថាជាទិន្នន័យចាស់។ កុំលុបបំបាត់ការបំបែកនេះនៅលើការត្រឡប់ជាលទ្ធផលជោគជ័យដំបូងក្រោយការ error ប្រសិនបើប្រភពនៅតែ stale។
យល់អំពីទំនាក់ទំនងជាមួយ GBFS
GBFS ពិពណ៌នាសេវាចលនាចែករំលែក និងស្ថានភាពដែលបានបង្ហាញ។ ការអ៊ីនធឺក្រាតផ្ទាល់ត្រូវបកប្រែឯកសារ កំណែ និងពេលវេលារបស់ហ្វ្លុច។ ជាមួយ API ដែលមានស្តង់ដារ សូមប្រើកិច្ចសន្យា API មិនត្រូវបន្ថែមវាល GBFS ដែលជាលោកថាគួរត្រូវធ្លាប់បាត់ក្នុងចម្លើយរបស់វា។
ជ្រើសរើសរវាង GTFS, GTFS Realtime និង GBFS
សាកល្បងស្ថានភាពដែលបំភាន់អ្នកអាន
សាកល្បងសូន្យពិត បរិមាណមិនស្គាល់ កាលបរិច្ឆេទផុតកំណត់ ការយកបានបិទ និងកំហុសបន្ទាប់ពីលទ្ធផលត្រឹមត្រូវ។ ពិនិត្យមើលតំបន់ម៉ោងបង្ហាញផងដែរ។ រាប់វិជ្ជមានមិនគួរបង្កើត "កង់បានកក់" ហើយភាពមិនអាចប្រើបានមិនគួរបង្កើតសូន្យក្លែងក្លាយ។
អនុវត្តច្បាប់ទាំងនេះនៅក្នុងជំនួយការជំនួយរបស់ AI
មគ្គុទេសក៍អ្នកប្រើសម្រាប់ស្វែងរកកង់
សំណួរញឹកញាប់
បរិមាណវិជ្ជមានធានាកង់នៅពេលខ្ញុំមកដល់ទេ?
ទេ។ វាបង្ហាញពីការសង្កេត ដែលអាចប្ដូរប្រែរវាងការស្វែងរក និងពេលអ្នកមកដល់។
តើអាចជំនួស null ជាសូន្យបានទេ?
ទេ។ null បង្ហាញតម្លៃមិនស្គាល់។ សូន្យគឺបរិមាណដែលបានស្គាល់ ហើយមានន័យផ្សេង។
តើត្រូវត្រួតពិនិត្យឡើងវិញរាល់ប៉ុន្មានវិនាទី?
សូមប្រើសញ្ញាប្រសើរពាក់ព័ន្ធការពិត ប្រព័ន្ធសេវាកម្ម និងតម្រូវការផ្ទៃមុខរបស់អ្នក។ អត្រាដែលមានការកំណត់មិនធានាប្រភពនៅភាពថ្មីជាងឡើយ។