Tech Stuff – Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
کلاس‌های مختص screen readerها

توی Tailwind یه کلاس داریم به اسم sr-only که باعث می‌شه یه المان از صفحه مخفی بشه، ولی همچنان برای screen readerها قابل دسترس باشه. همون‌طور که می‌بینید، ChatGPT هم ازش استفاده کرده. حالا اگه بخوایم یه المان sr-only شده رو دوباره قابل نمایش کنیم، می‌تونیم از کلاس not-sr-only استفاده کنیم.

@techstuff100
👍62🔥1
ایندکس دیتابیس (Database Index) چیه و چرا مهمه؟

فرض کنیم یه جدول با میلیون‌ها رکورد داریم و می‌خوایم یه داده خاص رو سریع پیدا کنیم. بدون index، این کار مثل پیدا کردن یه اسم تو یه کتاب هزار صفحه‌ای بدون فهرسته. اما با استفاده از index، می‌تونیم خیلی سریع‌تر اطلاعات موردنظر رو پیدا کنیم، درست مثل اینکه یه کتاب فهرست‌دار رو باز کنیم و مستقیم بریم سراغ صفحه‌ای که لازم داریم.

ایندکس‌ها در دیتابیس یه جور جدول کمکی هستن که اطلاعات کلیدی رو نگه می‌دارن تا جستجوها سریع‌تر انجام بشه. به‌صورت پیش‌فرض، کلیدهای اصلی (Primary Keys) همیشه ایندکس می‌شن؛ اما می‌تونیم برای ستون‌های دیگه هم index دستی بسازیم. البته باید حواسمون باشه که هر تغییری تو جدول باعث آپدیت شدن ایندکس‌ها بشه و ممکنه سرعت INSERT/UPDATE رو کمی کاهش بده. پس بهتره فقط برای ستون‌هایی که زیاد جستجو می‌شن، ایندکس بذاریم.

مقاله:
https://www.codecademy.com/article/sql-indexes

@techstuff100
👍7👏2
هوک useInsertionEffect در React

توی این پست درباره‌ی useInsertionEffect صحبت کردم، اینکه کِی بهش نیاز داریم و چه کمکی به ما می‌کنه، به همراه یک مثال برای درک بهتر رفتارش در مقایسه با useEffect و useLayoutEffect.

@techstuff100
👍4👏2🤔1
پشت صحنه کوئری‌های SQL

وقتی یه کوئری مثل
SELECT name, age FROM users WHERE city = 'New York';
رو اجرا می‌کنیم، پشت صحنه چند تا مرحله اتفاق میفته که باعث میشه دیتابیس بتونه بهترین و سریع‌ترین نتیجه رو برگردونه. این مسیر از چک کردن دسترسی کاربر شروع می‌شه، بعدش کوئری بررسی و بهینه‌سازی می‌شه، و در نهایت به موتور ذخیره‌سازی می‌رسه که داده‌ها رو از دیسک می‌خونه.

اما چطور این فرآیند سریع و بهینه انجام می‌شه؟ دیتابیس از چند تا بخش هوشمند مثل Query Optimizer (که بهترین روش اجرای کوئری رو انتخاب می‌کنه) و Execution Engine (که مراحل اجرای کوئری رو هماهنگ می‌کنه) استفاده می‌کنه. مثلا، Lock Manager از تداخل دسترسی‌ها جلوگیری می‌کنه و Buffer Manager اول حافظه رو چک می‌کنه تا از خوندن غیرضروری از دیسک جلوگیری بشه.

لینک مقاله:
https://newsletter.systemdesigncodex.com/p/the-journey-of-a-sql-query-through

@techstuff100
👍5👏1
ساخت تایپ‌های deep immutable در تایپ‌اسکریپت

گاهی وقت‌ها لازم داریم مطمئن باشیم که یک آبجکت بعد از مقداردهی اولیه مقادیرش تغییر نکنه. توی این پست با const assertion و Object.freeze بررسی می‌کنم که چطوری میشه یه آبجکت رو هم در زمان کامپایل و هم در زمان اجرا فریز کرد.

@techstuff100
👍4🔥1👏1
حال خوب برای مامان بابا‌ها ❤️

تو تعطیلات عید فرصت شد یه آپدیت جدید برای اپلیکیشن «حال خوب / Good Mood» آماده کنم؛ با یه قابلیت تازه: حالت والدین.

با فعال‌سازی این قابلیت روی گوشی مامان یا بابا، براشون پیام‌هایی مثل «مامان‌جون، صبح بخیر قلب من» و «شب بخیر باباجون، دوستت دارم» ارسال میشه؛ همون‌طور که اونا همیشه با عشق باهامون حرف می‌زنن.

پ.ن: اگه اولین باره اسم این اپ رو می‌شنوین، «حال خوب» یه برنامه‌ست که صبح بهمون صبح‌بخیر می‌گه، شب‌ها شب‌بخیر، و توی روز نوتیف‌های مثبت و انگیزشی می‌فرسته. هدفش اینه که حالمون بهتر شه و روزمون رو با انرژی بیشتری بگذرونیم.

نصب «حال خوب» از بازار:
http://cafebazaar.ir/app/?id=com.seyedmahdii.goodmood&ref=share

@techstuff100
5👏2👍1
Tech Stuff pinned a photo