CodeVerce
64 subscribers
70 photos
6 videos
10 files
66 links
Darslar • Maqolalar • Kodlar
admin: @dinMuhammad05
Download Telegram
CI/CD - bu zamonaviy dasturlashda juda muhim tushuncha. Keling, buni pog'onama-pog'ona tushuntirib beray.
CI/CD nima?
CI/CD - bu ikki muhim jarayonning qisqartmasi:

CI = Continuous Integration (Uzluksiz Integratsiya)
CD = Continuous Delivery/Deployment (Uzluksiz Yetkazib Berish/Joylashtirish)

Oddiy misolda tushuntirish
Tasavvur qiling, siz oshpaz bo'lib, har kuni yuzlab odamlar uchun taom tayyorlaysiz. Agar har safar barcha ingredientlarni alohida tekshirib, keyin hammasi birdan aralashtirgan bo'lsangiz, xatoliklar ko'p bo'lar edi. Lekin agar har bir ingredientni qo'shayotganda darhol ta'mini tekshirib, muammolarni erta aniqlasangiz, oxirgi natija ancha yaxshi bo'lardi.
Aynan shu prinsip dasturlashda ham qo'llaniladi.

Continuous Integration (CI) - Uzluksiz Integratsiya
Bu jarayonda dasturchilar o'z kodlarini kuniga bir necha marta umumiy kod omboriga (repository) yuboradi. Har safar kod yuborilganda:
Avtomatik tekshiruv ishga tushadi
Testlar ishga tushiriladi
Xatolar erta aniqlanadi
Sifat nazorati amalga oshiriladi

Masalan, agar siz 5 ta dasturchi bilan ishlayotgan bo'lsangiz va har biringiz o'z qismini alohida yozayotgan bo'lsangiz, CI sizning kodlaringiz bir-biriga mos kelishini va birgalikda muammosiz ishlashini ta'minlaydi.
Continuous Delivery/Deployment (CD) - Uzluksiz Yetkazish
Bu ikki xil jarayon bo'lishi mumkin:
Continuous Delivery - dastur ishlab chiqarish muhitiga (production) joylashtirish uchun har doim tayyor turadi, lekin qo'lda tasdiqlanadi.
Continuous Deployment - testdan muvaffaqiyatli o'tgan har bir kod avtomatik ravishda ishlab chiqarish muhitiga joylashtiriladi.
Real hayotdan misol
Netflix yoki Google kabi kompaniyalar kuniga yuzlab yangilanishlarni o'z ilovalariga qo'shadi. Bu faqat CI/CD tufayli mumkin:

Dasturchi yangi funksiya yozadi
Kod avtomatik tekshiriladi
Barcha testlar o'tkaziladi
Agar hammasi yaxshi bo'lsa, avtomatik ravishda foydalanuvchilarga yetkaziladi
Bu jarayon 24/7 davom etadi

CI/CD ning asosiy afzalliklari
Tezlik: Yangilanishlar tezroq chiqadi
Sifat: Xatolar erta aniqlanadi va tuzatiladi
Ishonchlilik: Testlar avtomatik o'tkaziladi
Xavfsizlik: Har bir o'zgarish nazorat ostida
Qanday ishlaydi?

Kod yozish - dasturchi yangi funksiya yozadi
Commit - o'zgarishlarni saqlaydi
Push - umumiy kod omboriga yuboradi
Build - dastur avtomatik yig'iladi
Test - barcha testlar o'tkaziladi
Deploy - tayyor bo'lsa, foydalanuvchilarga yetkaziladi

Bu jarayon har bir kod o'zgarishida takrorlanadi va butunlay avtomatlashtirilgan.
CI/CD zamonaviy dasturlashning asosi hisoblanadi, chunki u jamoaviy ishni samarali qiladi va yuqori sifatli mahsulot yaratishga yordam beradi.

Yana bir misol:
CI/CD - ni qo'llab biz serverda joylagan loyihamizni qachonki githubda o'zgartirsak avtomatik ravishda CI/CD serverda ham yangilab beradi
gRPC (Google Remote Procedure Call) -
bu Google tomonidan ishlab chiqilgan zamonaviy, ochiq kodli remote procedure call (RPC) framework hisoblanadi.


gRPC nima va nima uchun kerak?
gRPC - bu turli xil dasturlash tillarida yozilgan ilovalar o'rtasida muloqot qilish imkonini beruvchi texnologiya. Tasavvur qiling, sizning bir ilovangiz Python da yozilgan, ikkinchisi Java da, uchinchisi Go da. gRPC yordamida bu ilovalar bir-biri bilan xuddi bir tilda yozilgandek oson muloqot qila oladi.

