Junior (Backend) dasturchi bo'lganimda dasturlashni qanday o'rganardim — Beginner Level
yoki portfoliomni qanday boyitardim
Junior dasturchilar ishga kirishda qiyinchilikka duch kelishlari asosiy sababi ularda har tomonlama to'liq qilingan kichik bo'lsa ham loyiha yo'qligida deb bilaman. Portfoliodagi loyihalar, hattoki oddiy blog website bo'lsa ham "Lorem ipsum"ga to'la yoki login ishlamayotgan bo'ladi odatda.
Shu sababli bugun agar Junior (Backend) dasturchi bo'lganimda qanday qilib bitta oddiy blog vebsaytni to'liq ishlab chiqish orqali ham dasturlashni chuqurroq o'rganib, ham portfolio uchun loyiha qilib chiqish mumkinligi haqida aytib o'taman.
1. Texnologiya tanlash va Trelloda reja
Eng birinchi saytni qaysi texnologiyada (yoki 0 dan) yozib chiqmoqchi ekanimni aniqlab olardim. Tasavvur qilish uchun o'zim bilgan PHP va Laravelni olaylik. DB uchun MySQL yoki PostgreSQL, qaysi biri qulayroq bo'lsa. Boshlanishiga shuning o'zi yetarli. Keyin esa qolgan qilishim kerak ishlarni Trelloda reja qilib chiqardim.
2. Asosiy setup, (Docker), Git, GitHub va Run
Keyingi bosqichda shunchaki yangi Laravelni olib, uning Readmesini tozalab, Gitni o'rnatib va uni Githubga "Initial commit" deb joylab qo'yardim. Maqsad ishimning har bir qadami Gitda saqlab ketilishi. Undan keyin boshlang'ich o'rnatish ishlarini amalga oshirib saytni run qilib olardim. Bu narsani esa PHP, Nginx, Postgres Server va Composer kabi narsalarni noutbuk o'ziga o'rnatmasdan Docker (kontenerizatsiya) orqali amalga oshirishga harakat qilardim
3. Bazaga ulanish, ilk migratsiya va jadval
Agar haligacha bazaga ulanishni tekshirib ko'rmagan bo'lsam, oldin bazaga ulanib olib, undan keyin oddiy blog post uchun DB jadvali uchun quyidagi ma'lumotlar bilan migratsiya yozib chiqardim:
- ID; - Title; - Author; - Status; - Created At; - Updated At;
Bu yerda hozircha Author ham oddiy string, qolgani esa standard.
4. Console orqali CRUD
Keyin esa eng oddiy interfeys — console orqali ana shu jadvalga ma'lumot qo'shish, o'qish, yangilash va o'chirish kabi amallarni qo'shib chiqardim. Bunda userdan console orqali title va avtorni qadamma-qadam so'rab, shular orqali blog post yaratardim. Yangilashda esa oldin ID, keyin esa Title va Author.
Bu narsani avvaliga PHP o'zining echo va readline funksiyalari keyin esa Laraveldagi maxsus Console Commands orqali amalga oshirib ikkalasini ham o'rganib olardim.
5. Consoledan REST API ga
Shundan keyin yuqoridagi oddiy CRUD console kommandalarni REST API ga aylantirib chiqardim va Postman orqali ishlatib ko'rardim. Nima uchun GUI emas REST? Sababi REST API yasash, vizual UI yasashdan ancha osonroq )
Faqat bu yerda yasagan API larim aniq RESTful bo'lishiga. Metodlarni URL nomi bilan emas aynan GET, POST, PUT/PATCH, DELETE metodlari orqali farqlashga, umuman iloji boricha RESTful API Best Practicesni qo'llashga alohida e'tibor qaratgan bo'lardim.
6. Oddiy filtr va saralash
Keyin esa blog postlarni status bo'yicha saralab olishni qo'shardim. Masalan, {domain}/posts?status=draft so'rovi faqatgina qoralama postlarni qaytarib beradigan qilib.
Undan keyin esa (saralangan) postlarni yaratilgan sanasi bo'yicha saralashni qo'shardim. Masalan, {domain}/posts?status=active?sort=-created aktiv holdagi eng yangi postlarni (yaratilgan vaqti teskari tartibda) qaytaradigan qilib.
7. Avtorlarni alohida jadvalga olib chiqish
Shundan keyin esa avtorlar qismini normalizatsiya qilib alohida jadvalga olib chiqardim va one-to-many relations yasardim. Bunda relations faqat kod darajasida emas, aynan databaza darajasida boshqarilishiga, postlari bor avtorni adashib o'chirib yuborishga ruxsat bermaslikka alohida e'tibor qaratardim. Qo'shimchasiga indeksatsiya va foreign keylar haqida ham o'qib chiqardim.
Ana shundan keyin yuqoridagi Console va Rest API larni shunga mos o'zgartirib chiqardim. Ikkita joyda o'zgartirishga to'g'ri keldimi? Unda keyingi darajaga o'tish vaqti keldi )
Davomi bor...
#software_engineering #juniors
P.S: "Juniorlarga yordam bermaysizlar" deb shikoyat qiladiganlarga yuborib qo'yinglar )
@Janob_Musayev
yoki portfoliomni qanday boyitardim
Junior dasturchilar ishga kirishda qiyinchilikka duch kelishlari asosiy sababi ularda har tomonlama to'liq qilingan kichik bo'lsa ham loyiha yo'qligida deb bilaman. Portfoliodagi loyihalar, hattoki oddiy blog website bo'lsa ham "Lorem ipsum"ga to'la yoki login ishlamayotgan bo'ladi odatda.
Shu sababli bugun agar Junior (Backend) dasturchi bo'lganimda qanday qilib bitta oddiy blog vebsaytni to'liq ishlab chiqish orqali ham dasturlashni chuqurroq o'rganib, ham portfolio uchun loyiha qilib chiqish mumkinligi haqida aytib o'taman.
1. Texnologiya tanlash va Trelloda reja
Eng birinchi saytni qaysi texnologiyada (yoki 0 dan) yozib chiqmoqchi ekanimni aniqlab olardim. Tasavvur qilish uchun o'zim bilgan PHP va Laravelni olaylik. DB uchun MySQL yoki PostgreSQL, qaysi biri qulayroq bo'lsa. Boshlanishiga shuning o'zi yetarli. Keyin esa qolgan qilishim kerak ishlarni Trelloda reja qilib chiqardim.
2. Asosiy setup, (Docker), Git, GitHub va Run
Keyingi bosqichda shunchaki yangi Laravelni olib, uning Readmesini tozalab, Gitni o'rnatib va uni Githubga "Initial commit" deb joylab qo'yardim. Maqsad ishimning har bir qadami Gitda saqlab ketilishi. Undan keyin boshlang'ich o'rnatish ishlarini amalga oshirib saytni run qilib olardim. Bu narsani esa PHP, Nginx, Postgres Server va Composer kabi narsalarni noutbuk o'ziga o'rnatmasdan Docker (kontenerizatsiya) orqali amalga oshirishga harakat qilardim
3. Bazaga ulanish, ilk migratsiya va jadval
Agar haligacha bazaga ulanishni tekshirib ko'rmagan bo'lsam, oldin bazaga ulanib olib, undan keyin oddiy blog post uchun DB jadvali uchun quyidagi ma'lumotlar bilan migratsiya yozib chiqardim:
- ID; - Title; - Author; - Status; - Created At; - Updated At;
Bu yerda hozircha Author ham oddiy string, qolgani esa standard.
4. Console orqali CRUD
Keyin esa eng oddiy interfeys — console orqali ana shu jadvalga ma'lumot qo'shish, o'qish, yangilash va o'chirish kabi amallarni qo'shib chiqardim. Bunda userdan console orqali title va avtorni qadamma-qadam so'rab, shular orqali blog post yaratardim. Yangilashda esa oldin ID, keyin esa Title va Author.
Bu narsani avvaliga PHP o'zining echo va readline funksiyalari keyin esa Laraveldagi maxsus Console Commands orqali amalga oshirib ikkalasini ham o'rganib olardim.
5. Consoledan REST API ga
Shundan keyin yuqoridagi oddiy CRUD console kommandalarni REST API ga aylantirib chiqardim va Postman orqali ishlatib ko'rardim. Nima uchun GUI emas REST? Sababi REST API yasash, vizual UI yasashdan ancha osonroq )
Faqat bu yerda yasagan API larim aniq RESTful bo'lishiga. Metodlarni URL nomi bilan emas aynan GET, POST, PUT/PATCH, DELETE metodlari orqali farqlashga, umuman iloji boricha RESTful API Best Practicesni qo'llashga alohida e'tibor qaratgan bo'lardim.
6. Oddiy filtr va saralash
Keyin esa blog postlarni status bo'yicha saralab olishni qo'shardim. Masalan, {domain}/posts?status=draft so'rovi faqatgina qoralama postlarni qaytarib beradigan qilib.
Undan keyin esa (saralangan) postlarni yaratilgan sanasi bo'yicha saralashni qo'shardim. Masalan, {domain}/posts?status=active?sort=-created aktiv holdagi eng yangi postlarni (yaratilgan vaqti teskari tartibda) qaytaradigan qilib.
7. Avtorlarni alohida jadvalga olib chiqish
Shundan keyin esa avtorlar qismini normalizatsiya qilib alohida jadvalga olib chiqardim va one-to-many relations yasardim. Bunda relations faqat kod darajasida emas, aynan databaza darajasida boshqarilishiga, postlari bor avtorni adashib o'chirib yuborishga ruxsat bermaslikka alohida e'tibor qaratardim. Qo'shimchasiga indeksatsiya va foreign keylar haqida ham o'qib chiqardim.
Ana shundan keyin yuqoridagi Console va Rest API larni shunga mos o'zgartirib chiqardim. Ikkita joyda o'zgartirishga to'g'ri keldimi? Unda keyingi darajaga o'tish vaqti keldi )
Davomi bor...
#software_engineering #juniors
P.S: "Juniorlarga yordam bermaysizlar" deb shikoyat qiladiganlarga yuborib qo'yinglar )
@Janob_Musayev