Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 دوره آموزش پروژه محور ساخت وب سایت شرکتی با لاراول 12 به روز رسانی شد.
۱۲- نصب پکیچ Laravel UI و افزودن جدول Role و ایجاد صفحه کاربران
قیمت دوره 1,499,000 با تخفیف 60 درصد 599,000 تومان
https://rayium.ir/course/?p=1613
#لاراول
@TheRaymondDev
۱۲- نصب پکیچ Laravel UI و افزودن جدول Role و ایجاد صفحه کاربران
قیمت دوره 1,499,000 با تخفیف 60 درصد 599,000 تومان
https://rayium.ir/course/?p=1613
#لاراول
@TheRaymondDev
Forwarded from Frontend with Erfun👨🏻💻 (Erfun Ghodoosi)
چطور تشخیص بدیم سطحمون توی برنامه نویسی چیه و کجای بازی هستیم؟
junior/mid-level/senior
Junior:
صرفا به این فکر میکنید که چه کدی بنویسم که اجرا بشه.
به الگو های طراحی تسلط ندارید.
معمولا تسک های ساده و کوچیک انجام میدید و به کمک و راهنمایی یک mentor نیاز دارید توی اکثر مراحل.
Mid-level:
به این فکر میکنید که چه کدی بنویسم که بهینه باشه. کد ساده تری باشه. از ابزار های بهتری استفاده کنم. لایبرری های مختلف استفاده کنم. کدم تمیز باشه. خوانا باشه.
الگو های طراحی رو بلدید.
به best practice ها تسلط دارید.
ممکنه چیزایی راجع به مقیاس پذیری و مهندسی نرم افزار بدونید ولی دانشتون عمیق نیست.
Senior:
دغدغتون مقیاس پذیری و آیندهی کسب و کاره. کمتر کردن هزینه ها و بیشتر کردن درآمده. حس رضایت کاربر و تجربه کاربری روان و ساده هست. به حافظه و مدیریتش فکر میکنید. به این فکر میکنید که اگر بعدا سراغ این کد ها اومدید بتونید تغییرش بدید یا اگر شخص جدیدی اومد سریع بتونه روی کد های شما onboard بشه.
به رفتار و انتظار کاربر فکر میکنید.
دانشتون رو به اشتراک میگذارید و توی تیم ها به عنوان راهنما و کسی که تصمیمات فنی میگیره شناخته میشید.
میتونید سیستم های مقیاس پذیر طراحی کنید و تاثیر تصمیم های فنی رو روی بیزنس درک کنید.
————————————
هیچکدوم از این موارد بد نیست. راجع به جونیور بودن بدبین نباشید و اگر سنیور هستید مغرور نباشید🤍. همه در کنار هم مرحله به مرحله پیشرفت میکنیم و با ساخت بهترین تجربه ها برای کاربر، بهترین هارو تجربه میکنیم.
junior/mid-level/senior
Junior:
صرفا به این فکر میکنید که چه کدی بنویسم که اجرا بشه.
به الگو های طراحی تسلط ندارید.
معمولا تسک های ساده و کوچیک انجام میدید و به کمک و راهنمایی یک mentor نیاز دارید توی اکثر مراحل.
Mid-level:
به این فکر میکنید که چه کدی بنویسم که بهینه باشه. کد ساده تری باشه. از ابزار های بهتری استفاده کنم. لایبرری های مختلف استفاده کنم. کدم تمیز باشه. خوانا باشه.
الگو های طراحی رو بلدید.
به best practice ها تسلط دارید.
ممکنه چیزایی راجع به مقیاس پذیری و مهندسی نرم افزار بدونید ولی دانشتون عمیق نیست.
Senior:
دغدغتون مقیاس پذیری و آیندهی کسب و کاره. کمتر کردن هزینه ها و بیشتر کردن درآمده. حس رضایت کاربر و تجربه کاربری روان و ساده هست. به حافظه و مدیریتش فکر میکنید. به این فکر میکنید که اگر بعدا سراغ این کد ها اومدید بتونید تغییرش بدید یا اگر شخص جدیدی اومد سریع بتونه روی کد های شما onboard بشه.
به رفتار و انتظار کاربر فکر میکنید.
دانشتون رو به اشتراک میگذارید و توی تیم ها به عنوان راهنما و کسی که تصمیمات فنی میگیره شناخته میشید.
میتونید سیستم های مقیاس پذیر طراحی کنید و تاثیر تصمیم های فنی رو روی بیزنس درک کنید.
————————————
هیچکدوم از این موارد بد نیست. راجع به جونیور بودن بدبین نباشید و اگر سنیور هستید مغرور نباشید🤍. همه در کنار هم مرحله به مرحله پیشرفت میکنیم و با ساخت بهترین تجربه ها برای کاربر، بهترین هارو تجربه میکنیم.
Father and Son
Cat Stevens
سال جدید ؛ فقط حکم دکمه ریست رو داره
تا لود شدن دوباره هم که شده
ازش لذت ببریم
هرچندکم ؛ هرچند کوچیک
تا لود شدن دوباره هم که شده
ازش لذت ببریم
هرچندکم ؛ هرچند کوچیک
Forwarded from یه شعر (Poem Bot)
حافظ | غزلیات | غزل شمارهٔ ۱۶۸
گداخت جان که شود کار دل تمام و نشد
بسوختیم در این آرزوی خام و نشد
به لابه گفت شبی میر مجلس تو شوم
شدم به رغبت خویشش کمین غلام و نشد
پیام داد که خواهم نشست با رندان
بشد به رندی و دردی کشیم نام و نشد
رواست در بر اگر می تپد کبوتر دل
که دید در ره خود تاب و پیچ دام و نشد
بدان هوس که به مستی ببوسم آن لب لعل
چه خون که در دلم افتاد همچو جام و نشد
به کوی عشق منه بی دلیل راه قدم
که من به خویش نمودم صد اهتمام و نشد
فغان که در طلب گنج نامه مقصود
شدم خراب جهانی ز غم تمام و نشد
دریغ و درد که در جست و جوی گنج حضور
بسی شدم به گدایی بر کرام و نشد
هزار حیله برانگیخت حافظ از سر فکر
در آن هوس که شود آن نگار رام و نشد
#حافظ | گنجور
📍@iipoem
گداخت جان که شود کار دل تمام و نشد
بسوختیم در این آرزوی خام و نشد
به لابه گفت شبی میر مجلس تو شوم
شدم به رغبت خویشش کمین غلام و نشد
پیام داد که خواهم نشست با رندان
بشد به رندی و دردی کشیم نام و نشد
رواست در بر اگر می تپد کبوتر دل
که دید در ره خود تاب و پیچ دام و نشد
بدان هوس که به مستی ببوسم آن لب لعل
چه خون که در دلم افتاد همچو جام و نشد
به کوی عشق منه بی دلیل راه قدم
که من به خویش نمودم صد اهتمام و نشد
فغان که در طلب گنج نامه مقصود
شدم خراب جهانی ز غم تمام و نشد
دریغ و درد که در جست و جوی گنج حضور
بسی شدم به گدایی بر کرام و نشد
هزار حیله برانگیخت حافظ از سر فکر
در آن هوس که شود آن نگار رام و نشد
#حافظ | گنجور
📍@iipoem
Forwarded from DevOps Labdon
🔵 عنوان مقاله
How to manage tool dependencies in Go 1.24+ (6 minute read)
🟢 خلاصه مقاله:
مقالهای که مرور شده، درباره ورژن 1.24 زبان برنامهنویسی Go صحبت میکند که ویژگی جدیدی با عنوان پرچم "-tool" را معرفی کرده است. این ویژگی امکان مدیریت وابستگیهای ابزارهای توسعهدهندگان را مستقیماً در فایل go.mod فراهم میآورد. با استفاده از این پرچم، توسعهدهندگان میتوانند به سادگی ابزارهایی نظیر staticcheck، govulncheck، و stringer را افزوده، به روز رسانی کنند یا حذف نمایند. این امکان به انتگراسیون راحتتر این ابزارها در فرآیندهای توسعه کمک کرده و به بهبود جریان کاری توسعهدهندگان منجر میشود. در نتیجه، این تغییر جدید در Go 1.24 به تسهیل بخشیدن به مدیریت ابزارهای توسعه میپردازد و استفاده از آنها را در پروژههای Go کارآمدتر میکند.
🟣لینک مقاله:
https://www.alexedwards.net/blog/how-to-manage-tool-dependencies-in-go-1.24-plus?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
How to manage tool dependencies in Go 1.24+ (6 minute read)
🟢 خلاصه مقاله:
مقالهای که مرور شده، درباره ورژن 1.24 زبان برنامهنویسی Go صحبت میکند که ویژگی جدیدی با عنوان پرچم "-tool" را معرفی کرده است. این ویژگی امکان مدیریت وابستگیهای ابزارهای توسعهدهندگان را مستقیماً در فایل go.mod فراهم میآورد. با استفاده از این پرچم، توسعهدهندگان میتوانند به سادگی ابزارهایی نظیر staticcheck، govulncheck، و stringer را افزوده، به روز رسانی کنند یا حذف نمایند. این امکان به انتگراسیون راحتتر این ابزارها در فرآیندهای توسعه کمک کرده و به بهبود جریان کاری توسعهدهندگان منجر میشود. در نتیجه، این تغییر جدید در Go 1.24 به تسهیل بخشیدن به مدیریت ابزارهای توسعه میپردازد و استفاده از آنها را در پروژههای Go کارآمدتر میکند.
🟣لینک مقاله:
https://www.alexedwards.net/blog/how-to-manage-tool-dependencies-in-go-1.24-plus?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
www.alexedwards.net
How to manage tool dependencies in Go 1.24+ - Alex Edwards
Forwarded from DevTwitter | توییت برنامه نویسی
اولین مشارکت من در دنیای 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 | <میرسبحان/>
Forwarded from Geek Alerts
امروز، ۱۶ مارس، سالروز تولد ریچارد استالمن است
ریچارد متیو استالمن، برنامهنویس، فعال حقوق دیجیتال و بنیانگذار بنیاد نرمافزار آزاد (FSF) است. استالمن به خاطر تعهدش به فلسفه نرمافزار آزاد و تلاشهایش برای ترویج آزادیهای دیجیتال شناخته میشود. او در سال 1983 پروژه گنو را آغاز کرد، که به توسعه سیستمعامل GNU/Linux و بسیاری از ابزارهای نرمافزاری آزاد دیگر منجر شد.
استالمن به عنوان یک مدافع حریم خصوصی، به طور خستگیناپذیر برای آگاهیرسانی در مورد خطرات نرمافزارهای اختصاصی و نظارت دولتی تلاش میکند. او همچنین منتقد سرسخت قانون کپیرایت است و معتقد است که این قانون مانع نوآوری و خلاقیت میشود.
در سال 2021، استالمن به سرطان مبتلا شد و درحال حاضر در روند درمان قرار دارد. او امروز ۷۲ ساله شد.
🔗 https://stallman.org
🤓 hadi @geekalerts
ریچارد متیو استالمن، برنامهنویس، فعال حقوق دیجیتال و بنیانگذار بنیاد نرمافزار آزاد (FSF) است. استالمن به خاطر تعهدش به فلسفه نرمافزار آزاد و تلاشهایش برای ترویج آزادیهای دیجیتال شناخته میشود. او در سال 1983 پروژه گنو را آغاز کرد، که به توسعه سیستمعامل GNU/Linux و بسیاری از ابزارهای نرمافزاری آزاد دیگر منجر شد.
استالمن به عنوان یک مدافع حریم خصوصی، به طور خستگیناپذیر برای آگاهیرسانی در مورد خطرات نرمافزارهای اختصاصی و نظارت دولتی تلاش میکند. او همچنین منتقد سرسخت قانون کپیرایت است و معتقد است که این قانون مانع نوآوری و خلاقیت میشود.
در سال 2021، استالمن به سرطان مبتلا شد و درحال حاضر در روند درمان قرار دارد. او امروز ۷۲ ساله شد.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Ai Casts | Ai for Software
MCP آشنایی با
چند وقتی هست که شرکت Anthropic سازنده Cluade AI یک استانداردی رو معرفی کرده به اسم Model Context Protocol
خیلی خلاصه بخوام بگم MCP یه راه استاندارد برای integration هست که به AI systemها مثل Cluade اجازه بده به external resourceها مثل دیتابیس، api و غیره وصل بشن برای استخراج اطلاعات.
خودشون اینطوری معرفی کردن که MCP رو چیزی شبیه پورت USB-C ببینید برای اپلیکیشن های ai.
همانطور که پورت usb-c روی دستگاه ها یه روش استاندارد وصل کردن اونا به لوازم جانبی هست، MCP هم یه راه استاندارد برای اتصال مدل های ai به منابع و ابزار متفاوت و متنوع هست.
۳ تا کامپوننت اصلی داره:
هاست یا همون ai application مثل cluade
کلاینت MCP که توسط ai model استفاده میشه تا با منابع خارجی ارتباط بگیره
سرور MCP که مسئولیت برقراری ارتباط بین کلاینت MCP و منبع خارجی رو داره
مزیت ش چیه؟
به شما اجازه میده که ایجنت ها و workflowهای پیچیده بر روی LLMها بسازید و بین LLMهای مختلف سوییچ کنید.
https://modelcontextprotocol.io/introduction
@gocasts
Ai for Software
@aicasts_ir
چند وقتی هست که شرکت Anthropic سازنده Cluade AI یک استانداردی رو معرفی کرده به اسم Model Context Protocol
خیلی خلاصه بخوام بگم MCP یه راه استاندارد برای integration هست که به AI systemها مثل Cluade اجازه بده به external resourceها مثل دیتابیس، api و غیره وصل بشن برای استخراج اطلاعات.
خودشون اینطوری معرفی کردن که MCP رو چیزی شبیه پورت USB-C ببینید برای اپلیکیشن های ai.
همانطور که پورت usb-c روی دستگاه ها یه روش استاندارد وصل کردن اونا به لوازم جانبی هست، MCP هم یه راه استاندارد برای اتصال مدل های ai به منابع و ابزار متفاوت و متنوع هست.
۳ تا کامپوننت اصلی داره:
هاست یا همون ai application مثل cluade
کلاینت MCP که توسط ai model استفاده میشه تا با منابع خارجی ارتباط بگیره
سرور MCP که مسئولیت برقراری ارتباط بین کلاینت MCP و منبع خارجی رو داره
مزیت ش چیه؟
به شما اجازه میده که ایجنت ها و workflowهای پیچیده بر روی LLMها بسازید و بین LLMهای مختلف سوییچ کنید.
https://modelcontextprotocol.io/introduction
@gocasts
Ai for Software
@aicasts_ir
Forwarded from Ninja Learn | نینجا لرن
خب خب خب ORM چیه ؟ 🛸
امروز میخوام دربارهی یه موضوع مهم و کاربردی تو دنیای برنامهنویسی حرف بزنم: ORM یا همون Object-Relational Mapping.
🧠 ORM یعنی چی؟
ORM (Object-Relational Mapping) یه تکنیک تو برنامهنویسیه که دادههای دیتابیس رو به شکل اشیاء (objects) تو زبونهای شیگرا مثل پایتون، جاوا یا سیشارپ مدیریت میکنه. به بیان ساده، ORM یه پل ارتباطی بین دنیای شیگرایی (کلاسها و اشیاء) و دنیای دیتابیسهای رابطهای (جداول و ستونها) میسازه. با ORM دیگه لازم نیست مستقیم با کوئریهای SQL کار کنی؛ در عوض، با همون زبون برنامهنویسیات دیتابیس رو کنترل میکنی.
مثلاً به جای اینکه بنویسی:
میتونی تو پایتون با Django ORM اینجوری بنویسی:
و همون نتیجه رو بگیری
📚 ORM چطوری کار میکنه؟
فرض کن تو دیتابیست یه جدول به اسم
تو برنامهات یه کلاس به اسم
چند تا سناریو رو با هم ببینیم:
1⃣ ذخیره کردن داده:
یه شیء از کلاس
2⃣ خوندن داده:
میتونی به جای کوئری SQL، از متدهایی مثل
به همین سادگی ORM تمام پیچیدگیهای کار با دیتابیس رو از دید تو مخفی میکنه و یه رابط کاربری راحت بهت میده.
قبل از اینکه ORMها باشن، برنامهنویسها مستقیم با SQL کار میکردن. (هرچند همین الانشم توی زبان های هایی که orm مناسبی براش ساخته نشده برنامه نویسان بصورت خام کد sql میزنن مثل برنامه نویسان golang)
این چند تا مشکل داشت و داره:
کدهای طولانی:
برای هر عملیات ساده، باید یه کوئری SQL مینوشتی که گاهی خیلی پیچیده میشد.
خطای زیاد:
یه اشتباه کوچیک تو کوئری (مثل یه typo) میتونست ساعتها وقتت رو تلف کنه.
سختی نگهداری:
اگه ساختار دیتابیست عوض میشد (مثلاً یه ستون اضافه یا کم میشد)، باید همه کوئریها رو دستی تغییر میدادی.
تفاوت پارادایم:
SQL یه زبون declarative (اعلانی) هست، ولی زبونهایی مثل پایتون imperative (دستوری) هستن. این یعنی برنامهنویس باید مدام بین دو مدل فکری جابهجا میشد.
ORM اومد که این مشکلات رو حل کنه:
سادگی:
کار با دیتابیس مثل کار با اشیاء تو زبون خودت میشه.
امنیت:
ORMها معمولاً جلوی حملاتی مثل SQL Injection رو میگیرن.
انعطافپذیری:
میتونی دیتابیس رو عوض کنی (مثلاً از MySQL بری به PostgreSQL) بدون اینکه کل کدت رو تغییر بدی.
سرعت توسعه:
چون کوئرینویسی کمتر میشه، وقت بیشتری برای منطق اصلی برنامهات داری.
جمعبندی ✍
ORM یه ابزار باحال و قدرتمنده که کار با دیتابیس رو برای برنامهنویسها راحتتر، سریعتر و امنتر میکنه. با ORM دیگه لازم نیست با SQL خام کلنجار بری و میتونی با همون زبون برنامهنویسیات همهچیز رو مدیریت کنی.
➖➖➖➖➖➖➖➖➖
امروز میخوام دربارهی یه موضوع مهم و کاربردی تو دنیای برنامهنویسی حرف بزنم: ORM یا همون Object-Relational Mapping.
🧠 ORM یعنی چی؟
ORM (Object-Relational Mapping) یه تکنیک تو برنامهنویسیه که دادههای دیتابیس رو به شکل اشیاء (objects) تو زبونهای شیگرا مثل پایتون، جاوا یا سیشارپ مدیریت میکنه. به بیان ساده، ORM یه پل ارتباطی بین دنیای شیگرایی (کلاسها و اشیاء) و دنیای دیتابیسهای رابطهای (جداول و ستونها) میسازه. با ORM دیگه لازم نیست مستقیم با کوئریهای SQL کار کنی؛ در عوض، با همون زبون برنامهنویسیات دیتابیس رو کنترل میکنی.
مثلاً به جای اینکه بنویسی:
SELECT * FROM users
میتونی تو پایتون با Django ORM اینجوری بنویسی:
users = User.objects.all()
و همون نتیجه رو بگیری
📚 ORM چطوری کار میکنه؟
فرض کن تو دیتابیست یه جدول به اسم
users داری که ستونهاش اینان: id،nameو
تو برنامهات یه کلاس به اسم
User میسازی که پراپرتیهایی مثل id، name و email داره. ORM این کلاس رو به جدول users توی دیتابیس مپ (map) میکنه. یعنی هر شیء از کلاس User نمایانگر یه رکورد تو جدول users میشه.چند تا سناریو رو با هم ببینیم:
1⃣ ذخیره کردن داده:
یه شیء از کلاس
User میسازی، مقادیرش رو پر میکنی و با یه متد مثل save() ذخیرهاش میکنی. ORM این کار رو به یه دستور SQL (مثل INSERT) تبدیل میکنه و اجرا میکنه.user = User(name='علی', email='[email protected]')
user.save()
2⃣ خوندن داده:
میتونی به جای کوئری SQL، از متدهایی مثل
all() یا filter() استفاده میکنی. ORM پشت صحنه کوئری مناسب رو میسازه و دادهها رو به شکل اشیاء برمیگردونه.# همه کاربرها
users = User.objects.all()
# فیلتر کردن
ali_users =
User.objects.filter(name='علی')
به همین سادگی ORM تمام پیچیدگیهای کار با دیتابیس رو از دید تو مخفی میکنه و یه رابط کاربری راحت بهت میده.
البته هر orm با orm های دیگه فرق داره هرچی یه orm بیشتر abstraction انجام داده باشه استفاده ازش راحت تر میشه🚀 ORM برای چی به وجود اومد؟
ولی توی مقیاس بالاتر همین سادگی باعث پیچیدگی میشه.
قبل از اینکه ORMها باشن، برنامهنویسها مستقیم با SQL کار میکردن. (هرچند همین الانشم توی زبان های هایی که orm مناسبی براش ساخته نشده برنامه نویسان بصورت خام کد sql میزنن مثل برنامه نویسان golang)
این چند تا مشکل داشت و داره:
کدهای طولانی:
برای هر عملیات ساده، باید یه کوئری SQL مینوشتی که گاهی خیلی پیچیده میشد.
خطای زیاد:
یه اشتباه کوچیک تو کوئری (مثل یه typo) میتونست ساعتها وقتت رو تلف کنه.
سختی نگهداری:
اگه ساختار دیتابیست عوض میشد (مثلاً یه ستون اضافه یا کم میشد)، باید همه کوئریها رو دستی تغییر میدادی.
تفاوت پارادایم:
SQL یه زبون declarative (اعلانی) هست، ولی زبونهایی مثل پایتون imperative (دستوری) هستن. این یعنی برنامهنویس باید مدام بین دو مدل فکری جابهجا میشد.
ORM اومد که این مشکلات رو حل کنه:
سادگی:
کار با دیتابیس مثل کار با اشیاء تو زبون خودت میشه.
امنیت:
ORMها معمولاً جلوی حملاتی مثل SQL Injection رو میگیرن.
انعطافپذیری:
میتونی دیتابیس رو عوض کنی (مثلاً از MySQL بری به PostgreSQL) بدون اینکه کل کدت رو تغییر بدی.
سرعت توسعه:
چون کوئرینویسی کمتر میشه، وقت بیشتری برای منطق اصلی برنامهات داری.
جمعبندی ✍
ORM یه ابزار باحال و قدرتمنده که کار با دیتابیس رو برای برنامهنویسها راحتتر، سریعتر و امنتر میکنه. با ORM دیگه لازم نیست با SQL خام کلنجار بری و میتونی با همون زبون برنامهنویسیات همهچیز رو مدیریت کنی.
#️⃣ #database #sql #orm
➖➖➖➖➖➖➖➖➖
🥷 CHANNEL | GROUP
Forwarded from DevTwitter | توییت برنامه نویسی
شاید شما هم مثل عمو فری عاشق 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/>
Forwarded from Go Casts 🚀
استخدام دواپس (جونیور یا میدلول) - سازیتو - بصورت هیبرید
Sazito DevOps Engineer
اگر در موقعیت شغلی DevOps Engineer (جونیور یا میدلول) سابقه فعالیت دارید، لطفا رزومه خود را ارسال کنید.
نوع همکاری تمام وقت و هیبرید است.
لطفا این فرم رو پر کنید.
https://survey.porsline.ir/s/xXuaagrl
@gocasts
Sazito DevOps Engineer
اگر در موقعیت شغلی DevOps Engineer (جونیور یا میدلول) سابقه فعالیت دارید، لطفا رزومه خود را ارسال کنید.
نوع همکاری تمام وقت و هیبرید است.
لطفا این فرم رو پر کنید.
https://survey.porsline.ir/s/xXuaagrl
@gocasts
Porsline
devops-140312-sazito
با پُرسلاین به راحتی پرسشنامه خود را طراحی و ارسال کنید و با گزارشهای لحظهای آن به سرعت تصمیم بگیرید.
Forwarded from Python Hints
امروز وقتی وارد لینکدین شدم کلی پست راجب پیشنهاد خوندن کتاب
خیلی خوشحالم که این کتاب داره دیده میشه؛ یک زمانی بود آدما زبان برنامهنویسی رو درست نمیشناختند ولی بخاطر جوی که راه افتاده بود
داشتند میخوندند، بعد طرف توی سورس کد پایتونش داشت با استانداردهای جاوا و سیشارپ و ... کد میزد؛ تمیز بود ولی پایتون نبود.
https://t.iss.one/pyHints/s/3
fluent python دیدم.خیلی خوشحالم که این کتاب داره دیده میشه؛ یک زمانی بود آدما زبان برنامهنویسی رو درست نمیشناختند ولی بخاطر جوی که راه افتاده بود
Clean coder, clean code , .... داشتند میخوندند، بعد طرف توی سورس کد پایتونش داشت با استانداردهای جاوا و سیشارپ و ... کد میزد؛ تمیز بود ولی پایتون نبود.
https://t.iss.one/pyHints/s/3
Telegram
Story of Python Hints
Forwarded from Python Hints
#موقت
چندتا کتاب دیگه رو توی این تعطیلات شروع میکنم.
البته ازین تعطیلات برای
چندتا کتاب دیگه رو توی این تعطیلات شروع میکنم.
البته ازین تعطیلات برای
Rust خوندن بیشتر استفاده خواهم کرد، ولی چندتا کتاب دیدم که بنظر خوب میاد برای پایتون اگر مناسب بود حتماً بعد از تعطیلات راجب اونها هم خواهم نوشت.Forwarded from Python Hints
ترجیح میدید کتاب راجب کدوم موضوع باشه ؟
البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینهای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینهای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
Anonymous Poll
43%
Performance optimization
16%
Meta-programming
18%
Concurrency, Parallélism
23%
Async
Forwarded from Python Hints
چون زیاد سوال شد :
روی اسم کانال بزنید و بخش Posts شامل تمام کتابهای معرفی شده هست
استوری بودند.
روی اسم کانال بزنید و بخش Posts شامل تمام کتابهای معرفی شده هست
استوری بودند.
Forwarded from DevTwitter | توییت برنامه نویسی
استفاده کنید هم باحاله هم کاربردی
داستانش چیه :
KIMI
یه مدل زبانی جدید چینیه که میتونه همزمان تا 50 فایل رو بررسی کنه و متن تا 200,000 توکن رو پردازش کنه. حتی ظاهرشم هم خیلی شبیه دیپسیک هستش
لینک:
https://kimi.ai
@DevTwitter | <Mr.programmer/>
داستانش چیه :
KIMI
یه مدل زبانی جدید چینیه که میتونه همزمان تا 50 فایل رو بررسی کنه و متن تا 200,000 توکن رو پردازش کنه. حتی ظاهرشم هم خیلی شبیه دیپسیک هستش
لینک:
https://kimi.ai
@DevTwitter | <Mr.programmer/>
Forwarded from CleverDevs (Mammad)