ru
Feedback
Programming ∀

Programming ∀

Открыть в Telegram

Ushbu kanalda IT va Dasturlashga aloqador mavzularda subyektiv fikrlarimni bayon qilaman.

Больше
1 217
Подписчики
Нет данных24 часа
-87 дней
-3530 день
Архив постов
Bu namming issuemi ? Yoki Skill issue ))
Bu namming issuemi ? Yoki Skill issue ))

Turli tashkilot va public personlar twitterlarini buzish juda avjiga chiqibtimi 🤔

Kodingizda coupling va cohesioni intuitiv detect qilishni hohlaysizmi ? Unda eng birinchi ma'lum modulni alohida olib chiqib
Kodingizda coupling va cohesioni intuitiv detect qilishni hohlaysizmi ? Unda eng birinchi ma'lum modulni alohida olib chiqib ko'ringchi )) DDD yana birbalolarda aniq bilaman bitta functional uchun kamida 3-5 ta filedan copy paste qilib olib kelasiz dependencylarni. Buyoqda sizga DI ham boshqasiyam yordam bermaydi. Undan yomoni o'sha objectlarni ham olib o'tish kerak. Agar siz DI qilgan bo'lsangiz va uniyam auto qilgan bo'lsangiz demak packageni ham olib o'tish kerak. Codebasedagi aynan biror kichik qism kerak bo'lib qolganida bunaqa dependencylar bilan ovora bo'lish ezvoradi ))

Agar bizda applicationi huddi database kabi sharding qivorish imkoni mavjud bo'lsa hech qanaqa k8s kabi muhitlar kerak bo'lmaydi(Imkoni ham mavjud aslida lekin keng tarqalmagan). Container systemlar o'rniga bitta mashinada ishga tushiramiz va bizga fiberlar, sparklar kabi yengil threadlar kerak bo'ladi. Ammo app ichiga o'z o'zini update qila olish funksiyasini ham qo'shish kerak, aynan pull strategy bilan. Nimalar yutyabmiz ? 1. Less overheads(Network, Storage, Memory) 2. Less dependencies(Kubernetes components like runtime, network proxy, balancer etc...) 3. Freedom Nimalar kerak ? 1. Yaxshigina bilim, bunaqa mechanismlarni bir platformga yeg'ish uchun. 2. Yaxshigina platform aynan shunaqa narsalarni bir korobkaga tiqsa bo'ladigan. 3. Alternativ fikrlash Nimalar yutkazamiz ? 1. Muammoni fix qilish uchun oldin biz foydalanishimiz mumkin bo'lgan infrani ham ancha kavlash kerak. Masalan systemD bilan bunday narsaga erishishimiz mumkin ammo uning o'zida memory issuelar bor. Demak OS levelda ham nimadirlar qilishimiz kerak. Albatta bunga juda mos keladigan OSlardan biri NixOs nazarimda. 2. Integratsiyalar, hamma narsani bir biriga yopishtirishga yaxshiroq integratsiya qilish mumkin bo'lgan protocol va interfacelar kerak. 3. R&D curve, yuqoridagi yechimlarni juda ko'plari turli patformlarda qilib bo'lingan va bazi joylarda yetarlidan ko'p abstractionlar bera oladi. Ammo xozirgi Agilega o'xshamagan OSS konveyrlariga o'xshashroq development model kerak. Hulosa: Yuqorida nazarda tutilgan platfomda ortiqcha layerlar yo'qligi uchun muammolar ham kam bo'ladi tizim ham tezroq ishlaydi. Bu bizga distrubuted computing perfomance oshishiga sabab bo'ladi va shu o'rinda infra quladi degan muammo bo'lmaydi faqat App quladi degan muammo bo'ladi. Demak tizim anchagina tashqi bog'liqliklardan qutiladi(Etcd, Kube proxy, kube scheduler. etc... componentlarda footgun qilganlar buni tushunyabti xozir). Microserivcelar va katta projectdagi juda ko'p responsibilitylardan qutilib yagona engineer degan masuliyatni olamiz holos, bu ortiqcha buyrokratik jarayonlarni chetga surib yaxshilab ishlash kerakligini anglatadi, shu o'rinda skill issuesi ko'plarga ham o'z ustilarida ishlashlari uchun yaxshi turtki beradi, shu orqali texnologik rivojlanish koffitsenti ham oshadi. Bu ideyalar silver bullet qidirish emas !

