Curious coder
94 subscribers
679 photos
220 videos
51 files
532 links
𝓣𝓱𝓲𝓷𝓴 𝓭𝓲𝓯𝓯𝓮𝓻𝓮𝓷𝓽... ! 𝗘=𝗺𝗰²
Download Telegram
Dartda enum ikkita shaklda keladi — oddiy va kengaytirilgan. Ikkalasini chuqur tushunib olaylik.


1. Oddiy enum
Eng sodda holat — faqat nomlangan konstantalar to'plami. Kompilyator har bir qiymatga index va name beradi, boshqa hech narsa yo'q.

dartenum PaymentStatus {
pending,
success,
failed,
cancelled,
}

// ishlatish
final status = PaymentStatus.success;
print(status.name); // "success"
print(status.index); // 1


Muammo: PaymentStatus.failed ga mos keladigan server kodi nima? UI'da qanday matn ko'rsatish kerak? Bularni switch/if bilan tashqarida yozishga majbur bo'lasiz — kod tarqoq bo'lib ketadi.

2. Enhanced enum (Dart 2.17+)
Enum ham sinf kabi constructor, field va method olishi mumkin. Har bir enum qiymati — aslida o'sha sinfning const instance'i.

dartenum PaymentStatus {
pending('pending', 'Kutilmoqda', '#FFA500'),
success('success', 'Muvaffaqiyatli', '#00C853'),
failed('failed', 'Xatolik', '#F44336'),
cancelled('cancel','Bekor qilindi', '#9E9E9E');

final String code; // server kodi
final String label; // UI matni
final String hexColor; // rang

const PaymentStatus(this.code, this.label, this.hexColor);

// method ham qo'shish mumkin
bool get isTerminal =>
this == success || this == failed || this == cancelled;

static PaymentStatus fromCode(String code) =>
PaymentStatus.values.firstWhere(
(e) => e.code == code,
orElse: () => PaymentStatus.pending,
);
}
Endi hamma narsa enum ichida:
dartfinal status = PaymentStatus.fromCode('success');

print(status.label); // "Muvaffaqiyatli"
print(status.hexColor); // "#00C853"
print(status.isTerminal); // true



