بازارسال شده از All a geek ever needs
«آزادی و عشق — این دو چیز را نیاز دارم. برای عشقم، زندگیام را فدا میکنم؛ برای آزادی، عشقم را.»
او یک سال بعد، در ۲۶ سالگی، در میدان جنگ کشته شد.
نه ثروت داشت. نه قدرت.
فقط میدانست که بعضی چیزها ارزش دارند — حتی اگر تمام عمرت را بگیرند.
@geek_need
شبتون بخیر
۱۹
۱۹:۳۹
از اونجایی که ثبتنام داخل این طرح به صورت غیرمستقیم روی دسترسی نداشتن میلیونها هموطن دیگه(که آزادکار! نیستن) به اینترنت آزاد تاثیر میذاره، اگر عقایدتون در تقابل با اینکار نیست میتونید از این لینک ثبت نام کنید:https://www.irannsr.org/fa/page/120025-ثبت-نام-آزادكار.html
عضو کانال "پاندوراکد" بشید:@pandoracode
۱.۴K
۹:۰۶
با توجه به طولانی شدن و تداوم قطعی دسترسی به اینترنت بینالملل، تصمیم گرفتیم یه پروژهی خیلی کوچیک رو خیلی یهویی بیاریم بالا و مجموعهای از وبسایتهای کاربردی رو درش self-host کنیم. هرچند هنوز در مرحلهی آغازین توسعهست و خیلی راه تا کامل شدن داره.
همین! امیدوارم به کارتون بیاد.
این وبسایت توسط علی هاشمی ساخته شده و لینک چنل تلگرامش(اگر خدایی نکرده و.پ.ن دارید) این هست:@HaashemiDev
۶۵۸
۱۳:۳۹
یه مقالهای که بارها دیدم تو سایتای مختلف به خاطر UpVote های زیادش ترند میشه عنوانش اینه:
۲۹ React Codebase Red Flags from a Senior Frontend Developer
یا همون: 29 ردفلگ(
) بزرگ فرانتاند دولوپرهای Senior داخل codebase های Reactای شون
از اونجایی که مقاله مفیدیه تصمیم گرفتم اینجا ارسالش کنم و از اونجایی که اگر لینک مقاله رو بذارم تنبلیمون میاد و نمیریم بخونیم، روزانه 3 یا 4 مورد مورد ازش رو در قالب پیام منتشر میکنم.
و از پیام بعدی با 3 مورد اول شروع میکنیم.
یا همون: 29 ردفلگ(
و از پیام بعدی با 3 مورد اول شروع میکنیم.
۲۰۷
۱۵:۵۵
۲۹ ردفلگ(
) بزرگ فرانتاند دولوپرهای Senior داخل codebase های Reactای شون.
قسمت اول 
۱.
استفاده از کتابخونه برای کاری که با Vanilla JS و خودِ جاوااسکریپت میشه انجام داد.
همه ما این کار رو کردیم:
مثل این که `lodash` رو اضافه کنیم فقط برای اینکه از `isNull` به جای `== null` استفاده کنیم.
یا استفاده از `dayjs` به جای `Intl.DateTimeFormat` به خاطر استفادههای احتمالی در آینده (که معلوم میشه هیچوقت اون آینده نمیرسه).
و از این قبیل کارها :)
اما این کار اشتباهه، چون هر وابستگی (dependency):
- هزینه نگهداری رو زیاد میکنه: باید وقتی باگها رفع شدن، آسیبپذیریها اعلام شدن یا نسخههای جدید اومدن، اون کتابخونه رو بهروز کنی.- به حجم باندل (bundle size) اضافه میکنه.- ممکنه وقتی `React` یا `TypeScript` رو ارتقا میدی، بشکنه.
قبل از این که وابستگی جدید اضافه کنی، از خودت بپرس: «آیا میتونم این کار رو با Vanilla JS خودِ جاوااسکریپت انجام بدم؟»
اگر جواب آره بود، همون کار رو بکن. این کار باعث میشه کدبیس (codebase) سبک و چابک بمونه.
@pandoracode
۲.
سراغ کتابخونههای سنگین رفتن، وقتی جایگزین سبکتر وجود داره!
`moment.js` وقتی مینیفای (minified) بشه، ۷۵ کیلوبایت حجم داره. اما `day.js` با همون API، فقط ۳ کیلوبایته.
`axios` هم ۱۴ کیلوبایت حجم داره. در حالی که `fetch API` خودِ مرورگر، هیچ حجمی به باندل اضافه نمیکنه.
من Pull Requestهایی رو دیدم که یکی یک کتابخونه ۷۰ کیلوبایتی اضافه کرده بود برای کاری که یه جایگزین ۳ کیلوبایتی به خوبی انجام میداد.
هیچکس سایز رو چک نکرده بود، چون هیچکس عادت نداشت. این حجمها زود جمع میشن و کاربرایی که با اینترنت ۳G در لاگوس یا سائوپائولو(یا از همه بدبخت تر خود ما ایرانیا :)) میان، قربانی میشن.
@pandoracode
۳.
Linter یا Formatter تنظیم نکردن
این مورد غیرقابل بحثه.
یه بار تو جلسهای بودم که مهندسها ۳۰ دقیقه بحث میکردن که از تب (tab) استفاده کنن یا فاصله (space).
چه چیزی بحث رو جمع کرد؟ این که فرمتر (formatter) رو برای کل ریپو (repo) تنظیم کردیم و رفتیم دنبال کارمون.
وقتی تنظیمات در سطح ریپو نباشه، هر مرور کدی (review) تبدیل میشه به بحث سر استایل، به جای این که درباره خودِ کد صحبت بشه.
یک بار تنظیمش کن و بذار کنار و move on کن تا هردفعه برات تبدیل به یه دردسر نشه.
برای مشاهده قسمتهای بعدی این مقاله عضو "پاندورا کد" بشید:@pandoracode
۱.
همه ما این کار رو کردیم:
مثل این که `lodash` رو اضافه کنیم فقط برای اینکه از `isNull` به جای `== null` استفاده کنیم.
یا استفاده از `dayjs` به جای `Intl.DateTimeFormat` به خاطر استفادههای احتمالی در آینده (که معلوم میشه هیچوقت اون آینده نمیرسه).
و از این قبیل کارها :)
اما این کار اشتباهه، چون هر وابستگی (dependency):
- هزینه نگهداری رو زیاد میکنه: باید وقتی باگها رفع شدن، آسیبپذیریها اعلام شدن یا نسخههای جدید اومدن، اون کتابخونه رو بهروز کنی.- به حجم باندل (bundle size) اضافه میکنه.- ممکنه وقتی `React` یا `TypeScript` رو ارتقا میدی، بشکنه.
قبل از این که وابستگی جدید اضافه کنی، از خودت بپرس: «آیا میتونم این کار رو با Vanilla JS خودِ جاوااسکریپت انجام بدم؟»
اگر جواب آره بود، همون کار رو بکن. این کار باعث میشه کدبیس (codebase) سبک و چابک بمونه.
@pandoracode
۲.
`moment.js` وقتی مینیفای (minified) بشه، ۷۵ کیلوبایت حجم داره. اما `day.js` با همون API، فقط ۳ کیلوبایته.
`axios` هم ۱۴ کیلوبایت حجم داره. در حالی که `fetch API` خودِ مرورگر، هیچ حجمی به باندل اضافه نمیکنه.
من Pull Requestهایی رو دیدم که یکی یک کتابخونه ۷۰ کیلوبایتی اضافه کرده بود برای کاری که یه جایگزین ۳ کیلوبایتی به خوبی انجام میداد.
هیچکس سایز رو چک نکرده بود، چون هیچکس عادت نداشت. این حجمها زود جمع میشن و کاربرایی که با اینترنت ۳G در لاگوس یا سائوپائولو(یا از همه بدبخت تر خود ما ایرانیا :)) میان، قربانی میشن.
@pandoracode
۳.
این مورد غیرقابل بحثه.
یه بار تو جلسهای بودم که مهندسها ۳۰ دقیقه بحث میکردن که از تب (tab) استفاده کنن یا فاصله (space).
چه چیزی بحث رو جمع کرد؟ این که فرمتر (formatter) رو برای کل ریپو (repo) تنظیم کردیم و رفتیم دنبال کارمون.
وقتی تنظیمات در سطح ریپو نباشه، هر مرور کدی (review) تبدیل میشه به بحث سر استایل، به جای این که درباره خودِ کد صحبت بشه.
یک بار تنظیمش کن و بذار کنار و move on کن تا هردفعه برات تبدیل به یه دردسر نشه.
۵۰۷
۱۶:۱۰
بازارسال شده از پرامپت هوش مصنوعی Gemini
🥷 @GeminiPrompt
۷
۸:۰۵
نویسنده میگه بحث سر این نیست که هوش مصنوعی شما رو کندذهن میکنه یا نه؛ بحث سر اینه که استفاده از هوش مصنوعی برای کدنویسی، احتمالاً باعث میشه شما به مرور *مهارتهای فنیتون تحلیل بره و مهندس ضعیفتری بشید. ولی نکتهٔ ترسناک اینجاست که حتی اگه این موضوع درست باشه، ممکنه چارهای جز استفاده ازش نداشته باشیم! درست مثل کارگر ساختمونی که مجبوره بارهای سنگین بلند کنه و بهمرور کمرش آسیب میبینه، ما هم ممکنه مجبور باشیم بهخاطر منافع کوتاهمدت، تواناییهای بلندمدت شناختی خودمون رو قربانی کنیم.
نویسنده یه تشبیه جالب به ورزشکارای حرفهای میزنه که دوران اوج درآمدشون نهایتاً ۱۵ ساله(از ۲۰ تا ۳۵ سالگی) و بعد از ۳۵ سالگی بدنشون دیگه جواب نمیده. به نظرش ممکنه ما هم اولین نسلی از مهندسای نرمافزار شده باشیم که باید با این واقعیت کنار بیان که این شغل، همیشگی نیست و باید براش از قبل برنامهریزی مالی و شغلی داشته باشیم
خلاصه که مقاله خیلی هشداردهنده و بهدردبخوریه. به جای انکار، شاید بهتره بپذیریم که اگه هوش مصنوعی واقعاً اینقدر قدرتمند بشه، اون مهندسی که حاضر باشه بهقیمت سوزوندن توانایی ذهنیش ازش استفاده کنه، از کسی که مقاومت میکنه جلو میزنه. آینده شغلی ما شاید به اندازهٔ قبل طولانی نباشه، پس باید حواسمون باشه غافلگیر نشیم*
از این لینک میتونید به نسخه زبان اصلی مقاله دسترسی داشته باشید.
۴۲۰
۱۲:۰۳
خیلی تفننی و تفریحی و از روی بیکاری گفتم بذار آزمون گیت فرادرس رو بدم(سالها توی پنل کاربریم بود) و سوالاتش یکی از یکی عجیب تر و گزینهها حتی از سوالا هم عجیب تر بودن!
تو گزینهی دوم اومده fetch رو ترجمه کرده "واکشی"
میتونست بگه "دریافت" و از این قبیل کلمات ولی باید حتما اون کلمه عجیبه رو انتخاب میکردن :)))
@pandoracode
تو گزینهی دوم اومده fetch رو ترجمه کرده "واکشی"
میتونست بگه "دریافت" و از این قبیل کلمات ولی باید حتما اون کلمه عجیبه رو انتخاب میکردن :)))
@pandoracode
۱۶۹
۲۱:۲۱
فرق این ۴ مورد رو توی Nextjs میدونید؟۱- API Routes۲- Route Handlers۳- Server Components۴- Server Actions
بعد از اینکه کلی کتابخونه و مستندات کامپوننتهای React و Nextjs رو زیر و رو کردم، متوجه شدم حتی خود نویسندهها هم بعضی وقتا تفاوت بین API Routes، Route Handlers، Server Components و Server Actions رو در Nextjs قاطی میکنن.
بعد از دیدن یه ویدئوی یوتیوب از Lee Robinson (معاون محصول Vercel) که به بعضی از اشتباهات رایج توی Nextjs اشاره میکرد، گفتم بذار منم یه پست وبلاگی به سبک خودمون بنویسم و قضیه رو یه بار برای همیشه روشن کنم.
تفاوت API Routes در مقابل Route Handlers توی Pages Router با pages/api و کار میکردی؛ توی App Router هم route.ts میسازی و متدهای HTTP مثل `GET/POST` رو مستقیم export میکنی. اینجا دیگه از پکیج `next/server` استفاده میکنی. فقط یادت باشه این دوتا قرار نیست کنار page.ts توی یه پوشه باشن. پس خیلی خلاصه API Routes برای Pages Router عه و الان منسوخه و Route Handler برای App Router هست.
Server Components: تو App Router، همه کامپوننتها پیشفرض Server Component هستن؛ مگه اینکه بالاشون `"use client"` بزاری. کارشون رندر UI روی سروره و برای fetch داده میتونن Server Actions رو صدا بزنن. هر چی سمت سرور بمونه، پرفورمنس بهتر میشه
️. تعامل کاربر (مثل کلیک) اما حتماً باید سمت کلاینت باشه.
Server Actions: اینا فانکشنهای async هستن که یا توی فایل `action.ts` با دستور `"use server"` تعریف میشن، یا `"use server"` رو مستقیم داخل بدنه یه فانکشن میذاری. هم از Server Components هم از Client Components (با import جدا) صداش میزنن. کاربرد اصلی: fetch داده و مدیریت submit فرمها 🧩.
همین دیگه! تفاوتی که اگر یادش بگیری، کدنویسی Next.js خیلی جاها براتون راحتتر میشه چون مفاهیم دستتونه
برای دیدن خلاصه مقالههای بیشتر عضو پاندوراکد بشید:@pandoracode
بعد از اینکه کلی کتابخونه و مستندات کامپوننتهای React و Nextjs رو زیر و رو کردم، متوجه شدم حتی خود نویسندهها هم بعضی وقتا تفاوت بین API Routes، Route Handlers، Server Components و Server Actions رو در Nextjs قاطی میکنن.
بعد از دیدن یه ویدئوی یوتیوب از Lee Robinson (معاون محصول Vercel) که به بعضی از اشتباهات رایج توی Nextjs اشاره میکرد، گفتم بذار منم یه پست وبلاگی به سبک خودمون بنویسم و قضیه رو یه بار برای همیشه روشن کنم.
همین دیگه! تفاوتی که اگر یادش بگیری، کدنویسی Next.js خیلی جاها براتون راحتتر میشه چون مفاهیم دستتونه
برای دیدن خلاصه مقالههای بیشتر عضو پاندوراکد بشید:@pandoracode
۱۴۱
۱۶:۰۵
دیروز جمنای گفت بیا مدل ویدئویی جدیدم رو امتحان کن.که اسمش رو Veo گذاشته اگر اشتباه نکنم و درست یادم باشه.
بهش یه پرامپت ساده دادم که "یه ویدئو درست کن که توش توضیح بدی یه فرانت اند دولوپر چطور میتونه تبدیل به یه فول استک دولوپر بشه. دوست دارم تم Animeای داشته باشه"
و این شد حاصلش. نمیدونم چرا فارسی رو با لهجه آبادانی صحبت میکنه :)
*پ.ن: البته پرامپت رو به انگلیسی بهش گفتم نه به فارسی. یه سری قوانین درونی دارم که تا جای ممکن باعث میشن از پرامپت فارسی دادن بر حذر باشم(شما هم نکنید خدایی، کار سمیه)
برای دیدن ویدیوها و اتفاقات جالبتر، "پاندوراکد" رو دنبال کن:@pandoracode
بهش یه پرامپت ساده دادم که "یه ویدئو درست کن که توش توضیح بدی یه فرانت اند دولوپر چطور میتونه تبدیل به یه فول استک دولوپر بشه. دوست دارم تم Animeای داشته باشه"
و این شد حاصلش. نمیدونم چرا فارسی رو با لهجه آبادانی صحبت میکنه :)
*پ.ن: البته پرامپت رو به انگلیسی بهش گفتم نه به فارسی. یه سری قوانین درونی دارم که تا جای ممکن باعث میشن از پرامپت فارسی دادن بر حذر باشم(شما هم نکنید خدایی، کار سمیه)
برای دیدن ویدیوها و اتفاقات جالبتر، "پاندوراکد" رو دنبال کن:@pandoracode
۶۸
۲۰:۴۶