Ha qanday qilinganini taxmin qilish mumkin bo'lsa ham bu juda ham qiziq narsa. Bu web3 nimalarga qodirligi haqidagi gap emas
Ha qanday qilinganini taxmin qilish mumkin bo'lsa ham bu juda ham qiziq narsa. Bu web3 nimalarga qodirligi haqidagi gap emas lekin aloqa evalyutsiyasi qanday bo'layotgani haqidagi qissa ))

Shu sabab biror narsa qog'ozlarda degan gaplar aytilishi noto'g'ri deb bilaman. Agar faqat ortga qarasak rivojlanmaymiz. Rostdan ham xozir business talabi deb qilinayotgan axmoqona yechimlar sabab resurslarni ko'paytiraverishimiz kerak. Oddiy todo app bo'lsa ham birpastda microserivce qilaman cluster qilaman deyiladi )) Ammo salgina traffic katta bo'lsa boshni qashib o'tirishadi. Biz zamonaviy dasturlarni juda katta eskilik sarqiti ustiga quryabmiz mana shu narsa katta xato. Ekilik sarqiti esa aynan eng quyi pog'onalardan boshlanyabti...

Kernel kabi projectlarga alternativ prototiplar Rustda yozilganida yoki shunday urinishlar bo’lganida atayin ularni obrosizlantirib chetga chiqarishlar bo’lgan katta kompaniyalar tomonidan. Mana endi kernelda ham shu axvol sal oldinroq Sohibjon kanallarida ham shu mavzu ko’tarilgan edi. Shu sababdan aytdim qari takalar halal beryabti deb )) Ko’p yaxshi projectlar shunaqa o’yinlar qurboni bo’lib ko’milib ketyabti. Bunaqa narsalardan kimlar manfatdor ekaniniyam bilamiz albatta.

Qari takalar halal beryabti 😏

Команда Rust для Linux терпит поражение в сражении с разработчиками на С, её лидер ушёл из-за «нетехнической ерунды» В начале
Команда Rust для Linux терпит поражение в сражении с разработчиками на С, её лидер ушёл из-за «нетехнической ерунды» В начале сентября 2024 года команда разработчиков проекта по внедрению Rust для ядра Linux потерпела поражение в сражении с разработчиками на С. Лидер Rust для Linux объявил, что уходит из проекта из-за «нетехнической ерунды» (nontechnical nonsense). Читать полностью #habr @linux_potok

Endi aniq miyya siqdi. Code darslikdan olingan. Bu yerda boolean tipini custom yasalyabti va buni haskell boolean tipi o'rnid
Endi aniq miyya siqdi. Code darslikdan olingan. Bu yerda boolean tipini custom yasalyabti va buni haskell boolean tipi o'rnida deb tushunyabti. Lekin man tushunmayabman qanaqa qilib haskell buni tushunayotganini 😁

photo content

