Dr. Algorithm
Kanalga Telegram’da o‘tish
Saidolim Djuraev’ning turli ma'lumotlar kanali. Savollar va takliflar uchun: @DrAlgorithmBot
Ko'proq ko'rsatish4 721
Obunachilar
-124 soatlar
-187 kunlar
+37130 kunlar
Postlar arxiv
4 722
Java vs C#
Tashashamiz.
📱 Kimga eski Java?
📱 Kimga yosh C#?
~ ~ ~
Shartlarni kelishib olaylik. Aniq argument bilan biror tilning yaxshi tomonini aytish mumkin. Aniq argument bilan buni falon joyi yaxshi emas deyish mumkin.
Manga shu yoqadi deyish mumkin emas.
Aniq odamlar aniq fikr eta olishi kerak.
P.S. Rasm AI da yasaldi, shunga xatolari bor.
@DrAlgorithm
4 722
Email va PM
Emaildan foydalanish juda qulay narsa. Sizga katta hajmda maʼlumot yuborsa boʻladi, kimdan qachon kelganini nazorat qilsa boʻladi. Agar odamlarimiz Telegramdan emailga oʻtib ketishsa ham hursand boʻlaman.
Bitta kichkina farq, sizga kindur xabar yozsa, sizdan oʻchira olmaydi! Bilamiz Telegramda kimdur manga xabar qoldirsa, xohlagancha uni oʻzgartira oladi va oʻchira oladi. Bu esa avval qilingan kelishuvga taʼsir qilishi mumkin.
Emailda buning imkoni yoʻq. Aytilgan soʻz - otilgan oʻq. Yuborilgan email ham shunday.
Lekin bugun mavzu boshqa narsa haqida.
Dastur ishlab chiqishda muhim narsalardan biri bu hujjatlashtirish. Har qanday muloqot hujjatga kiritilishi talab etilishi mumkin. Ayniqsa mijoz bilan gaplashganda.
Shunday misollardan 2 tasini aytib oʻtmoqchiman.
1. Mijoz bilan email orqali talablarni muhokama qilish vaqtida email sarlavhasiga loyiha nomini qoʻyib qoʻying. Masalan, siz Telegram bot yasab bermoqchisiz. Elektron xat sarlavhasiga [TB] qoʻshib qoʻysangiz, izlashda oson boʻladi. Sizga yuzlab kelgan xatlar orasidan faqat shu loyihaga tegishli qismini ayrata olasiz.
Agar sizda loyiha kattaroq boʻlsa, uning boʻlimini ham bera olasiz. Masalan, [TB.Design] bilan siz Telegram bot loyihasining dizayni masalalarini muhokama qila olasiz.
Izlashda esa
[TB - sizga shu loyihadagi barcha soʻzlashuvlarni;
[TB.Design - esa bu loyihaga tegishli faqat dizaynga tagʻluqli xabarlarni beradi.
Shuncha vaqt email ishlatib bu tajribadan juda kam foydalanganman. Odatda qavslar [] ni qoʻymas edim.
2. Emailda CC boʻlimi bor. Har bir loyiha uchun alohida email ochib (email group) uni doim CC boʻlimiga yozib borsangiz. Loyihada ishtirok etayotgan barchaga bu xabarni yetkaza olasiz. Va eng qizzigʻi faqat shu loyihada ishtirok etayotganlarga.
Xohlagan vaqt guruhga odam qoʻshish va chiqarish orqali unga eski email xabarlarni koʻrinadigan qila olasiz.
Masalan, tb-design@yordam.uz bu guruh email manzili. Shunga xat yuborsam, loyiha ichtirokchilarining barchasiga xat yetib boradi.
Hech boʻlmasa, talablarni shu emailda saqlagan boʻlaman. Asosiy email manzilimda barcha xatlar, hatto spam xabarlar, boʻladi. tb-design@yordam.uz da esa faqat loyihaga tegishli dizayn talablari.
Shunaqa, har kun yangi ilmni bilimga aylantiramiz.
Hamr uchidan patr, ruknidan.@DrAlgorithm
4 722
Kitob - “1% Yaxshiroq” chellenj
@BirFoizBilim kanali challenj e'lon qilibdi. Keling biz ham kitob o`qishga qo`shilamiz.
Shartlari juda oddiy ekan. * Bitta kitob tanlaysiz. * 1 - kun 10 dadiqa o`qiysiz. * 2 - kun 11 daqiqa o`qiysiz. ... 30-kun 39 daqiqa. har kuni 1 daqiqa qo`shib borasiz.Storyga qo`yib borish kerak bo`ladi. Boshladik bo`lmasam! https://t.me/+tkU35OlzUzE1MDNi @birfoizbilim ga qo`shilish uchun bu guruhga qo`shilasiz. @DrAlgorithm
4 722
Kitob
Shu masalani ko`p o`yliman. Biz ham challange ga qo`shilamizmi?
Kitob tanlab turing, man o`qivotgan kitoblarimni tugatib olaman.
Ertaga 1 Iyun, shu kuni boshlaymiz. Bo`ladimi?
Challange'ni boshladik unda!
4 722
Repost from 1% Bilim
“1% Yaxshiroq” chellenj-guruhiga qo’shiling.
👇
https://t.me/+tkU35OlzUzE1MDNi
@birfoizbilim
4 722
Dasturchilar bilan ishlash
Dasturchilar bilan ishlashda, ularga yechim bilan kelma. Ular oldida kechmoqchi boʻlgan muammoing bila kel, dasturchilar esa shu muammo yechimini topishadi.Trillion Dollarlik Murabbiy kitobi qahramoni Bill Campbell ning fikrlaridan. #cto @DrAlgorithm
4 722
Frontend sindi
Frontendʼni yaxshi koʻradiganlar bormi?
Sizga juda zoʻr "vizov" tashlashibdi. Qani man Frontendchiman deganlar, bitta soat yasab koʻra olasizmi?
Mana namuna: http://aem1k.com/qlock
Odammas ekan lekin.
@DrAlgorithm
4 722
Repost from UzGeeks Community
Assalomu alaykum. 👋
Sizlarga ajoyib 🎉 yangilik bilan keldik.
UzGeeks Community May2024 - PHP Day Meetupimizning olingan 🎞 videosi tayyor bo'ldi va uni quyidagi link orqali ko'risihngiz mumkin.
https://www.youtube.com/watch?v=gcmRVoULdZs
* Meetupda foydalanilgan taqdimotdalar va dastur kodlarini quyidan topishingiz mumkin.
https://t.me/UzGeeksCommunity/520
Shuningdek, April2024 - DevOps Day Meetupimizning ham videosi ayni shu kanalda ham bor. Uni havolasini ham quyida qoldiramiz.
https://www.youtube.com/watch?v=HTcMP_Vz2wA
#phpday #devopsday #meetup
@UzGeeksCommunity
4 722
+1
Ismim, rasmim kabi ma'lumotlarni nusxalay olishibdi. Faqat alohida belgilari qoldi.
Iltimos, manga pul yubormang. Hech kimdan bu usulda pul so`ramayman.
Qallob (moshennik)larga ishonib qolmang.
Bitta man emas, boshqa yaqinlaringiz nomidan ham yuborishlari mumkin. Ehtiyot bo`ling.
Katta Rahmat!
4 722
4 722
Repost from MohirDev.uz
Bizda birinchi marta
🗓 29-may, chorshanba, soat 19:00 da voice-chat qilyapmiz.
Unda Anvar Narzullayevdan istagan savolingizni soʻrashingiz mumkin.
😉 Senzura va byurokratiyasiz suhbat boʻladi.
😅 Savollaringizni behijolat izohlarda yozavering. Barchasiga Anvar Narzullayev voice-chatda javob beradi.
@mohirdev
4 722
Repost from UzGeeks Community
Hozirda har xil muttahamlar telegramda guruhlarda tanishlar nomida Telegram profile ochib, birovni nomidan pul so’rashmoqda.
Shundaylardan ehtiyot bo’ling!
Agar Sizdan telegramda biron bir tanishingiz pul so’rasa, avvalo yozishmalar tarixiga qarang, username, rasmlarni tekshiring. Iloji bo’lsa telefon qilib aniqlashtirib oling!
@uzgeekscommunity
4 722
Bugun UzGeeks MeetUp juda mazmunli bo`ldi. O`zin qatnasha olmadim, lekin qalban birga his qildim.
Kelgan mehmonlar juda zo`r maqolalar (post) qoldirishibdi. Yaxshilab eshitib, DAFTARga yozib olganini ko`rib, quvonib ketdim. Shunday yoshlarimiz ko`payvursin.
Networking (tanish bilish) ham yo`lga qo`yilgani alohida e'tiborga molik. Chunki ko`p joyda harakat qilinadi, lekin hali ham tanish bilish orttirish yaxshi ishlamayapti.
Tadbirlarga kelib, qatnashib turing. Ertaga muvaffaqiyatli ishlarni amalga oshirish uchun juda ko`p foydali bo`ladi. Ham sizga, ham tadbir tashkilotchilariga va hamda jamiyatga.
Hammaga Katta Rahmat !!! (HKR)
4 722
Repost from Sardor og'a | AI bilan rivojlanamiz
+3
UzGeeks meetupining PHPga bag'ishlangan soni bo'lib o'tdi. Juda foydali ma'lumotlar berib o'tildi.
Bugun bir tajribali dasturchi aka savol berdi: Nima foydasi bor bu meetuplarni, qanaqadir foyda qilasizlarmi?
Javobim quyidagicha bo'ldi: Bu "nonprofit" bo'lgan ish. Hechqanday moddiy foyda olmaymiz, kerak bo'lsa moddiy tarafdan zararga ham kiramiz. Foydasi jamiyatga bo'lsin va bunga sababchilardan bo'lib qolishni istab bu meetuplarni tashkillashtiramiz dedim. Baraka topishsin, bu communityga har kim qo'lidan kelgan yordamni beryapti. Kimdir kamera, kimdir Clicker, kimdir joy, kimdir suv, kimdirlar shunchaki qiziq bo'lmasa ham qo'llab quvvatlash uchun kelyapti, kimdirlar diydor uchun, yana kimdir networking uchun...
Shu paytgacha juda ko'p bunday tadbirlarni boshlab ko'rishgan boshqalar, 1-2 marta o'tkazishganidan keyin jim bo'lib ketishgan. Chunki moddiyatga borib taqaladi, vaqtimizni qizg'onamiz ochig'i. Foyda olmasak biror ish qilishni xohlamaydigan bo'lib boryapmiz. UzGeeks community bo'lsa ko'z tegmasin ancha yillardan beri har oy bunday tadbirlarni o'tkazib kelyapti. Barchaga rahmat.
4 722
Repost from Sardor og'a | AI bilan rivojlanamiz
Bugungi meetupda aytilgan bilimlarni telegramga qisqacha qilib yozishibdi, baraka topishsin.
Katta yuklamali saytlarni qilishda maslahatlar:
1. Database: Race Condition. Prizlar ro'yxati bor. 5 tadan 3 ta aktiv, 2 tasi tark etgan. Endi navbatdagi ishtirokchiga keyingi prizni qaytarish kerak. Bundan holatlarda bir vaqtda ikkita request birga kelishi oqibatida ikkita ishtirokchiga bitta sovg'a ketib qolishi mumkin. Bu narsani oldini olish uchun esa, "Lock for Update" metodi orqali amalga oshirish, bu muammoga yechim beradi. Bu holatda birinchi request tanlagan priz, o'zgarish uchun bloklanadi. Natijada keyingi request bu prizni tanlamaydi, balki boshqasini tanlaydi.
2. Database: Slow queries. Bazaga ko'p murojat qilish va natijada loyihani sekinlashtirish doimiy muammolardan. Indekslash esa bunga yaxshi yechim bera oladi. Bazadagi ma'lumotlarni indekslash orqali slow query'larni ishlashini yengillashtiramiz.
3. Database: Indexing cons. Indekslashni minus tomonlaridan biri, "insert, update, delete" uchun query'larni sekinlashib qolish. Buni muammo bazani ikkitaga bo'lish orqali yechim beriladi, ya'ni "DB Replication". Bitta asosiy baza - "insert, update, delete" uchun, ikkinchi baza asosiy bazani sinxroni sifatida "select" uchun ishlatilinadi. Ikkinchi baza asosiy bazadan ma'lumotlarni o'ziga sync qilib turadi.
4. Database: Caching. Ba'zi natijasi o'zgarmas query'larni keshlash baza ortiqcha murojaatni oldini oladi. Kesh tizimi baza murojaat qilishdan ko'ra tezroq ishlaydi. Bu holatga "Redis" yaxshi yechim beradi.
5. Redis: Too many connections. Ba'zida Redis'ga murojaatlar ko'payib ketishi natijasida Redis ham javob berolmay qoladi. Bu muammo o'zimda ham uchragandi. Ammo muammo hal qilolmagandim. Bunga yechimlaridan biri "Pooling" qilish. Default holatda Redis berilgan murojaat bitta connection ochadi. Ishini to'xtatgandan keyin u connection yopiladi. Pooling'da esa bir necha connection doimiy ochiq holda bo'ladi.
6. Redis: Slow query. Aslida keshlar bazaga beriladigan query'larni vaqtini kamaytirish uchun qilinadi. Ammo yuqoridagi holatdan keyin Redis'ga bog'lanish ham sekinlashib qoladi. (qolibdi) Bunga yechim sifatida Redis'ni "cluster"larga bo'lish orqali yechim topsa bo'ladi. Default holatda Redis 0 raqamni bazasini ishlatadi. Qo'shimcha unda yana 16 ta (0 bilan birga) baza bor. Bu holat qolgan bazalarni ham ishlatish bu muammoga yechim bo'ladi.
7. PHP: Slow Request. Endi PHP scriptni o'zini javob berishga kelsak. PHP intrepeted til bo'lganligi uchun, run qilganimizda kod Parsing qismida undagi error'lar tekshiriladi. Agar xatolar chiqmasa, keyin OpCode'ga ya'ni operatsion kodga o'giriladi. Keyin Zend Engine uni haqiqiy komputer tushunadigan tilda run qiladi. Har safar shu jarayon takrorlana beradi. "OpCache" orqali esa, Zend Engine qismiga bo'lgan qismlarni olib tashlasak bo'ladi. Ya'ni bir marta ishga tushirilgna script endi xotiradan olinadi. Yana bunga yordamchi sifatida "JIT (Just in time)"ni qo'llashimiz mumkin. Bu bizga Zend Engine ishini ham olib tashlashga yordam beradi. Bitta run qilingan script birinchi marta hamma bosqichdan o'tadi va keyingi holatdan faqatgina xotiradan ishga tushadi.
8. Server: Too many connection. Tasavvur qiling xonaga 50 ta odam sig'adi. 51-odam kelib qolsa, bittasi bo'shashini kutadi. Natijada kutish ham bir necha soniya vaqt olib qoladi. Bu muammoga esa, PHP asinxron sifatida ishlatish yordam beradi. "PHP Swoole" yordamida usha kutib turgan 51-odamni ham kirg'izvuradi. Ya'ni 51-requestga ham javob beradi.
Xullas, yuqoridagi amallarni qilish loyihani highload'da ham ishlab berishini ta'minlab beradi. Tajribadan o'tgan narsalari asosida gapirilgan ma'lumotlarni tushunganim bo'yicha yozdim. Rasmlarni quyida topishingiz mumkin: https://t.me/UzGeeksCommunity/483
