یه Arena Allocator برای C/Cpp نوشتم که کراس پلتفرمه و قابلیت اینو داره که از چندین Buffer برای مدیریت درخواستهای بیشتر استفاده کنه
https://github.com/thehxdev/libarena
@DevTwitter | <Hossein/>
https://github.com/thehxdev/libarena
@DevTwitter | <Hossein/>
🔥15👍7
معماریهای نرمافزاری در حوزه برنامهنویسی بسیار متنوع هستند و هر کدام با تمرکز بر اهداف، نیازها و شرایط خاصی بهکار میروند.
در این پست، تعدادی از معماریهای پرکاربرد را میگم و توضیح میدهم که روی چه حوزهای متمرکزند، کجا استفاده از آنها مناسب هست و کجا بهتر استفاده نشه.
—————————————————
معماری لایهای (Layered Architecture)
تمرکز:تفکیک مسئولیتها بر اساس لایههای منطقی (Presentation، Business، Data Access).
استفاده ش: سیستمهای کلاسیک سازمانی که ساختار ساده و قابل پیشبینی میخوان؛ وقتی که تیم توسعه با رویکرد سنتی آشنا و نیاز به شفافیت بین لایهها داریم
کجا استفاده نکنیم:
در پروژههایی که نیازمند مقیاسپذیری بالا یا تغییرات مداوم هستند و همچنین در مواردی که ساختار سیستم بسیار پیچیده و وابستگیها زیاد است. چون افزایش تعداد لایهها گاهی انعطاف را کم میکنه.
—————————————————
معماری سرویسگرا(Service Oriented Architecture - SOA)
تمرکز: ارائه سرویسهای مستقل که از طریق رابطهای استاندارد با هم تعامل میکنند.
کجا استفاده کنیم:
در سازمانهایی که سرویسهای مختلفی دارند و میخوان اونها رو در سیستمهای متفاوت به اشتراک بزارن. خوراک یکپارچهسازی سیستمهای مجزا و ایجاد قابلیت تعامل بین بخشهای مختلف سازمان هست.
کجا استفاده نکنیم:
در پروژههای کوچک یا متوسط که پیچیدگی و هزینه پیادهسازی SOA توجیه ندارد. همچنین وقتی نیازی به اشتراک سرویس میان چند سیستم متنوع نداریم، این معماری پیچیدگی غیرضروری ایجاد میکنه. کلا ادای کول ها رو درنیارید و زمان ی که میخواین ماشین حساب بنویسین نرین سراغش
—————————————————
معماری مایکروسرویس (Microservices Architecture)
تمرکز:
تقسیم سیستم به سرویسهای کوچک، مستقل و قابل استقرار جداگانه که از طریق APIهای سبک (مثل rest api) با هم در ارتباطند
کجا استفاده کنیم:
در سیستمهایی با مقیاس بزرگ که نیاز به انتشار و تغییرات سریع دارند، تیمهای توسعه جداگانه روی بخشهای مختلف کار میکنن و بخشهای مختلف سیستم باید به شکل مستقل مقیاسپذیر باشن. ولی مواظب باشین که تعدادش یهو نره بالا که از اونور(نگهداریش) به دردسر میفتین
کجا استفاده نکنیم:
در پروژههای کوچک یا تیمهای کم تجربه که نگهداشت و هماهنگی بین تعداد زیاد سرویسهای مستقل میتواند سخت باشه. همچنین اگر نیازمندیها ساده است و تغییرات کم هستند، مایکروسرویس میتواند پیچیدگی غیرضروری ایجاد کند
—————————————————
معماری رویداد-محور (Event-Driven Architecture)
تمرکز:
تبادل اطلاعات و واکنش سرویسها بر اساس Eventها و پردازش ناهمزمان.
کجا استفاده کنیم:
در سیستمهایی که رویدادها و اتفاقات به صورت لحظهای رخ میدن، نیاز به پاسخ آنی و مقیاسپذیری بالا دارن (مثل سیستمهای IoT، بازیهای آنلاین، پردازش تراکنشهای لحظهای).
کجا استفاده نکنیم:
در سیستمهایی که روابط همزمان، قوی و فرآیندهای خطی و ساده دارند و افزایش پیچیدگی به واسطه پیامها و صفها ارزش افزودهای ندارد. کلا هرجایی که حرف از stream و online بودن معنی نداره
—————————————————
معماری تمیز (Clean Architecture)،
شش ضلعی (Hexagonal) یا پیازی (به قول یکی از بچه ها پوست پیازی) (Onion)
تمرکز:
جداسازی منطق کسبوکار از جزئیات زیرساختی و رابط کاربری، تا بشه منطق اصلی را مستقل از تکنولوژیها و فریمورکها نگه داشت. البته تو جزئیات باهم تفاوت هایی دارن
کجا استفاده کنیم:
در پروژههای بلندمدت و پیچیده که پایداری منطق کسبوکار مهم است و ممکن است نیاز باشد فناوریهای زیرساختی طی زمان تغییر کنند. یعنی مثلا یهو از SQL Server بخواین سوییچ کنین به mongoDb بی دلیل!:)
کجا استفاده نکنیم:
در پروژههای سریع و کوچک با نیازهای ساده که ایجاد این سطح از انتزاع ممکنه زمانی که دارین را هدر بده و پیچیدگی غیرضروری اضافه کنه یه چیزی درست کردین هی کپی پیست نکنین تو پروژه های مختلف همچین کاری از یه جایی به بعد شمارو تبدیل میکنه به کدنویس نه برنامه نویس
@DevTwitter | <MahDi/>
در این پست، تعدادی از معماریهای پرکاربرد را میگم و توضیح میدهم که روی چه حوزهای متمرکزند، کجا استفاده از آنها مناسب هست و کجا بهتر استفاده نشه.
—————————————————
معماری لایهای (Layered Architecture)
تمرکز:تفکیک مسئولیتها بر اساس لایههای منطقی (Presentation، Business، Data Access).
استفاده ش: سیستمهای کلاسیک سازمانی که ساختار ساده و قابل پیشبینی میخوان؛ وقتی که تیم توسعه با رویکرد سنتی آشنا و نیاز به شفافیت بین لایهها داریم
کجا استفاده نکنیم:
در پروژههایی که نیازمند مقیاسپذیری بالا یا تغییرات مداوم هستند و همچنین در مواردی که ساختار سیستم بسیار پیچیده و وابستگیها زیاد است. چون افزایش تعداد لایهها گاهی انعطاف را کم میکنه.
—————————————————
معماری سرویسگرا(Service Oriented Architecture - SOA)
تمرکز: ارائه سرویسهای مستقل که از طریق رابطهای استاندارد با هم تعامل میکنند.
کجا استفاده کنیم:
در سازمانهایی که سرویسهای مختلفی دارند و میخوان اونها رو در سیستمهای متفاوت به اشتراک بزارن. خوراک یکپارچهسازی سیستمهای مجزا و ایجاد قابلیت تعامل بین بخشهای مختلف سازمان هست.
کجا استفاده نکنیم:
در پروژههای کوچک یا متوسط که پیچیدگی و هزینه پیادهسازی SOA توجیه ندارد. همچنین وقتی نیازی به اشتراک سرویس میان چند سیستم متنوع نداریم، این معماری پیچیدگی غیرضروری ایجاد میکنه. کلا ادای کول ها رو درنیارید و زمان ی که میخواین ماشین حساب بنویسین نرین سراغش
—————————————————
معماری مایکروسرویس (Microservices Architecture)
تمرکز:
تقسیم سیستم به سرویسهای کوچک، مستقل و قابل استقرار جداگانه که از طریق APIهای سبک (مثل rest api) با هم در ارتباطند
کجا استفاده کنیم:
در سیستمهایی با مقیاس بزرگ که نیاز به انتشار و تغییرات سریع دارند، تیمهای توسعه جداگانه روی بخشهای مختلف کار میکنن و بخشهای مختلف سیستم باید به شکل مستقل مقیاسپذیر باشن. ولی مواظب باشین که تعدادش یهو نره بالا که از اونور(نگهداریش) به دردسر میفتین
کجا استفاده نکنیم:
در پروژههای کوچک یا تیمهای کم تجربه که نگهداشت و هماهنگی بین تعداد زیاد سرویسهای مستقل میتواند سخت باشه. همچنین اگر نیازمندیها ساده است و تغییرات کم هستند، مایکروسرویس میتواند پیچیدگی غیرضروری ایجاد کند
—————————————————
معماری رویداد-محور (Event-Driven Architecture)
تمرکز:
تبادل اطلاعات و واکنش سرویسها بر اساس Eventها و پردازش ناهمزمان.
کجا استفاده کنیم:
در سیستمهایی که رویدادها و اتفاقات به صورت لحظهای رخ میدن، نیاز به پاسخ آنی و مقیاسپذیری بالا دارن (مثل سیستمهای IoT، بازیهای آنلاین، پردازش تراکنشهای لحظهای).
کجا استفاده نکنیم:
در سیستمهایی که روابط همزمان، قوی و فرآیندهای خطی و ساده دارند و افزایش پیچیدگی به واسطه پیامها و صفها ارزش افزودهای ندارد. کلا هرجایی که حرف از stream و online بودن معنی نداره
—————————————————
معماری تمیز (Clean Architecture)،
شش ضلعی (Hexagonal) یا پیازی (به قول یکی از بچه ها پوست پیازی) (Onion)
تمرکز:
جداسازی منطق کسبوکار از جزئیات زیرساختی و رابط کاربری، تا بشه منطق اصلی را مستقل از تکنولوژیها و فریمورکها نگه داشت. البته تو جزئیات باهم تفاوت هایی دارن
کجا استفاده کنیم:
در پروژههای بلندمدت و پیچیده که پایداری منطق کسبوکار مهم است و ممکن است نیاز باشد فناوریهای زیرساختی طی زمان تغییر کنند. یعنی مثلا یهو از SQL Server بخواین سوییچ کنین به mongoDb بی دلیل!:)
کجا استفاده نکنیم:
در پروژههای سریع و کوچک با نیازهای ساده که ایجاد این سطح از انتزاع ممکنه زمانی که دارین را هدر بده و پیچیدگی غیرضروری اضافه کنه یه چیزی درست کردین هی کپی پیست نکنین تو پروژه های مختلف همچین کاری از یه جایی به بعد شمارو تبدیل میکنه به کدنویس نه برنامه نویس
@DevTwitter | <MahDi/>
👍44👎8❤5
دوره پیشرفته جاوا اسکریپت به شما کمک میکند تا مفاهیم پیچیده و پیشرفته این زبان محبوب را درک کنید و مهارت خود را به سطح جدیدی ببرید. این دوره شامل موضوعاتی مانند Generators، Iterators، Maps، و پروژههای عملی است که دانش تئوری را به کاربرد عملی متصل میکند.
مشاهده دوره در کانال نیکول وب:
https://youtube.com/playlist?list=PLbZbuOkDeba8zDIG2GleE6bVQ8AbW2APN&feature=shared
@DevTwitter | <Mohammadreza/>
مشاهده دوره در کانال نیکول وب:
https://youtube.com/playlist?list=PLbZbuOkDeba8zDIG2GleE6bVQ8AbW2APN&feature=shared
@DevTwitter | <Mohammadreza/>
👍23👎2🤣2
چند وقتی درگیر راه اندازی یه کلاستر ELK بودم و برای نگهداری snapshot ها باید از minio استفاده می کردیم.
یه ریپو درست کردم که براتون یه کلاستر الستیک با nginx و minio بالامیاره و می تونین ازش استفاده کنین
https://github.com/zaaferani/elk-nginx-s3
@DevTwitter | <حسن زعفرانی/>
یه ریپو درست کردم که براتون یه کلاستر الستیک با nginx و minio بالامیاره و می تونین ازش استفاده کنین
https://github.com/zaaferani/elk-nginx-s3
@DevTwitter | <حسن زعفرانی/>
👍16🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
برای اضافه کردن کد به سایت، به جای نصب افزونه، میتونیم از روش استاندارد وردپرس یعنی Child Theme استفاده کنیم. افزونه یکبارمصرف Child Theme Configurator میتونه «پوستهٔ فرزند» بسازه و تنظیمات پوسته فعلی رو کامل انتقال بده و بعدش هم میشه حذفش کرد!
https://wordpress.org/plugins/child-theme-configurator/
@DevTwitter | <Yashar Shahi/>
https://wordpress.org/plugins/child-theme-configurator/
@DevTwitter | <Yashar Shahi/>
❤10👍9🤣9
🤣201👍27🔥10❤4
در حالی که استفاده از تکنولوژی وب قدیمی «HTTP/1.x» در دنیا به ۲۹.۹ درصد رسیده هنوز اما چند کشور نیمی از اتصالاتشون با این تکنولوژی هست.
(ایران، ایرلند، هنگ کنگ و چین.)
برای ایران ۸۷.۶ درصد.
@DevTwitter | <Soroush Ahmadi/>
(ایران، ایرلند، هنگ کنگ و چین.)
برای ایران ۸۷.۶ درصد.
@DevTwitter | <Soroush Ahmadi/>
🤣85👍12👎4
گوگل تو این چند روز چندین آس رو کرد که یک جورایی یک سور زد به openai. از جمله:
- مدلهای Gemini ۲
- مدلهای Gemma
- stream realtime
- Project Astra
و الان هم که Project Mariner. این یک پروژه جدیده که قادر است اطلاعات موجود در صفحه مرورگر شما، از جمله پیکسلها و عناصر وب مانند متن، کد، تصاویر و فرمها را درک و تحلیل کند و سپس با استفاده از یک افزونه آزمایشی کروم وظایفی را برای شما انجام دهد.
یعنی عملا یک AI Agent توی browser که تمام المنت های صفحه ای که توش هستید را میفهمه. باید ویدیوش را ببینید.
https://deepmind.google/technologies/project-mariner/
Youtube: https://youtube.com/watch?v=2XJqLPqHtyo
@DevTwitter | <Mehdi Allahyari/>
- مدلهای Gemini ۲
- مدلهای Gemma
- stream realtime
- Project Astra
و الان هم که Project Mariner. این یک پروژه جدیده که قادر است اطلاعات موجود در صفحه مرورگر شما، از جمله پیکسلها و عناصر وب مانند متن، کد، تصاویر و فرمها را درک و تحلیل کند و سپس با استفاده از یک افزونه آزمایشی کروم وظایفی را برای شما انجام دهد.
یعنی عملا یک AI Agent توی browser که تمام المنت های صفحه ای که توش هستید را میفهمه. باید ویدیوش را ببینید.
https://deepmind.google/technologies/project-mariner/
Youtube: https://youtube.com/watch?v=2XJqLPqHtyo
@DevTwitter | <Mehdi Allahyari/>
👍46🤣8🔥3
خلاص شدیم! یه افزونه برای تایپ خیلی راحتتر به زبان فارسی!
شاید برای شما هم پیش اومده باشه: دارید توی یه فرم یا باکس تایپ میکنید، مثلاً فارسی مینویسید، اما همهچیز از چپ به راست نمایش داده میشه! خواندن متن سخت میشه، و شاید حتی اعصابتون هم خرد بشه. این مشکل همیشگی من بود، تا اینکه تصمیم گرفتم یه راهحل براش پیدا کنم.
اینجاست که افزونه جدیدم با اسم Auto RTL/LTR Switcher برای گوگل کروم متولد شد!
کاری که این افزونه انجام میده، خیلی ساده ولی فوقالعاده کاربردیه: وقتی شروع به تایپ میکنید، افزونه زبان متن رو تشخیص میده. اگه فارسی باشه، خودش متن رو به راستچین (RTL) تغییر میده؛ اگه لاتین باشه، به حالت چپچین (LTR) برمیگردونه.
این یعنی از حالا دیگه لازم نیست مدام تنظیمات جهت تایپ رو دستکاری کنید. فقط تایپ کنید و لذت ببرید!
حالا فکر کنید این افزونه کجاها به کار میاد!
مثلاً دارید از وبسایت ChatGPT استفاده میکنید، میدونید که این سایتها معمولاً همهچیز رو چپچین تنظیم میکنن، چون زبان پیشفرضشون انگلیسی یا لاتینه. حالا اگه وسطش بخواید یه متن فارسی تایپ کنید، چه اتفاقی میافته؟ متن میچسبه به چپ و خوندنش واقعاً اذیتکننده میشه.
اینجاست که افزونه وارد عمل میشه. توی همون لحظهای که شروع به تایپ فارسی میکنید، متن رو راستچین میکنه و تجربه تایپ کردن رو براتون ساده و لذتبخش میکنه. از وبسایتهای هوش مصنوعی گرفته تا فرمهای تماس، نظرسنجیها، یا هر جایی که بخواید به دو زبان تایپ کنید، این افزونه براتون یه همراه هوشمنده.
دیگه نیاز نیست مدام خودتون تنظیمات جهت رو تغییر بدید. فقط تایپ کنید و همهچیز بهطور خودکار تنظیم میشه!
لینک دانلود و نصب افزونه Auto RTL/LTR Switcher
https://chromewebstore.google.com/detail/auto-rtlltr-switcher/iagbjlddhajgidlfcdpocafilcabjfbi
نکته: افزونههای مرورگر کروم بر روی مرورگر Edge هم نصب میشن.
@DevTwitter | <Hamed Takmil/>
شاید برای شما هم پیش اومده باشه: دارید توی یه فرم یا باکس تایپ میکنید، مثلاً فارسی مینویسید، اما همهچیز از چپ به راست نمایش داده میشه! خواندن متن سخت میشه، و شاید حتی اعصابتون هم خرد بشه. این مشکل همیشگی من بود، تا اینکه تصمیم گرفتم یه راهحل براش پیدا کنم.
اینجاست که افزونه جدیدم با اسم Auto RTL/LTR Switcher برای گوگل کروم متولد شد!
کاری که این افزونه انجام میده، خیلی ساده ولی فوقالعاده کاربردیه: وقتی شروع به تایپ میکنید، افزونه زبان متن رو تشخیص میده. اگه فارسی باشه، خودش متن رو به راستچین (RTL) تغییر میده؛ اگه لاتین باشه، به حالت چپچین (LTR) برمیگردونه.
این یعنی از حالا دیگه لازم نیست مدام تنظیمات جهت تایپ رو دستکاری کنید. فقط تایپ کنید و لذت ببرید!
حالا فکر کنید این افزونه کجاها به کار میاد!
مثلاً دارید از وبسایت ChatGPT استفاده میکنید، میدونید که این سایتها معمولاً همهچیز رو چپچین تنظیم میکنن، چون زبان پیشفرضشون انگلیسی یا لاتینه. حالا اگه وسطش بخواید یه متن فارسی تایپ کنید، چه اتفاقی میافته؟ متن میچسبه به چپ و خوندنش واقعاً اذیتکننده میشه.
اینجاست که افزونه وارد عمل میشه. توی همون لحظهای که شروع به تایپ فارسی میکنید، متن رو راستچین میکنه و تجربه تایپ کردن رو براتون ساده و لذتبخش میکنه. از وبسایتهای هوش مصنوعی گرفته تا فرمهای تماس، نظرسنجیها، یا هر جایی که بخواید به دو زبان تایپ کنید، این افزونه براتون یه همراه هوشمنده.
دیگه نیاز نیست مدام خودتون تنظیمات جهت رو تغییر بدید. فقط تایپ کنید و همهچیز بهطور خودکار تنظیم میشه!
لینک دانلود و نصب افزونه Auto RTL/LTR Switcher
https://chromewebstore.google.com/detail/auto-rtlltr-switcher/iagbjlddhajgidlfcdpocafilcabjfbi
نکته: افزونههای مرورگر کروم بر روی مرورگر Edge هم نصب میشن.
@DevTwitter | <Hamed Takmil/>
❤52👍21🔥5👎3
نسخه جدید Grok اومد.
۳ برابر سریعتر، دقیقتر و بهبود ویژگی چند زبانه.
برای توسعهدهندهها، مدلهای grok-2-1212 و grok-2-vision-1212 رو با قیمت ۲ دلار برای ۱ میلیون توکن دادن.
x.com/i/grok
@DevTwitter | <Soroush Ahmadi/>
۳ برابر سریعتر، دقیقتر و بهبود ویژگی چند زبانه.
برای توسعهدهندهها، مدلهای grok-2-1212 و grok-2-vision-1212 رو با قیمت ۲ دلار برای ۱ میلیون توکن دادن.
x.com/i/grok
@DevTwitter | <Soroush Ahmadi/>
👍25🤣14👎2
کلون ردیس رو گذاشتم روی گیتهاب فعلا فقط get و set داره و میتونه با چندتا کانکشن همزمان کار کنه. امروزم میخوام persistence رو اضافه کنم.
https://github.com/Glyphack/redis-clone
فعلا بخش hash map عش بدترین چیزشه باید ببینم چه تابع هش خوبی برای دیتابیس هست که استفاده کنم. اگرم ۳۲ بیتی باشه خروجی
@DevTwitter | <Shaygan/>
https://github.com/Glyphack/redis-clone
فعلا بخش hash map عش بدترین چیزشه باید ببینم چه تابع هش خوبی برای دیتابیس هست که استفاده کنم. اگرم ۳۲ بیتی باشه خروجی
@DevTwitter | <Shaygan/>
👍33🤣12🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
تا الان چندین فریمورک agentic اومده مثل autogen و metaGPT و crewai و ... چند هفته پیش هم یکی دیگه به نام PydanticAI درست شده که کار همون تیمی هست که لایبرری خوش دست و مهم pydantic را درست کرد.
باهاش کار کردم و به سرعت به یکی از ابزارهای مورد علاقه من تبدیل شده است! علاوه بر ویژگیهای فوقالعادهای که در وبسایتشان ذکر شده، این موارد را بسیار دوست دارم:
- کنترل همه flow ها با پایتون ساده: سبک و بدون وابستگیهای غیرضروری.
- ویژگی dependency injection: بسیار شهودی و قدرتمند.
- یکپارچگی با Logfire: برای observability (مشاهدهپذیری) و ردیابی هزینه، کاملاً بینقص.
این یک کتابخانه ساده است که با قابلیت و انعطافپذیری بالا عرضه شده برای کار کردن با agent ها.
برای نمایش تواناییهای آن، یک آموزش تهیه کردهام که نحوه پیادهسازی یک سیستم multi agent RAG با استفاده از PydanticAI را نشان میدهد. اگر به سیستمهای (RAG) یا سیستمهای مبتنی بر agent علاقه دارید، حتماً چکش کنید.
Github: https://github.com/mallahyari/twosetai/blob/main/pydanticai_multi_agent_rag.ipynb
@DevTwitter | <Mehdi Allahyari/>
باهاش کار کردم و به سرعت به یکی از ابزارهای مورد علاقه من تبدیل شده است! علاوه بر ویژگیهای فوقالعادهای که در وبسایتشان ذکر شده، این موارد را بسیار دوست دارم:
- کنترل همه flow ها با پایتون ساده: سبک و بدون وابستگیهای غیرضروری.
- ویژگی dependency injection: بسیار شهودی و قدرتمند.
- یکپارچگی با Logfire: برای observability (مشاهدهپذیری) و ردیابی هزینه، کاملاً بینقص.
این یک کتابخانه ساده است که با قابلیت و انعطافپذیری بالا عرضه شده برای کار کردن با agent ها.
برای نمایش تواناییهای آن، یک آموزش تهیه کردهام که نحوه پیادهسازی یک سیستم multi agent RAG با استفاده از PydanticAI را نشان میدهد. اگر به سیستمهای (RAG) یا سیستمهای مبتنی بر agent علاقه دارید، حتماً چکش کنید.
Github: https://github.com/mallahyari/twosetai/blob/main/pydanticai_multi_agent_rag.ipynb
@DevTwitter | <Mehdi Allahyari/>
❤8👍4
فیچر Canvas از OpenAI برای همه فعال شده! ابزار عالی برای کدنویسی و نوشتن متنهای حرفهای به صورت بهینهتر، آسونتر و باکیفیتتر.
تو دوره زیر تو ۵۰ دقیقه یادش بگیرین (ویدیو ۶ برای متخصصای GenAIه و لازم نیست ببینیدش.)
https://www.deeplearning.ai/short-courses/collaborative-writing-and-coding-with-openai-canvas/
@DevTwitter | <Reza Jafari/>
تو دوره زیر تو ۵۰ دقیقه یادش بگیرین (ویدیو ۶ برای متخصصای GenAIه و لازم نیست ببینیدش.)
https://www.deeplearning.ai/short-courses/collaborative-writing-and-coding-with-openai-canvas/
@DevTwitter | <Reza Jafari/>
👍15❤4🔥3
ترکیب nextjs و وردپرس عجب چیزیه !!
این روزا همه دارن از "هدلس وردپرس" حرف میزنن. اولش که شنیدم فکر کردم یه چیز علمی تخیلیه! ولی خب کنجکاو شدم و رفتم تو دل ماجرا.
چی شد؟ فهمیدم که وردپرس مثل یه موتور قدرتمنده، ولی خب بدن نداره! یعنی چی؟ یعنی ما وردپرس رو به عنوان بکاند (محل نگهداری و مدیریت محتوا) نگه میداریم، ولی ظاهر سایت (فرانتاند) رو با یه چیز دیگه میسازیم. اینجا بود که Next.js اومد وسط!
حالا چرا هدلس وردپرس؟
فکر کن وردپرس شده مغز و Next.js شده دست و پا. وردپرس محتوا رو نگه میداره و Next.js اونو به بهترین شکل نشون میده! اینجوری هم سرعت سایتمون بالاتره هم دستمون برای طراحی بازتره.
اما یه نکته مهم:
این روش یه مقدار پیچیدهتر از وردپرس سنتیه. باید یه کم فنی تر باشی و با کد زدن حال کنی!
اگه میخوای بیشتر بدونی:
یه سرچ کوچولو تو گوگل بزن "WordPress Headless with Next.js" کلی مقاله و آموزش پیدا میکنی.
یه نگاه به کتابخونههای WPGraphQL یا Advanced Custom Fields هم بنداز.
اگه میخوای یه پروژه استارت بزنی، از استارتر کیت های Next.js برای وردپرس استفاده کن!
خلاصه که، هدلس وردپرس با Next.js یه ترکیب فوقالعاده است که اگه یه مقدار وقت بذاری و یاد بگیری، میتونه کلی پروژه خفن برات بیاره!
@DevTwitter | <Alireza Fakhar/>
این روزا همه دارن از "هدلس وردپرس" حرف میزنن. اولش که شنیدم فکر کردم یه چیز علمی تخیلیه! ولی خب کنجکاو شدم و رفتم تو دل ماجرا.
چی شد؟ فهمیدم که وردپرس مثل یه موتور قدرتمنده، ولی خب بدن نداره! یعنی چی؟ یعنی ما وردپرس رو به عنوان بکاند (محل نگهداری و مدیریت محتوا) نگه میداریم، ولی ظاهر سایت (فرانتاند) رو با یه چیز دیگه میسازیم. اینجا بود که Next.js اومد وسط!
حالا چرا هدلس وردپرس؟
فکر کن وردپرس شده مغز و Next.js شده دست و پا. وردپرس محتوا رو نگه میداره و Next.js اونو به بهترین شکل نشون میده! اینجوری هم سرعت سایتمون بالاتره هم دستمون برای طراحی بازتره.
اما یه نکته مهم:
این روش یه مقدار پیچیدهتر از وردپرس سنتیه. باید یه کم فنی تر باشی و با کد زدن حال کنی!
اگه میخوای بیشتر بدونی:
یه سرچ کوچولو تو گوگل بزن "WordPress Headless with Next.js" کلی مقاله و آموزش پیدا میکنی.
یه نگاه به کتابخونههای WPGraphQL یا Advanced Custom Fields هم بنداز.
اگه میخوای یه پروژه استارت بزنی، از استارتر کیت های Next.js برای وردپرس استفاده کن!
خلاصه که، هدلس وردپرس با Next.js یه ترکیب فوقالعاده است که اگه یه مقدار وقت بذاری و یاد بگیری، میتونه کلی پروژه خفن برات بیاره!
@DevTwitter | <Alireza Fakhar/>
🤣66👍41👎12❤5🔥5
چند وقته برای ساخت بخشهای مختلف Admin Panel تو پروژههام از Filament PHP استفاده میکنم و باید بگم واقعاً یه ابزار فوقالعادهست! اگر با Laravel کار میکنید و دنبال یه راه حل سریع، شیک و منعطف برای پنلهای ادمین میگردید، حتماً Filament رو امتحان کنید.
تو یکی از پروژههام که نیاز داشتم یه پنل مدیریت برای سفارشها و کاربران بسازم، Filament کمک کرد تو چند ساعت یه سیستم کامل و کاربردی راه بندازم. جالب اینجا بود که بهجای صرف وقت برای طراحی فرمها و جداول، تونستم بیشتر روی منطق اصلی پروژه تمرکز کنم.
اگه تا حالا با Filament کار نکردید، پیشنهاد میکنم تو پروژه بعدیتون حتماً ازش استفاده کنید. مطمئنم تجربهتون تو ساخت پنلهای مدیریتی کاملاً متحول میشه.
https://filamentphp.com
@DevTwitter | <Danial Rahimy/>
تو یکی از پروژههام که نیاز داشتم یه پنل مدیریت برای سفارشها و کاربران بسازم، Filament کمک کرد تو چند ساعت یه سیستم کامل و کاربردی راه بندازم. جالب اینجا بود که بهجای صرف وقت برای طراحی فرمها و جداول، تونستم بیشتر روی منطق اصلی پروژه تمرکز کنم.
اگه تا حالا با Filament کار نکردید، پیشنهاد میکنم تو پروژه بعدیتون حتماً ازش استفاده کنید. مطمئنم تجربهتون تو ساخت پنلهای مدیریتی کاملاً متحول میشه.
https://filamentphp.com
@DevTwitter | <Danial Rahimy/>
👍47🤣6❤3🔥2👎1
سرورلس کامپیوتینگ: تحول در دنیای توسعه نرمافزار
سرورلس کامپیوتینگ (Serverless Computing) یک مدل معماری است که به توسعهدهندگان این امکان را میدهد تا بدون نیاز به مدیریت زیرساختهای سرور، تنها بر روی نوشتن و پیادهسازی کد تمرکز کنند. برخلاف آنچه که از اسمش به نظر میرسد، سرورلس به این معنا نیست که هیچ سروری وجود ندارد، بلکه این به این معناست که تمام مدیریت سرور، مقیاسپذیری و نگهداری آن به عهده ارائهدهندگان خدمات ابری (مانند AWS، Google Cloud و Azure) است.
چرا سرورلس کامپیوتینگ یک تغییر بزرگ است؟
کارایی هزینهای بالا: ما فقط برای منابعی که مصرف میکنیم هزینه پرداخت میکنیم. به این معنی که برای زمانهایی که کد شما اجرا نمیشود، هیچ هزینهای نمیپردازیم. این ویژگی برای استارتاپها و کسبوکارهای در حال رشد که به دنبال صرفهجویی در هزینهها هستند، ایدهآل است.
مقیاسپذیری خودکار: در این مدل، نیازی به نگرانی درباره مقیاسپذیری و تنظیم تعداد سرورها نیست. ابزارهای سرورلس بهطور خودکار بار ترافیک را مدیریت کرده و تعداد منابع مورد نیاز را بسته به تقاضا تنظیم میکنند.
تمرکز بیشتر روی کد: توسعهدهندگان میتوانند بیشتر بر روی نوشتن منطق کسبوکار و ویژگیهای جدید تمرکز کنند، بدون اینکه دغدغهای در مورد مدیریت زیرساختها داشته باشند.
پیادهسازی سریعتر: به دلیل این که تنها قسمتهای خاصی از برنامه به صورت مستقل اجرا میشوند، میتوانیم ویژگیهای جدید را در زمان کوتاهی پیادهسازی کرده و آنها را سریعتر به محیط تولید منتقل کنیم.
انعطافپذیری و سرعت: برای ایجاد API ها، پردازشهای زمان واقعی، و میکروسرویسها به راحتی میتوان از سرورلس استفاده کرد که باعث افزایش سرعت توسعه و تغییرات میشود.
ابزارهای سرورلس معروف:
AWS Lambda
Google Cloud Functions
Azure Functions
این ابزارها به ما این امکان را میدهند که کدهای خود را در قالب توابع مستقل اجرا کنید و فقط زمانی که این توابع فراخوانی میشوند، منابع مصرف شوند.
نتیجهگیری:
سرورلس کامپیوتینگ به ما این امکان را میدهد که بدون نیاز به مدیریت سرورها و زیرساختهای پیچیده، به سرعت و به صورت مقیاسپذیر برنامهنویسی کنیم. این رویکرد، بهویژه برای پروژههای کوچک و استارتاپها که میخواهند از هزینههای سرور اجتناب کنند و بر نوشتن کد تمرکز کنند، ایدهآل است.
@DevTwitter | <Mohammad Hosein Shahbazi/>
سرورلس کامپیوتینگ (Serverless Computing) یک مدل معماری است که به توسعهدهندگان این امکان را میدهد تا بدون نیاز به مدیریت زیرساختهای سرور، تنها بر روی نوشتن و پیادهسازی کد تمرکز کنند. برخلاف آنچه که از اسمش به نظر میرسد، سرورلس به این معنا نیست که هیچ سروری وجود ندارد، بلکه این به این معناست که تمام مدیریت سرور، مقیاسپذیری و نگهداری آن به عهده ارائهدهندگان خدمات ابری (مانند AWS، Google Cloud و Azure) است.
چرا سرورلس کامپیوتینگ یک تغییر بزرگ است؟
کارایی هزینهای بالا: ما فقط برای منابعی که مصرف میکنیم هزینه پرداخت میکنیم. به این معنی که برای زمانهایی که کد شما اجرا نمیشود، هیچ هزینهای نمیپردازیم. این ویژگی برای استارتاپها و کسبوکارهای در حال رشد که به دنبال صرفهجویی در هزینهها هستند، ایدهآل است.
مقیاسپذیری خودکار: در این مدل، نیازی به نگرانی درباره مقیاسپذیری و تنظیم تعداد سرورها نیست. ابزارهای سرورلس بهطور خودکار بار ترافیک را مدیریت کرده و تعداد منابع مورد نیاز را بسته به تقاضا تنظیم میکنند.
تمرکز بیشتر روی کد: توسعهدهندگان میتوانند بیشتر بر روی نوشتن منطق کسبوکار و ویژگیهای جدید تمرکز کنند، بدون اینکه دغدغهای در مورد مدیریت زیرساختها داشته باشند.
پیادهسازی سریعتر: به دلیل این که تنها قسمتهای خاصی از برنامه به صورت مستقل اجرا میشوند، میتوانیم ویژگیهای جدید را در زمان کوتاهی پیادهسازی کرده و آنها را سریعتر به محیط تولید منتقل کنیم.
انعطافپذیری و سرعت: برای ایجاد API ها، پردازشهای زمان واقعی، و میکروسرویسها به راحتی میتوان از سرورلس استفاده کرد که باعث افزایش سرعت توسعه و تغییرات میشود.
ابزارهای سرورلس معروف:
AWS Lambda
Google Cloud Functions
Azure Functions
این ابزارها به ما این امکان را میدهند که کدهای خود را در قالب توابع مستقل اجرا کنید و فقط زمانی که این توابع فراخوانی میشوند، منابع مصرف شوند.
نتیجهگیری:
سرورلس کامپیوتینگ به ما این امکان را میدهد که بدون نیاز به مدیریت سرورها و زیرساختهای پیچیده، به سرعت و به صورت مقیاسپذیر برنامهنویسی کنیم. این رویکرد، بهویژه برای پروژههای کوچک و استارتاپها که میخواهند از هزینههای سرور اجتناب کنند و بر نوشتن کد تمرکز کنند، ایدهآل است.
@DevTwitter | <Mohammad Hosein Shahbazi/>
👍27❤2👎2
افزایش کارایی در لاراول با جلوگیری از مشکل N+1
آیا میدانستید که N+1 Query Problem یکی از موضوعات رایج در مصاحبههای برنامهنویسی لاراول است؟ اگر به دنبال افزایش دانش خود برای پروژهها و همچنین آمادگی برای مصاحبه هستید، این نکته طلایی را از دست ندهید!
مشکل N+1 چیست؟
این مشکل زمانی رخ میدهد که برای هر رکورد، یک کوئری جداگانه اجرا شود. مثلاً وقتی لیست کتابها را با نویسندههایشان واکشی میکنید، بهجای یک کوئری کلی، چندین کوئری اجرا میشود که کارایی برنامه را به شدت کاهش میدهد.
راهحل؟ (Eager Click Me Load More):
با استفاده از with() در لاراول، میتوانید روابط مدلها را در یک کوئری بازیابی کنید و از N+1 جلوگیری کنید
در تصویر نمونه درست و غلط رو هم درج کردم
با این روش، همه نویسندهها همراه با کتابها در یک کوئری واکشی میشوند و سرعت اپلیکیشن شما افزایش مییابد.
نکته مصاحبهای:
مصاحبهکنندگان اغلب میپرسند: "چگونه میتوان از مشکل N+1 جلوگیری کرد؟" حالا شما با این پاسخ آماده هستید!
@DevTwitter | <Alireza Ahmadi/>
آیا میدانستید که N+1 Query Problem یکی از موضوعات رایج در مصاحبههای برنامهنویسی لاراول است؟ اگر به دنبال افزایش دانش خود برای پروژهها و همچنین آمادگی برای مصاحبه هستید، این نکته طلایی را از دست ندهید!
مشکل N+1 چیست؟
این مشکل زمانی رخ میدهد که برای هر رکورد، یک کوئری جداگانه اجرا شود. مثلاً وقتی لیست کتابها را با نویسندههایشان واکشی میکنید، بهجای یک کوئری کلی، چندین کوئری اجرا میشود که کارایی برنامه را به شدت کاهش میدهد.
راهحل؟ (Eager Click Me Load More):
با استفاده از with() در لاراول، میتوانید روابط مدلها را در یک کوئری بازیابی کنید و از N+1 جلوگیری کنید
در تصویر نمونه درست و غلط رو هم درج کردم
با این روش، همه نویسندهها همراه با کتابها در یک کوئری واکشی میشوند و سرعت اپلیکیشن شما افزایش مییابد.
نکته مصاحبهای:
مصاحبهکنندگان اغلب میپرسند: "چگونه میتوان از مشکل N+1 جلوگیری کرد؟" حالا شما با این پاسخ آماده هستید!
@DevTwitter | <Alireza Ahmadi/>
👍27🤣8👎1
اگه تجربه توسعه مینی اپای تلگرام رو داشته باشید احتمالا دردسرای تانل کردن و ماک کردن دیتا و تست کردن همزمان نسخه اندروید و ios رو دیدید. عرفان با این اپش همه این مشکلات رو حل کرده و شما میتونید یه محیط توسعه کامل برای مینی اپا رو داشته باشید
https://github.com/erfanmola/TMA-Studio
@DevTwitter | <MohammadReza Shahmoradi/>
https://github.com/erfanmola/TMA-Studio
@DevTwitter | <MohammadReza Shahmoradi/>
👍46🤣14❤5🔥3👎1