Yuqoridagi post commentlarida yana qiziq narsa muhokama qilindi, hullas CS darslarida asosan Imperativ tillar, low levelga C high levelga esa Python deyilyabti. Mani fikrimcha aynan qaysidir etapda umuman computation theoryga kirib ko'rish kerak. Masalan man yaqinda bu mavzularni o'qishni boshladim, lekin kech boshladim deb o'ylayman. Ertarot boshlashim ham mumkin edi. Turing machine bilan Churchning lambda calculsi haqida o'rgansangiz ikki alternativ dunyoga duch kelasiz. Bizga mashhur bo'lgan digital computing ideyasi asosan statefull computinga asoslangan. Lekin boshqa alternativ ham bor bu aynan Alonzo Church tomonidan o'ylab topilgan funksiyalar orqali xisoblash modeli. Shu sababdan xisoblash nazariyasini o'rganish ancha foydali ha lekin ikkisidan ham chuqurlashish qiyin masala. Lekin tanishib chiqish kerak. Lekin bu mavzuni qachon va qayerda boshlash kerak ekanini bilmayman. Manda ikkisi bilan tanishuv ham deyarli bir vaqtda bo'ldi, turing machine hali ohiriga yetgani yo'q 8-bitlik computer ustida ishlar ketyabti. Lambda calculus bilan xozircha faqat tanishuv bo'ldi holos.

Shu o'rinda biror narsani chuqurroq o'rganib kelajakka kattaroq umid qilayotgan aka-ukalarga tavsiya. Agar AI va yana boshqa narsalar sizni replace qiladi deb o'ylasangiz havotirga tushmang. Unday bo'lmaydi AI asosan routine narsalarni replace qila oladi siz esa R&D ga xarakat qiling yani Research and Development. Buning uchun hech qanday universitetda o'qish va PHD kerak emas, agar kerak bo'lsa bu qo'rqinchili ham emas hammasiga erishsa bo'ladi manimcha insonning o'ziga bog'liq. Mathdan ikkichilar diqqatiga - Khan academydan bemalol o'rganish mumkin. Computer sciencedan ikkichilar diqqatiga - Self study qilishga tonnalab resurslar mavjud, muhimi biror fieldni topib tanlab bosish kerak tamam. Lekin undan oldin general narsalarni o'rganish kerak, bular haqida juda ko'p gapirganman. Noyobroq sohani egallayman deb yurgan ikkichilar diqqatiga - O'zimizda ham bunaqa communitylar sekin rivojlanyabti va bunaqa mavzulardan yo'lini qidirib biroz yo'l bosib qo'yganlar ham mavjud. Shularni boshini qotiring, o'zingiz ham ko'proq izlaning. Xozir internet ochil dasturxon diplomni sotib olib degreeni internetdan olaverasiz ))) Albatta xazil, akademik yo'nalishda ketish uchun yaxshiroq akademiyada o'qish kerak univerlar tizimi bekorga qilinmagan. Computer scienceda ham katta olimlar va ularning ustozlari, shogirtlari silsilasi mavjud. Ammo akademik bilim olishdan qorqmaslik kerak deb bilaman muhimi tog'ri foydalanish va yaxhsilab reja qilish kerak. Biror univerga kirguningizcha ham self study qilaversangiz, univerda yanayam ko'proq fa sifatliroq o'qiysiz shu sababdan izlanishdan to'xtamang. Pythonchi, nodejschi va yana birbalochilar tiqilib yotibti shulardan bittasi kamina )). Maslaxatim biroz kengroq fikrlab ko'ring, bilimsizlikni ustida ishlasa bo'ladi farosatsizlikni ustida ishlay olmaysiz balki bo'lar yana bilmadim. Shu sababdan balandroq dorga osilavering. Startaplar va yana qanaqadir IT bilan romantizatsiya qilinayotgan mavzularga boshingizni qotirmang hammasi bir tiynga qimmat ertaga yo'q bo'lib ketadigan narsalar. Agar IT related yaxshi yangilik qilmoqchi bo'lsangiz sizga aniq Computer science background kerak bo'ladi, akademik muhit esa sizni aynan shunday narsalar ustida ishlashga o'rgata oladi. PS: Uzbda o'qishni tavsiya qilmayman.

