ថ្ងៃទី៖23 មករា 2021
ប្រវែង៖5 នាទី

ក្នុងការសរសេរសូហ្វវែរ៍សព្វថ្ងៃនេះ យើងតែងតែប្រើកូដ ឫសូហ្វវែរ៍ដែលមានស្រាប់មកប្រើជាជាងសរសេរខ្លួនឯងទាំងអស់ (Reuse)។ ហើយក្នុងការយកកូដដែលមានស្រាប់លើអុីធឺណេតមកប្រើនេះ (Package, Library ឫ Module) ដែលយើងហៅវាថា Dependency។
ការប្រើ Dependency នេះជួយឲ្យយើងអាចសរសេរកូដបានលឿន និងងាយស្រួលជាងមុនដោយយកកូដដែលមានស្រាប់ដែលគេបានចែករំលែកជាលក្ខណៈ Open Source មកប្រើទៅតាមការដែលយើងត្រូវការ។ អ្វីទៅជា Dependency ឲ្យប្រាកដ? Dependency ជាកូដដែលយើងយកប្រើនៅក្នុង Project របស់យើងក្នុងលក្ខណៈ Package, Library ឫ Module ជំនួសឲ្យការដែលត្រូវសរសេរខ្លួនឯង។ ជាទូទៅស្ទើរតែគ្រប់ភាសាប្រូក្រាមីងទៅហើយដែលមាន Registry ដែលអាចឲ្យប្រូក្រាមើរ៍អាចចែក…
ថ្ងៃទី៖13 តុលា 2020
ប្រវែង៖2 នាទី

ភាសាចាវ៉ាស្ក្រីបត៍ (JavaScript) ភាសាចាវ៉ាស្ក្រីបត៍តាំងពីដំបូងមកត្រូវបានគេសរសេរឡើងមកដើម្បីតែដំណើរការក្នុងប្រៅស៍ស័រតែប៉ុណ្ណោះ។ ចាវ៉ាស្ក្រីបត៍ត្រូវបានគេសរសេរឡើងមកដោយប្រើពេលតែដប់ថ្ងៃប៉ុណ្ណោះកាលពីជំនាន់ឆ្នាំ 90។
ប្រការនេះហើយដែលនាំឲ្យវាមិនមែនជាភាសារដែលមានមុខងារ និងគុណសម្បត្តិល្អគ្រប់គ្រាន់ប៉ុន្មាននោះទេ។ ដោយហេតុបែបហ្នឹងហើយបានជាគេព្យាយាមប្រើភាសាផ្សេងមកជំនួសវិញសម្រាប់សរសេរវែបសាយដូចដែលយើងបានឃើញមានមកដូចជា Flash, Java។ តែយ៉ាងណាការធ្វើបែបនេះក៏មិនបានធ្វើឲ្យការអភិវឌ្ឍន៍វែបសាយប្រសើរជាងមុនដែរ។ តែវាជាកត្តាជួយជំរុញឲ្យចាវ៉ាស្ក្រីបត៍បានវិវត្តន៍ជារឿយៗជារាងរាល់ឆ្នាំរហូតបានក្លាយជាភាសាដ៏មានឥទ្ធិពលដូចសព្វថ្ងៃនេះ។ ការព្យាយាមប្រើភាសាផ្សេងជំន…
ថ្ងៃទី៖23 កក្កដា 2020
ប្រវែង៖2 នាទី

បើចង់ផ្ទុកទិន្នន័យរបស់វែបសាយដែលយើងធ្វើនៅក្នុង Browser យើងមានវិធីច្រើនក្នុងការផ្ទុក ឫ Cache ទិន្នន័យ ឫ Static Resources ផ្សេងៗ។ តើយើងគួរប្រើ Storage មួយណាល្អសម្រាប់ Client-Side Data Storing? ហើយធ្វើយ៉ាងណាដើម្បីទិន្នន័យមានសុវត្តិភាពល្អ? ថ្ងៃនេះយើងមកមើលពីប្រធានបទនេះទាំងអស់គ្នា! TL;DR សម្រាប់ទិន្នន័យតិចដូចជា String ដែលជា Key ខ្លីៗ យើងគួរប្រើ LocalStorage។
សម្រាប់ទិន្នន័យច្រើន Storage យើងគួរតែប្រើនោះគឺ IndexedDB ព្រោះវា Asynchronous ចំណែកឯ LocalStorage និង SessionStorage ដំណើរការបែប Synchronous ដែលវាអាចប្លុក Main Thread បាន។ សម្រាប់ Cache យើងគួរតែប្រើ Cache Storage API (Service Workers)។ ប្រភេទរបស់ Web Storage បើសិនជាយើ…
ថ្ងៃទី៖22 កក្កដា 2020
ប្រវែង៖1 នាទី

