Programming ∀
الذهاب إلى القناة على Telegram
Ushbu kanalda dasturlashga aloqador turli expriementlarim, g'oyalarim, hulosalarimni ulashaman.
إظهار المزيد1 354
المشتركون
لا توجد بيانات24 ساعات
لا توجد بيانات7 أيام
لا توجد بيانات30 أيام
أرشيف المشاركات
1 354
Akalar distrubuted systems bu - Turli joylarda joylashgan componentlarning birlashib(tarmoqda albatta) yaxlit tizim hosil qilishi xisoblanadi.
Boshqa narsa emas shuni o'zi, endi uyoqda o'ziga yarasha challengelar mavjud va tolerate failures, autonomously vaxakazolar uyoqdagi challengler.
Distrubuted systems, mikroservislar deb yurmanglar yana kattaroq kuruglarda. Kimdir unda SOA nima desa yoki shared clusterlar ham microservismi desa biroz hijolat bo'lib qolasiz. DS general tushuncha asosiy g'oyasi qanaqadir uslubda ma'lum bo'laklarni ma'lum uslbda birlashtirib yaxlit tizim hosil qilishdan iborat. Umuman olganda Distrubuted computing modeli shunchaki xisoblashning bir uslubi holos.
https://en.wikipedia.org/wiki/Distributed_computing
1 354
Hulosa:
OOP lag'monga o'xshaydi va qulog'ingizga yaxshigina lag'mon osishadi, undan tashqari huddi lag'mon kabi chalkash va betartib. Undagi prinsplar va patternlar bilan uzoqga borolmaysiz eng uzog'i shu FizzBuzzEnterpriseEdition ga o'xshagan narsaga taqalasiz.
FP esa sizga haqiqiay abstraction bilan ishlashni o'rtatadi, Zamonaviy FP tillar esa huddi compiler bilan hamkorlikda ishlayotgandak ko'rinishda ishlashga yordam beradi. Juda sodda misol, Siz array[n] qilmoqchimisiz ? Demak compilerga isbotlashingiz kerak anashu n indexdagi element array ichida mavjud ekanini. Siz shape data structurasini qildingizmi va u birqancha shapelardan iboratmi ? Demak hamma variantlar uchun qanaqadir logic ishlashi shart ! Siz elon qilgan variable egasi bitta bo'lishi kerak dedimi ? Demak unda aniq side effects bo'lmaydi. Sizda chekli rekursiyami ? Compiler bemalol loopga aylantira oladi. Hullas bunaqa misollar qalashib yotibti. Mana sizga zamonaviy dasturlash tillari haqida ma'lumot. Zamonaviy dasturlash tillari, kuchli type system va aqilli compilerlar bilan kuchli, qanaqadir design patternlar bilan emas ))
1 354
Endi shuni pure functional Haskellda ko'rsak bo'ladi )) Unda ham biz match bo'lmagan patternlar haqida error ham olishimiz mumkin.
Etibor qilgan bo'lsangiz haskellda juda ham oson va tushunarli.
1 354
+1
Hammasidan oldin OO styleda nimalar yoqmaganini aytib chiqaman.
1. Man sezgan eng birinchi muammo, struktura va logika qorishib ketishi, yani har bir class ichida area() funksiyasi bor. Qani edni sandiqchni ochamizda DRYni olamiz. Ha, o'sha mashxur DRY Bob amaki ham rossa gapirgan boshqalar ham ))
2. Jungli - Biz areani xisoblash uchun Shapega mos keladigan object yasashimiz kerak va u object ichida area degan funksional bo'lishi shart va biz yozgan funksiyaga berishimiz kerak area(new new Square(5))
3. Safety shubxali - Umuman olganda code unchalik xavfsiz emas. Bizni area funksiyagaga tog'ri shape berganimizga amin bo'lishimiz kerak, uyam yetmaganidak har bir shape to'g'ri construct bo'lganiga amin bo'lishimiz kerak.
4. Code kattalashishi uni tushunish va qo'llab quvvatlashni murakkablashtiradi, Yana 3-4 ta shakl qo'shilsa murakkablik ham ko'payadi bu esa codebase kattalashgani sayin contributingni qiyinlashtiradi.
Yuqoridagi misolda esa aynan functional style qilingan. Lekin unda ham biroz yetishmovchiliklar bor, shunda ham yuqoridagi 4ta muammo bartaraf etilgan va qo'shimchasiga biz agar yangi shape qo'shsak anashu tip uchun ham logic yozishimiz shart bo'lmasa code compile bo'lmaydi. Shu o’rinda biroz bo’lsa ham safety code :)
1 354
Sizda turli shakillarni ifodalovchi objectlar bor va siz ushbu shakillar yuzasini xisoblashingiz kerak. Albatta biz OO code bilan quyidagi natijaga erishamiz.
Endi bizda yuzani xisoblash funksiyasini aniq berishimiz kerak, yani bizda mavjud bo'lgan shakillarga qarab shunda quyidagicha logika bo'ladi.
const area = (s: Shape) => s.area();
Umuman olganda hammasi ajoyib vazifa bajarildi.
Lekin muammolar bor ! Ho'sh, manashu muammolarni topishga xarakat qilib ko'ring ushbu codeda nima muammolar ko'ryabsiz ?1 354
Hullas, bilasizmi Enterprise software qanaqa bo'lishini ? Ho'sh sizni tassavuringizda bu qanaqa bo'lishi kerak, Albatta Javada, OOP va patternalr asosidami ?
Hullas hechqanaqa trollinglar va yana boshqa narsalarsiz shunchaki o'zingiz baho bering. Fikrimcha tasavur qilgan Enterprise software manashu.
O'zingiz ko'ring va baho bering, sizni direction qaysi tomonga ketayotgani haqida tassavur beradi.
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
1 354
Jamoat transportida kitob o'qib ketayotganimda bir aka yonimga kelib so'radi.
- Dasturchimisiz ?
- Ha qayerdan bildingiz ?
- O'qiyotgan kitobingizdan tahmin qildim, nima kitob ekan bu ?
- "Software Abstractions" qiziq kitob abstraction bilan ishlash haqida.
- Haa, OOP o'rganyabsizmi ?
- Shunaqa desa ham bo'ladi, negadir bazi mavzular juda qiziq bo'lib qoldi, bu kitobda manga qiziq mavzular bor ekan.
- Haa tushunarli, OOP o'rganaman desangiz Java o'qing aka! Aytgancha qayerdadir ishlaysizmi aka ? Qanday dasturlash tilida code yozasiz ?
- Haa bir kompaniyada ishlayman nodejsda yozaman.
- Tushunarli, frontednchimisiz ?
- Yo'q aka backendchiman. O'zingizchi ?
- Man Gochiman aka. Falon kompaniyada ishlayman.
- Ajoyib! Go haqida ko'pchilik maqtayabti nimasi yaxshi aka ?
- Goda juda ko'p distrubuted systems qursa bo'ladi katta masshtabda. Microservicelar uchun juda zo'r instrument.
- Haa qiziq, sinab ko'rsam bo'lar ekan.
- Qanchadan buyon bu sohadasiz aka ? Faqat nodejsda ishlaganmisiz ?
- Boshqa tillarda ham nimadirlar qilganman, ko'p emas birnecha yildan buyon dasturlashdaman aka. O'zingizchi ?
- Man 2 yildan buyon ishlayman dasturlashni C da o'rganganman.
- Ohho, C ham bilasizmi, respect !
- Haa foundation o'rgangan edim C da.
- Ajoyib aka ! Manam C o'rganishga rossa harakat qilgan edim ammo vaqt bo'lmayabti !
- Nima qilasiz o'rganib o'lik tilku aka ! Go o'rganing xozir hamma yangi loyihalar shu tilda qilinyabti. Falon markazni tavsiya qilaman foundationda karkaz C o'rgatadi.
- Haa qiziq aka, maslahatlar uchun Rahmat! Mani bekatim keldi salomat bo'ling!
PS: Negadir hamma tanishuvlarda ko'p shu trendagi tillarni birxil izohlashadi, distrubuted systems qurish imkoniyati mavjud !
Manashu gapni GO, Java, C#, Nodejs, Ruby, Python hullas deyarli hamma stackdagi backendchilar gapiradi. G'alati emasmi ))
Hamma mashxur tillar bir biridan nimadirlarni copy paste qilgani yetmagandek dasturchilar ham shunaqa qilyabtimi 😂
1 354
Negadir doyim arifmetika, kasrlar kabi narsalardan sinalamanda. Stepikdagi kursda aynan distance hisoblaydigan funksiyani yozish kerak bo'lgan taskni tashlab ketgan ekanman. Endi esa aynan shu taskni qilganmami yoqmi so'rashyabti.
Baxtimizga google bor.
1 354
Agar yolg'on masshtabi katta bo'lsa haqiqatga aylanadi.
Bu so'zlar kimga tegishli bilmadimku lekin bizga qiziq point of view beradi. Chunki real hayotda shunaqa katta yolg'onlarni ko'pi haqiqatga aylanib kelyabti.
Misol sifatida kripto aktivlarni olsak bo'ladi. Xozirda 3.27 trillion $ qiymatni tashkil qiladigan ushbu bozor ko'pchilikning haqiqatiga aylangan. Nega yog'onmi ? Sababi rostdan ham jiddiy fundamentlar yo'q ammo fiat pullar kabi harakterga ega bo'lgan kripto aktivlar keng omma tomonidan tan olinyabti hatto davlatlar va katta kompaniyalar tomonidan ham chunki ular ham o'z zahiralarining bir qismini aynan shunday aktivlar ko'rinishida saqlashyabti.
Dunyoda bunday hajimdagi yolg'onlarni ko'plab uchratishimiz mumkin. Dasturlashda ham boshqa mavzularda ham.
Ho'sh bu yog'onlar qanday qilib haqiqatga aylana oldi ?
Manashu faktor kaktta axmiyatga ega va bu savolning javobi primitiv bo'lolmaydi.
Nima qilish kerak ?
Fikrimcha bunday masalalarga ko'z yummaslik kerak va bunday ko'p o'lchamli masalalarda yolg'on qurboni bo'lmaslik uchun ham o'rganadigan narsalarimiz juda ko'p.
Shu sababdan ham doyim aytamanki hechqachon complex masalalarga primitiv yondoshmaslik kerak. Kripto aktivlardan deyarli hammamiz foydalanamiz yoki bo'lmasam ishimiz tushadi va bu tabiy. Biz yog'onlarni yolg'on ekanini isbotlay olmaganimizda ham ulardan keladigan zararlarni va foydalarni riskini kamaytirishimiz yoki ular bilan ishlay olishni o'rganishimiz kerak. Bu degani shuni anglatadiki har bir oldinga bosgan qadamimiz bir yolg'on jarligiga tushib ketishimizga sabab bo'lishi mumkin. Risklar bilan ishlashni o'rganish esa jarliklarni oldindan ko'rishni o'rgatadi. Shu sabab ham doyim bir narsaga davat qilaman.
Do your own research !
1 354
Yaxshi kitob topib oldim. Hechqanaqa romantikalarsiz va yemagan ertaklarsiz. Qisqasi bazi contentlar yoqdi, turli turdagi vulnerabilities haqida qidirib o'tirgan edim chiqib qoldi ))
Bu mavzularda hechnima bilmayman bu kitob ham eski ekan ammo o'zimga yqogani uchun tavsiya qila olaman bemalol. Xozircha kitobdan aynan bazi o'zimni qiziqtirgan savollargagina javob olib cheklandim holos.
Manimcha OS/Network dan biroz tushunchalari borlar uchun ko'proq foydali bo'ladi.
1 354
Ha mayli, muhimi research yaxshi ketyabti bu yerda aytganimdak uje aynan bitta muhim mavzuga doir content deyarli tayyor bo'ldi. Bugun ulguramanmi bilmayman publish qilgani lekin asosiy content tayyor biroz reviewlar qilib styleni ham qarab chiqish kerak. Shu bilan tayyor, nu asosiy contextlar tayyor bo'ldi.
1 354
FP ishlataman deb javraydigan default frontendchilar qilgan composition. Yana bir joyda ko'rib qoldim, dinamik composition emish...
Lekin man yozganim static composition, zato type safety typescriptda magic yozgim kelmadi kegin unaqa magiclar yoqmaydi ham manga. TS genericlari ham qanaqadir nogiron ))
JSchilar TS bizga safety beradi deyishadiku ammo unsafe code yozib yuraverishadi ))
1 354
Internet ishlaganida shu yerdagi videolarni ko'rib chiqishni tavsiya qilaman
https://www.youtube.com/@Kronark/playlists
1 354
Tiktor va Instada zadrod bo'ladigan dormayetlardan telefoni olib qoyish kerak blyat.
1 354
Faqat uzbda internet bunchalik trash bo'lib ketyabtimi?
Bugun youtubdeda birorta video ko'rolmadim chunki har 30 sekunda qotib ko'rsatyabti 729p ham ))
Telegramniku gapirmasa bo'ladi har safar connecting turibti ))
1 354
Rustga ko'pchilik egzotika sifatida qarayabti, fikrimcha bunaqa narsalarni yeg'ishtirib aniq maqsadga o'tish ko'proq foyda keltiradi. Hullas Rust C++ni replace qiladi !
Aynan shu perespektivadan qarangda bosavering !
C++ xarbaloga tiqishtirilganmi ? Rustda o'shalarni hammmasini egallashga yetadigan potensial bor. Texnik jixatdan ularni ortig'i bilan bajara oladi.
Lekin Rustdan foyda ko'rishni istasangiz undagi ideatomicga rioya qiling. Shunday ekan agar Rust FP deb o'ylasangiz adashasiz, C++ kabi deb o'ylasangiz ham adashasiz. Maslaxatim boshqa tillar bilan solishtirmasdan o'rganing shunda biroz yengilroq bo'ladi. Lekin safety code yozishni o'rgansangiz kegin boshqa imperativ tillarni bir tiynga olmaydigan bo'lasiz.