Ko'p mashxur texnalogiyalardagi communitylarda fundamental bilimlar yetishmovchiligi juda yuqori darajada deb bilaman. Birinchi navbatda frontend mavzusini skip qilamiz ular bundan mustasino. Nega deysizmi ? Gapirganim foydasiz deb bilaman shu sababdan va ularning katta qismi ham shunday deb o'ylashadi )) Agar siz bowserdan tashqarida ishlaydigan code yozsangiz, o'zingiz ishlatadigan texnalogiyadan tashqari qo'shimcha fundamental mavzularni ham o'rganishingiz kerak bo'ladi. Sababi bu mavzulardagi skill issuelar sizga footgun bo'lishi mumkin, siz ishlayotgan projectda foydalanuvchi ko'paygani sayin muammolar ham oshib boraveradi. Qancha skill issue ko'p bo'lsa muammo ham ko'p bo'ladi. Masalan nestjsni zo'r bilasiz, ammo negadir RPS oshgani sayin sizda muammolar ko'payib ketyabti, containerlar bilan scale qilib replication qildingiz, endi resurslar ko'payabti. Codeda muammo yo'q ammo qayerdadur bottleneck bo'lyabti. Manashunaqa g'alati, mavhum va tushunarsiz holatlarda sizni fundamental bilimlar juda qutqaradi. Chunki muammo faqat siz yozgan codeda emas tashqi bog'liliklar va code ishga tushayotgan muhitda ham bo'lishi mumkin. Shu sababdan bootleneck detection uchun ham mos kela oladigan qanaqadir bilim kerak deb o'ylayman. Siz qanaqadir "Distrubuted highload, high available and reliable pro ultra max" tizim qilmoqchi bo'lsangiz oldin shuni tagida nimalar yotganini taxminan bilmasangiz aniq o'z oyog'ingizga boltachani urib qo'yasiz. Masalan bir loyihada tupoylarcha qilingan arxitektura evaziga kegin uni tog'irlagani yillar sarflandi. Muammo esa loyihada notog'ri organize qilingan file storaga ))) Bunaqa texnalogiyalardan umuman bilimi yo'q ikkichilar qilganganini tuzatishga ancha vaqt ketdi...

Bu yerda bozorga nisbatan texnalogiyalar perespektivasi mavzusi ham ochildi. https://t.me/programming_everyone/2728 Ho'sh savol quyidagicha:
Bozor va tilga nisbatan C++ ni maslahat bera olasizmi yokida python, nodejs lar nimi
Javob: Aynan o'zbekiston miqyosida C++ ishlatadigan kompaniyalar sanoqli bo'lsa kerak deb bilaman. Shu o'rinda prodda C++ ishlatgan odamlarning o'ziyam kam manimcha. Balki man bilmagan katta community bordir )) Koryerani C++ dan qilish masalasiga kelsak, aynan qaysi domainda ishlash mumkinligini ham ko'rib chiqish kerak deb o'ylayman. Bu texnologiya bilan hamma narsa qilishiz mumkinligi hamma uni ishlatadi degani emas. Shu sababdan texnologiyani biroz bo'lsa ham biror aniq domainga bog'lagan maqul. Backend - C++ backend applar global bozorda yetarlicha ammo bu texnalogiya trendan qolgan, shu sababdan katta legacy mavjud. System engineering- Bu ham huddi shunaqa axvol bu domainda C haligacha actual bo'lishi mumkin ammo C++ o'rnini boshqa narsalar replace qilyabti. Embedded systems - Man qiziqgan ko'p projectlar asosan C da edi. Shu sababdan aniq holatni aytishim qiyin, realtimeOSlar, driverlar va yana bazi mavzularda ham asosan C. Mobile/Desktop development - Bu yerlardayam nimadirlar qilishgan ayniqsa Qt framework bilan. Ammo nima gap nima so'z bilmayman. Aynan O'zbekistonda ish topish maqsadi bo'lsa C++ unchalik variyant emas deb o'ylayman. Can be replace - C++ tili va ekotizimidan ko'pchilik vos kechyabti va undan boshqa texnologiyalarga o'tyabti va u ekotizimlar ancha zamonaviy va ko'p qulayliklarga boy. Misol uchun Rust ! Rust aynan C++ ni replace qila oladigan potensialga ega deb bilaman, shu bilan birga juda ko'p qulayliklar va ancha kuchli conceptlarga ega. Detaillarni bemalol internetdan topsangiz bo'ladi. Rust va C++ ikkisida ham learning curve biroz qiyin deyishadi. Qaysidir tomondan begineer firendly emas. Bu fikrlarga qisman qo'shilaman ammo aniq birnarsa deya olmayman, chunki C++ ni deyarli bilmayman va kuzatmayman. Rustni esa o'rganish jarayoni unchalik darajda og'riqli bo'lmagan asosan ownership/borrowing mavzularida biroz bosh qotgan chunki man uchun yangilik edi. Ammo bu texnalogiyada ham biror projectlar qilmaganman yoki qatnashmaganman. Python, Nodejs ga kelsak koryerani boshlashga nisbatan oson texnalogiya. Ammo aynan nodejs perespektivasidan aytadigan bo'lsam nodejs communityda ham nodejsni yaxshi tushunadiganlar juda kam )) Pythonda bilmayman umrimda bu tilga jiddiyroq qiziqmaganman. Ammo ikkala texnalogiyada ham xozirda yoqimsiz projectlar va low skilled community shakillangan.