សួស្ដី! ថ្ងៃនេះមានសំណួរមួយសួរមកពីប្អូនម្នាក់គាត់បានសួរខ្ញុំថា “អ្វីទៅជា UX/UI?”។ តាមពិតទៅខ្ញុំក៏មិនជាអ្នកជំនាញឌីហ្សាញអីដែរ តែការងារឌីហ្សាញក៏ជាមួយក្នុងចំណោមការងារដែលខ្ញុំចាប់អារម្មណ៍ ហើយខ្ញុំក៏ធ្លាប់បានរៀនពីវា និងធ្លាប់បានធ្វើការងារឌីហ្សាញកម្មវិធី និងវែបសាយមួយចំនួនដែរកន្លងមកតួយ៉ាងប្លក់ដែលអ្នកទាំងអស់គ្នាកំពុងអាននេះផ្ទាល់។
អ៊ីចឹងហើយប្រហែលជាមានរឿងដែលខ្ញុំអាចនិយាយបានខ្លះដែរសម្រាប់ប្រធានបទនេះ។ អ៊ីចឹងយើងមកមើលទាំងអស់គ្នា! អ្វីទៅជា UX និង UI? ដំបូងបំផុតនោះគឺជំនាញ UX/UI មិនមែនសម្រាប់តែការរចនាវែបសាយ កម្មវិធីកុំព្យូទ័ កម្មវិធីទូរស័ព្ទ និងផលិតផលបច្ចេកវិទ្យាតែប៉ុណ្ណោះទេ។ យើងត្រូវការវាសម្រាប់ការឌីហ្សាញគ្រប់សព្វបែបយ៉ាងតាំងពីរបស…
ថ្ងៃទី៖2 កក្កដា 2020
ប្រវែង៖3 នាទី

👉 Version Control ដោយប្រើកម្មវិធីគ្រប់គ្រងកំណែ Git បើយើងចេះប្រើ Git មែនយើងត្រូវតែឆ្លើយសំណួរនេះបាន “អ្វីទៅ Git Stash?” ដែលជាសំណួរដែលគេតែងតែសួរបើគេចង់សាកថាយើងពិតជាចេះប្រើ Git ស្ទាត់ពិតប្រាកដ ឫអត់នោះ។ អ៊ីចឹងយើងមកមើលទាំងអស់គ្នាថាយើងអាចប្រើ Git Stash នេះដើម្បីអ្វី។ អ្វីទៅជា Git Stash? Stash ជាមុខងារមួយក្នុង Git ដែលយើងអាចប្រើដើម្បីលុបរាល់ការកែប្រែមិនថាកូដ ឫហ្វាល់ផ្សេងៗក្នុង Branch ដែលយើងកំពុងធ្វើការ ហើយរក្សារទុកនៅកន្លែងមួយដែលយើងអាចទាញយកមកវិញនៅពេលក្រោយបាន។
ករណីដែលយើងប្រើ Stash ករណីដែលយើងប្រើ Stash មានច្រើនករណី តែជាទូទៅខ្ញុំប្រើវាពេល៖ ចង់ កូដពី ទាំងដែលមានកូដត្រូវបានកែរួចហើយខ្លះ ហើយវា ជាមួយកូដនៅលើ ។ ចង់ប្តូរ Branch ខណៈដែល…
ថ្ងៃទី៖1 កក្កដា 2020
ប្រវែង៖2 នាទី

Arrow Function ឫ Fat Arrow Function ជារបៀបសរសេរ Function មួយបែបក្នុងភាសាចាវ៉ាស្ក្រីបត៍ដែលត្រូវបានបញ្ចេញក្នុងកំណែ ES6។ ចំណុចពិសេសរបស់វាគឺ ខ្លីងាយស្រួលសរសេរ ហើយវាមិនមាន Bindings ផ្ទាល់ខ្លួនរបស់វាទេ។
ពេលប្រើ Arrow Function យើងនឹងមិនអាចហៅ , , ឫ បានទេព្រោះវាអត់មានរបស់ទាំងអស់នេះក្នុងខ្លួនវាទេ។ ជា keyword មួយដែលជាទូទៅយើងប្រើសម្រាប់ហៅ Key ឫ Property របស់ Object ឫ Class។ តែសម្រាប់ Arrow Function វានឹងហៅ របស់ Function, Closure ឫ Class មេវិញ។ ជា Variable មួយដែលជា Array នៅក្នុង Function មួយដែលអាចឲ្យយើងហៅ Arguments របស់ Function នោះបាន។ ជា keyword មួយដែលយើងប្រើសម្រាប់ហៅ constructor របស់ Parent Class។ Arrow Function មិនអាចប…
ថ្ងៃទី៖17 មិថុនា 2020
ប្រវែង៖2 នាទី

