Butunlay OpenAI tomonidan yozilgan Veb-sayt

Dastlabki fikr

Ha, bu neyrotarmoq haqida hozir hamma joyda aytilayabti va ko’p duch kelayabmiz, u qanday qilib qo’shiq matnini yozayotgani, imtihonlardan o’tishda yordam berayotgani va dasturlash kodi bo’laklarini yoza olishini bilamiz. Ammo meni bir savol qiziqtirdi, u mening rahbarligim ostida loyihani mustaqil yakka o’zi to’liq yakunlay oladimi?

Dastlab, men unga shunchaki g’oyani taklif qilmoqchi edim va to’laqonli mahsulot yaratilishini tomosha qilmoqchi edim, ammo men o’ylaganimdan biroz murakkabroq bo’lib chiqdi. Jarayon meni aralashuvimni va yo’nalish ko’rsatishimni tez tez talab qildi. Ammo unga yo’nalish ko’rsatish davomida menga keyingi ishlarimda as qotadigan bir nechta foydali xususiyatlarni kashf qildim.

Loyiha mavzusi

Men, neyrotarmoq mavzuni o’zi mustaqil ishlab chiqishini xohlardim, lekin uning g’oyalari juda noaniq edi va men ularni unga qanday taqdim etishni tushunmadim va mening urinishlarim muvaffaqiyatsiz bo’ldi. Shu sababli men oddiygina xayoliy o’ylab topilgan odam portfoliosi bilan ishlashga qaror qildim. Lekin u mening yo’naltirishlarim orqali muvaffaqiyatli yaratgan hayoliy odamni eslab qola olmadi.

Ishning boshlanishi

Men undan portfolio da nima bo’lishi kerakligi haqida o’zidan so’rashga qaror qildim

Avvaliga barcha ma’lumotlarga ega statik HTML faylini yaratishga qaror qildim. Mening ingliz tilim hali unchalik ham yaxshi emas, shuning uchun men tarjimondan foydalanaman.

Dastlab, men shaxs yaratishga harakat qildim, lekin men undan kod yozishni so’raganimda, u o’zi yaratgan shaxsni unutib, tasodifiy ma’lumotlar bilan to’ldirishni boshladi, shuning uchun men unga o’zim haqimda ma’lumot berib bordim. Ammo men imkon qadar kam ma’lumot berishga va kontekstni talab qiladigan ko’proq vazifalarni berishga harakat qildim. Neyrotarmoq ko’dni yozish davomida men haqimda va mening faoliyatim to’g’risida ko’proq eslatib o’tishi kerak.

Natija kamchliklarsiz bo’lmadi

Bu yerda biz katta va uzun kod yozish jarayonida birinchi muammoga duch kelamiz, ba’zida u hech qanday sababsiz to’xtab qolardi va hech narsa yozmas edi. Shuning uchun men undan kodni yozishni davom ettirishini so’radim, va u yozishni davom ettirdi ammo …

… bir masala bor edi.

Kichik xulosa, negadur rus tilida “kodni davom ettiring” deb yozilsa, u anniq kodni yozishni davom ettirish imkoniyati yuqoriroq, ammo ingliz tilida yozilsa u kodni buzadi va dasturlash tilida emas balki oddiy matnda yozadi. (yoki shunchaki mening holatimda shunday bo’ldi, natijani har doim ham oldindan aytib bo’lmas edi)

Loyihani React-da qayta yozamiz

Men undan HTML ko’dini yaratishni so’rash qiziq bo’lmasligiga qaror qildim (u buni juda yaxshi bajardi), shuning uchun men hamma narsani freymvorkda qayta yozishga qaror qildim. Avvaliga men Vue.js ni tanladim, lekin unda u ko’p xatolar bilan yozdi va juda g’alati yondashuvlar bilan ishladi, hatto u tanlagan yo’llarni men google da ham qidirib topaolmadim. Shuning uchun men React ga o’tdim . Va darhol undan barcha kodni o’zi mustaqil qayta yozishini so’radim. (oldiniga men undan React va TypeScript da loyihani qanday yaratish kerakligini ko’rsatib berishini so’radim, shu bois u loyihani yaratish uchun ham javobgar bo’ladi degan maqsadda, men esa shunchaki ko’rsatmalarga amal qildim, uni fayllarga ajratdim va hokazo.)

Undan biror narsani qayta yozishni so’rang va u buni darhol bajaradi

Sizning ruxsatingiz bilan men barcha skrinshotlarni maqolaga kiritmayman, React – dagi butun tuzilmani qayta yozish uchun 5-6 ta uzun skrinshotlar olingan, ammo quyida qiziqarli fikrlarni ko’rsataman.