Minning next levelga chiqibti, bundan birnecha yil oldin CI runnerlarda minning juda trend bo'lgan edi. Kegin github aynan sh
Minning next levelga chiqibti, bundan birnecha yil oldin CI runnerlarda minning juda trend bo'lgan edi. Kegin github aynan shunaqa narsalarga restrictionlar qilgan. Mana endi tabbotlar uchun maynerlar trenda 😂 Man qarshimasman agar shunaqa automationlar bilan odamlar soqqa qilayotgan bo'lsa. Projectlar scam scammerlarni scam qilish esa uje next level O'grini qaroqchi urdi deydiku ))

Qanday tajriba yeg'ishim mumkinmi ? Githubda tonnalab OSS projectlar bor, shularga contributing qilish kerak ! Yana bir barierlardan biri esa chet tili va bizning lokatsiya bo'lishi mumkin. Chet tilini zo'r bilib ish topolmayotganlarning asosiy muammosi bilim va turgan lokatsiyasi )) Ishoning siz yaxshi candidate bo'lsangiz ham location sabab sizdan potesniali kamroq candidateni olishlari mumkin.

Man bilgan zadrod engineerlarning deyarli hammasi xozirda computer science o'qiyabti ! Ularning deyarli hammasi xozir asosan CRUD qiladi. Ularning katta qismi xozirgi ish joyida shunchaki yashab qolish uchun yani pul uchun ishlayabti. Bir narsaga ishonaman shu zadrotlarning katta qismi taxminan 5 yildan kegin o'zi qiziqqan sohasida ish topib baxtli yashayotgan bo'ladi )) Bu gaplardan qanday hulosa olish kerak deysizmi ? Siz qiziqgan mavzuda doyim ham ish topolmasligingiz mumkin. Ish topish jarayoni ham oson emas shunday ekan qiziqgan mavzularingizni o'rganishni ishga bog'lamay turing, oldin yaxshilab o'rganing hayotga tadbiq qilib ko'ring ana kegin ish haqida o'ylasangiz bo'ladi. O'ylaymanki bunaqa holatda ish topish osonroq. Xozirda yandex uzbga kirib bo'ldi, ko'pchilik ozgina leetcodedan tayyorlanib va C++ o'rganib backendga o'tsa bo'ladi. Ammo hammaga ham qiziq emas, masalan man nodejsda qilgan ishlarimni yana C++ da qilaman degan fikrga keldim aynan xozirgi perespektiva tomondan. Lekin kattaroq masshtabda qilaman )) Shu sababdan xozir job o'zgartirgandan ko'ra qiziqgan narsalarimni o'rganishga ko'roq vaqt sarflaganim va shundan tajriba yeg'ganim afzal.

Korparativ qullik haqida 🙂
Korparativ qullik haqida 🙂