ដេណូ (Deno) បានចេញកំណែផ្លូវការដំបូង v1 នៅកំឡុងពាក់កណ្ដាលខែមុនខែឧសភា។ បើអ្នកតាមដានពីពិភពប្រូក្រាមមីងចុងក្រោយ ប្រហែលជាបានលឺមកហើយ។
វាទទួលបានចំណាប់អារម្មណ៍ច្រើនសមគួរណាស់ ហើយមានរហូតដល់អ្នកខ្លះគេនិយាយថ្ងៃអវសានរបស់ណូដជិតមកដល់ហើយទៀតផង។ អ៊ីចឹងថ្ងៃនេះ យើងមកមើលថាតើដេណូជាអ្វី វាខុសពីណូដយ៉ាងណាខ្លះ ហើយវាពិតជាល្អជាងណូដមែនដែរឫទេ។ ##ដេណូជាអ្វី? ចំណុចខុសគ្នារវាងដេណូ និង ណូដ ដេណូ (Deno) ជាប្រូក្រាមដែល Secure សម្រាប់ដំណើការ JavaScript និង TypeScript ក្រៅវែបប្រៅស័រថ្មីមួយ។ អ្នកដែលបង្កើតដេណូ និងណូដជាមនុស្សតែមួយគឹដោយលោក Ryan Dahl។ ដេណូប្រើ TypeScript, Rust, Tokio (សម្រាប់ Event Loop) និង V8 (Rusty-V8 ជា JavaScript Engine) ដែលខុសពីណូដដែលប…
ថ្ងៃទី៖13 មិថុនា 2020
ប្រវែង៖2 នាទី

ក្នុងអត្ថបទនេះ ខ្ញុំនិយាយពីប្រភេទរបស់វែបសាយដែលមាន Static Site, SPA និង SSR។ អ្នកគួរតែយល់ពីគំនិតគោលរបស់ប្រភេទវែបសាយទាំងអស់នេះ ដើម្បីអាចរើសយកប្រភេទដែលត្រឹមត្រូវទៅតាមតម្រូវការរបស់វែបសាយដែលអ្នកនឹងធ្វើ។
ជាដំបូងយើងត្រូវយល់ថារាល់វែបសាយទាំងអស់ត្រូវដំណើរការនៅលើ Browser។ នៅពេលយើងចូលទៅកាន់វែបសាយណាមួយ Browser ផ្ញើរសំណើរទៅកាន់ Server ហើយ Server បញ្ជូនត្រលប់មកវិញជា Response មួយ។ ហើយបើ Response នោះជាកូដ HTML នោះ Browser នឹងយកបង្ហាញជាវែបសាយ។ តែថាកូដ HTML ដែល Server បញ្ជូនត្រលប់មកនោះ វាត្រូវបានបង្កើតឡើងដោយរបៀបណា? អ្វីទៅ Static Site? ដំបូងគេនោះគឺជាប្រភេទ Static Site។ រាល់កូដទាំងអស់ត្រូវបានបង្កើតហើយជាស្រេចមុននឹងគេយកវាទៅដាក់នៅលើ Server…
ថ្ងៃទី៖11 មិថុនា 2020
ប្រវែង៖1 នាទី

##តើអ្វីទៅជាការគ្រប់គ្រងកំណែរ? ហើយអីទៅ Git? Version Control ឫ ការគ្រប់គ្រងកំណែរ (VSC) ជាការគ្រប់គ្រងរាល់កំណែប្រែនៃកូដ ឫ ឯកសារផ្សេងៗនៅក្នុងគម្រោងសូហ្វវែរ៍។ Git ជាកម្មវិធីគ្រប់គ្រងកំណែរដែលវាអាចជួយយើងកត់ត្រារាល់កំណែប្រែរបស់កូដទាំងអស់ជាកំណែរៗ ហើយវាមានភាពងាយស្រួលមែនទែនក្នុងការត្រលប់ទៅកំណែមុនបើមានអីខុសប្រកតី ឫប្ដូរមកកំណែចុងក្រោយវិញ។
ពេលប្រើ Git យើងបង្កើតវាជា Repository មួយ។ យើងមានលទ្ធភាពចែកវាជា Branch ដែល Branch នីមួយៗយើងអាចធ្វើការផ្សេងៗពីគ្នាបានដែលវាជួយឲ្យកូដយើងមិនជាន់គ្នា។ ពេលធ្វើរួច យើងអាចដាក់វាបញ្ជូលគ្នាវិញ (Merge) ទៅក្នុង Main Branch ដែលយើងភាគច្រើនហៅវាថា Master Branch វិញបាន។ ម្យ៉ាងទៀតមុននឹង Merge…
ថ្ងៃទី៖9 មិថុនា 2020
ប្រវែង៖3 នាទី

