Idiomatic Go
អំពីគម្រោងនេះ
បណ្ដុំអត្ថបទលំនាំរចនា Go សម្រាប់លំនាំ Gang of Four ពេញលេញ ដែលផ្តោតលើការអនុវត្ត idiomatic ជំនួសឱ្យ class hierarchies ដែលពឹង framework ជាក់លាក់។
ពិតប្រាកដ
ដំណើរការ Architecture
ទិន្នន័យក្នុងម៉ាស៊ីន
បកប្រែពីរភាសា
វាជាអ្វី?
គេហទំព័រនេះយកលំនាំរចនាបុរាណរបស់ Gang of Four (GoF) មកអនុវត្តក្នុង Go តាមរបៀបដែលសមស្របនឹងភាសា។ Go នៅតែទទួលបានអត្ថប្រយោជន៍ពីលំនាំការបង្កើត, រចនាសម្ព័ន្ធ និងឥរិយាបថ ប៉ុន្តែទម្រង់របស់វាប្រែប្រួលនៅពេលអ្នកផ្តល់អាទិភាពដល់ composition, interfaces, constructors ធម្មតា, errors ច្បាស់លាស់ និង package boundaries ជំនួស object models ដែលពឹង inheritance ខ្លាំង។
ឧទាហរណ៍ទាំងនេះប្រើ domain ពាណិជ្ជកម្ម និង platform ដែលជាក់ស្តែង ដើម្បីឱ្យលំនាំនៅតែច្បាស់។ អត្ថបទនីមួយៗមាន Go source files ពិតនៅខាងក្រោយ ហើយការពន្យល់នឹងបង្ហាញ tradeoffs សម្រាប់ Go ដែលសំខាន់ក្នុង codebases ពិត។
របៀបរៀបចំលំនាំទាំងនេះ
លំនាំទាំងនេះនៅតែរៀបចំតាមប្រភេទបុរាណទាំងបី៖
- ការបង្កើត — លំនាំផ្តោតលើការបង្កើត objects ដូចជា Singleton និង Factory Method ដែលត្រូវបានសម្របទៅ Go ដោយប្រើ constructor functions, interfaces និង functional options។
- រចនាសម្ព័ន្ធ — លំនាំផ្តោតលើការផ្សំ ដូចជា Adapter, Facade, Decorator និង Proxy ដែលភាគច្រើនបង្ហាញតាម interfaces តូចៗ និង package boundaries។
- ឥរិយាបថ — លំនាំសម្រាប់ workflow និងការសហការងារ ដូចជា Chain of Responsibility, Command, Strategy និង State ដែលជាទូទៅអនុវត្តដោយ interfaces និង control flow ច្បាស់លាស់។
អ្វីដែលមាននៅលើទំព័រលំនាំនីមួយៗ
- បញ្ហា — សេណារីយ៉ូជាក់ស្តែងដែលត្រូវការលំនាំនោះ។
- ដំណោះស្រាយ — របៀបដែលលំនាំនោះបកប្រែទៅជា Go។
- រចនាសម្ព័ន្ធអន្តរកម្ម — Mermaid.js diagram ដែលដំណើរការជំហានម្ដងៗ ដោយ nodes ភ្លឺ ហើយ narrator panel ពន្យល់ role នៃ component នីមួយៗ។ ជាជម្រើសសម្រាប់ source view, copy, និង fullscreen mode។
- រចនាសម្ព័ន្ធ — ផ្នែកសំខាន់ៗ និងរបៀបដែលវាសហការគ្នា។
- ការអនុវត្ត — Go source code ពេញលេញជាមួយ syntax highlighting។
- ឧទាហរណ៍ក្នុងជីវិតពិត — ឧទាហរណ៍ស្រដៀងនឹងការប្រើប្រាស់ក្នុងជីវិតពិត ដើម្បីងាយស្រួលយល់ពី pattern នីមួយៗ។
- អត្ថប្រយោជន៍ និងគុណវិបត្តិ — ពន្យល់អំពីអត្ថប្រយោជន៍ គុណវិបត្តិ និង tradeoffs នៃ pattern នីមួយៗ។
- វិធីអនុវត្តល្អបំផុត — ការណែនាំអំពី idioms របស់ Go, tradeoffs និង testability។
- ពេលណាគួរប្រើ / មិនគួរប្រើ — ការណែនាំជាក់ស្តែងអំពីការអនុវត្ត។
- លំនាំដែលពាក់ព័ន្ធ — តំណភ្ជាប់ទៅលំនាំបំពេញគ្នា ឬជាជម្រើសផ្សេង។
បច្ចេកវិទ្យា
គេហទំព័រនេះសាងសង់ជាមួយ stack តូចៗ ដើម្បីរក្សា performance ល្អ ដោយមិនមានការ tracking ពី server ណាមួយឡើយ។
- Astro — Static site generator ដែល render HTML នៅ build time។ JavaScript ត្រូវបាន ship លុះត្រាតែ component មួយតម្រូវការ interactivity។ MDX ជួយ import Go source files ពិតក្នុង content pages។
- Tailwind CSS v4 — Utility-first CSS ដែលប្រើ CSS custom properties ដើម្បីគ្រប់គ្រង dark/light theme ប្រកបដោយ consistency។
- Mermaid.js v11 — Renders flowchart diagrams client-side ជា SVG ។ pattern page នីមួយៗមាន diagram ដែលដំណើរការជំហានម្ដងៗ ដោយ nodes highlight ហើយ narrator panel ពន្យល់ role នៃ component នីមួយៗ។ Diagrams re-render ដោយស្វ័យប្រវត្តិនៅពេល toggle dark/light mode ដើម្បីប្រើ CSS variables ថ្មី។
- Dexie.js v4 — Wrapper ស្អាតសម្រាប់ IndexedDB ដែលត្រូវបានប្រើជំនួស localStorage ដើម្បីតាមដានវឌ្ឍនភាពការអាន pattern។ ទិន្នន័យ (slug ដែលបានអាន, timestamp ដំបូង, timestamp ចុងក្រោយ, ចំនួនដងចូល) ត្រូវបានរក្សាទុកតែនៅលើ browser របស់អ្នក។ លក្ខណៈ migration ដោយស្វ័យប្រវត្តិ upgrade ទិន្នន័យ localStorage ដែលមានស្រាប់ ដូច្នេះ users ចាស់ មិនបាត់ progress ទេ។