Tech Stuff – Telegram
ریفکتور پروژه‌های چندزبانه با i18n-check

پروژه‌های چندزبانه بعد از مدتی شلوغ و نامرتب میشن. کلیدهای استفاده نشده، ترجمه‌های گمشده و کلیدهای اضافی باعث میشن نگهداری پروژه سخت‌تر بشه. توی این پست راه‌حل کاملی برای ریفکتور کردنشون ارائه دادم.

اسکریپت‌هایی که استفاده کردم: لینک

@techstuff100
9👍6
بهینه‌سازی performance در Twitter Lite

توی این مقاله از چالش‌های performance توی Twitter Lite گفته میشه؛ مثل کند بودن لود اول، اجرای کند کامپوننت‌ها، تصاویر حجیم، re-renderهای غیرضروری و حتی مشکلات Service Worker. تیم توییتر با کارهایی مثل code splitting، بهینه‌سازی تصاویر، کنترل re-render و تعویق رجیستر Service Worker، قدم‌به‌قدم این bottleneckها رو رفع کردن و نتیجه‌ش یه PWA سریع و scalable روی React شده.

مقاله با اینکه برای چند سال پیشه ولی نکات خیلی خوبی توش هست. لینک مقاله.

@techstuff100
9👍3
آشنایی با Dynamic Remotes در پروژه‌های میکروفرانت‌اند

توی این ویدیو Dynamic Remotes در Module Federation رو بررسی کردم که چطور میشه ریموت‌ها رو در زمان اجرا (runtime) لود کرد، نه موقع build. می‌بینیم که Host چطور بدون تعریف remotes در کانفیگ، می‌تونه هر ریموتی رو فقط موقع نیاز لود کنه.

ویدئوی یوتوب:
https://www.youtube.com/watch?v=W1cvFRd1nRk&list=PL1bBcWODwsLMYe8Gor4PDwT5U5CK_S36x

@techstuff100
10👍3👏1
دیروز بعد ۲ ماه، آموزشی سربازیم توی نیروی دریایی ارتش تموم شد. توی این ۲ ماه مثل قبل نتونستم فعالیت کنم و یسری از کارهام عقب افتادن یا با تاخیر تونستم انجامشون بدم.
توی مدتی که پادگان بودم، به امریه دانش‌بنیان و پروژه جایگزین خدمتم فکر می‌کردم که هر کدوم به یه دلیلی رد شدن. به وقت و انرژی که صرفشون کردم و تهش هم به نتیجه نرسیدن. با این حال از هر کدوم‌شون چیزایی یاد گرفتم، تجربه شدن و قطعا بی‌فایده نبودن و نکات مثبت خودشون رو داشتن.
ماه اول آموزشی رو توی سلف پادگان بودم. با اینکه سختی‌ها و فشار کاری خودش رو داشت، برام تجربه جدیدی بود: شستن روزانه چندصد تا یغلوی، تمیز کردن میزها، جارو و طی زدن سلف، تحویل غذا از آشپزخونه، گرفتن نون از خبازخونه، کف‌پارتی و ... .
توی آموزشی با آدم‌های خفنی آشنا شدم؛ هر کسی بیرون پادگان توی حوزه خودش کار می‌کرد و برای خودش کسی بود. چیزی که شاید وقتی لباس سربازی می‌پوشیم کمتر بهش توجه میشه اینه که هر کدوم از این سربازها بیرون از پادگان شخصیت و هویت خودشون رو دارن.
توی زمان بیکاریم توی پادگان تونستم وقت بیشتری رو به مطالعه اختصاص بدم و کتاب Leaders Eat Last و همینطور نصف کتاب A Philosophy of Software Design رو بخونم (که کم‌کم پستشون رو میذارم).
از این به بعد اگه شرایط درست پیش بره، سعی می‌کنم مثل قبل خدمت فعالیتم رو ادامه بدم و مرتب پست بذارم.

#سربازی
54👏8👍1🔥1
تایپ Function در TypeScript

توی تایپ‌اسکریپت یه تایپ گلوبال به اسم Function داریم. این تایپ همه ویژگی‌های عمومی توابع جاوااسکریپت مثل bind و call رو پوشش میده؛ اما مشکلش اینه که وقتی ازش استفاده می‌کنیم، هر نوع تابعی رو قبول می‌کنه و موقع صدا زدن هم خروجی (return type) رو any در نظر می‌گیره. این باعث می‌شه چک‌های تایپ‌اسکریپت عملا بی‌اثر بشن.

اینجا تایپ‌اسکریپت هیچ کنترلی روی ورودی‌ها و خروجی نداره. برای همین بهتره که تایپ توابع رو دقیق مشخص کنیم. ولی اگه زمان کافی برای این کار نداشتیم، استفاده ازش برای تایپ توابع، از تایپ any بهتره.

@techstuff100
13👍3
پیچیدگی (complexity) در سیستم‌های نرم‌افزاری

تو طراحی نرم‌افزار، یکی از مهم‌ترین کارها اینه که بفهمیم چی سیستم رو پیچیده می‌کنه و چطور میشه جلوی این پیچیدگی رو گرفت. کتاب A Philosophy of Software Design تعریف خیلی کاربردی‌ای از complexity میده و نشونه‌ها و علت‌هاش رو بررسی کرده.

#A_Philosophy_of_Software_Design

@techstuff100
10👏3👍2
کدی که کار می‌کنه کافی نیست!

خیلی وقت‌ها توی پروژه‌ها فقط دنبال این هستیم که یه فیچر کار کنه و سریع تحویل بدیم. این روند اولش خوب پیش میره، ولی کم‌کم باعث پیچیدگی و کند شدن کار میشه... .

#A_Philosophy_of_Software_Design

@techstuff100
8👍4👏1