Oddiy qilib aytganda, gRPC clientga serverdagi funksiyani xuddi o'z lokal funksiyasidek chaqirish imkonini beradi. Bu microservice arxitekturasida juda muhim ahamiyatga ega.

Xulosa:
gRPC zamonaviy microservice arxitekturasi uchun juda kuchli vosita. U performance, type safety va multi-language support ni birlashtiradi. Biroq, u REST ga qaraganda murakkab va browser support cheklangan. Shuning uchun loyihangizning ehtiyojlariga qarab to'g'ri tanlov qilish muhim.
kanaldagi tarjimon funksiyasi orqali istalgan tilda o'qishingiz mumkin😊
Forwarded from Botir Ziyatov
#startup

Noah ismli dasturchi Notion asosida loyiha ishlab chiqdi.
loyiha nomi : potion.so

Potion bu - Notion kontentingiz bilan bir necha daqiqada osongina veb-sayt yaratishingiz mumkin.

Noah:
Internetda Notion haqida gapiradigan odamlar ko‘p, buni ajoyib belgi sifatida ko‘rdim.
Men 2,5 yildan beri Potionni ustida ishlayman va 6 ming dollarlik MRR ga erishdim

2023 yil iyun oyida Noah bu biznesni 300 ming dollarga sotdi!

@botirziyatov
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permute = function(nums) {
const result = [];

function backtrack(path, used) {
if (path.length === nums.length) {
result.push([...path]); // hozirgi permutationni natijaga qo'shamiz
return;
}

for (let i = 0; i < nums.length; i++) {
if (used[i]) continue; // agar element ishlatilgan bo'lsa o'tamiz
path.push(nums[i]); // elementni yo'lga qo'shamiz
used[i] = true; // ishlatilgan deb belgilaymiz
backtrack(path, used); // rekursiya bilan davom ettiramiz
path.pop(); // oxirgi elementni olib tashlaymiz (backtrack)
used[i] = false; // ishlatilgan belgini olib tashlaymiz
}
}

backtrack([], Array(nums.length).fill(false));
return result;
};

// Test
console.log(permute([1,2,3]));

https://leetcode.com/problems/permutations/description/
8️⃣0️⃣ - misolim LeetCode - da 🎉
contains-duplicate (hash-set bilan)
contains-duplicate (hash-map bilan)
yo'l xarita 🗺
Forwarded from Vohid Karimov (Vohid Karimov)
Dasturlashga qo'l urgan, lekin nimadan boshlashni bilmaganlar uchun 3-5 yillik plan:

— Nerd rejimiga o'ting: kuniga kamida 6 soat dasturlash bilan band bo'ling
— Computer Science mavzularini chuqur o'rganing
— Muntazam algoritmik masalalarni yeching (codewars, leetcode, va hokazo)
— Bitta dasturlash tilini mukammal o'rganing
— Web, mobil, yoki desktop development uchun kerak bo'lgan texnologiyalarni o'rganing
— O’zingizni pet proyektlaringizni yarating
— Har kuni ko'p kod yozing
— Tez-tez interview qiling (ishingiz bo'lsa ham)
— Vaqtida uxlang, ovqatlaning, va sport bilan shug'ullaning

Qolgani (ish, daromad, va xurmat) o'zi keladi. Natija darxol ko'rinmaydi, lekin albatta keladi - haqiqiy yutuqlar vaqt talab qiladi.

Jarayondan zavq oling!
🌿 She’r

Nolidim Vake'ga zehnim sust deb,
Gunohni tark et, deb yo'l ko'rsatdilar.
Ilm — nur erur, Allohning nuri,
Osiyga berilmas, deb o'rgatdilar.
HTML input
8 popular network protocols
O'zgaruvchi/funksiya nomlarini yozganda qisqartmalarni qanday yozishga ikkilanaman:

Katta harf bilan yozaveraymi yoki kichik harfga o'zgartirsammi? 🤔

Mana sizga clean code tip:

Qisqartmalarni boshqa so'zlardek kichik harf bilan yozing!

🚫 validateXMLFile
validateXmlFile

🚫 sendJSONRequest
sendJsonRequest

Shunday qilinsa, so'zlarni o'qish osonlashadi.

Ayniqsa bir nechta qisqartmalar yonma-yon kelganda buning foydasini ko'rish mumkin.

🚫 setRESTAPIURL
setRestApiUrl


P.S. LinkedIn'dan chopildi
file.proto in gRPC