Агуулга
Вэб интернетийн хамгийн чухал хэсэг бөгөөд хурдтай өөрчлөгдөн хувьсаж буй салбар. Энэ салбар ирэх жил ямар чиг хандлагатай байх талаар дараах таамаглалуудыг судлаачид дэвшүүлж байна.
Чи яагаад код судлах хэрэгтэй гэж?
- Компанид орж хөгжүүлэгчээр ажиллах
- Зөвлөх болох
- Хувиараа ажиллах буюу өөрийн компани, бизнесийг эхлүүлэх
- Апп юм уу SAAS (програмын үйлчилгээ) эхлүүлэн мөнгө олох
- Зүгээр л хобби
Вэб хөгжүүлж сурахад юу хэрэгтэй вэ?
- Компьютер
- Текст эдитор/IDE: VSCode, Sublime Text, Visual Studio, Eclipse
- Вэб браузер: Chrome, Firefox
- Терминал: Bash, Zsh, Powershell, Git Bash, iTerm, Hyper
- Дизайн: Adobe XD, Photoshop, Sketch, Figma
Юун түрүүнд сурах зүйлс
- HTML5
- CSS суурьтай болох хэрэгтэй
- CSS Grid & Flexbox
- CSS custom properties
- CSS Transitions
Үүний дараа Responsive Design хийж сурах хэрэгтэй
- Viewport
- Media queries
- Fluid widths
- px нэгжийн оронд rem нэгж хэрэглэх
- Mobile First арга барилыг баримтлах хэрэгтэй
Custom дахин хэрэглэж болох CSS component үүсгэж, хэрэглэх
SASS бол CSS-ын илүү дэвшилтэт хувилбар гэсэн үг. Үүнийг ашигласнаар:
- CSS дотор хувьсагч зарлаж, дахин ашиглаж болно
- Nesting
- Conditionals хийх боломжтой
CSS Frameworks
Өнгөрсөн жилүүдийг бодвол арай ийшээ хошуурахаа больсон ч өргөн хэрэглэгдсээр л байгаа. Үүний тоонд:
- Bootstrap
- Tailwind CSS
- Materialize
- Bulma
Vanilla JavaScript
- Эхлээд суурь ойлголтуудыг нь эзэмших хэрэгтэй. Дараа нь:
- DOM (Document Object Model)
- JSON (JavaScript Object Notation)
- Fetch API
- Modern JS (ES6)
Дараагийн багажууд
- Git & GitHub
- Browser Dev tools
- VS Code extensions
- Emmet
- NPM or Yarn
- Axios
- Webpack of Parcel
Deployment-ын тухай ойлголтууд
- Домэйн хаяг худалдаж авах, бүртгүүлэх
- Managed hosting (InMotion, Hostgator, Bluehost etc)
- Static hosting (Netlify, GitHub pages)
- SSL Certificate
- FTP, SFTP (File Transfer protocol)
- SSH (Secure Shell)
- CLI & Git
Үүний дараа Frontend-ээр явах уу, Backend-ээр цааш явах уу гэдгээ шийднэ
Frontend-ээр дагнах бол: JavaScript Frameworks үзнэ (React, Vue, Angular)
Backend: PHP, Python, C#, Go etc
JavaScript frameworks (аль нэгээр нь дагна)
Фрэймворкууд хүчирхэг ганц хуудаст аппууд хөгжүүлэх боломж өгнө. Үүнд:
- React – Хамгийн өргөн түгсэн нь | Сурахад хэцүү биш
- Vue – Сүүлийн үед их дэлгэрч байгаа | Сурахад хамгийн амархан нь
- Angular – Том байгууллагууд илүү хэрэглэдэг | Сурахад хамгийн хэцүү нь
Svelte
Хүмүүс үүнийг фрэймворк гэж боддог боловч тийм биш. Энэ зүгээр л JS compiler. Давуу тал нь:
- Бага код бичнэ
- Ямар ч виртуал ДОМ ашигладаггүй
- Маш хурдан
- Гэхдээ үүгээр дээрх гурван гол фрэймворкийг орлуулах гэж оролдох хэрэггүй. Жижиг төслүүдэд илүү тохиромжтой.
State management
Том аппуудад 3 дагч талын хөгжүүлсэн тусгай стэйт менежерүүд хэрэг болдог. Гэсэн ч эдгээр багажуудын хэрэгцээ улам бүр багасаж байна.
- React – Redux, Context API with Hooks
- Vue – Vuex
- Angular – NGRX, Services
- Apollo Client
Server Side Rendering
Сервер дээр хуудас угсарна гэсэн үг. NEXT (React), NUXT (Vue) ашиглан хуудсуудыг сервер дээр угсарч болно. Энэ нь SPA-гээс өөр хандлага гэсэн үг. Давуу тал нь:
- SEO сайжирна
- File System Routing
- Автоматаар code splitting хийнэ
- Static Exporting
- CSS in JS
Static Site Generators
Gatsby (React), Gridsome (Vue) нар статик сайт үүсгүүрүүдийн жишээ билээ. Gatsby вэб хуудсууд маш хурдан байдаг.
- Мэдээж илүү сайн SEO
- File System Routing
- Өгөгдлийг угсрах үед локал файлуудаас татаж авна
- Плагин систем
- Өгөгдөлдөө GraphQL ашиглана
TypeScript
JS-ыг статик type-тай болгосон нэмэлт хувилбар. Том төслүүдэд ашигтай ч жижиг, дунд хэмжээний төслүүдэд тийм ч шаардлагатай биш.
- Static Typing: vars, functions, etc
- Tooling support with IntelliSense
- Modules, Decorators, Classes
- Цэвэр JS код болон компайлдагддаг. TS файлууд .ts өргөтгөлтэй байдаг бол компайлдсаны дараа .js өргөтгөлтэй болон хадгалагддаг.
Server-Side Хэл (нэгийг нь сонго)
Fullstack юм уу Backend хөгжүүлэгч болохын тулд чи серверын талын програмчлалын хэл, технологи эзэмших ёстой. Үүнд:
- Node.js – маш хурдан. Нэг thread-тэй. JS фронтэндтэй ажиллаж буй үед сервер нь бас JS байвал хоорондоо холбогдох нь илүү хялбар. Энэ тал дээр MERN, MEVN зэрэг стакууд бий.
- Python – Машин сургах, AI гээд өөр олон газар хэрэглэгддэг.
- PHP – Хүмүүс шүүмжилдэг ч хувиараа бизнес хийхэд хялбар. Хаана ч сервер олдоно. Улам дажгүй болж байгаа.
- C#
- Ruby – Компаниуд улам бүр энэ хэлнээс холдож, орхиж байгаа.
- GoLang – Маш сонирхолтой хэл. Компайлддаг хэл. Маш хүчирхэг. Вэбээс гадна өөр олон зүйлд ашиглаж болно. Хурдан өсөж байгаа. REST API -г энэ хэл дээр ашиглахад маш амархан.
- Java – Old school гэсэн үг. Том компаниудад илүү хэрэглэгддэг. Шинэ стартапууд хэрэглэх нь бага.
- Rust – нэлээн шинэлэг хэл. Бинарын хэл. Үүнийг WebAssembly-тэй холбож хэрэглэж болно.
Өгөгдлийн бааз (нэгийг нь сонго)
Ихэнх вэбүүд хаа нэгтээ өгөгдөл хадгалах хэрэгтэй болдог. Олон янзын өгөгдлийн бааз бий:
- Харьцаат өгөгдлийн баазууд: PostgreSQL, MySQL, MS SQL
- NoSQL: MongoDB, RethinkDB, CouchDB
- Cloud database: Firebase, Azure, AWS
- Хөнгөхөн, каш: Redis, SQLlite, NeDB