Forwarded from Go Casts 🚀
🎯 سیستمهای تراکنشی رو چطوری میشه بهتر طراحی کرد؟
مقاله خیلی جذابی در مورد Transactional Systems منتشر شده که خوندنش رو به همه توصیه میکنم. دید مناسبی نسبت به مراحل اجرای تراکنش و تفاوت ترتیب اجراشون میده
🔍 چهار مرحله اصلی تراکنشها:
اجرای تراکنش یا execution: کدی که عملیات خوندن و نوشتن رو انجام میده.
ترتیبدهی یا ordering: تعیین زمان یا نسخه برای مشخص کردن ترتیب تراکنشها.
اعتبارسنجی یا validation: بررسی صحت تراکنش بر اساس قوانین همزمانی یا منطق دامنه.
پایداری یا persist: ذخیرهسازی دائمی نتایج تراکنش، معمولاً روی دیسک.
این مراحل میتونن بهصورت متوالی یا همزمان انجام بشن و ترتیبشون بسته به طراحی سیستم متفاوته.
💡 مثالها:
کنترل خوشبینانه یا optimistic: اول تراکنش اجرا میشه، بعد اعتبارسنجی و در نهایت پایداری.
کنترل بدبینانه یا pessimistic: از همون اول lock میگیره که از conflict جلوگیری بشه.
در سیستمهایی مثل FoundationDB، این مراحل بهصورت میکروسرویسهای جداگانه پیادهسازی میشن که هر کدوم میتونن مستقل مقیاسپذیر باشن.
متن مقاله کامل رو اینجا میتونین بخونین
🔗 https://transactional.blog/blog/2025-decomposing-transactional-systems
Ai for Software
@aicasts_ir
@gocasts
مقاله خیلی جذابی در مورد Transactional Systems منتشر شده که خوندنش رو به همه توصیه میکنم. دید مناسبی نسبت به مراحل اجرای تراکنش و تفاوت ترتیب اجراشون میده
🔍 چهار مرحله اصلی تراکنشها:
اجرای تراکنش یا execution: کدی که عملیات خوندن و نوشتن رو انجام میده.
ترتیبدهی یا ordering: تعیین زمان یا نسخه برای مشخص کردن ترتیب تراکنشها.
اعتبارسنجی یا validation: بررسی صحت تراکنش بر اساس قوانین همزمانی یا منطق دامنه.
پایداری یا persist: ذخیرهسازی دائمی نتایج تراکنش، معمولاً روی دیسک.
این مراحل میتونن بهصورت متوالی یا همزمان انجام بشن و ترتیبشون بسته به طراحی سیستم متفاوته.
💡 مثالها:
کنترل خوشبینانه یا optimistic: اول تراکنش اجرا میشه، بعد اعتبارسنجی و در نهایت پایداری.
کنترل بدبینانه یا pessimistic: از همون اول lock میگیره که از conflict جلوگیری بشه.
در سیستمهایی مثل FoundationDB، این مراحل بهصورت میکروسرویسهای جداگانه پیادهسازی میشن که هر کدوم میتونن مستقل مقیاسپذیر باشن.
متن مقاله کامل رو اینجا میتونین بخونین
🔗 https://transactional.blog/blog/2025-decomposing-transactional-systems
Ai for Software
@aicasts_ir
@gocasts
transactional.blog
Decomposing Transactional Systems
Every transactional system must execute, order, validate, and persist transactions.
Forwarded from کانال اطلاعرسانی توزیع پارچ (Sohrab)
This media is not supported in your browser
VIEW IN TELEGRAM
به زودی در پارچ پلاسما
امکان کاشی کردن برنامهها با کشیدن فراهم شد.
این ویژگی به کاربر این امکان را میدهد تا با تنظیم اسکریپت به سلیقه خود بتواند محیط کاری خود را راحتتر مدیریت کند.
@ParchLinux
امکان کاشی کردن برنامهها با کشیدن فراهم شد.
این ویژگی به کاربر این امکان را میدهد تا با تنظیم اسکریپت به سلیقه خود بتواند محیط کاری خود را راحتتر مدیریت کند.
@ParchLinux
Forwarded from Gopher Academy
🔵 عنوان مقاله
Bufstream: Robust Streaming for gRPC
🟢 خلاصه مقاله:
**
اBufstream یک سیستم جدید و مخصوصی است که برای پیادهسازی Kafka با استفاده از جریانهای gRPC در محیط ابری طراحی شده است. این سیستم که ترکیبی از فناوری پخش جریان موزون Kafka و کارایی و سرعت gRPC است، بهخوبی آزمونهای سختگیرانه Jepsen را پشت سر گذاشته و در شرایط مختلف شبکه و تنش، دادهها را با دقت و قابلیت اطمینان بالا حفظ میکند.
🟣لینک مقاله:
https://golangweekly.com/link/168169/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Bufstream: Robust Streaming for gRPC
🟢 خلاصه مقاله:
**
اBufstream یک سیستم جدید و مخصوصی است که برای پیادهسازی Kafka با استفاده از جریانهای gRPC در محیط ابری طراحی شده است. این سیستم که ترکیبی از فناوری پخش جریان موزون Kafka و کارایی و سرعت gRPC است، بهخوبی آزمونهای سختگیرانه Jepsen را پشت سر گذاشته و در شرایط مختلف شبکه و تنش، دادهها را با دقت و قابلیت اطمینان بالا حفظ میکند.
🟣لینک مقاله:
https://golangweekly.com/link/168169/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
buf.build
Bufstream is the only cloud-native Kafka implementation validated by Jepsen
Jepsen's Bufstream report bolsters enterprise use of Buf’s elastic Kafka-compatible streaming platform to enable data quality, enforce governance policies, and cut costs 8x
Forwarded from کانال مهرداد لینوکس
یک ساعت در Linux معادل ۷ سال در ویندوز
آپدیت ، ریستارت،
آپدیت ، ریستارت😩.
آپدیت ، ریستارت،
آپدیت ، ریستارت😩.
Forwarded from DevTwitter | توییت برنامه نویسی
یه فانکشن کاربردی به اسم batched توی ماژول itertools از پایتون ۳.۱۲ اضافه شده. هر بار n تا آیتم از iterable بهت میده. خیلی چیز کاربردیه:
https://docs.python.org/3/library/itertools.html#itertools.batched
@DevTwitter | <GreateBahram/>
https://docs.python.org/3/library/itertools.html#itertools.batched
@DevTwitter | <GreateBahram/>
Forwarded from ⚝ (Amir Hossein (Amiria) Maher)
Forwarded from Md Daily (Mahan)
قسمت دوم (پایانی)
بعد از تلاش برای باز تولید مشکل هیچ پیغام خطا یا کرش واضحی وجود نداشته. stack trace مشخصی هم روی صفحه دیده نمیشده. فقط سکوت محض تا لحظه پیدا شدن یه خطای runtime error که از لایههای عمیق اون SDK آپدیتشدهی Apple Pay سرچشمه میگرفت.داشته سعی میکرده از یه method خاص استفاده کنه که توی محیط بعضی از مرورگرهای قدیمیتر اصلاً پشتیبانی نمیشده. نکتش اینجاس که Apple Pay فقط روی سافاری کار میکنه پس این خطا فقط روی نسخه های قدیمی سافاری خودشو نشون میداده. SDK موقع بالا اومدن و مقداردهی اولیه از یه تابع استفاده می کرده که باعث کرش میشده. نه فقط برای خود Apple Pay، بلکه برای همه چی! از همون باگهای موذی که موقع توسعه از زیر دست در میره و دیده نمیشه.
فقط درست کردن باگ مهم نیست؛ بحث سرِ قبول مسئولیت کاره
خب، باگ پیدا و کد هم به نسخه قبل برگردونده شده بود ولی خب کار اینجا تموم نمیشه. چون یه مهندس خوب بودن، فقط به این نیست که مشکل کاربر رو موقتاً حل کنی.مسئولیت اصلی اونجاست که یه قدم میری عقب و از خودت میپرسی:
- این خرابی و قطعی، واقعاً چه معنی و تجربهای برای کاربر داشت؟
- این قطعی چقدر برای کل کسبوکار هزینه برداشت؟
- آیا میشد این مشکل رو زودتر تشخیصش داد؟
- ممکنه دوباره همچین اتفاقی بیفته؟
ما اینجا نیستیم که فقط مثل ربات به آلارمها واکنش نشون بدیم و کدها رو سرسری وصلهپینه کنیم و ما کدنویسهایی نیستیم که بشه مثل ChatGPT بهمون پرامپت داد و انتظار داشت مشکل غیب بشه. اینجاییم که عمیق فکر کنیم، مسئولیت کامل نتایج کارهامون رو به عهده بگیریم و فعالانه جلوی آسیبهای آینده رو بگیریم.
پس برای مستند کردن چه چیز هایی رو میتونیم بنویسیم؟
- چی رو تغییر داده بودیم
- اصلاً چرا تغییرش داده بودیم
- چی و کجا خراب شد
- چطور شد که این مشکل از زیر دست تیم QA در رفت و دیده نشد
- چه چیزهایی توی monitoring ما از قلم افتاده بود که زودتر نفهمیدیم
این کار رو نه به خاطر اینکه کسی خواسته انجام بدیم، بلکه به این دلیل انجام بدیم که شاید خودِ آینده (یا یکی از همتیمیهای آینده) به مشکل مشابهی بر بخوره و اونها بتونن خیلی سریعتر به جواب و راه حل برسن.
این قطعی و اوتایج ها فقط بهمون یاد نمیده که چی اشتباه شده بود یا کجای کار میلنگید. باعث میشه از خودمون بپرسیم: اگه دوباره همچین اتفاقی بیفته، این بار چه کارهایی رو متفاوت انجام میدیم؟
جمعبندی و حرف آخر
راستش هیچکس به آدم نمیگه اولین باری که یه مشکل جدی و یه «آتیشسوزی» تو محیط پروداکشن درست میکنی، دقیقاً چه حسی داره. فوقالعاده پراسترسه و بله، گاهی وقتا هم واقعاً تقصیر کدیه که شما نوشتین.
ولی خب، آدم یاد میگیره.
یاد میگیری که «قبول کردن کامل مسئولیت» واقعاً یعنی چی.
یاد میگیری که چطور یه قدم بری عقبتر و دید وسیعتری پیدا کنی (zoom out کنی)؛ دیگه فقط به این فکر نکنی که «چی خراب شد؟»، بلکه بری سراغ اینکه «این خرابی روی چه کسایی تأثیر گذاشت؟».
یاد میگیری که یه مهندس خوب بودن، به معنی نوشتن کدِ بیعیبونقص و عالی نیست؛ بلکه به اینه که چطور بحران رو مدیریت میکنی، وقتی که اوضاع اصلاً خوب و عالی نیست.
یه چکلیست برای وقتی که این اتفاق برای شما میفته:
- سریع نپرین سراغ دیباگ کردن: اگه مشکل جدیه و روی کاربرها تأثیر مستقیم گذاشته، اولین قدم اینه که کد رو برگردونین به نسخهی قبلی. بعدش با خیال راحتتر برین دنبال دلیل مشکل بگردین.
- زود و شفاف اطلاعرسانی کنین: حتی یه پیام کوتاه مثل «دوستان دارم بررسی میکنم» توی کانالهای ارتباطی خیلی تأثیر مثبتی داره و به آروم شدن فضا کمک میکنه.
- سعی کنین مشکل رو توی محیطهای کنترلشده و ایزوله باز تولید کنین: یعنی دقیقاً با همون شرایطی که مشکل پیش اومده (مثلاً همون مرورگر، همون نسخه و ...).
- لاگها، درخواستهای شبکه، و نحوهی مدیریت خطاها رو با دقت چک کنین: هیچوقت فرض نکنین که اگه مشکلی باشه، حتماً سیستم با سر و صدای زیاد کرش میکنه و سریع متوجه میشین! گاهی مشکلات خیلی بیسر و صدا اتفاق میافتن.
- آستانهی هشدارهای سیستم پایش و مانیتورینگ رو دوباره یه نگاهی بندازین: آیا واقعاً جوری تنظیم شدن که خرابیهای کوچیک، نامحسوس یا تدریجی رو هم زود تشخیص بدن؟
- اتفاقی که افتاده رو با زبون ساده و واضح مستند کنین: این کار رو فقط برای بقیه اعضای تیم انجام ندین، بلکه برای خودتون در آینده هم انجام بدین. حافظه یاری نمیکنه!
- به تأثیر مشکل روی کسبوکار (business impact) فکر کنین: حدوداً چند تا کاربر تحت تأثیر قرار گرفتن؟ و این مشکل برای چه مدت زمانی ادامه داشت؟
- اگه در حین بررسی، به الگوها یا نکتههای کلیدی رسیدین، حتماً یادداشتشون کنین: این نکتهها برای بحران بعدی فوقالعاده ارزشمندن.
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
بعد از تلاش برای باز تولید مشکل هیچ پیغام خطا یا کرش واضحی وجود نداشته. stack trace مشخصی هم روی صفحه دیده نمیشده. فقط سکوت محض تا لحظه پیدا شدن یه خطای runtime error که از لایههای عمیق اون SDK آپدیتشدهی Apple Pay سرچشمه میگرفت.داشته سعی میکرده از یه method خاص استفاده کنه که توی محیط بعضی از مرورگرهای قدیمیتر اصلاً پشتیبانی نمیشده. نکتش اینجاس که Apple Pay فقط روی سافاری کار میکنه پس این خطا فقط روی نسخه های قدیمی سافاری خودشو نشون میداده. SDK موقع بالا اومدن و مقداردهی اولیه از یه تابع استفاده می کرده که باعث کرش میشده. نه فقط برای خود Apple Pay، بلکه برای همه چی! از همون باگهای موذی که موقع توسعه از زیر دست در میره و دیده نمیشه.
فقط درست کردن باگ مهم نیست؛ بحث سرِ قبول مسئولیت کاره
خب، باگ پیدا و کد هم به نسخه قبل برگردونده شده بود ولی خب کار اینجا تموم نمیشه. چون یه مهندس خوب بودن، فقط به این نیست که مشکل کاربر رو موقتاً حل کنی.مسئولیت اصلی اونجاست که یه قدم میری عقب و از خودت میپرسی:
- این خرابی و قطعی، واقعاً چه معنی و تجربهای برای کاربر داشت؟
- این قطعی چقدر برای کل کسبوکار هزینه برداشت؟
- آیا میشد این مشکل رو زودتر تشخیصش داد؟
- ممکنه دوباره همچین اتفاقی بیفته؟
ما اینجا نیستیم که فقط مثل ربات به آلارمها واکنش نشون بدیم و کدها رو سرسری وصلهپینه کنیم و ما کدنویسهایی نیستیم که بشه مثل ChatGPT بهمون پرامپت داد و انتظار داشت مشکل غیب بشه. اینجاییم که عمیق فکر کنیم، مسئولیت کامل نتایج کارهامون رو به عهده بگیریم و فعالانه جلوی آسیبهای آینده رو بگیریم.
پس برای مستند کردن چه چیز هایی رو میتونیم بنویسیم؟
- چی رو تغییر داده بودیم
- اصلاً چرا تغییرش داده بودیم
- چی و کجا خراب شد
- چطور شد که این مشکل از زیر دست تیم QA در رفت و دیده نشد
- چه چیزهایی توی monitoring ما از قلم افتاده بود که زودتر نفهمیدیم
این کار رو نه به خاطر اینکه کسی خواسته انجام بدیم، بلکه به این دلیل انجام بدیم که شاید خودِ آینده (یا یکی از همتیمیهای آینده) به مشکل مشابهی بر بخوره و اونها بتونن خیلی سریعتر به جواب و راه حل برسن.
این قطعی و اوتایج ها فقط بهمون یاد نمیده که چی اشتباه شده بود یا کجای کار میلنگید. باعث میشه از خودمون بپرسیم: اگه دوباره همچین اتفاقی بیفته، این بار چه کارهایی رو متفاوت انجام میدیم؟
جمعبندی و حرف آخر
راستش هیچکس به آدم نمیگه اولین باری که یه مشکل جدی و یه «آتیشسوزی» تو محیط پروداکشن درست میکنی، دقیقاً چه حسی داره. فوقالعاده پراسترسه و بله، گاهی وقتا هم واقعاً تقصیر کدیه که شما نوشتین.
ولی خب، آدم یاد میگیره.
یاد میگیری که «قبول کردن کامل مسئولیت» واقعاً یعنی چی.
یاد میگیری که چطور یه قدم بری عقبتر و دید وسیعتری پیدا کنی (zoom out کنی)؛ دیگه فقط به این فکر نکنی که «چی خراب شد؟»، بلکه بری سراغ اینکه «این خرابی روی چه کسایی تأثیر گذاشت؟».
یاد میگیری که یه مهندس خوب بودن، به معنی نوشتن کدِ بیعیبونقص و عالی نیست؛ بلکه به اینه که چطور بحران رو مدیریت میکنی، وقتی که اوضاع اصلاً خوب و عالی نیست.
یه چکلیست برای وقتی که این اتفاق برای شما میفته:
- سریع نپرین سراغ دیباگ کردن: اگه مشکل جدیه و روی کاربرها تأثیر مستقیم گذاشته، اولین قدم اینه که کد رو برگردونین به نسخهی قبلی. بعدش با خیال راحتتر برین دنبال دلیل مشکل بگردین.
- زود و شفاف اطلاعرسانی کنین: حتی یه پیام کوتاه مثل «دوستان دارم بررسی میکنم» توی کانالهای ارتباطی خیلی تأثیر مثبتی داره و به آروم شدن فضا کمک میکنه.
- سعی کنین مشکل رو توی محیطهای کنترلشده و ایزوله باز تولید کنین: یعنی دقیقاً با همون شرایطی که مشکل پیش اومده (مثلاً همون مرورگر، همون نسخه و ...).
- لاگها، درخواستهای شبکه، و نحوهی مدیریت خطاها رو با دقت چک کنین: هیچوقت فرض نکنین که اگه مشکلی باشه، حتماً سیستم با سر و صدای زیاد کرش میکنه و سریع متوجه میشین! گاهی مشکلات خیلی بیسر و صدا اتفاق میافتن.
- آستانهی هشدارهای سیستم پایش و مانیتورینگ رو دوباره یه نگاهی بندازین: آیا واقعاً جوری تنظیم شدن که خرابیهای کوچیک، نامحسوس یا تدریجی رو هم زود تشخیص بدن؟
- اتفاقی که افتاده رو با زبون ساده و واضح مستند کنین: این کار رو فقط برای بقیه اعضای تیم انجام ندین، بلکه برای خودتون در آینده هم انجام بدین. حافظه یاری نمیکنه!
- به تأثیر مشکل روی کسبوکار (business impact) فکر کنین: حدوداً چند تا کاربر تحت تأثیر قرار گرفتن؟ و این مشکل برای چه مدت زمانی ادامه داشت؟
- اگه در حین بررسی، به الگوها یا نکتههای کلیدی رسیدین، حتماً یادداشتشون کنین: این نکتهها برای بحران بعدی فوقالعاده ارزشمندن.
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
آقا من نمیدونستم همچین لیستی وجود داره:
Most active GitHub users in Iran
لینک:
https://committers.top/iran_private
@DevTwitter | <Ario Barzan/>
Most active GitHub users in Iran
لینک:
https://committers.top/iran_private
@DevTwitter | <Ario Barzan/>
Forwarded from متخصص وردپرس | پوینا
وقتی یک ادمین رو میخواید توی وردپرس پاک کنید که نوشته یا محصول داره
باید مشخص کنید مطالب این محصول و نوشته به کدوم از کاربران داده بشه
حالا اگر شما تعداد زیادی کاربر داشته باشید همه کاربران رو در این بخش لود میکنه و هم سرعت کم میشه هم به سختی میتونید پیدا کنید
کافیه این کد رو بزارید توی فاکشن قالب تا پس از پاک کردن یک کاربر یا ادمین فقط لیست ادمین ها رو نشون بده
هم سرعت بیشتر میشه هم فشار به سی پی یو و رم نمیاد
این کلا یه باگ بزرگ وردپرس هست که با این کد حل میشه
این کد رو بزارید توی فاکشن قالب :
add_filter( 'wp_dropdown_users_args', 'limit_users_in_delete_screen' );
function limit_users_in_delete_screen( $args ) {
global $pagenow;
if ( $pagenow === 'users.php' && isset($_GET['action']) && $_GET['action'] === 'delete' ) {
// فقط نقش مدیر کل
$args['role'] = 'administrator';
}
return $args;
}
@poinair پوینا
باید مشخص کنید مطالب این محصول و نوشته به کدوم از کاربران داده بشه
حالا اگر شما تعداد زیادی کاربر داشته باشید همه کاربران رو در این بخش لود میکنه و هم سرعت کم میشه هم به سختی میتونید پیدا کنید
کافیه این کد رو بزارید توی فاکشن قالب تا پس از پاک کردن یک کاربر یا ادمین فقط لیست ادمین ها رو نشون بده
هم سرعت بیشتر میشه هم فشار به سی پی یو و رم نمیاد
این کلا یه باگ بزرگ وردپرس هست که با این کد حل میشه
این کد رو بزارید توی فاکشن قالب :
add_filter( 'wp_dropdown_users_args', 'limit_users_in_delete_screen' );
function limit_users_in_delete_screen( $args ) {
global $pagenow;
if ( $pagenow === 'users.php' && isset($_GET['action']) && $_GET['action'] === 'delete' ) {
// فقط نقش مدیر کل
$args['role'] = 'administrator';
}
return $args;
}
@poinair پوینا
Forwarded from متخصص وردپرس | پوینا
نمایش تعداد سفارشات تکمیل شده و مجموع پرداختی ها در قسمت یوزر ها در ووکامرس
با اضافه کردن این کد انتهای قالبتون شبیه عکس بالا دو ستون اضافه میشه به بخش یوزر هاتون اضافه میشه که تعداد سفارشات تکمیل شده هر یوزر و مجموع پرداختی هاش رو نشون میده
@poinair پوینا
با اضافه کردن این کد انتهای قالبتون شبیه عکس بالا دو ستون اضافه میشه به بخش یوزر هاتون اضافه میشه که تعداد سفارشات تکمیل شده هر یوزر و مجموع پرداختی هاش رو نشون میده
@poinair پوینا
Forwarded from متخصص وردپرس | پوینا
نمایش روش پرداخت در قسمت سفارشات ووکامرس
اگر میخواید در قسمت سفارشات ووکامرس یک ستون اضافه بشه روش پرداخت رو نشون بده
این کد رو بزارید انتهای فاکشن قالبتون
مثلا نشون بده با زرین پال بوده بانک ملی بوده ملت بوده چی بوده
فقط نامش رو فارسی نمینویسه
@poinair پوینا
اگر میخواید در قسمت سفارشات ووکامرس یک ستون اضافه بشه روش پرداخت رو نشون بده
این کد رو بزارید انتهای فاکشن قالبتون
مثلا نشون بده با زرین پال بوده بانک ملی بوده ملت بوده چی بوده
فقط نامش رو فارسی نمینویسه
@poinair پوینا
Forwarded from متخصص وردپرس | پوینا
باگ امنیتی مهم توی وردپرس و ووکامرس
یکی از ایرادهای بزرگ وردپرس اینه که صفحه لاگینش برای همه یکیه یعنی هم ادمین و هم مشتری از یه صفحه وارد سایت میشن این قضیه میتونه امنیت سایتتون رو خیلی راحت به خطر بندازه.
باید کاری کنیم که از طریق صفحههایی مثل my-account دیگه نشه با یوزر ادمین وارد سایت شد و صفحه لاگین مخصوص ادمینها رو هم یه جای مخفی بذاریم.
توی کدی که براتون آماده کردیم، اگه کسی بخواد با یوزر ادمین از طریق my-account وارد بشه، بهش پیغام میده که همچین حسابی وجود نداره!
اگه لینک صفحه my-account سایتتون فرق داره، کافیه توی کد، لینک درست خودتون رو بذارید.
این کار باعث میشه امنیت سایتتون چند برابر بشه و صفحه لاگین ادمینها و مشتریها از هم جدا باشه!
فقط کافیه این کد رو انتهای فایل functions.php قالب سایتتون بذارید.
@poinair پوینا
یکی از ایرادهای بزرگ وردپرس اینه که صفحه لاگینش برای همه یکیه یعنی هم ادمین و هم مشتری از یه صفحه وارد سایت میشن این قضیه میتونه امنیت سایتتون رو خیلی راحت به خطر بندازه.
باید کاری کنیم که از طریق صفحههایی مثل my-account دیگه نشه با یوزر ادمین وارد سایت شد و صفحه لاگین مخصوص ادمینها رو هم یه جای مخفی بذاریم.
توی کدی که براتون آماده کردیم، اگه کسی بخواد با یوزر ادمین از طریق my-account وارد بشه، بهش پیغام میده که همچین حسابی وجود نداره!
اگه لینک صفحه my-account سایتتون فرق داره، کافیه توی کد، لینک درست خودتون رو بذارید.
این کار باعث میشه امنیت سایتتون چند برابر بشه و صفحه لاگین ادمینها و مشتریها از هم جدا باشه!
فقط کافیه این کد رو انتهای فایل functions.php قالب سایتتون بذارید.
@poinair پوینا
Forwarded from Philocode
بیایید بریم استرالیا... اگه عنکبوت سمی نیشمون نزنه و کانگورو شکممون رو پاره نکنه، آب و هواش خیلی خوبه!
Forwarded from Gopher Academy
🔵 عنوان مقاله
Vite Backend Integration for Go
🟢 خلاصه مقاله:
این مقاله به بررسی روشهای ادغام یک فرانتاند مبتنی بر Vite با بکاند مبتنی بر Go میپردازد. Vite به دلیل بازسازی سریع و امکاناتی چون جایگزینی ماژولهای داغ و بستهبندی بهینهشده، تجربه توسعه فرانتاند را بهبود میبخشد. از طرفی، Go برای بکاند به دلیل عملکرد قوی، کارایی بالا و مدیریت بهینه منابع در مدیریت ترافیک شبکه و پردازش داده مناسب است. ترکیب این دو فناوری اغلب از طریق تماسهای API برای برقراری ارتباط بین فرانتاند و بکاند انجام میگیرد، که نتیجه آن ساختاری قابل ارتقا و قابل نگهداری است که به خوبی پاسخگوی نیازهای مدرن تولید نرمافزار میشود.
🟣لینک مقاله:
https://golangweekly.com/link/168171/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Vite Backend Integration for Go
🟢 خلاصه مقاله:
این مقاله به بررسی روشهای ادغام یک فرانتاند مبتنی بر Vite با بکاند مبتنی بر Go میپردازد. Vite به دلیل بازسازی سریع و امکاناتی چون جایگزینی ماژولهای داغ و بستهبندی بهینهشده، تجربه توسعه فرانتاند را بهبود میبخشد. از طرفی، Go برای بکاند به دلیل عملکرد قوی، کارایی بالا و مدیریت بهینه منابع در مدیریت ترافیک شبکه و پردازش داده مناسب است. ترکیب این دو فناوری اغلب از طریق تماسهای API برای برقراری ارتباط بین فرانتاند و بکاند انجام میگیرد، که نتیجه آن ساختاری قابل ارتقا و قابل نگهداری است که به خوبی پاسخگوی نیازهای مدرن تولید نرمافزار میشود.
🟣لینک مقاله:
https://golangweekly.com/link/168171/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - olivere/vite: Vite backend integration for Go
Vite backend integration for Go. Contribute to olivere/vite development by creating an account on GitHub.
Forwarded from DevTwitter | توییت برنامه نویسی
اگه بخوای فقط یه کامیت رو از یه برنچ دیگه بیاری چیکار میکنی؟
تاحالا شده رو یه برنچی یه کامیت بزنی بعد بفهمی اون کامیت رو تو یه برنچ دیگه هم نیاز داری؟
با دستور git cherry-pick میتونی اینکارو بکنی.
فقط یه کامیت رو میخوای بیاری تو برنچ فعلی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 [𝗰𝗼𝗺𝗺𝗶𝘁𝗜𝗗]
چندتا کامیت پشتسر هم رو میخوای بیاری تو برنچ فعلی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 [𝘀𝘁𝗮𝗿𝘁𝗖𝗼𝗺𝗺𝗶𝘁𝗜𝗗]..[𝗲𝗻𝗱𝗖𝗼𝗺𝗺𝗶𝘁𝗜𝗗]
کامیت اشتباهی رو آوردی تو برنچ و میخوای برگردونی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 —𝗮𝗯𝗼𝗿𝘁
فقط حواست باشه اگه وابستگی به کامیتهای قبلی داشته باشه، ممکنه conflict بخوری
@DevTwitter | <Soudabe Heydari/>
تاحالا شده رو یه برنچی یه کامیت بزنی بعد بفهمی اون کامیت رو تو یه برنچ دیگه هم نیاز داری؟
با دستور git cherry-pick میتونی اینکارو بکنی.
فقط یه کامیت رو میخوای بیاری تو برنچ فعلی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 [𝗰𝗼𝗺𝗺𝗶𝘁𝗜𝗗]
چندتا کامیت پشتسر هم رو میخوای بیاری تو برنچ فعلی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 [𝘀𝘁𝗮𝗿𝘁𝗖𝗼𝗺𝗺𝗶𝘁𝗜𝗗]..[𝗲𝗻𝗱𝗖𝗼𝗺𝗺𝗶𝘁𝗜𝗗]
کامیت اشتباهی رو آوردی تو برنچ و میخوای برگردونی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 —𝗮𝗯𝗼𝗿𝘁
فقط حواست باشه اگه وابستگی به کامیتهای قبلی داشته باشه، ممکنه conflict بخوری
@DevTwitter | <Soudabe Heydari/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 دوستان گرامی توی اگهی استخدامتون هر چی میخواید تخصص بزنید مثل قبل
کارجو هم میبینه بررسی میکنه نهایتا چند تخصص رو نداره میره دنبال افزایش دانشش
اما خواهش میکنم توی اگهی ها شرط سنی رو ننویسید این باعث نشر ناامیدی در افرادی میشه که سنشون بالا میره و ممکنه حتی به رها کردن مارکت ختم بشه
جوان n ساله یا شخص n ساله هر دو حق دارن کار کنن و متخصص باشن اما شرط سن یعنی محدود کردن و محروم کردن
یعنی فرار از پرداخت حق تجربه و دانش ادمی که در این تخصص سالها وقتش رو گذاشته
بقیش هم که خودتون میدونید....
با احترام دو شرکت امسال برای معرفی نیرو به من زنگزدن چون شرط سنی داشتن هیچ نیرویی بهشون معرفی نکردم و نخواهم کرد
خواهشا اگهی که شرط سنی داره رو تحریم کنید و براش رزومه ارسال نکنید
#نه_به_فرهنگ_کاری_نادرست
</Akbar Rezaeyan Ghane>
@TheRaymondDev
کارجو هم میبینه بررسی میکنه نهایتا چند تخصص رو نداره میره دنبال افزایش دانشش
اما خواهش میکنم توی اگهی ها شرط سنی رو ننویسید این باعث نشر ناامیدی در افرادی میشه که سنشون بالا میره و ممکنه حتی به رها کردن مارکت ختم بشه
جوان n ساله یا شخص n ساله هر دو حق دارن کار کنن و متخصص باشن اما شرط سن یعنی محدود کردن و محروم کردن
یعنی فرار از پرداخت حق تجربه و دانش ادمی که در این تخصص سالها وقتش رو گذاشته
بقیش هم که خودتون میدونید....
با احترام دو شرکت امسال برای معرفی نیرو به من زنگزدن چون شرط سنی داشتن هیچ نیرویی بهشون معرفی نکردم و نخواهم کرد
خواهشا اگهی که شرط سنی داره رو تحریم کنید و براش رزومه ارسال نکنید
#نه_به_فرهنگ_کاری_نادرست
</Akbar Rezaeyan Ghane>
@TheRaymondDev
Forwarded from Philocode
یکی از دلایل اینکه بچه نمیخوام، اینه که حوصله ندارم سر اینکه کی خوراکیهامو خورده دعوا کنم.
Forwarded from Dev Dastan
➖➖➖➖➖➖
➖➖➖➖➖➖
#systemDesign #softwareEngineering
Please open Telegram to view this post
VIEW IN TELEGRAM