This media is not supported in your browser
VIEW IN TELEGRAM
این ریپو را از دست ندید. یک مقاله کامل (survey paper) راجع به Agentic RAG هست به همراه کلی منبع و مطلب آموزشی دیگه راجع به این موضوع!
هم مقاله را بخونید و هم خود ریپو را کامل چک کنید.
https://github.com/asinghcsu/AgenticRAG-Survey
@DevTwitter | <Mehdi Allahyari/>
هم مقاله را بخونید و هم خود ریپو را کامل چک کنید.
https://github.com/asinghcsu/AgenticRAG-Survey
@DevTwitter | <Mehdi Allahyari/>
👍18👎1
این ده تا تمرین برای Data Engineering حدود خوبی از دانش فنی یک مهندس داده جونیور و متوسط رو پوشش میده.
پیشنهادش میکنم.
https://github.com/danielbeach/data-engineering-practice
@DevTwitter | <Saman/>
پیشنهادش میکنم.
https://github.com/danielbeach/data-engineering-practice
@DevTwitter | <Saman/>
👍29
امروز فهمیدم تو شرکتمون برای کارای web development از سایت bolt.new استفاده میکنن. گفتن اینجوری فقط پول توکن AI رو میدیم و هزینه تموم شده کمتر از نصف هزینه یک دوولوپر تو هند برامون در میاد!
@DevTwitter | <Nima/>
@DevTwitter | <Nima/>
👎115👍25❤1
به طور متوسط، یک مهندس سنیور نرمافزار ۳ تا ۵ برابر بیشتر از یک جونیور درآمد داره. این فقط به خاطر تجربه بیشتر نیست، بلکه به دلیل ارزش بیشتری هست که به شرکت میاره.
حالا فرض کنید دو مهندس تو یه شرکت کار میکنند:
مهندس A (سختکوش)
- روزی 10 ساعت کار میکنه، باگهارو را درست میکنه و هزاران خط کد مینویسه.
- تمام وظایف محول شده رو بدون فکر کردن به تأثیرشون انجام میده.
- و یه جورایی در چرخهی "کار زیاد، پیشرفت کم" گیر کرده.
مهندس B (موثر)
- قبل از نوشتن حتی یک خط کد، وقت میگذاره تا مشکل اصلی رو بفهمه.
- میتونه یه مشکل بزرگ تو سیستم پیدا کنه و با یک اسکریپت 500 خطی، سالانه ۵۰ تا ۷۰ میلیون تو هزینههای شرکت صرفهجویی کنه.
- ورکفلو رو بهتر میکنه تا سیستم سریعتر، بهینهتر و مقیاسپذیر بشه.
حالا وقتی زمان ترفیع برسه به نظرت شرکت کدوم رو بیشتر میخواد؟
انصاف هست مهندس A که مشغول بوده صرفا و تسکهارو انجام میداده و ارزش و تاثیر کمتری تو شرکت میذاره بیشتر ترفیع بگیره؟ خوب نه (نه اینکه نگیره، اینه که بیشتر یا کمتر بگیره)
پس کار ما مساوی هست با تأثیری که میگذاریم
چند تا نکته در نهایت
- مشکلات را حل کن، نه اینکه فقط کارارو را انجام بده
- قبل از شروع کدنویسی، بپرس: این چرا مهمه؟
- روی مشکلات بزرگ، بهینهسازی و اتومیشن کار کن که ارزش واقعی میسازه.
-فراتر از کدنویسی فکر کن
- یک سنیور نصفش مشکلگشا و نصفش برنامهریزه.
- یک سنیور سیستمها را طراحی میکنه، پیچیدگی رو کم میکنه و تصمیمهای بهتر میگیره، نه فقط کد بزنه.
- بفهم کارت چطور به شرکت کمک میکنه
- یادت باشه یک اسکریپت 200 خطی که پول صرفهجویی کنه، از یک ویژگی 10,000 خطی که کسی استفاده نکنه باارزشتره.
- بهترین مهندسها فقط کد نمینویسن، سیستمها محصولات و کارایی رو بهتر میکنن.
- هدف این نیست که کد بیشتری بنویسی، هدف اینه که ارزش بیشتری بسازی.
پس (در یک شرکت یا تیم سالم) ارزش بیشتری بسازی، پاداش بیشتری میگیری.
@DevTwitter | <Saman/>
حالا فرض کنید دو مهندس تو یه شرکت کار میکنند:
مهندس A (سختکوش)
- روزی 10 ساعت کار میکنه، باگهارو را درست میکنه و هزاران خط کد مینویسه.
- تمام وظایف محول شده رو بدون فکر کردن به تأثیرشون انجام میده.
- و یه جورایی در چرخهی "کار زیاد، پیشرفت کم" گیر کرده.
مهندس B (موثر)
- قبل از نوشتن حتی یک خط کد، وقت میگذاره تا مشکل اصلی رو بفهمه.
- میتونه یه مشکل بزرگ تو سیستم پیدا کنه و با یک اسکریپت 500 خطی، سالانه ۵۰ تا ۷۰ میلیون تو هزینههای شرکت صرفهجویی کنه.
- ورکفلو رو بهتر میکنه تا سیستم سریعتر، بهینهتر و مقیاسپذیر بشه.
حالا وقتی زمان ترفیع برسه به نظرت شرکت کدوم رو بیشتر میخواد؟
انصاف هست مهندس A که مشغول بوده صرفا و تسکهارو انجام میداده و ارزش و تاثیر کمتری تو شرکت میذاره بیشتر ترفیع بگیره؟ خوب نه (نه اینکه نگیره، اینه که بیشتر یا کمتر بگیره)
پس کار ما مساوی هست با تأثیری که میگذاریم
چند تا نکته در نهایت
- مشکلات را حل کن، نه اینکه فقط کارارو را انجام بده
- قبل از شروع کدنویسی، بپرس: این چرا مهمه؟
- روی مشکلات بزرگ، بهینهسازی و اتومیشن کار کن که ارزش واقعی میسازه.
-فراتر از کدنویسی فکر کن
- یک سنیور نصفش مشکلگشا و نصفش برنامهریزه.
- یک سنیور سیستمها را طراحی میکنه، پیچیدگی رو کم میکنه و تصمیمهای بهتر میگیره، نه فقط کد بزنه.
- بفهم کارت چطور به شرکت کمک میکنه
- یادت باشه یک اسکریپت 200 خطی که پول صرفهجویی کنه، از یک ویژگی 10,000 خطی که کسی استفاده نکنه باارزشتره.
- بهترین مهندسها فقط کد نمینویسن، سیستمها محصولات و کارایی رو بهتر میکنن.
- هدف این نیست که کد بیشتری بنویسی، هدف اینه که ارزش بیشتری بسازی.
پس (در یک شرکت یا تیم سالم) ارزش بیشتری بسازی، پاداش بیشتری میگیری.
@DevTwitter | <Saman/>
👍157👎7❤3🔥2
من تو اخرین ویدیو کانال یوتوبم با چپترلید فرانت شیپور صحبت کردم و حدود دو ساعت نیم درباره خیلی از مسایل از تاثیر هوش مصنوعی تا بازارکار و درامد فرانت با سینا صحبت کردم. اگر براتون جذابه لینکش رو اینجا میزارم.
اگر دوستی یا آشنایی دارید که به فرانت علاقه داره چنل یوتوب ما و مخصوصا این مصاحبه میتونه دید خوبی رو بهش بده.
https://www.youtube.com/watch?v=2LI_34sb7nY&t=2427s
@DevTwitter | <Andishe/>
اگر دوستی یا آشنایی دارید که به فرانت علاقه داره چنل یوتوب ما و مخصوصا این مصاحبه میتونه دید خوبی رو بهش بده.
https://www.youtube.com/watch?v=2LI_34sb7nY&t=2427s
@DevTwitter | <Andishe/>
👎27👍18🔥1
The Anatomy of Browser Rendering: How Web Pages Come to Life?
این تیپ سوالات را معمولا شرکت های بزرگ(اسنپ، تپسی، دیجی کالا، و...) میپرسن و ربطی هم به این نداره ریکت کار میکنی یا ویو یا انگولار
و این سوال رو یکی از این شرکت ها تو جلسه تکنیکال ازم پرسیدن که اصلا بهش فکرم نمیکردم
اگه بخوام واضحتروخلاصه بیان کنم مرورگر فایل های html و css و js رو به عنوان ورودی میگرد و پردازش های زیر را انجام میدهد تا به اون خروجی قابل استفاده تبدیل کند.
۱ - Parsing HTML
مرورگر کد HTML را دریافت کرده و آن را به یک ساختار درختی به نام DOM (Document Object Model) تبدیل میکند.
۲ - Parsing CSS
مرورگر کدهای CSS را نیز دریافت کرده و آنها را به یک ساختار درختی به نام CSSOM (CSS Object Model) تبدیل میکند. CSSOM شامل اطلاعاتی درباره استایلها و قوانین CSS است که بر روی عناصر HTML اعمال میشوند.
۳ - Constructing the Rendering Tree
مرورگر DOM و CSSOM را ترکیب کرده و یک درخت رندر (Render Tree) ایجاد میکند.
۴ - Layout
در این مرحله، مرورگر موقعیت و ابعاد هر عنصر را در صفحه محاسبه میکند. این فرآیند به عنوان Layout یا Reflow نیز شناخته میشود.
۵ - Painting
پس از تعیین موقعیت و ابعاد عناصر، مرورگر شروع به رنگآمیزی (Painting) میکند.
در این مرحله، پیکسلها بر روی صفحه رسم میشوند. این شامل رسم متن، تصاویر، رنگ پسزمینه، حاشیهها و سایر جلوههای بصری است.
۶ - Compositing
در نهایت، مرورگر لایههای مختلف را با هم ترکیب کرده و صفحه نهایی را ایجاد میکند. این فرآیند به عنوان Compositing شناخته میشود. Compositing به مرورگر اجازه میدهد تا تغییرات در صفحه (مانند انیمیشنها یا اسکرول) را بهطور کارآمد مدیریت کند.
@DevTwitter | <Alireza Majdi/>
این تیپ سوالات را معمولا شرکت های بزرگ(اسنپ، تپسی، دیجی کالا، و...) میپرسن و ربطی هم به این نداره ریکت کار میکنی یا ویو یا انگولار
و این سوال رو یکی از این شرکت ها تو جلسه تکنیکال ازم پرسیدن که اصلا بهش فکرم نمیکردم
اگه بخوام واضحتروخلاصه بیان کنم مرورگر فایل های html و css و js رو به عنوان ورودی میگرد و پردازش های زیر را انجام میدهد تا به اون خروجی قابل استفاده تبدیل کند.
۱ - Parsing HTML
مرورگر کد HTML را دریافت کرده و آن را به یک ساختار درختی به نام DOM (Document Object Model) تبدیل میکند.
۲ - Parsing CSS
مرورگر کدهای CSS را نیز دریافت کرده و آنها را به یک ساختار درختی به نام CSSOM (CSS Object Model) تبدیل میکند. CSSOM شامل اطلاعاتی درباره استایلها و قوانین CSS است که بر روی عناصر HTML اعمال میشوند.
۳ - Constructing the Rendering Tree
مرورگر DOM و CSSOM را ترکیب کرده و یک درخت رندر (Render Tree) ایجاد میکند.
۴ - Layout
در این مرحله، مرورگر موقعیت و ابعاد هر عنصر را در صفحه محاسبه میکند. این فرآیند به عنوان Layout یا Reflow نیز شناخته میشود.
۵ - Painting
پس از تعیین موقعیت و ابعاد عناصر، مرورگر شروع به رنگآمیزی (Painting) میکند.
در این مرحله، پیکسلها بر روی صفحه رسم میشوند. این شامل رسم متن، تصاویر، رنگ پسزمینه، حاشیهها و سایر جلوههای بصری است.
۶ - Compositing
در نهایت، مرورگر لایههای مختلف را با هم ترکیب کرده و صفحه نهایی را ایجاد میکند. این فرآیند به عنوان Compositing شناخته میشود. Compositing به مرورگر اجازه میدهد تا تغییرات در صفحه (مانند انیمیشنها یا اسکرول) را بهطور کارآمد مدیریت کند.
@DevTwitter | <Alireza Majdi/>
👍48❤15👎3🔥1
آخر ساله و این ریپو بیشتر از همیشه به کارتون خواهد آمد!
پروژه های استخدامی برنامه نویسان لاراول
https://github.com/laravel98developer/laravel-hiring-projects
@DevTwitter | <Ali Salehi/>
پروژه های استخدامی برنامه نویسان لاراول
https://github.com/laravel98developer/laravel-hiring-projects
@DevTwitter | <Ali Salehi/>
👍31👎10🔥8❤2
برای ویندوز XP که با React و TypeScript ساخته بودم دارم یه آپدیت جدید میدم بیرون.
اگه هنوز ندیدین خوشحال میشم بهش سر بزنید:
xp.mehditohidi.com
@DevTwitter | <Mehdi Tohidi/>
اگه هنوز ندیدین خوشحال میشم بهش سر بزنید:
xp.mehditohidi.com
@DevTwitter | <Mehdi Tohidi/>
🔥107👍25👎7❤6
و اینبار Duckduckgo وارد صحنه میشه!
از طرق http://Duck.ai میتونید به این مدل ها به صورت ناشناس و رایگان دسترسی داشته باشین. چی بهتر از این:)
@DevTwitter | <Alucard/>
از طرق http://Duck.ai میتونید به این مدل ها به صورت ناشناس و رایگان دسترسی داشته باشین. چی بهتر از این:)
@DevTwitter | <Alucard/>
🔥90👍15👎10
هر وقت سر و کارم به هارد دیسک میافته مثل پارتیشن بندی، تغییر فایل سیستم File system ، تغییر پارتیشن تیبل (Partition Tables)
تغییراندازه پارتیشن ها و ...
گزینه اول من gparted است
@DevTwitter | <MehrdadLinux/>
تغییراندازه پارتیشن ها و ...
گزینه اول من gparted است
@DevTwitter | <MehrdadLinux/>
👍53👎5
احتمالا با این مخزن برخورد کردید.
لیستی از سرویسها و سایتهایی که پلن رایگان هم دارند.
از سرور، DNS، محصولات امنیتی و خدمات ابری تا هر چیزی که شما به عنوان توسعهدهنده ممکن است به آن نیاز داشته باشید.
https://github.com/ripienaar/free-for-dev
@DevTwitter | <Vahid Nameni/>
لیستی از سرویسها و سایتهایی که پلن رایگان هم دارند.
از سرور، DNS، محصولات امنیتی و خدمات ابری تا هر چیزی که شما به عنوان توسعهدهنده ممکن است به آن نیاز داشته باشید.
https://github.com/ripienaar/free-for-dev
@DevTwitter | <Vahid Nameni/>
👍46
آمازون با صدها میلیون محصول در کاتالوگ، هر کاربر را با صفحهای شخصیسازیشده (Recommendation System) روبهرو میکنه.
این صفحهها بر اساس علایق (Interests)، محیط فعلی (Context)، رفتارها و خریدهای گذشته تنظیم میشن. مثلاً اگه آیفون خریدی، کاورشو هم بهت پیشنهاد میشه.
چطوری میشه؟
سیستم ریکامندر آمازون به سه بخش اصلی تقسیم میشه:
- پیشنهاد محصولات مرتبط (Related Products Recommendation)
- پیشنهاد خرید مجدد (Repeat Purchase Recommendation)
- و پیشنهاد ویژگیهای جستجو (Query-Attribute Search Recommendation).
آمازون برای پیشنهاد محصولات مرتبط از یک Product Graph (گراف محصول) استفاده میکنه؛ تو این گراف راسها (Nodes) نشاندهندهی محصولاتن، در حالی که یالها (Edges) رابطه میان محصولات رو نشون میدن، مثلا خرید همزمان (Co-Purchase) یا بازدید همزمان (Co-View).
هدف گراف محصول اینه که محصولاتی که احتمال خرید همزمان اونا بالاست رو پیشنهاد بده.
یک مسئله اصلی، "Selection Bias" هست، یعنی اگه محصولی (مثل کاور آیفون) به دلیل موجودی کم نشون داده نشه، دادههای خرید گمراهکننده خواهد بود.
آمازون مشکل Selection Bias رو با اضافه کردن روابط دوم مرحلهای (Two-stage relations) حل میکنه.
محصولات جدید (Cold Start) هم یه توی این سیستم مثل بقیه سیستمهای ریکامندر چالش هست، چطوری حلش کردن؟
آمازون با کمک Graph Neural Networks (GNNs) از طریق یادگیری Embeddings، محصولات جدید رو به گراف محصول اضافه میکنه تا پیشنهادهای مرتبط رو بتونه ارايه بده.
در GNNها دو Embedding برای هر محصول تولید میشن، Source (برای محصول کوئری شده) و Target (برای محصول پیشنهادی).
اینها از طریق رابطههای Co-Purchase و Co-View به روزرسانی میشن و پیشنهادهای دقیقتری ارایه میدن.
تو بخش پیشنهاد خرید مجدد، سیستم احتمال خرید دوباره یه محصول مثلا خمیر دندون رو بر اساس تاریخچه خرید (Purchase History) و زمان آخرین خرید پیشبینی میکنه، و CTR رو افزایش میده.
آمازون تو بحث پیشنهاد خرید مجدد از مدلهای مختلفی برای این پیشبینیها استفاده میکنه:
- Repeat Customer Probability Model (بر اساس فرکانس خرید)
- Aggregate Time Distribution (ATD) Model (بر اساس رفتار گذشته)
- Poisson-Gamma (PG) Model (بر اساس فرآیند Poisson و توزیع Gamma)
بحث بعدی پیشنهاد ویژگیهای جستجو (Query-Attribute Search Recommendation) هستش، مثلا برای درخواستهای کوتاه (مانند آیفون ۱۰)، آمازون از attributeهای غیر قابل مشاهده (مثل Brand:Apple یا Supplement:Cover) استفاده میکنه تا نتایج رو بهتر کنه.
این سیستم شامل Query Intent Classification (تشخیص قصد کوئری مثلا بگیم)، Explicit Attribute Parsing (تشخیص مشخصات صریح) و Implicit Attribute Recommendations (پیشنهاد مشخصات ضمنی با استفاده از روابط گراف و GNNها) هست.
این قسمت پیشبینیش و مدلا اگه یکم سخته فهمیدنش مقالشون اینجاس:
https://www.amazon.science/publications/query-attribute-recommendation-at-amazon-search
خلاصه اینکه آمازون جون با استفاده از GNNs، Product Graph و Probabilistic Models سیستمی مقیاسپذیر و دقیقی برای پیشنهاداتش ساخته و تونستن نرخ خرید رو با سیستم ریکاندرشون بالا ببرن.
این درسها برای ما هم تو طراحی سیستمهای Recommender میتونه الهامبخش باشه
@DevTwitter | <Saman/>
این صفحهها بر اساس علایق (Interests)، محیط فعلی (Context)، رفتارها و خریدهای گذشته تنظیم میشن. مثلاً اگه آیفون خریدی، کاورشو هم بهت پیشنهاد میشه.
چطوری میشه؟
سیستم ریکامندر آمازون به سه بخش اصلی تقسیم میشه:
- پیشنهاد محصولات مرتبط (Related Products Recommendation)
- پیشنهاد خرید مجدد (Repeat Purchase Recommendation)
- و پیشنهاد ویژگیهای جستجو (Query-Attribute Search Recommendation).
آمازون برای پیشنهاد محصولات مرتبط از یک Product Graph (گراف محصول) استفاده میکنه؛ تو این گراف راسها (Nodes) نشاندهندهی محصولاتن، در حالی که یالها (Edges) رابطه میان محصولات رو نشون میدن، مثلا خرید همزمان (Co-Purchase) یا بازدید همزمان (Co-View).
هدف گراف محصول اینه که محصولاتی که احتمال خرید همزمان اونا بالاست رو پیشنهاد بده.
یک مسئله اصلی، "Selection Bias" هست، یعنی اگه محصولی (مثل کاور آیفون) به دلیل موجودی کم نشون داده نشه، دادههای خرید گمراهکننده خواهد بود.
آمازون مشکل Selection Bias رو با اضافه کردن روابط دوم مرحلهای (Two-stage relations) حل میکنه.
محصولات جدید (Cold Start) هم یه توی این سیستم مثل بقیه سیستمهای ریکامندر چالش هست، چطوری حلش کردن؟
آمازون با کمک Graph Neural Networks (GNNs) از طریق یادگیری Embeddings، محصولات جدید رو به گراف محصول اضافه میکنه تا پیشنهادهای مرتبط رو بتونه ارايه بده.
در GNNها دو Embedding برای هر محصول تولید میشن، Source (برای محصول کوئری شده) و Target (برای محصول پیشنهادی).
اینها از طریق رابطههای Co-Purchase و Co-View به روزرسانی میشن و پیشنهادهای دقیقتری ارایه میدن.
تو بخش پیشنهاد خرید مجدد، سیستم احتمال خرید دوباره یه محصول مثلا خمیر دندون رو بر اساس تاریخچه خرید (Purchase History) و زمان آخرین خرید پیشبینی میکنه، و CTR رو افزایش میده.
آمازون تو بحث پیشنهاد خرید مجدد از مدلهای مختلفی برای این پیشبینیها استفاده میکنه:
- Repeat Customer Probability Model (بر اساس فرکانس خرید)
- Aggregate Time Distribution (ATD) Model (بر اساس رفتار گذشته)
- Poisson-Gamma (PG) Model (بر اساس فرآیند Poisson و توزیع Gamma)
بحث بعدی پیشنهاد ویژگیهای جستجو (Query-Attribute Search Recommendation) هستش، مثلا برای درخواستهای کوتاه (مانند آیفون ۱۰)، آمازون از attributeهای غیر قابل مشاهده (مثل Brand:Apple یا Supplement:Cover) استفاده میکنه تا نتایج رو بهتر کنه.
این سیستم شامل Query Intent Classification (تشخیص قصد کوئری مثلا بگیم)، Explicit Attribute Parsing (تشخیص مشخصات صریح) و Implicit Attribute Recommendations (پیشنهاد مشخصات ضمنی با استفاده از روابط گراف و GNNها) هست.
این قسمت پیشبینیش و مدلا اگه یکم سخته فهمیدنش مقالشون اینجاس:
https://www.amazon.science/publications/query-attribute-recommendation-at-amazon-search
خلاصه اینکه آمازون جون با استفاده از GNNs، Product Graph و Probabilistic Models سیستمی مقیاسپذیر و دقیقی برای پیشنهاداتش ساخته و تونستن نرخ خرید رو با سیستم ریکاندرشون بالا ببرن.
این درسها برای ما هم تو طراحی سیستمهای Recommender میتونه الهامبخش باشه
@DevTwitter | <Saman/>
👍34🔥5👎2
اولین مشارکت من در دنیای FOSS مختصر به اینکه یه افزونه تعویض DNS نوشتم برای گنوم با هوش مصنوعی. و با یه دستور میتونید DNS های تحریم شکن رو اضافه کنید بهش. اسمش هم ساناد هست.
https://extensions.gnome.org/extension/7861/sanad/
https://github.com/MirS0bhan/sanad
@DevTwitter | <میرسبحان/>
https://extensions.gnome.org/extension/7861/sanad/
https://github.com/MirS0bhan/sanad
@DevTwitter | <میرسبحان/>
👍51❤4🔥3
شاید شما هم مثل عمو فری عاشق axios باشید و دلتون نیاد هیچوقت ازش جدا بشید!
همینطور شیفتهی Next.js 15 که کلی قابلیت خفن بهش اضافه شده!
دل نیست که، دریاست...
ولی یه مشکلی هست!
نکست توی داکیومنتش تاکید کرده که بهتره از fetch استفاده کنید، چون کلی API کاربردی مثل:
- مدت زمان کش (cache)
- صفحات استاتیک (Static Generation)
- بهروزرسانی صفحات بر اساس الگوی زمانی (Revalidation)
رو داره که باعث میشه صفحات شما همیشه بهروز و سریع بمونن.
اما اگر بگم یه راه هست که همه اینارو به axios هم بدیم ، اونوقت چی میگید؟
با استفاده از unstable_cache توی Next.js 15 میتونید axios رو مجهز به کش سرور، revalidation و static generation کنید!
برای این کار کافیه که unstable_cache رو فراخانی کنید و بپیچید دور درخواستتون
و کانفیگ مورد نظرتون رو هم بهش پاس بدید
و کار تمومه !
هر بار که این تابع رو صدا بزنید، اول کش چک میشه و اگه معتبر باشه، بدون درخواست جدید، دادههای کش شده برمیگرده!
َaxios همون axios میمونه، ولی از مزایای کش و ISR در Next.js هم بهره میبرید!
پس دیگه مجبور نیستید بین axios و fetch یکی رو انتخاب کنید!
توضیحات اضافه :
بعضی وقتا درخواستها سمت کلاینت هستن و بعضی وقتا سمت سرور.
برای درخواستهای کلاینتی، من از همین ترکیب + TanStack query استفاده میکنم تا مدیریت درخواستها راحتتر بشه.
البته اگه اصل Single Responsibility رو رعایت کنید، میتونید:
- درخواست unstable_cache رو جدا بسازید
- هوک استفاده از اون در TanStack Query رو هم جدا نگه دارید
و بعد، بسته به نیازتون، هرکدوم رو که لازم داشتید فراخوانی کنی
@DevTwitter | <Fariborz Shalghooni/>
همینطور شیفتهی Next.js 15 که کلی قابلیت خفن بهش اضافه شده!
دل نیست که، دریاست...
ولی یه مشکلی هست!
نکست توی داکیومنتش تاکید کرده که بهتره از fetch استفاده کنید، چون کلی API کاربردی مثل:
- مدت زمان کش (cache)
- صفحات استاتیک (Static Generation)
- بهروزرسانی صفحات بر اساس الگوی زمانی (Revalidation)
رو داره که باعث میشه صفحات شما همیشه بهروز و سریع بمونن.
اما اگر بگم یه راه هست که همه اینارو به axios هم بدیم ، اونوقت چی میگید؟
با استفاده از unstable_cache توی Next.js 15 میتونید axios رو مجهز به کش سرور، revalidation و static generation کنید!
برای این کار کافیه که unstable_cache رو فراخانی کنید و بپیچید دور درخواستتون
و کانفیگ مورد نظرتون رو هم بهش پاس بدید
و کار تمومه !
هر بار که این تابع رو صدا بزنید، اول کش چک میشه و اگه معتبر باشه، بدون درخواست جدید، دادههای کش شده برمیگرده!
َaxios همون axios میمونه، ولی از مزایای کش و ISR در Next.js هم بهره میبرید!
پس دیگه مجبور نیستید بین axios و fetch یکی رو انتخاب کنید!
توضیحات اضافه :
بعضی وقتا درخواستها سمت کلاینت هستن و بعضی وقتا سمت سرور.
برای درخواستهای کلاینتی، من از همین ترکیب + TanStack query استفاده میکنم تا مدیریت درخواستها راحتتر بشه.
البته اگه اصل Single Responsibility رو رعایت کنید، میتونید:
- درخواست unstable_cache رو جدا بسازید
- هوک استفاده از اون در TanStack Query رو هم جدا نگه دارید
و بعد، بسته به نیازتون، هرکدوم رو که لازم داشتید فراخوانی کنی
@DevTwitter | <Fariborz Shalghooni/>
👍34👎5🔥3❤1
استفاده کنید هم باحاله هم کاربردی
داستانش چیه :
KIMI
یه مدل زبانی جدید چینیه که میتونه همزمان تا 50 فایل رو بررسی کنه و متن تا 200,000 توکن رو پردازش کنه. حتی ظاهرشم هم خیلی شبیه دیپسیک هستش
لینک:
https://kimi.ai
@DevTwitter | <Mr.programmer/>
داستانش چیه :
KIMI
یه مدل زبانی جدید چینیه که میتونه همزمان تا 50 فایل رو بررسی کنه و متن تا 200,000 توکن رو پردازش کنه. حتی ظاهرشم هم خیلی شبیه دیپسیک هستش
لینک:
https://kimi.ai
@DevTwitter | <Mr.programmer/>
👍42👎10
یه خبر خوب واسه Javanoscript بلدها:
اگه میخواید واسه خودتون یه وبسایت یا اپ ساده پیاده سازی کنید نیازی به هزینه هاست و سرور ندارید.
کلادفلر بهترین سرویس رو رایگان و بدون تحریم در اختیارتون گذاشته!
اگه درست پیاده سازی کنید سرعتش فوق العاده است
تقریبا از همه کتابخونه های سمت فرانت پشتیبانی میکنه من با Nextjs امتحان کردم عالی بود لینک مستندات رو میذارم تا امتحان کنید. حتما تجربیاتتون رو به اشتراک بذارید:
https://developers.cloudflare.com/pages/framework-guides/
تنها چیزی که لازم دارید یه اکانت کلادفلر و ابزار کامندلاین wrangler هست.
اگه نیاز به بکاند و دیتابیس ساده دارید، میتونید از worker های کلادفلر استفاده کنید.
من برای بکاند خودم یه سرور trpc با دیتابیس D1 (SQLite) پیاده سازی کردم. برای پیاده سازی کارهای ساده خیلی خوبه.
کلی Integrations خوب هم داره که هنوز تست نکردم. ولی میتونید ورکر خودتون رو از طریق زیرساخت کلادفلر به سرویس های لبه مثل:
Neon Database (managed serverless PostgreSQL)
Supabase (open source Firebase alternative)
و کلی ابزار دیگه که همگی پلن های رایگان دارن.
https://developers.cloudflare.com/workers/
مهمتر از همه اینه که استفاده ازش خیلی آسونه، مستندات خیلی ساده و مثال محوره و کلی ابزار دیگه هم در اختیارتون قرار میده.
@DevTwitter | <Ali Ghorbani/>
اگه میخواید واسه خودتون یه وبسایت یا اپ ساده پیاده سازی کنید نیازی به هزینه هاست و سرور ندارید.
کلادفلر بهترین سرویس رو رایگان و بدون تحریم در اختیارتون گذاشته!
اگه درست پیاده سازی کنید سرعتش فوق العاده است
تقریبا از همه کتابخونه های سمت فرانت پشتیبانی میکنه من با Nextjs امتحان کردم عالی بود لینک مستندات رو میذارم تا امتحان کنید. حتما تجربیاتتون رو به اشتراک بذارید:
https://developers.cloudflare.com/pages/framework-guides/
تنها چیزی که لازم دارید یه اکانت کلادفلر و ابزار کامندلاین wrangler هست.
اگه نیاز به بکاند و دیتابیس ساده دارید، میتونید از worker های کلادفلر استفاده کنید.
من برای بکاند خودم یه سرور trpc با دیتابیس D1 (SQLite) پیاده سازی کردم. برای پیاده سازی کارهای ساده خیلی خوبه.
کلی Integrations خوب هم داره که هنوز تست نکردم. ولی میتونید ورکر خودتون رو از طریق زیرساخت کلادفلر به سرویس های لبه مثل:
Neon Database (managed serverless PostgreSQL)
Supabase (open source Firebase alternative)
و کلی ابزار دیگه که همگی پلن های رایگان دارن.
https://developers.cloudflare.com/workers/
مهمتر از همه اینه که استفاده ازش خیلی آسونه، مستندات خیلی ساده و مثال محوره و کلی ابزار دیگه هم در اختیارتون قرار میده.
@DevTwitter | <Ali Ghorbani/>
👍40🔥10👎1
تغییرات جدید دارت 3.7
نسخه Dart 3.7 با ویژگیها و بهبودهای جدیدی معرفی شده که هدف آن ارتقاء تجربه توسعهدهندگان و سازگاری بهتر با استانداردهای وب است. در این نسخه، تمرکز اصلی بر روی بهبود عملکرد، تغییرات در نحوه فرمتدهی کد، و پشتیبانی از WebAssembly است.
https://code-news.com/p/dart-3-7
@DevTwitter | <Code News/>
نسخه Dart 3.7 با ویژگیها و بهبودهای جدیدی معرفی شده که هدف آن ارتقاء تجربه توسعهدهندگان و سازگاری بهتر با استانداردهای وب است. در این نسخه، تمرکز اصلی بر روی بهبود عملکرد، تغییرات در نحوه فرمتدهی کد، و پشتیبانی از WebAssembly است.
https://code-news.com/p/dart-3-7
@DevTwitter | <Code News/>
🔥25❤5👍1👎1
#بدرد
تو این پست میخوام 4 تا کلاینت برای کار کردن با دیتابیس رو معرفی کنم که کار رو واقعا راحت تر میکنن. همه کلاینت ها از هر دو سیستم عامل windows و Linux پشتیبانی میکنن.
1. Antares:
- رابط کاربری مدرن و زیبایی داره
- پشتیبانی از قابلیت Backup/Restore
- پشتیبانی از MySQL, PostgreSQL و Firebird SQL
- پشتیبانی از SSH و اتصال به سرور
لینک ریپازیتوری:
https://github.com/antares-sql/antares
2. DbGate:
- پشتیبانی از 10 دیتابیس مختلف
- قابلیت Export/Import دیتابیس
- قابلیت اتصال به سرور از طریق SSH
- پشتیبانی از Extensionها و Pluginها
- نمایش History از کوئری ها و Tabها
- رابط کاربریش تعریف چندانی نداره
لینک ریپازیتوری:
https://github.com/dbgate/dbgate/
3. Beekeeper
- رابط کاربری عالی
- امکان Save کوئری های خاص
- قابلیت History برای کوئری های اجرا شده
- پشتیبانی از 16 دیتابیس مختلف
- پشتیبانی از SSH برای اتصال به سرور
- قابلیت Backup/Restore و بعضی دیتابیس ها نیازمند لایسنس هستن
لینک ریپازیتوری:
https://github.com/beekeeper-studio/beekeeper-studio/
4. Another Redis Desktop Manager
- رابط کاربری ساده
- پشتیبانی از Redis
- قابلیت Auto Refresh
- قابلیت اتصال به سرور از طریق SSH
- ارائه گزارشات و اطلاعات تخصصی از سرور Redis
لینک ریپازیتوری:
https://github.com/qishibo/AnotherRedisDesktopManager
@DevTwitter | <Mohammad Mortazavi/>
تو این پست میخوام 4 تا کلاینت برای کار کردن با دیتابیس رو معرفی کنم که کار رو واقعا راحت تر میکنن. همه کلاینت ها از هر دو سیستم عامل windows و Linux پشتیبانی میکنن.
1. Antares:
- رابط کاربری مدرن و زیبایی داره
- پشتیبانی از قابلیت Backup/Restore
- پشتیبانی از MySQL, PostgreSQL و Firebird SQL
- پشتیبانی از SSH و اتصال به سرور
لینک ریپازیتوری:
https://github.com/antares-sql/antares
2. DbGate:
- پشتیبانی از 10 دیتابیس مختلف
- قابلیت Export/Import دیتابیس
- قابلیت اتصال به سرور از طریق SSH
- پشتیبانی از Extensionها و Pluginها
- نمایش History از کوئری ها و Tabها
- رابط کاربریش تعریف چندانی نداره
لینک ریپازیتوری:
https://github.com/dbgate/dbgate/
3. Beekeeper
- رابط کاربری عالی
- امکان Save کوئری های خاص
- قابلیت History برای کوئری های اجرا شده
- پشتیبانی از 16 دیتابیس مختلف
- پشتیبانی از SSH برای اتصال به سرور
- قابلیت Backup/Restore و بعضی دیتابیس ها نیازمند لایسنس هستن
لینک ریپازیتوری:
https://github.com/beekeeper-studio/beekeeper-studio/
4. Another Redis Desktop Manager
- رابط کاربری ساده
- پشتیبانی از Redis
- قابلیت Auto Refresh
- قابلیت اتصال به سرور از طریق SSH
- ارائه گزارشات و اطلاعات تخصصی از سرور Redis
لینک ریپازیتوری:
https://github.com/qishibo/AnotherRedisDesktopManager
@DevTwitter | <Mohammad Mortazavi/>
👍28❤1👎1
بعد از کلی تجربه و یادگیری، تصمیم گرفتم یه اپلیکیشن پیامرسان شبیه تلگرام توسعه بدم که از چت لحظهای، گروهها و کانالها پشتیبانی کنه. این پروژه رو با استفاده از NextJs، Socketio و MongoDB ساختم.
این پروژه برای من یه چالش جذاب بود که باعث شد مهارتهام رو تقویت کنم و تجربهی بیشتری در کار با WebSockets، بهینهسازی PWA و مدیریت دادهها به دست بیارم.
دموی پروژه رو توی ویدیو ببینید! خوشحال میشم نظرتون رو بدونم و اگر پیشنهادی برای بهبودش دارید، حتماً باهام درمیون بذارید.
repo: https://github.com/Saeed-Abedini/telegram-clone
@DevTwitter | <Saeed Abedini/>
این پروژه برای من یه چالش جذاب بود که باعث شد مهارتهام رو تقویت کنم و تجربهی بیشتری در کار با WebSockets، بهینهسازی PWA و مدیریت دادهها به دست بیارم.
دموی پروژه رو توی ویدیو ببینید! خوشحال میشم نظرتون رو بدونم و اگر پیشنهادی برای بهبودش دارید، حتماً باهام درمیون بذارید.
repo: https://github.com/Saeed-Abedini/telegram-clone
@DevTwitter | <Saeed Abedini/>
👍83👎7🔥5