U state dagi barcha ma’lumotlarni olib chiqdi , va bu juda yaxshi bajarildi
Dastlab, barcha kodlar bitta faylga joylashtirilgan – App.tsx

Ba’zi sabablarga ko’ra u kodni tarkibiy qismlarga ajratmadi va hamma narsani bitta faylga aylantirdi, bu HTML-dan React ga o’tishni har qanday ma’nosini yo’qotdi, lekin men birinchi natijaga erishdim!

Loyixa foydalanish uchun topshirishga tayyor

Uzoq va og’riqli jarayonning boshlanishi

Mening oldimda (yoki uni oldiga) fayllarni tarkibiy qismlarga bo’lish vazifasi qo’yilgan edi, va umuman olganda u mening iltimosimni tushundi. Lekin jarayon davomida biroz to’xtab qoldi yoki ba’zi tafsilotlarni unutdi va o’zi yozgan ma’lumotlarni o’chirdi. Misol uchun, bu erda u state dagi ma’lumotlarni o’chirib tashladi va kod xato hisoblanib ishga tushmadi:

 Negadir u ma’lumotlarni o’rniga sharhlarni qoldirdi

Men xatoni to’liq nusxalashga va unga nima qilishni tushuntirmasdan berishga qaror qildim va ajablanarlisi, u muammo nimada ekanligini tushundi va uni tuzatishni boshladi.

U ob’ektni tuzatdi, lekin ma’lumotlarni haqida unutdi

Endi undan yana bo’sh ma’lumotlarni to’ldirishini so’rash kerak

Qoyil! Ma’lumotlar tiklandi.

Umuman olganda, u qandaydir tarzda katta qiyinchiliklar bilan, u kodni o’zi nom bergan bir nechta fayllarga ajratdi:

  • App.tsx
  • AboutMe.tsx
  • Projects.tsx
  • Resume.tsx
  • Reviews.tsx
  • Contact.tsx

Ba’zi sabablarga ko’ra u Header va Footer ni alohida fayllarga o’tkazishdan bosh tortdi. Endi men u uslublarni o’zi mustaqil yoza olish yoki yoza olmasligini tekshirmoqchi bo’ldim.

Avvaliga men unga faqatgina birgina maslahat berdim:

U BEM nima ekanligini tushunadi

Ba’zi sabablarga ko’ra u boshqa fayllar borligini unutdi va deyarli har bir blok uchun shunga o’xshash kod yozishi va ular uchun uslublar fayllarini yaratishi kerak edi. Ba’zilarida u class larni yozdi, lekin CSS-ni yozmadi, shuning uchun topilmagan class lar tufayli xatolar kelib chiqdi. Hozircha men bunga e’tibor bermadim va davom etdim. Men undan faqat class lar emas, balki anniq CSS yozishini istar edim.

Ulanmagan App.module.css fayliga global uslublarni qo’ydi. Va undan fayllarni qo’shishni so’radim ( add styles connection to the App) , u xederu, navbaru va futeru class larini qo’shdi . Xullas menda u CSS ni yozib berishi uchun so’raladigan to’g’ri so’rovlar g’oyasi qolmadi. Men u sahifaga uslub berishini va bo’sh class larni yaratmasligini xohlardim va birdan u quyidagi so’rovga juda yaxshi javob berdi:

.nav_link da  u SCSS ni yozishga qaror qildi, shunday yo’l bilan borilsa ham bo’ladi to’g’rimi?

U barcha bloklarda padding larni yozishga tushdi, qayerlardadur satrlarni ranga bo’yadi va boshqa hech nima qilmadi. Men ham uni qiynoqga solishni to’xtatishga qaror qildim. Keling, qariyb ikki soat ichida neyrotarmog’imiz nimani yozishga muvaffaq bo’lganini ko’rib chiqamiz:

Foydalanishga tayyor!

Natijalar

Albatta, neyron tarmoq yordamida haqiqiy loyihani yaratish mumkin emas (hozircha), lekin urunib ko’rsa bo’ladi. Menga uning ba’zi yechimlari juda yoqdi. U statik ma’lumotlarni qanday yaratishi va ular bilan ishlashi meni hayratlantrirdi, men shaxsiy maqsadlarim uchun bir nechta JSON fayllarini yaratganman. U orqali oddiy avtotestlar yaratdim, ba’zi kamchiliklarini to’g’irlasa foydalanishga tayyor maxxsulot. Uning eslab qolish qobilyati va bir oz oldin qilgan ishlanmalari meni lol qoldirdi.

Ammo bu dasturchilarni to’liq almashtirishdan yiroq bo’lsa-da, oddiy vazifalarni hal qilish bilan dasturchining hayotini osonlashtirishi mumkin (va bu juda zo’r!)

Mavzuga oid maqolalar