✅جلسه حضوری مهندس ابراهیم اخزری با بچه های مدرسه
هنرستان شهید دبیریان نازی آباد تهران
✔️مهندس ابراهیم اخزری محقق امنیت هستن
✔️در مورد امنیت و زبان های برنامه نویسی مرتبط با امنیت صحبت کردن
✔️و همه سوالهای دانش آموزهارو هم پاسخ دادن
تشکر از مهندس اخزری
آدرس کانال ایشون:
https://www.tg-me.com/itshield
هنرستان شهید دبیریان نازی آباد تهران
✔️مهندس ابراهیم اخزری محقق امنیت هستن
✔️در مورد امنیت و زبان های برنامه نویسی مرتبط با امنیت صحبت کردن
✔️و همه سوالهای دانش آموزهارو هم پاسخ دادن
تشکر از مهندس اخزری
آدرس کانال ایشون:
https://www.tg-me.com/itshield
✅برای قیمت تخفیفی در فروشگاه جنگو تون چطور عمل می کنید؟
✔️منظورم این چیزی که توی عکس هست.
بعضی شاید بگن یه فیلد قیمت تخفیفی میزارم. میشه، ولی اگه بخوای به 100 محصول تخفیف بدی یا تخفیفش رو برداری باید 100 بار ویرایش کنی.
با بررسی فروشگاه های مختلف متوجه میشید که معمولا قیمت تخفیفی رو بر حسب دسته بندی یا کالکشن یا... میدن
اینجوری همه محصولاتی که عضو اون دسته بندی یا... هست، یکجا قیمت تخفیفی میخورن.
مسلما باید هر محصول بتونه جزو چند دسته بندی یا... باشه. که بتونیم تخفیف های مختلف هم داشته باشیم.
✔️تخفیف درصدی، تخفیف ثابت، تخفیف زمان دار و...
✔️این موضوع ارتباطی به جنگو نداره و همه فروشگاه ها، حتی پرستاشاپ هم شامل میشه.
نظرتون رو کامنت کنید یا به @miladhzz بفرستید.
✔️منظورم این چیزی که توی عکس هست.
بعضی شاید بگن یه فیلد قیمت تخفیفی میزارم. میشه، ولی اگه بخوای به 100 محصول تخفیف بدی یا تخفیفش رو برداری باید 100 بار ویرایش کنی.
با بررسی فروشگاه های مختلف متوجه میشید که معمولا قیمت تخفیفی رو بر حسب دسته بندی یا کالکشن یا... میدن
اینجوری همه محصولاتی که عضو اون دسته بندی یا... هست، یکجا قیمت تخفیفی میخورن.
مسلما باید هر محصول بتونه جزو چند دسته بندی یا... باشه. که بتونیم تخفیف های مختلف هم داشته باشیم.
✔️تخفیف درصدی، تخفیف ثابت، تخفیف زمان دار و...
✔️این موضوع ارتباطی به جنگو نداره و همه فروشگاه ها، حتی پرستاشاپ هم شامل میشه.
نظرتون رو کامنت کنید یا به @miladhzz بفرستید.
✅پارامتر through توی ارتباط ManyToMany در جنگو
توی مدل های جنگو وقتی یه فیلد ManyToMany ایجاد می کنیم، و Migrate کنیم. خود جنگو یه جدول واسط برای هندل کردن ارتباط چند به چند میسازه.
✔️می تونیم اون جدول واسط رو خودمون کاستوم کنیم (به هر دلیلی)
لذا مثل عکس میتونیم از through استفاده کنیم.
کانال میکرو فرانت اند توی ویدئوی زیر بیشتر توضیحش داده
https://www.tg-me.com/microfrontend_ir/180
❔سوال: through_fields برای فیلدهای چند به چند کارش چیه؟ و چه استفاده ای داره؟ (توی عکس نیست)
توی مدل های جنگو وقتی یه فیلد ManyToMany ایجاد می کنیم، و Migrate کنیم. خود جنگو یه جدول واسط برای هندل کردن ارتباط چند به چند میسازه.
✔️می تونیم اون جدول واسط رو خودمون کاستوم کنیم (به هر دلیلی)
لذا مثل عکس میتونیم از through استفاده کنیم.
کانال میکرو فرانت اند توی ویدئوی زیر بیشتر توضیحش داده
https://www.tg-me.com/microfrontend_ir/180
❔سوال: through_fields برای فیلدهای چند به چند کارش چیه؟ و چه استفاده ای داره؟ (توی عکس نیست)
Forwarded from Microfrontend.ir
@IIIllIlll زحمت کشیدن یک ریپو خوب برای آموزش او ار ام جنگو ساختن
https://github.com/rz-k/django-orm-tutorial
https://github.com/rz-k/django-orm-tutorial
Forwarded from Python BackendHub (Mani)
یکی از اشتباهات رایج و خیلی بد تو دیزاین دیتابیس که من دیدم خیلی انجام میدن اینه که سعی میکنن state یک entity رو با چند boolean ست کنند.
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
@PyBackendHub
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
match state:
case State.FAILED:
email_to_user()
case State.SUCCESS | State.FAILED:
pass # do nothing
case _:
assert_never(state)
@PyBackendHub
✅دوره (غیر رایگان) فروشگاه اینترنتی با جنگو آپدیت شد.
لینک دوره:
https://www.daneshjooyar.com/project-django/
✔️چند قسمت رایگان از این دوره رو اینجا ببینید:
https://www.aparat.com/v/tga7df6
https://www.tg-me.com/telegram/com.djangolearn_ir/531
https://www.tg-me.com/telegram/com.djangolearn_ir/533
https://www.tg-me.com/telegram/com.djangolearn_ir/573
https://www.tg-me.com/telegram/com.djangolearn_ir/676
https://www.tg-me.com/telegram/com.djangolearn_ir/724
https://www.tg-me.com/telegram/com.djangolearn_ir/889
در صورتی که از لحاظ مالی توانایی پرداخت همه مبلغ دوره رو ندارید، خصوصی پیام بدید.
لینک دوره:
https://www.daneshjooyar.com/project-django/
✔️چند قسمت رایگان از این دوره رو اینجا ببینید:
https://www.aparat.com/v/tga7df6
https://www.tg-me.com/telegram/com.djangolearn_ir/531
https://www.tg-me.com/telegram/com.djangolearn_ir/533
https://www.tg-me.com/telegram/com.djangolearn_ir/573
https://www.tg-me.com/telegram/com.djangolearn_ir/676
https://www.tg-me.com/telegram/com.djangolearn_ir/724
https://www.tg-me.com/telegram/com.djangolearn_ir/889
در صورتی که از لحاظ مالی توانایی پرداخت همه مبلغ دوره رو ندارید، خصوصی پیام بدید.
جنگولرن
✅دوره (غیر رایگان) فروشگاه اینترنتی با جنگو آپدیت شد. لینک دوره: https://www.daneshjooyar.com/project-django/ ✔️چند قسمت رایگان از این دوره رو اینجا ببینید: https://www.aparat.com/v/tga7df6 https://www.tg-me.com/telegram/com.djangolearn_ir/531 https://www.tg-me.com/telegram/com.djangolearn_ir/533…
سلام به همه
اگه دوره بالا رو خریداری کردید
لطفا خصوصی به @miladhzz پیام بدید
تا به کانال اطلاع رسانی دوره (غیر رایگان) فروشگاه اینترنتی با جنگو اضافه تون کنم.
اگه دوره بالا رو خریداری کردید
لطفا خصوصی به @miladhzz پیام بدید
تا به کانال اطلاع رسانی دوره (غیر رایگان) فروشگاه اینترنتی با جنگو اضافه تون کنم.
Forwarded from Ninja Learn | نینجا لرن
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Ninja Learn | نینجا لرن
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Agora (Alireza Azadi)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from An Inspired Engineer
یکی از پرطرفدارترین آموزشهای دکتر کلامی در فرادرس، آموزش اصول و مبانی برنامهنویسی است که به صورت رایگان در دسترس است و به طور متوسط، در هر ماه بیش از ۴۰۰۰ نفر درخواست دسترسی به آن را ثبت میکنند.
🔗لینک آموزش:
https://faradars.org/courses/fvrprg101-programming-basics-concepts
این آموزش در کمتر از ۳ ساعت، هر آنچه را که برای ورود به دنیای برنامهنویسی لازم است، یاد میدهد. آموزش اصول و مبانی برنامهنویسی، در واقع درس شماره صفر سایر آموزشهای برنامهنویسی است و دانستن مفاهیم ارائه شده در آن، در یادگیری بهتر هر زبان برنامهنویسی دلخواه، کمککننده است.
دکتر کلامی هریس
🔗لینک آموزش:
https://faradars.org/courses/fvrprg101-programming-basics-concepts
این آموزش در کمتر از ۳ ساعت، هر آنچه را که برای ورود به دنیای برنامهنویسی لازم است، یاد میدهد. آموزش اصول و مبانی برنامهنویسی، در واقع درس شماره صفر سایر آموزشهای برنامهنویسی است و دانستن مفاهیم ارائه شده در آن، در یادگیری بهتر هر زبان برنامهنویسی دلخواه، کمککننده است.
دکتر کلامی هریس
Forwarded from An Inspired Engineer
همونطور که میدونین HTTP میاد روی TCP سوار میشه و توسط اون داده رو میفرسته، عملا پروتکل http چیزی جز یه مشت قوانین روی چند خط string نیست. اکثرا وظایفش توسط Tcp پیاده سازی شده و ما فکر میکنیم که Http داره نقشش رو خوب بازی میکنه.
حالا دوتا از این نقش هایی که توسط Tcp بازی میشن چی هستن؟
- اطمینان از تحویل داده: توی Http ما گارانتی اینو از پروتکل میگیریم که داده ها صحیح و سالم تحویل داده بشن
- ترتیب صحیح داده ها: توی شبکه ممکنه بستهها به صورت ناهمزمان و با ترتیبی غیر از ترتیب ارسال شده دریافت بشن، اما TCP این تضمین رو میده که دادهها توی مقصد به ترتیب ارسال مرتب و بازسازی بشن. خود HTTP هم از این ویژگی استفاده میکنه و نیازی به مدیریت ترتیب دادهها نداره.
به طور کلی، خیلی از ویژگی هایی که ما از HTTP میدونیم در حقیقت توسط TCP پیادهسازی میشن و HTTP بیشتر به عنوان یه لایه برای تعریف اون قوانینی که بالا گفتم برای تبادل این داده ها و نوع محتوای ارسال شده عمل میکنه.
همه ی اینارو گفتم که بگم تا حالا به این فکر کردین که بیاییم Http رو روی UDP پیاده سازی کنیم چی میشه؟ میشه پروتکل Http/3 که بهش میگن QUIC حالا چالشاش چیه؟ پستای بعدی میگم
@knowpow
حالا دوتا از این نقش هایی که توسط Tcp بازی میشن چی هستن؟
- اطمینان از تحویل داده: توی Http ما گارانتی اینو از پروتکل میگیریم که داده ها صحیح و سالم تحویل داده بشن
- ترتیب صحیح داده ها: توی شبکه ممکنه بستهها به صورت ناهمزمان و با ترتیبی غیر از ترتیب ارسال شده دریافت بشن، اما TCP این تضمین رو میده که دادهها توی مقصد به ترتیب ارسال مرتب و بازسازی بشن. خود HTTP هم از این ویژگی استفاده میکنه و نیازی به مدیریت ترتیب دادهها نداره.
به طور کلی، خیلی از ویژگی هایی که ما از HTTP میدونیم در حقیقت توسط TCP پیادهسازی میشن و HTTP بیشتر به عنوان یه لایه برای تعریف اون قوانینی که بالا گفتم برای تبادل این داده ها و نوع محتوای ارسال شده عمل میکنه.
همه ی اینارو گفتم که بگم تا حالا به این فکر کردین که بیاییم Http رو روی UDP پیاده سازی کنیم چی میشه؟ میشه پروتکل Http/3 که بهش میگن QUIC حالا چالشاش چیه؟ پستای بعدی میگم
@knowpow
Media is too big
VIEW IN TELEGRAM
توی این ویدئو تغییراتی توی کد دادم، تا وقتی کاربر لاگین شد، آیتم های سبد خریدی که توی دیتابیس داره، لود بشن و توی سبد خریدش مشاهده شون کنه.
اگه کاربر لاگین نکرده باشه و چندتا آیتم هم توی سبد خریدش داشته باشه (همون سبد خرید سشنی) ، بعد از لاگین، ابتدا آیتم های سبد خرید دیتابیسی لود میشن، سپس آیتم های سبد خرید سشنی توی دیتابیس ذخیره میشن.
✅این ویدئو بخشی از آپدیت جدید آموزش ساخت فروشگاه اینترنتی است.
لینک همین ویدئو در آپارت:
https://www.aparat.com/v/pneon5r
لینک یوتیوب:
https://youtu.be/w9_PnBoG1jU
✔️لینک سورس کد کامل دوره فروشگاه اینترنتی با جنگو:
https://github.com/miladhzz/daneshjooyar_shop2/
خوشحال میشم ریپو رو نقد کنید.
اگه کاربر لاگین نکرده باشه و چندتا آیتم هم توی سبد خریدش داشته باشه (همون سبد خرید سشنی) ، بعد از لاگین، ابتدا آیتم های سبد خرید دیتابیسی لود میشن، سپس آیتم های سبد خرید سشنی توی دیتابیس ذخیره میشن.
✅این ویدئو بخشی از آپدیت جدید آموزش ساخت فروشگاه اینترنتی است.
لینک همین ویدئو در آپارت:
https://www.aparat.com/v/pneon5r
لینک یوتیوب:
https://youtu.be/w9_PnBoG1jU
✔️لینک سورس کد کامل دوره فروشگاه اینترنتی با جنگو:
https://github.com/miladhzz/daneshjooyar_shop2/
خوشحال میشم ریپو رو نقد کنید.
Forwarded from Python Hints
#Quick
داشتم پروژه
اولین کاری کردم این بوده که یک سری دیتا تست با
چیز جالبی که دیدم؛ پروژه موقع کار کردن با
ولی
حجم دیتاهای تست رو کم کردم و مشکل حل شد؛ توی چندتا تست مختلف که زدم دیدم مسئله و مشگل از سمت پیکج
بجای اینکه برای
مشکل خیلی ساده حل شد؛ ولی برای این حل ساده خیلی زمان و درک
اهمیت
داشتم پروژه
django
شرکت رو میخوندم یک مشکل داریم سر بعضی endpoint
ها و برخی تسکها. اولین کاری کردم این بوده که یک سری دیتا تست با
faker
بهش دادم مثه loadtest
ولی بدون ابزار و بعد هم profiling
گرفتم و ذخیره کردم.چیز جالبی که دیدم؛ پروژه موقع کار کردن با
redis
به مشکل میخورد.ولی
redis
منابعش بیشتر از حد مورد نیازش بود.حجم دیتاهای تست رو کم کردم و مشکل حل شد؛ توی چندتا تست مختلف که زدم دیدم مسئله و مشگل از سمت پیکج
redis
هست توی پایتون و راهکار ساده رو هم خود redis
داده (هرچند من برعکس بهش رسیدم)$ pip install "redis[hiredis]"
بجای اینکه برای
parse
کردن دیتا از python
استفاده کنه وقتی hiredis
رو نصب کنید از C
استفاده میکنه (بنچمارکاش هم توی گیتهاب hiredis
هست ببینید)مشکل خیلی ساده حل شد؛ ولی برای این حل ساده خیلی زمان و درک
profiling
لازم بود.اهمیت
profiling
یک سوال:
آیا هنوز داشتن sitemap در SEO سایت مون تاثیر داره؟
ممنون میشم اگه کسی تجربه ای داره، کامنت کنه.
آیا هنوز داشتن sitemap در SEO سایت مون تاثیر داره؟
ممنون میشم اگه کسی تجربه ای داره، کامنت کنه.
Final Results
57%
نمیدونم
24%
تاثیر زیادی داره
13%
تا حدودی تاثیر داره
3%
بودن و نبودنش فرقی نداره
2%
موتورهای جستجو دیگه بهش اهمیت نمیدن
2%
باید توضیح بدم. پس نظر میدم
این سوال ع stackoverflow برای منم سوال شده بود (البته عکسی که گذاشتم یه پاسخه)
Django 'Sites' Model - what is and why is 'SITE_ID = 1'?
لینک سوال:
https://stackoverflow.com/questions/25468676/django-sites-model-what-is-and-why-is-site-id-1
عکسی که گذاشتم اشاره کرده که تا جنگو 1.4 فریمورک sites کارش چیز دیگه ای بوده. ایشویی که اشاره کرده رو ببینید.
✔️راستی اون SITE_ID به خاطر این مقدارش 1 باید باشه، چون وقتی sites رو به installed_app اضافه میکنیم باید مایگریت کنیم و یه رکورد به جدول site اضافه میکنه با مقدار example.com و آیدی ش هم 1 هست.
و خب مسلما قابل تغییره
Django 'Sites' Model - what is and why is 'SITE_ID = 1'?
لینک سوال:
https://stackoverflow.com/questions/25468676/django-sites-model-what-is-and-why-is-site-id-1
عکسی که گذاشتم اشاره کرده که تا جنگو 1.4 فریمورک sites کارش چیز دیگه ای بوده. ایشویی که اشاره کرده رو ببینید.
✔️راستی اون SITE_ID به خاطر این مقدارش 1 باید باشه، چون وقتی sites رو به installed_app اضافه میکنیم باید مایگریت کنیم و یه رکورد به جدول site اضافه میکنه با مقدار example.com و آیدی ش هم 1 هست.
و خب مسلما قابل تغییره
Forwarded from Mahi In Tech
یکی از مواردی که میتونه دید خیلی خوبی نسبت به سناریوهای مختلف توی پروژههای کوچیک و بزرگ بهتون بده و شما رو به مهندس بهتری تبدیل کنه نه صرفا کدنویس، مطالعهی tech blog شرکتهای بزرگ هست؛ حالا چه ایرانی و چه خارجی. معمولا تجربیات و مقالات ارزشمندی بینشون پیدا میشه.
در ادامه لیستی از مقالات تخصصی و فرانتاندی شرکت PayPal رو که توسط Soheib Kiani معرفی شده بود قرار دادم:
🔻 چطور PayPal Checkout اپلیکیشن frontend خودش رو مقیاسپذیر کرد؟
https://bluepnume.medium.com/sane-scalable-angular-apps-are-tricky-but-not-impossible-lessons-learned-from-paypal-checkout-c5320558d4ef
🔻 PayPal درباره Dependency injection چه نظری داره؟
https://bluepnume.medium.com/dependency-injection-in-angular-isn-t-worth-it-more-lessons-learned-from-scaling-paypal-checkout-2189ec9c21a0
🔻 کاهش 1000 دکمه PayPal به iFrame
https://bluepnume.medium.com/less-is-more-reducing-thousands-of-paypal-buttons-into-a-single-iframe-using-xcomponent-d902d71d8875
🔻 درخواستهای cross-origin بدون CORS
https://bluepnume.medium.com/reinventing-cross-origin-requests-without-cors-b9c4cb645376
🔻 چرا اپلیکیشن وب جدید در PayPal از Typescript استفاده میکنه؟
https://medium.com/@kentcdodds/why-every-new-web-app-at-paypal-starts-with-typescript-9d1acc07c839
🔻 مقیاسپذیری GraphQL در PayPal
https://medium.com/paypal-tech/scaling-graphql-at-paypal-b5b5ac098810
🔻 کامپوننتهای UI قابل اشتراکگذاری PayPal در سطح Enterprise
https://medium.com/paypal-tech/reusing-ui-components-at-enterprise-level-a7df1ea1f8dd
🔻 اپلیکیشنهای PayPal معماری Microfrontend رو دنبال میکنند
https://medium.com/paypal-tech/how-micro-frontend-has-changed-our-team-dynamic-ba2f01597f48
🔻 توضیح PayPal درباره پذیرش GraphQL
https://medium.com/paypal-tech/graphql-at-paypal-an-adoption-story-b7e01175f2b7
🔻 داستان موفقیت PayPal Checkout
https://medium.com/paypal-tech/graphql-a-success-story-for-paypal-checkout-3482f724fb53
#PayPal #FrontEnd
در ادامه لیستی از مقالات تخصصی و فرانتاندی شرکت PayPal رو که توسط Soheib Kiani معرفی شده بود قرار دادم:
https://bluepnume.medium.com/sane-scalable-angular-apps-are-tricky-but-not-impossible-lessons-learned-from-paypal-checkout-c5320558d4ef
https://bluepnume.medium.com/dependency-injection-in-angular-isn-t-worth-it-more-lessons-learned-from-scaling-paypal-checkout-2189ec9c21a0
https://bluepnume.medium.com/less-is-more-reducing-thousands-of-paypal-buttons-into-a-single-iframe-using-xcomponent-d902d71d8875
https://bluepnume.medium.com/reinventing-cross-origin-requests-without-cors-b9c4cb645376
https://medium.com/@kentcdodds/why-every-new-web-app-at-paypal-starts-with-typescript-9d1acc07c839
https://medium.com/paypal-tech/scaling-graphql-at-paypal-b5b5ac098810
https://medium.com/paypal-tech/reusing-ui-components-at-enterprise-level-a7df1ea1f8dd
https://medium.com/paypal-tech/how-micro-frontend-has-changed-our-team-dynamic-ba2f01597f48
https://medium.com/paypal-tech/graphql-at-paypal-an-adoption-story-b7e01175f2b7
https://medium.com/paypal-tech/graphql-a-success-story-for-paypal-checkout-3482f724fb53
#PayPal #FrontEnd
Please open Telegram to view this post
VIEW IN TELEGRAM