3. Extension on enum
Bu boshqa narsa — mavjud enum'ga tashqaridan method qo'shish. Ayniqsa siz o'zgartira olmaydigan enum'larda (boshqa package'dan kelgan) ishlatiladi.

dart// Siz o'zgartira olmaydigan enum — masalan package'dan
enum OrderState { created, processing, delivered, returned }

// Tashqaridan kengaytirish
extension OrderStateX on OrderState {
String get label => switch (this) {
OrderState.created => 'Yaratildi',
OrderState.processing => 'Jarayonda',
OrderState.delivered => 'Yetkazildi',
OrderState.returned => 'Qaytarildi',
};

bool get isActive =>
this == OrderState.created || this == OrderState.processing;
}

// ishlatish — xuddi o'z metodi kabi
final state = OrderState.processing;
print(state.label); // "Jarayonda"
print(state.isActive); // true



Asosiy farq — qachon qaysinisini ishlatish:
Oddiy enum → faqat konstantalar kerak, hech qanday logika yo'q. Masalan, enum Direction { left, right, up, down }.
Enhanced enum → enum'ga tegishli ma'lumot va logikani birga saqlash kerak. Siz yaratayotgan enum bo'lsa — har doim shu usulni afzal ko'ring.
Extension on enum → boshqa kutubxonadan kelgan enum'ni kengaytirish kerak bo'lsa yoki enum'ni turli layer'larda har xil ko'rinishda ishlatish kerak bo'lsa. Masalan, domain layer'dagi enum'ga presentation layer'da UI logikasini qo'shish — Clean Architecture'da bu juda qulay.

https://t.me/devspaceuz
👍1
Forwarded from @Rustam-Z⚡️
This media is not supported in your browser
VIEW IN TELEGRAM
➡️ Yandex Uzbekistan Dev Meetup — May 23, Tashkent

Yandex Uzbekistan is hosting an offline dev meetup at their office. Topics: product building, engineering decisions, and career growth. The event will be in English.

🔗 Register here and learn more
Location: Yandex Uzbekistan office
Date: May 23, 2026

What's on the agenda:
• Konstantin Dovnar — how they studied Yandex Pro's performance on slow networks and what solutions they shipped to make things faster and more stable.

• Alexey Tolstikov — how to stay curious, learn, avoid getting lost in automation, and why altruism is becoming a key part of both learning and teaching.

• Live Coding, participants will break down a real task, spin up a model, and figure out what's happening under the hood together.

• How to improve your resume and present your experience to be competitive internationally. They'll break down what a developer interview at Yandex looks like, what to expect at each stage, and share practical tips to help you pass it.


Great opportunity to present yourself, grow your network, and connect with engineers who are building real products at scale.

@rustamzokirov
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Markul ft Oxxxymiron FATA MORGANA Audio
NYSTORY MUSIC
@TuneHuntBot orqali istagan musiqangizni tez va oson toping!
Forwarded from Abdurahmon Crypto
Harakat qilsangiz maximum oʻxshashi mumkin!
Lekin harakat qilmasangiz oʻxshamasligi aniq!
Tanla oʻzing!
Safar bizdan Zafar Allohdan.
❤‍🔥11
Hozirda 24/7 uxlash bilan bandman noshukurlik bo'lmasin uxlashdan charchadim
1
Forwarded from Muhtarov Shoakbar
Agar sinsam, hech kim sezmaydi; agar yonsam, hech kim kuyindi hidini olmaydi. Men o'sha sukunatda parchalanadigan va xufiyona o'zini qayta tiklaydigan insonman. Chunki yolg'izlikka o'rganish... borlig'imning bir qismiga aylanib bo'ldi.

Jumlalar menga tegishli emas menchalik tushunadigan odam ham bo’lmasa kerak.
Нормальные юрип куйипман
Сейчас ведь все просто стало… читаете вот эти книжки, проходите мой курс и всё. Можно сказать, что жизнь удалась 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥11
devushka_vzgliad_makiiazh_1341337_3840x2160-2.jpg
462 KB
Chopilgan oboi lekin manga yoqdi
Всё еще считаете, что ИИ заменит программистов? 😂

Доверите «этому» писать продакшн код?
Please open Telegram to view this post
VIEW IN TELEGRAM
Curious coder
Photo
Flutter virusi
P/s : hazil
Curious coder
Flutter virusi P/s : hazil
Obsidian — fikrlarni tartibga solish va hayotni ongli boshqarish uchun kuchli vosita.

Bugungi kunda deyarli hammada bir nechta qurilma bor:
💻 Windows / macOS
📱 Android / iOS / iPadOS
Agar siz ham shu ekotizimda ishlasangiz, Obsidian siz uchun juda qulay yechim. U barcha qurilmalar o‘rtasida bilimlaringizni yagona tizimga birlashtirib beradi.

Men shaxsan:
macOS + iOS + terminal + Claude kombinatsiyasidan foydalanaman

va bu workflow sezilarli darajada samaradorlikni oshirdi.

Natijasi qanday?

— Kundalik ishlarni aniq va tartibli rejalash
— Fikrlarni chalkashmasdan, tizimli yozib borish
— Bilimlarni “mind map” ko‘rinishida bog‘lash
— Vaqtdan maksimal samarali foydalanish
— O‘rganilgan narsalarni uzoq muddat saqlab qolish
Obsidian — oddiy note app emas. Bu sizning “ikkinchi miyangiz”.
To‘g‘ri ishlatsangiz:
kamroq stress, ko‘proq natija.
Ayniqsa developerlar uchun:
knowledge base + task manager + idea storage — hammasi bitta joyda.

Siz qanday system ishlatasiz?

https://t.me/devspaceuz
3