مایکروسافت اعلام کرد استفاده از React را به سطل آشغال منتقل و با یک افزایش سرعت 40 درصدی با استفاده از WebUI 2.0 رسیده است !
مایکروسافت با پروژه WebUI 2.0 در حال بهبود سرعت و عملکرد مرورگر Edge است. در نسخه ۱۲۲، رابط کاربری ۴۲٪ سریعتر شده و روی دستگاههای ضعیفتر (بدون SSD) تا ۷۶٪ بهینهتر شده است.
تغییر بزرگ: مایکروسافت دیگر از React استفاده نمیکند!
مرورگر Edge دیگر از فریمورک React برای رابط کاربری خود استفاده نخواهد کرد.
این تغییر باعث میشود مرورگر سبکتر و سریعتر شود.
چرا این مهم است؟
حذف React باعث کاهش تأخیر در اجرای رابط کاربری میشود.
همچنین Edge از یک روش سبکتر و سریعتر برای نمایش صفحات استفاده خواهد کرد.
این تغییر روی کامپیوترهای ضعیف، عملکرد مرورگر را بهتر میکند.
نتیجه: Edge سریعتر و بهینهتر از همیشه خواهد شد، بدون React و با یک رابط کاربری جدید و سبکتر!
https://www.techspot.com/news/103185-microsoft-improving-edge-ui-responsiveness-webui-20-project.html#:~:text=WebUI%202.0%20is%20a%20new,during%20the%20UI%20initialization%20path
@DevTwitter | <Mohammad Jafari/>
مایکروسافت با پروژه WebUI 2.0 در حال بهبود سرعت و عملکرد مرورگر Edge است. در نسخه ۱۲۲، رابط کاربری ۴۲٪ سریعتر شده و روی دستگاههای ضعیفتر (بدون SSD) تا ۷۶٪ بهینهتر شده است.
تغییر بزرگ: مایکروسافت دیگر از React استفاده نمیکند!
مرورگر Edge دیگر از فریمورک React برای رابط کاربری خود استفاده نخواهد کرد.
این تغییر باعث میشود مرورگر سبکتر و سریعتر شود.
چرا این مهم است؟
حذف React باعث کاهش تأخیر در اجرای رابط کاربری میشود.
همچنین Edge از یک روش سبکتر و سریعتر برای نمایش صفحات استفاده خواهد کرد.
این تغییر روی کامپیوترهای ضعیف، عملکرد مرورگر را بهتر میکند.
نتیجه: Edge سریعتر و بهینهتر از همیشه خواهد شد، بدون React و با یک رابط کاربری جدید و سبکتر!
https://www.techspot.com/news/103185-microsoft-improving-edge-ui-responsiveness-webui-20-project.html#:~:text=WebUI%202.0%20is%20a%20new,during%20the%20UI%20initialization%20path
@DevTwitter | <Mohammad Jafari/>
🔥66👎36👍18❤1
مجموعهای از دادههای ساختاریافته فوتبال ،لیگ برتر ایران(لیگ خلیج فارس)، شامل نتایج مسابقات، جدول نهایی، داوران و آقای گلها در قالب CSV.
ایدهآل برای پردازش با Pandas، SQL و مدلسازی با Machine Learning.
https://github.com/Abbasmo72/PersianGulfLeagueIran-Stats/blob/main/Persian.md
@DevTwitter | <Arzhan/>
ایدهآل برای پردازش با Pandas، SQL و مدلسازی با Machine Learning.
https://github.com/Abbasmo72/PersianGulfLeagueIran-Stats/blob/main/Persian.md
@DevTwitter | <Arzhan/>
👍32
توهم کنترل کامل، یکی از بزرگترین سوءتفاهمها در برنامهنویسی Concurrent است.
میتوان Concurrency نوشت و تصور کنید برنامهتان همزمان اجرا میشود، اما Parallelism واقعی تحت کنترل شما نیست.
این OS و Scheduler هستند که تعیین میکنند چه زمانی و چگونه وظایف بهطور موازی اجرا شوند.
@DevTwitter | <Amin Badin/>
میتوان Concurrency نوشت و تصور کنید برنامهتان همزمان اجرا میشود، اما Parallelism واقعی تحت کنترل شما نیست.
این OS و Scheduler هستند که تعیین میکنند چه زمانی و چگونه وظایف بهطور موازی اجرا شوند.
@DevTwitter | <Amin Badin/>
👍76
شاید اوایل کار شما هم مثل من فکر میکردید که Lazy Loading فقط برای لود کردن عکسها بکار میره، ولی این فقط یه گوشه از ماجراست! درواقع Lazy Loading یه استراتژی هوشمندانهست که میشه تو خیلی جاها ازش استفاده کرد. بذارید چندتا مثال بزنم تا بیشتر با کاربرد هاش آشنا بشیم
کامپوننتها:
وقتی یه اپلیکیشن بزرگ دارید، نیازی نیست همه کامپوننتها رو از اول لود کنید. مثلاً پنل ادمین رو فقط وقتی ادمین لاگین کرد لود میکنیم!
روتهای برنامه:
چرا باید کد صفحه پروفایل رو موقعی که کاربر تو صفحه اصلی هست لود کنیم؟ بذار هر وقت رفت تو پروفایل، اون موقع لود بشه.
کتابخونههای سنگین:
مثلاً کتابخونه نقشه یا چارت که حجم زیادی دارن رو فقط وقتی کاربر واقعاً بهشون نیاز داره لود میکنیم.
دیتای API:
حتی میتونیم دیتا رو هم Lazy Load کنیم! مثلاً تو لیست محصولات، به جای گرفتن همه محصولات، به تدریج و موقع اسکرول کردن لود کنیم (Infinite Scroll).
نتیجه چی میشه؟
-سرعت اولیه برنامه میره بالا
-منابع سیستم کمتر مصرف میشه
-کاربر فقط چیزی که نیاز داره رو دانلود میکنه
-تجربه کاربری بهتر میشه
پس دفعه بعد که خواستید پرفورمنس برنامهتون رو بهتر کنید، فقط به عکسها فکر نکنید! Lazy Loading خیلی جاهای دیگه هم به دردتون میخوره
@DevTwitter | <Soheil Seyyedi/>
کامپوننتها:
وقتی یه اپلیکیشن بزرگ دارید، نیازی نیست همه کامپوننتها رو از اول لود کنید. مثلاً پنل ادمین رو فقط وقتی ادمین لاگین کرد لود میکنیم!
روتهای برنامه:
چرا باید کد صفحه پروفایل رو موقعی که کاربر تو صفحه اصلی هست لود کنیم؟ بذار هر وقت رفت تو پروفایل، اون موقع لود بشه.
کتابخونههای سنگین:
مثلاً کتابخونه نقشه یا چارت که حجم زیادی دارن رو فقط وقتی کاربر واقعاً بهشون نیاز داره لود میکنیم.
دیتای API:
حتی میتونیم دیتا رو هم Lazy Load کنیم! مثلاً تو لیست محصولات، به جای گرفتن همه محصولات، به تدریج و موقع اسکرول کردن لود کنیم (Infinite Scroll).
نتیجه چی میشه؟
-سرعت اولیه برنامه میره بالا
-منابع سیستم کمتر مصرف میشه
-کاربر فقط چیزی که نیاز داره رو دانلود میکنه
-تجربه کاربری بهتر میشه
پس دفعه بعد که خواستید پرفورمنس برنامهتون رو بهتر کنید، فقط به عکسها فکر نکنید! Lazy Loading خیلی جاهای دیگه هم به دردتون میخوره
@DevTwitter | <Soheil Seyyedi/>
👍93❤8👎1
👍30🔥10👎4
This media is not supported in your browser
VIEW IN TELEGRAM
گوگل امروز یک سیستم هوش مصنوعی به اسم همکار علمی (co-scientist) معرفی کرده که به گفته خودش فراتر از ابزارهای تحقیق عمیق عمل میکند تا به دانشمندان در تولید فرضیههای جدید و استراتژیهای پژوهشی کمک کند. ویدیو جالبه!
@DevTwitter | <Mehdi Allahyari/>
@DevTwitter | <Mehdi Allahyari/>
👍34🔥3
من یک اکستنشن درست کردم برای راست چین کردن Deepseek و با اون میشه متن هایی که Deepseek به صورت فارسی و انگلیسی مینویسه رو راست چین میکنه و اونو خوانا ترش میکنه اینم از لینک دانلود و نصب واسه فایر فاکس
https://addons.mozilla.org/en-US/firefox/addon/rtl-deepseek/
@DevTwitter | <AmirAli Noroozi/>
https://addons.mozilla.org/en-US/firefox/addon/rtl-deepseek/
@DevTwitter | <AmirAli Noroozi/>
❤82👍22👎8
شروع کردیم به آماده کردن یک سری داشبورد برای اتوماسیون
این داشبورد یه ربات تلگرامی که آخرین اخبار و میخونه و تو بازه های یکساعته به کانالتون ارسال میکنه.
1.فعلا دو تا موضوع اضافه شده.
2. امکان ترجمه با سرویس گوگل کلاد داره
https://github.com/TelegramBotDashboards/rss-bot
@DevTwitter | <Saeed/>
این داشبورد یه ربات تلگرامی که آخرین اخبار و میخونه و تو بازه های یکساعته به کانالتون ارسال میکنه.
1.فعلا دو تا موضوع اضافه شده.
2. امکان ترجمه با سرویس گوگل کلاد داره
https://github.com/TelegramBotDashboards/rss-bot
@DevTwitter | <Saeed/>
❤29👍8🔥3👎2
👎118👍21🔥7❤2
با ابزار n8n یک فرآیند ایجاد پست بلاگ با ورودی فهرستی از کلمات کلیدی و کلمات کمکی مناسب گوگل ساختم. البته مجبور شدم برای تمیز کردن خروجی یکم کد بنویسم. ایجاد و انتشار ۶۴ تا پست بلاگ روی M3 حدود یک ساعت طول کشید.
- self-hosted n8n
- phi4-latest with Ollama
@DevTwitter | <Atta Khalighi S./>
- self-hosted n8n
- phi4-latest with Ollama
@DevTwitter | <Atta Khalighi S./>
🔥30👍8❤1
چجوری میفهمن مثلا چه گروه هکری حمله کرده بهشون؟
یا اگه گروه هکری نشونه ای از خودشون گذاشتن، چرا این کار میکنن؟هدف شون چیه؟
- قدرتنمایی! گروههایی مثل Lazarus کره شمالی و APT28 روسیه برای ایجاد ترس و وحشت از عمد نشانه باقی می گذارند.
- معروف شدن و جذب نیرو
- ارسال پیام سیاسی مثل Anonymous
- گاهی اوقات هم عمداً از نشانههای بقیه استفاده میکنند تا تحقیقات امنیتی را منحرف کنند.
شرکتهای امنیتی مثل Broadcom، Kaspersky و خیلی های دیگه مثل FireEye تحلیل های خودشان را از این گروهها و نشانه های این گروهها منتشر می کنند.
در کنار این تحقیقات دانشگاهی هم روی این موارد صورت می گیرد و البته سایت هایی مثل VirusTotal این امکان را میدهند که نتایج را با بقیه محققین به اشتراک گذاشت.
گاهی اوقات هم اسناد افشا شده تاثیر گذار هستند.
@DevTwitter | <Vahid Nameni/>
یا اگه گروه هکری نشونه ای از خودشون گذاشتن، چرا این کار میکنن؟هدف شون چیه؟
- قدرتنمایی! گروههایی مثل Lazarus کره شمالی و APT28 روسیه برای ایجاد ترس و وحشت از عمد نشانه باقی می گذارند.
- معروف شدن و جذب نیرو
- ارسال پیام سیاسی مثل Anonymous
- گاهی اوقات هم عمداً از نشانههای بقیه استفاده میکنند تا تحقیقات امنیتی را منحرف کنند.
شرکتهای امنیتی مثل Broadcom، Kaspersky و خیلی های دیگه مثل FireEye تحلیل های خودشان را از این گروهها و نشانه های این گروهها منتشر می کنند.
در کنار این تحقیقات دانشگاهی هم روی این موارد صورت می گیرد و البته سایت هایی مثل VirusTotal این امکان را میدهند که نتایج را با بقیه محققین به اشتراک گذاشت.
گاهی اوقات هم اسناد افشا شده تاثیر گذار هستند.
@DevTwitter | <Vahid Nameni/>
🔥53👍23
خب مدل زبانی هرمز با ۸ میلیارد پارامتر، ریلیز شد. این مدل، یک مدل چندزبانی و کوچک در عین حال اوپن سورس بوده و نرمافزار آزاد با پروانه MIT محسوب میشه که به شما اجازه استفاده تجاری از مدل هم میده.
حالا ببینیم این مدل از کجا شروع شده و به کجا میره؟
اول از همه لینکهاش رو ببینیم:
هاگینگفیس:
http://huggingface.co/mann-e/Hormoz-8B
گیتهاب:
https://github.com/mann-e/hormoz
شرکت Cohere یک مدل خوبی داره به اسم Command R که نسخه اصلیش به شدت بزرگ و پرهزینهست برای هاست کردن. از طرفی نسخه ۸ میلیارد پارامتریش اونقدرها «چند زبانه» نیست. در عوض مدلی به اسم Aya Expanse داره که اتفاقا چندزبانه هم هست و روی ۸ میلیارد هم خیلی خوب داره کار میده.
حالا مشکل چیه؟ اینه که Aya Expanse پروانه انتشاری داره که اجازه نمیده که شما ازش تجاری استفاده کنید. نتیجه این شد که تصمیم بر این شد که Command R کوچک بیاد و به Aya Expanse تبدیل بشه.
اولین اقدام این بود که از دیتاستهای Mani Miezaei
استفاده بشه. ضمن این که با کمک APIهای OpenAI کل اون دوتا دیتاست، به زبانهایی به جز فارسی هم ترجمه شدند. بعد از اون، فاینتیون روی ۴ تا کارت ۴۰۹۰ و در طی زمانی معادل ۵۰ ساعت صورت گرفت. هزینه بنچمارک و فاینتیون و ... هم بذاریم کنار هم چیزی در حدود ۴۰۰۰ دلار میشه (البته این رو بگم هزینه دستمزد فرضی افراد حاضر در پروژه هم در نظر گرفته شده).
حالا عملکرد مدل چطور بوده؟
به طور کلی اصلا خوب عمل نکرده ولی اگر در نظر بگیرید که این مدل ۸ میلیارد پارامتر بیشتر نداره، عالی عمل کرده.
مساله بعدی اینه که مدل کاملا «بدون سانسور» داره عرضه میشه و میتونید سوالات مورد دار هم ازش بپرسید :))
haghiri75_blog.t.me/374
@DevTwitter | <MohammadReza Haghiri/>
حالا ببینیم این مدل از کجا شروع شده و به کجا میره؟
اول از همه لینکهاش رو ببینیم:
هاگینگفیس:
http://huggingface.co/mann-e/Hormoz-8B
گیتهاب:
https://github.com/mann-e/hormoz
شرکت Cohere یک مدل خوبی داره به اسم Command R که نسخه اصلیش به شدت بزرگ و پرهزینهست برای هاست کردن. از طرفی نسخه ۸ میلیارد پارامتریش اونقدرها «چند زبانه» نیست. در عوض مدلی به اسم Aya Expanse داره که اتفاقا چندزبانه هم هست و روی ۸ میلیارد هم خیلی خوب داره کار میده.
حالا مشکل چیه؟ اینه که Aya Expanse پروانه انتشاری داره که اجازه نمیده که شما ازش تجاری استفاده کنید. نتیجه این شد که تصمیم بر این شد که Command R کوچک بیاد و به Aya Expanse تبدیل بشه.
اولین اقدام این بود که از دیتاستهای Mani Miezaei
استفاده بشه. ضمن این که با کمک APIهای OpenAI کل اون دوتا دیتاست، به زبانهایی به جز فارسی هم ترجمه شدند. بعد از اون، فاینتیون روی ۴ تا کارت ۴۰۹۰ و در طی زمانی معادل ۵۰ ساعت صورت گرفت. هزینه بنچمارک و فاینتیون و ... هم بذاریم کنار هم چیزی در حدود ۴۰۰۰ دلار میشه (البته این رو بگم هزینه دستمزد فرضی افراد حاضر در پروژه هم در نظر گرفته شده).
حالا عملکرد مدل چطور بوده؟
به طور کلی اصلا خوب عمل نکرده ولی اگر در نظر بگیرید که این مدل ۸ میلیارد پارامتر بیشتر نداره، عالی عمل کرده.
مساله بعدی اینه که مدل کاملا «بدون سانسور» داره عرضه میشه و میتونید سوالات مورد دار هم ازش بپرسید :))
haghiri75_blog.t.me/374
@DevTwitter | <MohammadReza Haghiri/>
👍35❤3👎2
برای پلاگین Jupiter X Core مربوط به Wordpress آسیب پذیری از نوع LFI منتشر شده است.آسیب پذیری به هکرها امکان بارگزاری فایل SVG دارای کد php مخرب بر روی وب سایت و اجرا شدن کد php مخرب را می دهد. ۹۰ هزار وب سایت در دنیا در معرض هک شدن هستند.
@DevTwitter | <protect_cyber_sec/>
@DevTwitter | <protect_cyber_sec/>
👍21👎4🔥4
گیت هاب اکشنی که نوشتم رو خودم روی پایپلاین تست کردم و جواب گرفتم. من برای ترجمه فایل های مارک داون و json ازش استفاده میکنم تا نوشته های انگلیسی رو خودکار به فارسی ترجمه کنه و دوباره پوش کنه به ریپازیتوری.
پابلیش کردم اینجا:
https://github.com/marketplace/actions/gpt-translate-action-translate-any-files-with-openai-chatgpt
@DevTwitter | <Imun/>
پابلیش کردم اینجا:
https://github.com/marketplace/actions/gpt-translate-action-translate-any-files-with-openai-chatgpt
@DevTwitter | <Imun/>
🔥19👍7
بالاخره پروژهای که مدتها قبل روش کار میکردم رو امروز آماده ریلیز کردم!
پروژه Cute JSON یه سیستم آنلاینه که از روی کلیدهای JSON، بهصورت خودکار API میسازه. ایدهش از جایی اومد که چند بار خودم نیاز داشتم سریع یه API داشته باشم، بدون اینکه بخوام سرور راه بندازم و یا جیسان سرور استفاده کنم و درگیر مشکلات دیپلوی بشم.
توی این پروژه سعی کردم علاوه بر فیچر های جیسان سرور، یه سری موارد مثل فیلترها، تولید داده فیک، ریکاوری دیتاها و... اضافه کنم.
این سیستم برای ذخیره سازی داده های پروژه های آموزشی و تستی مناسب هست و برای پروداکشن توصیه نمیشه.
https://cutejson.dev/
@DevTwitter | <Mohammad Reza Zolfaghari/>
پروژه Cute JSON یه سیستم آنلاینه که از روی کلیدهای JSON، بهصورت خودکار API میسازه. ایدهش از جایی اومد که چند بار خودم نیاز داشتم سریع یه API داشته باشم، بدون اینکه بخوام سرور راه بندازم و یا جیسان سرور استفاده کنم و درگیر مشکلات دیپلوی بشم.
توی این پروژه سعی کردم علاوه بر فیچر های جیسان سرور، یه سری موارد مثل فیلترها، تولید داده فیک، ریکاوری دیتاها و... اضافه کنم.
این سیستم برای ذخیره سازی داده های پروژه های آموزشی و تستی مناسب هست و برای پروداکشن توصیه نمیشه.
https://cutejson.dev/
@DevTwitter | <Mohammad Reza Zolfaghari/>
🔥39👍11
ردیس در فرانتاند: چرا و چگونه؟
ردیس معمولاً به عنوان یک پایگاه داده در حافظه برای بکاند استفاده میشود، اما آیا در فرانتاند هم کاربرد دارد؟ بله! در اینجا چند مورد از نقشهای Redis در توسعه فرانتاند را بررسی میکنیم:
- کَشینگ سمت کلاینت: اگر از Next.js یا Nuxt.js استفاده میکنید، میتوانید از Redis برای سرعتبخشیدن به درخواستهای API و کاهش زمان لود صفحات بهره ببرید.
مدیریت Websockets :در اپلیکیشنهای چت، اعلانها یا داشبوردهای بلادرنگ، Redis Pub/Sub میتواند پیامها را بهسرعت بین کاربران همگامسازی کند.
مدیریت نشستها (Session Management): برای اپلیکیشنهایی که از احراز هویت استفاده میکنند، ذخیره سشنها در Redis سرعت و مقیاسپذیری را بهبود میبخشد.
ریت لیمیت (Rate Limithing & Throttling): در فرانتاند، برای جلوگیری از درخواستهای بیش از حد به API، میتوان از Redisبرای مدیریت نرخ درخواستها استفاده کرد.
نتیجهگیری: اگرچه Redis یک ابزار سمت سرور است، اما در بهینهسازی تجربه کاربری و افزایش سرعت فرانتاند نقش مهمی دارد.
@DevTwitter | <Soheil Seyyedi/>
ردیس معمولاً به عنوان یک پایگاه داده در حافظه برای بکاند استفاده میشود، اما آیا در فرانتاند هم کاربرد دارد؟ بله! در اینجا چند مورد از نقشهای Redis در توسعه فرانتاند را بررسی میکنیم:
- کَشینگ سمت کلاینت: اگر از Next.js یا Nuxt.js استفاده میکنید، میتوانید از Redis برای سرعتبخشیدن به درخواستهای API و کاهش زمان لود صفحات بهره ببرید.
مدیریت Websockets :در اپلیکیشنهای چت، اعلانها یا داشبوردهای بلادرنگ، Redis Pub/Sub میتواند پیامها را بهسرعت بین کاربران همگامسازی کند.
مدیریت نشستها (Session Management): برای اپلیکیشنهایی که از احراز هویت استفاده میکنند، ذخیره سشنها در Redis سرعت و مقیاسپذیری را بهبود میبخشد.
ریت لیمیت (Rate Limithing & Throttling): در فرانتاند، برای جلوگیری از درخواستهای بیش از حد به API، میتوان از Redisبرای مدیریت نرخ درخواستها استفاده کرد.
نتیجهگیری: اگرچه Redis یک ابزار سمت سرور است، اما در بهینهسازی تجربه کاربری و افزایش سرعت فرانتاند نقش مهمی دارد.
@DevTwitter | <Soheil Seyyedi/>
👍40🔥12👎5❤3
چطور میتوانیم تراکنشهای پایگاه داده در Django رو به صورت یکپارچه و بدون دردسر مدیریت کنیم؟
در دنیای برنامهنویسی، گاهی اوقات با مجموعهای از عملیات پایگاه داده روبهرو میشویم که باید همگی به طور موفقیتآمیز انجام شوند یا اصلاً انجام نشوند. دکوراتور atomic در Django دقیقاً برای همین موقعیت طراحی شده است. در این مقاله به بررسی مزایا و کاربردهای این دکوراتور میپردازیم.
دکوراتور atomic چیست؟
دکوراتور atomic در Django ابزاری قدرتمند برای مدیریت تراکنشهای پایگاه داده است که به شما این امکان را میدهد که مجموعهای از عملیات پایگاه داده را به صورت یک تراکنش واحد اجرا کنید. این ویژگی به شما کمک میکند تا از مشکلاتی همچون ناسازگاری دادهها و تراکنشهای ناقص جلوگیری کنید.
قابلیتها و کاراییهای دکوراتور atomic:
مدیریت تراکنشها
اصلیترین وظیفه atomic، مدیریت تراکنشهای پایگاه داده است. با قرار دادن تابع یا view خود در داخل این دکوراتور، تمامی عملیات پایگاه داده در آن بخش به صورت یک تراکنش واحد اجرا میشوند.
جلوگیری از ناسازگاری دادهها
اگر در حین انجام عملیات پایگاه داده، خطایی رخ دهد، atomic تضمین میکند که هیچ تغییری در پایگاه داده اعمال نشود و تمامی تغییرات به حالت قبلی برمیگردند. این کار از ایجاد ناسازگاری در دادهها جلوگیری میکند.
افزایش عملکرد
در برخی موارد، استفاده از atomic میتواند عملکرد برنامه را بهبود دهد. با کاهش تعداد تماسهای متوالی به پایگاه داده، میتوان سرعت اجرای عملیات را افزایش داد.
کنترل دقیقتر
شما میتوانید سطح انزوا (Isolation) تراکنشها را نیز مشخص کنید. این ویژگی به شما امکان میدهد که دقیقاً کنترل کنید که تراکنشها چگونه اجرا شوند و از تداخل آنها جلوگیری کنید.
ویژگیهای کلیدی دکوراتور atomic
Atomicidad:
تمام عملیات داخل یک بلوک کد یا view یا به طور کامل انجام میشود یا اصلاً انجام نمیشود.
Isolation:
سطح انزوای تراکنشها را تعیین میکند تا از تداخل تراکنشها با یکدیگر جلوگیری شود.
Durability:
تغییرات اعمال شده در پایگاه داده پس از خرابی سیستم یا قطع برق، باقی میمانند.
ACID Properties:
دکوراتور atomic به چهار ویژگی اساسی یعنی Atomicity, Consistency, Isolation و Durability مجهز است که در طراحی برنامههای پایدار و قابل اعتماد بسیار موثر است.
موارد استفاده رایج:
انتقال وجه
در سیستمهای مالی برای جلوگیری از خطاهای احتمالی هنگام انتقال وجه بین حسابها.
ثبت سفارش
در فروشگاههای آنلاین برای اطمینان از ثبت کامل سفارش و جلوگیری از ثبت سفارشهای ناقص.
مدیریت موجودی
در سیستمهای انبارداری برای بهروزرسانی موجودی کالاها به طور دقیق و جلوگیری از مغایرتها.
مزایای استفاده از atomic
کاهش خطاهای پایگاه داده: با مدیریت دقیق تراکنشها، احتمال خطاهای ناشی از عملیات ناقص کاهش مییابد.
افزایش امنیت دادهها: جلوگیری از ناسازگاری دادهها موجب حفظ امنیت اطلاعات کاربران میشود.
بهبود عملکرد: در برخی سناریوها، استفاده از atomic میتواند عملکرد کلی برنامه را بهبود بخشد.
نکات مهم
از atomic در مواقعی که نیاز به یکپارچگی عملیات پایگاه داده دارید استفاده کنید.
توجه داشته باشید که استفاده بیرویه از atomic ممکن است منجر به کاهش عملکرد برنامه شود.
در صورت نیاز به کنترل دقیقتر بر تراکنشها، میتوانید از پارامترهای مختلف این دکوراتور استفاده کنید.
@DevTwitter | <Sobhan Hassanzadeh/>
در دنیای برنامهنویسی، گاهی اوقات با مجموعهای از عملیات پایگاه داده روبهرو میشویم که باید همگی به طور موفقیتآمیز انجام شوند یا اصلاً انجام نشوند. دکوراتور atomic در Django دقیقاً برای همین موقعیت طراحی شده است. در این مقاله به بررسی مزایا و کاربردهای این دکوراتور میپردازیم.
دکوراتور atomic چیست؟
دکوراتور atomic در Django ابزاری قدرتمند برای مدیریت تراکنشهای پایگاه داده است که به شما این امکان را میدهد که مجموعهای از عملیات پایگاه داده را به صورت یک تراکنش واحد اجرا کنید. این ویژگی به شما کمک میکند تا از مشکلاتی همچون ناسازگاری دادهها و تراکنشهای ناقص جلوگیری کنید.
قابلیتها و کاراییهای دکوراتور atomic:
مدیریت تراکنشها
اصلیترین وظیفه atomic، مدیریت تراکنشهای پایگاه داده است. با قرار دادن تابع یا view خود در داخل این دکوراتور، تمامی عملیات پایگاه داده در آن بخش به صورت یک تراکنش واحد اجرا میشوند.
جلوگیری از ناسازگاری دادهها
اگر در حین انجام عملیات پایگاه داده، خطایی رخ دهد، atomic تضمین میکند که هیچ تغییری در پایگاه داده اعمال نشود و تمامی تغییرات به حالت قبلی برمیگردند. این کار از ایجاد ناسازگاری در دادهها جلوگیری میکند.
افزایش عملکرد
در برخی موارد، استفاده از atomic میتواند عملکرد برنامه را بهبود دهد. با کاهش تعداد تماسهای متوالی به پایگاه داده، میتوان سرعت اجرای عملیات را افزایش داد.
کنترل دقیقتر
شما میتوانید سطح انزوا (Isolation) تراکنشها را نیز مشخص کنید. این ویژگی به شما امکان میدهد که دقیقاً کنترل کنید که تراکنشها چگونه اجرا شوند و از تداخل آنها جلوگیری کنید.
ویژگیهای کلیدی دکوراتور atomic
Atomicidad:
تمام عملیات داخل یک بلوک کد یا view یا به طور کامل انجام میشود یا اصلاً انجام نمیشود.
Isolation:
سطح انزوای تراکنشها را تعیین میکند تا از تداخل تراکنشها با یکدیگر جلوگیری شود.
Durability:
تغییرات اعمال شده در پایگاه داده پس از خرابی سیستم یا قطع برق، باقی میمانند.
ACID Properties:
دکوراتور atomic به چهار ویژگی اساسی یعنی Atomicity, Consistency, Isolation و Durability مجهز است که در طراحی برنامههای پایدار و قابل اعتماد بسیار موثر است.
موارد استفاده رایج:
انتقال وجه
در سیستمهای مالی برای جلوگیری از خطاهای احتمالی هنگام انتقال وجه بین حسابها.
ثبت سفارش
در فروشگاههای آنلاین برای اطمینان از ثبت کامل سفارش و جلوگیری از ثبت سفارشهای ناقص.
مدیریت موجودی
در سیستمهای انبارداری برای بهروزرسانی موجودی کالاها به طور دقیق و جلوگیری از مغایرتها.
مزایای استفاده از atomic
کاهش خطاهای پایگاه داده: با مدیریت دقیق تراکنشها، احتمال خطاهای ناشی از عملیات ناقص کاهش مییابد.
افزایش امنیت دادهها: جلوگیری از ناسازگاری دادهها موجب حفظ امنیت اطلاعات کاربران میشود.
بهبود عملکرد: در برخی سناریوها، استفاده از atomic میتواند عملکرد کلی برنامه را بهبود بخشد.
نکات مهم
از atomic در مواقعی که نیاز به یکپارچگی عملیات پایگاه داده دارید استفاده کنید.
توجه داشته باشید که استفاده بیرویه از atomic ممکن است منجر به کاهش عملکرد برنامه شود.
در صورت نیاز به کنترل دقیقتر بر تراکنشها، میتوانید از پارامترهای مختلف این دکوراتور استفاده کنید.
@DevTwitter | <Sobhan Hassanzadeh/>
👍33👎5❤2
جالبه بدونید hello, world
اولین بار در کتابی با عنوان "The C Programming Language" نوشته برایان کرنیگان و دنیس ریچی در سال 1978 استفاده شد و از آن زمان به بعد به عنوان یک تمرین ابتدایی در بسیاری از زبانهای برنامهنویسی محبوبیت پیدا کرد.
من هم زمانی که برای اولین بار این کلمه رو بعد از کامپایل برنامه توسط استاد دانشگاهم دیدم به معنای واقعی کلمه به دنیای جدید با زبان های مختلف سلام کردم :)
@DevTwitter | <Mohammad Goroohi/>
اولین بار در کتابی با عنوان "The C Programming Language" نوشته برایان کرنیگان و دنیس ریچی در سال 1978 استفاده شد و از آن زمان به بعد به عنوان یک تمرین ابتدایی در بسیاری از زبانهای برنامهنویسی محبوبیت پیدا کرد.
من هم زمانی که برای اولین بار این کلمه رو بعد از کامپایل برنامه توسط استاد دانشگاهم دیدم به معنای واقعی کلمه به دنیای جدید با زبان های مختلف سلام کردم :)
@DevTwitter | <Mohammad Goroohi/>
👍121❤20
یه ریپازیتوری گیتهاب راهاندازی کردم که بهترین منابع یادگیری جاوا رو با تمرکز روی سیستم دیزاین، معماری نرمافزار و امنیت جمعآوری کنیم. شامل کتابها، دورههای ویدیویی، مقالات، نمونهکدها و نکات کاربردی.
https://github.com/Parsa-Parvizi/Java-Toturial
@DevTwitter | <Parsa-py/>
https://github.com/Parsa-Parvizi/Java-Toturial
@DevTwitter | <Parsa-py/>
👍32❤5
اگر دنبال یک سرویس URL Shortner یا همون کوتاه کننده لینک برای سایتتون هستین پروژه Sink رو توصیه می کنم.
بر روی Worker کلود فلر با استفاده از دیتابیس KV اجرا میشه و طبیعتا پرفورمنس خیلی خوبی بهتون میده.
https://github.com/ccbikai/Sink
@DevTwitter | <Ali Saleh/>
بر روی Worker کلود فلر با استفاده از دیتابیس KV اجرا میشه و طبیعتا پرفورمنس خیلی خوبی بهتون میده.
https://github.com/ccbikai/Sink
@DevTwitter | <Ali Saleh/>
❤19👍11
This media is not supported in your browser
VIEW IN TELEGRAM
اگه از دیتابیس های NoSQL مثل MongoDB استفاده میکنید این ریپو خیلی به کارتون میاد. انواع مثال ها و اپلیکیشن ها درمورد RAG و AI Agents و یوزکیس های صنعتی را شامل میشه ( notebook ها و app های کامل).
Github: https://github.com/mongodb-developer/GenAI-Showcase
@DevTwitter | <Mehdi Allahyari/>
Github: https://github.com/mongodb-developer/GenAI-Showcase
@DevTwitter | <Mehdi Allahyari/>
👍16❤4