សួស្ដី! ថ្ងៃនេះខ្ញុំសូមនិយាយដល់ Tools ដែលខ្ញុំតែងតែប្រើពេលធ្វើ Software Project។ តែមុននឹងចាប់ផ្ដើម ខ្ញុំសូមនិយាយដល់ SDLC របស់ SWEBOK សិន។
អីគេទៅ SWEBOK? SWEBOK មកពីពាក្យថា SoftWare Engineering Body of Knowledge ឫយើងហៅវាថាជាស្ដង់ដារដែលណែនាំពីវិស្វកម្មសូហ្វវែរ៍។ ហើយ SDLC មកពីពាក្យថា Software Development Life Cycle ដែលវានិយាយពីវដ្ដជីវិតនៃការអភិវឌ្ឍន៍សូហ្វវែរ៍។ នៅក្នុង SDLC គេបែងចែកវាជា 5 ដំណាក់កាលសំខាន់ៗដែលរួមមាន៖ Requirement Analysis ៖ ក្នុងដំណាក់កាលដំបូងនេះ គេត្រូវសិក្សាពីសូហ្វវែរ៍ដែលយើងនឹងធ្វើសិនថាអាចទៅរួច ឫក៏អត់? ហើយបើសិនជាទៅរួចតើសូហ្វវែរ៍ដែលយើងនឹងធ្វើគួរមានមុខងារ និងលក្ខណៈសម្បត្តិអ្វីខ្លះ។ Design ៖ បន្ទាប់មកយើងត្រ…
ថ្ងៃទី៖8 មិថុនា 2020
ប្រវែង៖1 នាទី

ហេលឡូវើរ៍ល! ថ្ងៃនេះខ្ញុំចង់និយាយពីចាវ៉ាស្ក្រីបត៍បន្តដោយយើងមកស្វែងយល់ពីណូដ។ អ៊ីចឹងតោះ! ##អីទៅជាណូដ? ណូដជាចាវ៉ាស្ក្រីបត៍ runtime ដែលវាត្រូវបានសរសរឡើងដោយប្រើ Chromium V8 (ចាវ៉ាស្ក្រីបត៍អ៊ីនជីន) និង LibUV (សម្រាប់ Cross-platform Asynchronous I/O)។ បើនិយាយស្រួលស្ដាប់ទៅណូដផ្ដល់ Environment មួយដែលយើងអាចដំណើរការកូដចាវ៉ាស្រ្កីបត៍បានដោយមិនចាំបាច់ត្រូវការ Browser’s Engine ទៀតនោះទេ។
ណូដប្រើម៉ូឌែល Single Thread, Event Loop, Asynchronous Event-Driven, Non-Blocking IO។ វាមានមាឌតូច និងមានប្រសិទ្ធភាពក្នុងការងារ Concurrent Connection និងធ្វើការងារ IO បានយ៉ាងល្អប្រសើរ។ ចាវ៉ាស្ក្រីបត៍អនុញ្ញាតឱ្យគេអាចបង…
ថ្ងៃទី៖7 មិថុនា 2020
ប្រវែង៖2 នាទី

ហេឡូវើរ៍ល! សួរស្ដី! បើអ្នកទាំងអស់គ្នារៀនកូដ ប្រាកដជាបានលឺពីចាវ៉ាស្ក្រីបត៍ហើយ ហើយក៏ប្រហែលជាបានលឺមកផងដែរថាវាជាភាសាមួយដែលមានគេស្អប់ និងឈឺក្បាលនឹងវាច្រើនបំផុតមួយដែរ។ ថ្ងៃនេះយើងមកសិក្សាពីកំណែអ៊ីកម៉ាស្រីបត៍ដែលជាស្ដង់ដាររបស់ចាវ៉ាស្ក្រីបត៍សង្ខេបៗទាំងអស់គ្នា។
អ៊ីកម៉ាអន្តរជាតិ (ecma international — European Computer Manufacturers Association International) ជាសមាគមន៍បង្កើតឡើងមកដើម្បីចុះស្ដង់ដារប្រព័ន្ធព័ត៌មាន និងទំនាក់ទំនង។ មុនដំបូងអត់មាន International ទេសម្រាប់តែទ្វីបអឺរ៉ុបទេ តែក្រោយមកថែម International ដើម្បីពង្រីកស្ដង់ដារនេះសម្រាប់ពិភពលោកទាំងមូល។ អ៊ីកម៉ាស្ក្រីបត៍ ជាស្ដង់ដារសម្រាប់ភាសាស្ក្រីបត៍។ ចាវ៉ាស្ក្រីបត៍ ដែលជាកំ…