سلام به همه. گاهی اوقات پیش میاد که دوستان کدهاشون رو برای من می فرستن و میگن نظر بده. و اگه نکته ای هست بهم بگو و... اگه توی کانال پروژه های دوستان رو بزارم (با رضایت خودشون) بررسی می کنید و نظر می دید؟
Final Results
23%
دیدن نتایج
41%
بله. حتما
7%
نه. وقت نمی کنم
24%
بله. اگه حال داشته باشم
4%
نه. من رایگان به کسی راهنمایی نمیدم
2%
گزینه مد نظر من توی اینا نیست. لذا کامنت/پیام میدم
👍2❤1👎1
جنگولرن
سلام به همه. گاهی اوقات پیش میاد که دوستان کدهاشون رو برای من می فرستن و میگن نظر بده. و اگه نکته ای هست بهم بگو و... اگه توی کانال پروژه های دوستان رو بزارم (با رضایت خودشون) بررسی می کنید و نظر می دید؟
خب دوستان
پیرو نظرسنجی بالا 👆🏻
هر کسی تمایل داره کدهاش توسط اعضای کانال جنگولرن بررسی بشه.
✔️و ظرفیت دریافت انتقادات مهلک رو داره (که باعث پیشرفت میشه قطعا)
به صورت خصوصی با من در ارتباط باشه. آیدی من @miladhzz
✔️بعضی کدهارو هم می تونیم به صورت "برنامه نویس ناشناس" قرار بدیم، که هر کسی بتونه توی این حرکت شرکت کنه.
✔️و حتی بعضی نظرات هم می تونید خصوصی بفرستید و من به عنوان "منتقد ناشناس" زیر پروژه مورد نظر قرار بدم.
هر نظری یا پیشنهادی در این مورد دارید به @miladhzz پیام بدید
پیرو نظرسنجی بالا 👆🏻
هر کسی تمایل داره کدهاش توسط اعضای کانال جنگولرن بررسی بشه.
✔️و ظرفیت دریافت انتقادات مهلک رو داره (که باعث پیشرفت میشه قطعا)
به صورت خصوصی با من در ارتباط باشه. آیدی من @miladhzz
✔️بعضی کدهارو هم می تونیم به صورت "برنامه نویس ناشناس" قرار بدیم، که هر کسی بتونه توی این حرکت شرکت کنه.
✔️و حتی بعضی نظرات هم می تونید خصوصی بفرستید و من به عنوان "منتقد ناشناس" زیر پروژه مورد نظر قرار بدم.
هر نظری یا پیشنهادی در این مورد دارید به @miladhzz پیام بدید
👍4
✅اولین پروژه برای حمله 😂
با fastapi ساختش. که من بلد نیستم.
اگه نظری دارید و نمیخواهید توی کامنت های این پست بنویسیدش خصوصی برام بفرستید. آیدی من @miladhzz
نکته: هر نظری اوکیه. فقط بی احترامی یا تحقیر و امثالهم نباشه. ممنون
✔️توضیحاتش:
این یکی از اولین پروژه هایی هست که زدم با fastapi و کوچیک هست با این حال مشتاقم دوستان نظر بدن و اگه جای رشد یا اصلاح داره بهم بگن ❤️
https://github.com/meower1/Warpgen
با fastapi ساختش. که من بلد نیستم.
اگه نظری دارید و نمیخواهید توی کامنت های این پست بنویسیدش خصوصی برام بفرستید. آیدی من @miladhzz
نکته: هر نظری اوکیه. فقط بی احترامی یا تحقیر و امثالهم نباشه. ممنون
✔️توضیحاتش:
این یکی از اولین پروژه هایی هست که زدم با fastapi و کوچیک هست با این حال مشتاقم دوستان نظر بدن و اگه جای رشد یا اصلاح داره بهم بگن ❤️
https://github.com/meower1/Warpgen
GitHub
GitHub - meower1/Warpgen: 🎸 API to scrape warp+ keys from telegram channel every hour written in FastAPI
🎸 API to scrape warp+ keys from telegram channel every hour written in FastAPI - GitHub - meower1/Warpgen: 🎸 API to scrape warp+ keys from telegram channel every hour written in FastAPI
👍4❤1
Forwarded from Ninja Learn | نینجا لرن
💎 ابزار Django debug toolbar 💎
امروز میخوایم دربارهٔ یه ابزار فوقالعاده برای دیباگ کردن توی پروژههای جنگویی صحبت کنیم: Django Debug Toolbar. این ابزار میتونه بهتون کمک کنه تا جزئیات دقیق درخواستها، کوئریهای پایگاه داده، قالبها و خیلی چیزای دیگه رو ببینید و مشکلات پروژهتون رو سریعتر پیدا و برطرف کنید. توی این پست قراره قدم به قدم نحوهٔ نصب و استفاده از این ابزار رو توضیح بدم. 🚀
1. نصب Django Debug Toolbarبرای شروع، باید Django Debug Toolbar رو نصب کنید :
این ابزار بهراحتی از طریق pip قابل نصب هست. کافیه ترمینال رو باز کنید و این دستور رو وارد کنید: 💻
با این کار، پکیج مورد نیاز نصب میشه. ✅
2. اضافه کردن به تنظیمات پروژه :
حالا باید Django Debug Toolbar رو به تنظیمات پروژهٔ جنگوییتون اضافه کنید. برای این کار، فایل settings.py رو باز کنید و این کدرو رو به تنظیمات اضافه کنید: 🛠️
اضافه کردن به INSTALLED_APPS:
اضافه کردن به MIDDLEWARE:
با این کار، Django Debug Toolbar به پروژهتون اضافه میشه و میتونید ازش استفاده کنید. 🎉
3. تنظیم آیپیهای مجازبرای اینکه این ابزار بتونه توی مرورگر نمایش داده بشه، باید آیپیهایی که برای دیباگ تولبار مجاز هستن رو تنظیم کنید. معمولاً برای توسعه توی لوکال از 127.0.0.1 استفاده میکنیم. بنابراین، این خط رو به settings.py اضافه کنید: 🌐
این تنظیمات به تولبار میگه که فقط وقتی از این آیپی درخواست میاد، نمایش داده بشه. 👀
4. اضافه کردن URLهای مربوطه حالا باید URLهای مربوط به Django Debug Toolbar رو به پروژهتون اضافه کنید. برای این کار، فایل urls.py رو باز کنید و این خطوط رو اضافه کنید: 🌍
این کار باعث میشه که وقتی پروژه توی حالت DEBUG هست، تولبار فعال بشه و URLهای مربوط به اون هم در دسترس باشن. 🔧
5. استفاده از Django Debug Toolbar حالا دیگه کارمون تمومه! کافیه سرور جنگو رو دوباره راهاندازی کنید و یکی از صفحات پروژهتون رو باز کنید. اگه همه چیز درست پیش رفته باشه، یه نوار ابزار (Toolbar) در سمت راست صفحه نمایش داده میشه.
این نوار ابزار اطلاعات خیلی مفیدی دربارهٔ درخواست HTTP، کوئریهای پایگاه داده، قالبها، تنظیمات و موارد دیگه بهتون نشون میده.
مثلاً با استفاده از این ابزار میتونید ببینید چه کوئریهایی به پایگاه داده زده شده، چقدر زمان برده و جای بهینهسازی داره یا نه.
همچنین میتونید اطلاعات مربوط به درخواستها و پاسخهای HTTP رو بهدست بیارید و از نحوهٔ پردازش درخواستها در سمت سرور مطلع بشید. 🔍
جمعبندی ✅
فهمیدیم Django Debug Toolbar ابزاری قدرتمنده که میتونه خیلی بهتون کمک کنه تا پروژههاتون رو بهینه تر کنید و مشکلات رو سریع تر پیدا کنید.
پیشنهاد میکنم حتماً امتحانش کنید و ببینید چقدر کارتون رو راحتتر میکنه. 💪
دراینده یه ویدیو هم درمورش ضبط میکنیم
امید وارم براتون مفید بوده باشه :)
@ninja_learn_ir
امروز میخوایم دربارهٔ یه ابزار فوقالعاده برای دیباگ کردن توی پروژههای جنگویی صحبت کنیم: Django Debug Toolbar. این ابزار میتونه بهتون کمک کنه تا جزئیات دقیق درخواستها، کوئریهای پایگاه داده، قالبها و خیلی چیزای دیگه رو ببینید و مشکلات پروژهتون رو سریعتر پیدا و برطرف کنید. توی این پست قراره قدم به قدم نحوهٔ نصب و استفاده از این ابزار رو توضیح بدم. 🚀
1. نصب Django Debug Toolbarبرای شروع، باید Django Debug Toolbar رو نصب کنید :
این ابزار بهراحتی از طریق pip قابل نصب هست. کافیه ترمینال رو باز کنید و این دستور رو وارد کنید: 💻
pip install django-debug-toolbar
با این کار، پکیج مورد نیاز نصب میشه. ✅
2. اضافه کردن به تنظیمات پروژه :
حالا باید Django Debug Toolbar رو به تنظیمات پروژهٔ جنگوییتون اضافه کنید. برای این کار، فایل settings.py رو باز کنید و این کدرو رو به تنظیمات اضافه کنید: 🛠️
اضافه کردن به INSTALLED_APPS:
INSTALLED_APPS = [
...
'debug_toolbar',
]
اضافه کردن به MIDDLEWARE:
MIDDLEWARE = [
...
'debug_toolbar.middleware.DebugToolbarMiddleware',
]
با این کار، Django Debug Toolbar به پروژهتون اضافه میشه و میتونید ازش استفاده کنید. 🎉
3. تنظیم آیپیهای مجازبرای اینکه این ابزار بتونه توی مرورگر نمایش داده بشه، باید آیپیهایی که برای دیباگ تولبار مجاز هستن رو تنظیم کنید. معمولاً برای توسعه توی لوکال از 127.0.0.1 استفاده میکنیم. بنابراین، این خط رو به settings.py اضافه کنید: 🌐
INTERNAL_IPS = [
'127.0.0.1',
]
این تنظیمات به تولبار میگه که فقط وقتی از این آیپی درخواست میاد، نمایش داده بشه. 👀
4. اضافه کردن URLهای مربوطه حالا باید URLهای مربوط به Django Debug Toolbar رو به پروژهتون اضافه کنید. برای این کار، فایل urls.py رو باز کنید و این خطوط رو اضافه کنید: 🌍
django.conf import settings
from django.conf.urls import include
from django.urls import path
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
path('__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
این کار باعث میشه که وقتی پروژه توی حالت DEBUG هست، تولبار فعال بشه و URLهای مربوط به اون هم در دسترس باشن. 🔧
5. استفاده از Django Debug Toolbar حالا دیگه کارمون تمومه! کافیه سرور جنگو رو دوباره راهاندازی کنید و یکی از صفحات پروژهتون رو باز کنید. اگه همه چیز درست پیش رفته باشه، یه نوار ابزار (Toolbar) در سمت راست صفحه نمایش داده میشه.
این نوار ابزار اطلاعات خیلی مفیدی دربارهٔ درخواست HTTP، کوئریهای پایگاه داده، قالبها، تنظیمات و موارد دیگه بهتون نشون میده.
مثلاً با استفاده از این ابزار میتونید ببینید چه کوئریهایی به پایگاه داده زده شده، چقدر زمان برده و جای بهینهسازی داره یا نه.
همچنین میتونید اطلاعات مربوط به درخواستها و پاسخهای HTTP رو بهدست بیارید و از نحوهٔ پردازش درخواستها در سمت سرور مطلع بشید. 🔍
جمعبندی ✅
فهمیدیم Django Debug Toolbar ابزاری قدرتمنده که میتونه خیلی بهتون کمک کنه تا پروژههاتون رو بهینه تر کنید و مشکلات رو سریع تر پیدا کنید.
پیشنهاد میکنم حتماً امتحانش کنید و ببینید چقدر کارتون رو راحتتر میکنه. 💪
دراینده یه ویدیو هم درمورش ضبط میکنیم
❤4👍3
Forwarded from Golem Course
یک توصیه دوستانه
همیشه، چه در محیط کاری و چه در محیط دانشگاهی، یک سند از تمام فعالیتها و کارهایی که انجام دادهاید را مانند یک دفترچه خاطرات داشته باشید. در انگلیسی به این سند Career Journal یا Professional Development Log میگویند.
فایده این کار چیست؟ فرض کنید سه سال گذشته و میخواهید رزومهتان را بهروزرسانی کنید. به جای آن که به حافظهتان اکتفا کنید تا سه چهار بولتپوینت برای آن موقعیت شغلی بنویسید یا در کاور لتر در یک یا دو پاراگراف کاری که کردهاید را توصیف کنید، میتوانید به آن سند مراجعه کنید. در واقع، این سند خاطرات شما، منبع دانش شما از فعالیت حرفهایتان است.
یک مزیت دیگر هم دارد. پیشرفت خودتان را در طول مسیر مشاهده میکنید. میبینید که چقدر کار کردهاید، چقدر یاد گرفتهاید و چقدر باعث بهبود وضعیت موجود شدهاید.
@golemcourse
همیشه، چه در محیط کاری و چه در محیط دانشگاهی، یک سند از تمام فعالیتها و کارهایی که انجام دادهاید را مانند یک دفترچه خاطرات داشته باشید. در انگلیسی به این سند Career Journal یا Professional Development Log میگویند.
فایده این کار چیست؟ فرض کنید سه سال گذشته و میخواهید رزومهتان را بهروزرسانی کنید. به جای آن که به حافظهتان اکتفا کنید تا سه چهار بولتپوینت برای آن موقعیت شغلی بنویسید یا در کاور لتر در یک یا دو پاراگراف کاری که کردهاید را توصیف کنید، میتوانید به آن سند مراجعه کنید. در واقع، این سند خاطرات شما، منبع دانش شما از فعالیت حرفهایتان است.
یک مزیت دیگر هم دارد. پیشرفت خودتان را در طول مسیر مشاهده میکنید. میبینید که چقدر کار کردهاید، چقدر یاد گرفتهاید و چقدر باعث بهبود وضعیت موجود شدهاید.
@golemcourse
👍18👏7🔥2
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
چطور برای یک ربات تلگرام از زرین پال، درگاه پرداخت گرفتم ؟
من یک ربات تلگرام داشتم مینوشتم که نیاز به درگاه پرداخت داشتم، رفتم سراغ سایت زرین پال و بعد از لاگین خواستم برم تیکت بدم که آیا به ربات تلگرام هم درگاه میدید ؟ که یک بخشی دیدم که چطور برای اپلیکیشن یا ربات میتونید درگاه بگیرید
بعد توی توضیحات نوشته بود که باید یک سایت بزنید و توی اون از اپلیکیشنتون یکسری اطلاعات بدید که چیکارا میکنه و شماره تلفن و ایمیل هم توی اون باشه
خب من حوصله نوشتن کد برای سایت نداشتم🥲 ولی چند روز قبلش یک دامنه خریده بودم برای رباته گفتم شاید لازم بشه، باید چیکار میکردم ؟
رفتم سراغ هوش مصنوعی claude.ai و دیدم که شماره تلفن مجازی گوگلم رو قبول نمیکنه، از سایت نامبرلند یک شماره ۷ هزار و ۵۰۰ تومنی برای claude.ai خریدم و رفتم توش ثبت نام کردم
به claude.ai با پرامپت فارسی گفتم که یک سایت با html css bootstrap میخوام که در مورد چنین چیزی یکسری توضیحات بده و توی یکسری کارت نشونش بده و از اموجی های مرتبط هم استفاده کنه و ... با تشکر ازش کد رو بهم داد و رفتم یک پروژه چند خطی fastapi زدم که تمپلت هام رو لود کنه (چون نمیخواستم سایت استاتیک باشه رفتم سراغ fastapi ، چون که باید کالبک برگشتی از درگاه پرداخت هم هندل کنم)
خب کد رو زدم و خواستم ببرم روی سرور ران کنم که ...... ای دل غافل، پورت های ۸۰ و ۴۴۳ اشغال هستن و اگر میخواستم توی وب سرور دست ببرم خیلی زمان میبرد
پروژه رو روی پورت 7575 ران کردم و رفتم سراغ کلادفلر و توی بخش DNS یک رکورد @ زدم روی دامنه و IP سرور رو بهش دادم، از بخش Rules وارد بخش Origin Rules شدم و یک رول جدید تعریف کردم
از این قسمت : When incoming requests match…
مقدار Field رو گذاشتم روی Hostname و توی بخش Value آدرس دامنه رو زدم
پایینترش از قسمت Destination Port گزینه Rewrite to رو زدم و پورت 7575 رو وارد کردم، بعدش هم رول رو ذخیره کردم
خب سایت اومد بالا و از طریق دامنه در دسترس بود، بدون اینکه من روی پورت 80,443 ران کنم
رفتم سراغ زرین پال و دامنه رو ثبت کردم که بهم درگاه بده، اما سریع درخواستم رد شد 😢
تیکت زد و گفت enamad نداری ولی ناراحت نباش که میتونی از لینک زیر یک مبلغی پرداخت کنه (یک کد تخفیف هم داد) و ما خودمون برات میگیریم، مبلغ رو (با تخفیف ۳۰۰ هزار تومان) پرداخت کردم و اطلاع دادم، فرداش بهم اعلام کردن که فلان کد رو توی title سایتت بصورت موقت بزار تا enamad تایید بشه، این وسط ها هم چندتا تماس باهام گرفتن که یک قسمتی گفت این شماره ای که توی زرین پال وارد کردی از دسترست خارج شده ؟ گفتم اره و زحمت کشیدن و تغییرش دادن برام(با ایمیل لاگین میشدم)
با توجه به اینکه از قبل کد مالیاتی داشتم فقط یک اسکرین شات از سازمان امور مالیاتی خواستن که تا گام ۴ رو پیش رفته باشم و بعدش گفتن صبر کنید تا درگاه فعال بشه، که چند دقیقه بعدش فعال شد و از طرف شاپرک هم تایید شد.
@SEYED_BAX
من یک ربات تلگرام داشتم مینوشتم که نیاز به درگاه پرداخت داشتم، رفتم سراغ سایت زرین پال و بعد از لاگین خواستم برم تیکت بدم که آیا به ربات تلگرام هم درگاه میدید ؟ که یک بخشی دیدم که چطور برای اپلیکیشن یا ربات میتونید درگاه بگیرید
بعد توی توضیحات نوشته بود که باید یک سایت بزنید و توی اون از اپلیکیشنتون یکسری اطلاعات بدید که چیکارا میکنه و شماره تلفن و ایمیل هم توی اون باشه
خب من حوصله نوشتن کد برای سایت نداشتم🥲 ولی چند روز قبلش یک دامنه خریده بودم برای رباته گفتم شاید لازم بشه، باید چیکار میکردم ؟
رفتم سراغ هوش مصنوعی claude.ai و دیدم که شماره تلفن مجازی گوگلم رو قبول نمیکنه، از سایت نامبرلند یک شماره ۷ هزار و ۵۰۰ تومنی برای claude.ai خریدم و رفتم توش ثبت نام کردم
به claude.ai با پرامپت فارسی گفتم که یک سایت با html css bootstrap میخوام که در مورد چنین چیزی یکسری توضیحات بده و توی یکسری کارت نشونش بده و از اموجی های مرتبط هم استفاده کنه و ... با تشکر ازش کد رو بهم داد و رفتم یک پروژه چند خطی fastapi زدم که تمپلت هام رو لود کنه (چون نمیخواستم سایت استاتیک باشه رفتم سراغ fastapi ، چون که باید کالبک برگشتی از درگاه پرداخت هم هندل کنم)
خب کد رو زدم و خواستم ببرم روی سرور ران کنم که ...... ای دل غافل، پورت های ۸۰ و ۴۴۳ اشغال هستن و اگر میخواستم توی وب سرور دست ببرم خیلی زمان میبرد
پروژه رو روی پورت 7575 ران کردم و رفتم سراغ کلادفلر و توی بخش DNS یک رکورد @ زدم روی دامنه و IP سرور رو بهش دادم، از بخش Rules وارد بخش Origin Rules شدم و یک رول جدید تعریف کردم
از این قسمت : When incoming requests match…
مقدار Field رو گذاشتم روی Hostname و توی بخش Value آدرس دامنه رو زدم
پایینترش از قسمت Destination Port گزینه Rewrite to رو زدم و پورت 7575 رو وارد کردم، بعدش هم رول رو ذخیره کردم
خب سایت اومد بالا و از طریق دامنه در دسترس بود، بدون اینکه من روی پورت 80,443 ران کنم
رفتم سراغ زرین پال و دامنه رو ثبت کردم که بهم درگاه بده، اما سریع درخواستم رد شد 😢
تیکت زد و گفت enamad نداری ولی ناراحت نباش که میتونی از لینک زیر یک مبلغی پرداخت کنه (یک کد تخفیف هم داد) و ما خودمون برات میگیریم، مبلغ رو (با تخفیف ۳۰۰ هزار تومان) پرداخت کردم و اطلاع دادم، فرداش بهم اعلام کردن که فلان کد رو توی title سایتت بصورت موقت بزار تا enamad تایید بشه، این وسط ها هم چندتا تماس باهام گرفتن که یک قسمتی گفت این شماره ای که توی زرین پال وارد کردی از دسترست خارج شده ؟ گفتم اره و زحمت کشیدن و تغییرش دادن برام(با ایمیل لاگین میشدم)
با توجه به اینکه از قبل کد مالیاتی داشتم فقط یک اسکرین شات از سازمان امور مالیاتی خواستن که تا گام ۴ رو پیش رفته باشم و بعدش گفتن صبر کنید تا درگاه فعال بشه، که چند دقیقه بعدش فعال شد و از طرف شاپرک هم تایید شد.
@SEYED_BAX
👍14
Forwarded from 🧑💻Cyber.vision🧑💻
توی برنامه نویسی زیادی خسیس نباشید
اگه ذهنیتتون به سمتی بره که همیشه در حال محاسبه باشه چه حرکتی بزنم که حافظه کمتر و سرعت بیشتری داشته باشه توی باتلاق میفتید و قدرت ساختن یه سیستم بزرگ و انعطاف پذیر رو از دست میدید.
بعضی مواقع انقدری به سمت الگوریتم میریم که داریم به کلیت سیستم آسیب میزنیم مثلا قراره یه دیتایی ارسال کنیم بجای اینکه به این شکل ارسال کنیم
{"name":"linuxor","type":"channel"}
میایم یه صرفه جویی کثیف میکنیم
["linuxor",2]
ما اینجا توی حافظه صرفه جویی کردیم ولی هر جایی بخوایم از این دیتا استفاده کنیم باید بدونیم ایندکس صفرم name هست و ایندکس یکم type و عدد 2 هم برای type یعنی channel این یعنی نیاز به مستندات بیشتر.
درسته حافظه کمتری مصرف کردیم ولی قدرت خوانایی کد رو آوردیم پایین در واقع با بهتر کردن یه بخش جزئی سیستم به کلیت سیستم آسیب زدیم، و اگه این کارو هی توی بخش های مختلف سیستم تکرار کنیم در نهایت به جایی میرسیم که دیگه صرفه نداره سیستم رو توسعه بدیم.
اگه ذهنیتتون به سمتی بره که همیشه در حال محاسبه باشه چه حرکتی بزنم که حافظه کمتر و سرعت بیشتری داشته باشه توی باتلاق میفتید و قدرت ساختن یه سیستم بزرگ و انعطاف پذیر رو از دست میدید.
بعضی مواقع انقدری به سمت الگوریتم میریم که داریم به کلیت سیستم آسیب میزنیم مثلا قراره یه دیتایی ارسال کنیم بجای اینکه به این شکل ارسال کنیم
{"name":"linuxor","type":"channel"}
میایم یه صرفه جویی کثیف میکنیم
["linuxor",2]
ما اینجا توی حافظه صرفه جویی کردیم ولی هر جایی بخوایم از این دیتا استفاده کنیم باید بدونیم ایندکس صفرم name هست و ایندکس یکم type و عدد 2 هم برای type یعنی channel این یعنی نیاز به مستندات بیشتر.
درسته حافظه کمتری مصرف کردیم ولی قدرت خوانایی کد رو آوردیم پایین در واقع با بهتر کردن یه بخش جزئی سیستم به کلیت سیستم آسیب زدیم، و اگه این کارو هی توی بخش های مختلف سیستم تکرار کنیم در نهایت به جایی میرسیم که دیگه صرفه نداره سیستم رو توسعه بدیم.
👍42
Forwarded from نوشتههای ترمینالی
خیلی وقتا برای ما پیش میاد که تو یه برنچی کار میکنیم که میخوایم با main/master مرجش کنیم ولی کس دیگهای اول مرج میکنه برنچشو و ما conflict میخوریم.
حالا وقتی میخوایم کانفلیکتها رو حل کنیم میتونیم برنچ main رو با برنچ خودمون merge کنیم یا برنچ خودمون رو rebase کنیم به main جدید.
اینکه کدومش خوبه کدومش نه، جوابش بستگی دارهس!
تو تیمهایی که جونیور زیاد دارن توصیه میشه مرج کنید و تموم. اینطوری تاریخچه پیچیدهتری دارید (چون چرا یهو main تو یه برنچ مرج شده) ولی مجیک خاصی اتفاق نمیافته.
از طرفی rebase باعث میشه که یه تاریخچه شبیهسازی شده و جدید به وجود بیاد که توش کامیتهای برنچ جدید شما انگار بعد از آخرین کامیت main به وجود اومدن! برای کسی که بعدا نگاه کنه فهمش راحت تره ولی نکته اینه که چنین چیزی اصلا وجود نداشته و ممکنه مشکل لاجیکی تو کد ایجاد کنه.
تو این ویدیو این بحث رو خیلی خوب در قالب یه مکالمه توضیح دادن. توصیه میکنم ببینید.
https://www.youtube.com/watch?v=7gEbHsHXdn0
حالا وقتی میخوایم کانفلیکتها رو حل کنیم میتونیم برنچ main رو با برنچ خودمون merge کنیم یا برنچ خودمون رو rebase کنیم به main جدید.
اینکه کدومش خوبه کدومش نه، جوابش بستگی دارهس!
تو تیمهایی که جونیور زیاد دارن توصیه میشه مرج کنید و تموم. اینطوری تاریخچه پیچیدهتری دارید (چون چرا یهو main تو یه برنچ مرج شده) ولی مجیک خاصی اتفاق نمیافته.
از طرفی rebase باعث میشه که یه تاریخچه شبیهسازی شده و جدید به وجود بیاد که توش کامیتهای برنچ جدید شما انگار بعد از آخرین کامیت main به وجود اومدن! برای کسی که بعدا نگاه کنه فهمش راحت تره ولی نکته اینه که چنین چیزی اصلا وجود نداشته و ممکنه مشکل لاجیکی تو کد ایجاد کنه.
تو این ویدیو این بحث رو خیلی خوب در قالب یه مکالمه توضیح دادن. توصیه میکنم ببینید.
https://www.youtube.com/watch?v=7gEbHsHXdn0
YouTube
You only Git Merge?!? feat Theo : DevHour #1
Theo is a former twitch (5 years) and now currently runs ping.gg where he codes amazing software for streamers. We debate the pros and cons of git rebase vs git merge
### Finding Theo
https://twitter.com/t3dotgg
https://twitch.tv/Theo
https://www.youtu…
### Finding Theo
https://twitter.com/t3dotgg
https://twitch.tv/Theo
https://www.youtu…
👍3
Forwarded from Ninja Learn | نینجا لرن
💎 شورت کات ها درجنگو 💎
توی این پست میخوام درمورد یکسری شورتکات هایی که کمتر کسی بهشون توجه میکنه رو معرفی کنم
1⃣
این شورتکات یه پله بالا تر از
2⃣
اگه تا حالا از
3⃣
شاید با
4⃣
اگه دوست داری یه ارور 404 رو مستقیم دستی بندازی،
5⃣
اگه تو پروژههای پیچیدهتر میخوای بدونی که کاربر الان تو کدوم سایت یا دامنه قرار داره (مثلا تو پروژههایی که از multi-site استفاده میکنن)،
این شورتکاتها میتونن واقعاً تو پروژههای پیچیدهتر جنگویی به کارت بیان و کارت رو راحت تر کنن.
امیدوارم این لیست براتون مفید باشه ✌️
@ninja_learn_ir
توی این پست میخوام درمورد یکسری شورتکات هایی که کمتر کسی بهشون توجه میکنه رو معرفی کنم
1⃣
render_to_string
🧩این شورتکات یه پله بالا تر از
render
هست. اگه میخوای تمپلیت رو به یه رشته (string) تبدیل کنی، مثلا برای ارسال ایمیل یا ساختن پیام خاص، render_to_string
کارت رو راه میندازه. خیلی شیک و مجلسی میتونی تمپلیت رو رندر کنی و به جای HTML کامل، فقط رشته رو داشته باشی:from django.template.loader import render_to_string
def send_email():
message = render_to_string('email_template.html', {'key': 'value'})
# حالا میتونی message رو به عنوان متن ایمیل بفرستی
2⃣
resolve_url
🔗اگه تا حالا از
reverse
استفاده کردی، این یکی هم خیلی شبیه به اونه ولی یه خورده هوشمندتر. resolve_url
میتونه هم نام ویو رو به URL تبدیل کنه و هم خودش چک میکنه که اگه ورودی URL باشه، مستقیم همون رو برگردونه. پس دیگه نیاز نیست نگران باشی چی بهش میدی:from django.shortcuts import resolve_url
def my_view(request):
url = resolve_url('some-view-name-or-url')
# ادامه کارا
3⃣
HttpResponsePermanentRedirect
🚦شاید با
HttpResponseRedirect
آشنا باشی، ولی این یکی یه Redirect دائمی (کد 301) برمیگردونه. این وقتی خوبه که میخوای URL جدید رو دائمی کنی و به موتورهای جستجو بگی که این مسیر دیگه همیشه اینجاست:from django.http import HttpResponsePermanentRedirect
def my_view(request):
return HttpResponsePermanentRedirect('/new-url/')
4⃣
Http404
🚫اگه دوست داری یه ارور 404 رو مستقیم دستی بندازی،
Http404
بهترین گزینهست. این طوری میتونی خودت خیلی شیک کنترل کنی که کجاها ارور 404 داده بشه:from django.shortcuts import Http404
def my_view(request):
if not some_condition:
raise Http404("این صفحه وجود نداره!")
# ادامه کارا
5⃣
get_current_site
🌍اگه تو پروژههای پیچیدهتر میخوای بدونی که کاربر الان تو کدوم سایت یا دامنه قرار داره (مثلا تو پروژههایی که از multi-site استفاده میکنن)،
get_current_site
خیلی کاربردیه:from django.contrib.sites.shortcuts import get_current_site
def my_view(request):
current_site = get_current_site(request)
# حالا میتونی با current_site هر کاری کنی
این شورتکاتها میتونن واقعاً تو پروژههای پیچیدهتر جنگویی به کارت بیان و کارت رو راحت تر کنن.
#Django #Python #کدنویسی #شورتکات #توسعه_وب #برنامه_نویسی
❤15👍2🔥1
Forwarded from Ninja Learn | نینجا لرن
یه مشکلی که همیشه باهاش سروکله میزنیم، اینه که دقیقاً چه فایلها و پوشههایی رو باید توی
خب، من یه راهحل توپ برات دارم! برو به سایت gitignore.io و اونجا اسم تکنولوژیای که باهاش کار میکنی، مثلاً Django، رو وارد کن. این سایت خودش یه لیست از فایلهایی که باید توی
با این کار، دیگه لازم نیست نگران باشی که چه فایلهایی به گیتت اضافه شدن! راحت و بیدردسر.
@ninja_learn_ir
.gitignore
بذاریم؟ 🤔خب، من یه راهحل توپ برات دارم! برو به سایت gitignore.io و اونجا اسم تکنولوژیای که باهاش کار میکنی، مثلاً Django، رو وارد کن. این سایت خودش یه لیست از فایلهایی که باید توی
.gitignore
بذاری بهت میده.با این کار، دیگه لازم نیست نگران باشی که چه فایلهایی به گیتت اضافه شدن! راحت و بیدردسر.
#gitignore #ترفند
@ninja_learn_ir
Toptal
gitignore.io
Create useful .gitignore files for your project
🔥4👍3👏3
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
سلام دوستان
همونطور که میدونید عکس بالا سخت ترین کار برای هر دولوپری هستش 😁
خیلی وقتا اون ترکیب بندی کلمات توی ذهن نمیاد، خیلی وقتا طولانی میشه متنش، حتی بعضی وقت ها نمیدونیم این تغییر که دادیم دقیقا چه نوعیه، feat, ref, chore و ...
این شد من یک برنامه کوچیک و جمع و جور نوشتم که بعد از اینکه فایل هاتون رو به stage اضافه کردید، با اجرای این برنامه توی دایرکتوری پروژه تون، از مدل Gemini-1.5-flash استفاده میکنه و بهتون چند تا commit message بر اساس تغییراتتون پیشنهاد میده
این لینک گیت هاب پروژه هست و ممنون میشم اگه خوشتون اومد با star دادن من رو خوشحال کنید:
https://github.com/ali-hv/comsu
همچنین اگه ایده ای براش دارید که میتونه بهترش کنه، ممنون میشم اگه میتونید pr بزنید یا بهم بگید تا من اعمال کنم.
#پست_حمایتی
@SEYED_BAX
همونطور که میدونید عکس بالا سخت ترین کار برای هر دولوپری هستش 😁
خیلی وقتا اون ترکیب بندی کلمات توی ذهن نمیاد، خیلی وقتا طولانی میشه متنش، حتی بعضی وقت ها نمیدونیم این تغییر که دادیم دقیقا چه نوعیه، feat, ref, chore و ...
این شد من یک برنامه کوچیک و جمع و جور نوشتم که بعد از اینکه فایل هاتون رو به stage اضافه کردید، با اجرای این برنامه توی دایرکتوری پروژه تون، از مدل Gemini-1.5-flash استفاده میکنه و بهتون چند تا commit message بر اساس تغییراتتون پیشنهاد میده
این لینک گیت هاب پروژه هست و ممنون میشم اگه خوشتون اومد با star دادن من رو خوشحال کنید:
https://github.com/ali-hv/comsu
همچنین اگه ایده ای براش دارید که میتونه بهترش کنه، ممنون میشم اگه میتونید pr بزنید یا بهم بگید تا من اعمال کنم.
#پست_حمایتی
@SEYED_BAX
🔥13👍6👏3
Forwarded from Ninja Learn | نینجا لرن
💎 مشکل همزمانی یا همون Concurrency Problem 💎
امروز میخوایم یه موضوع خیلی مهم و جذاب رو با هم موشکافی کنیم:
مشکل همزمانی یا همون Concurrency Problem 🤓 شاید اسمش به گوشتون خورده باشه، ولی اگه دقیقتر بشناسیدش، میفهمید که چرا این موضوع اینقدر تو دنیای برنامهنویسی مهمه.
همزمانی یعنی چی؟ 🤔
اول از همه، بگم که وقتی از همزمانی حرف میزنیم، داریم در مورد اجرای چند تا کار بهصورت همزمان تو یه برنامه صحبت میکنیم. مثلاً فرض کنید یه برنامه دارید که داره همزمان چند تا درخواست کاربر رو مدیریت میکنه، یا داره یه سری عملیاتهای محاسباتی سنگین رو انجام میده. اینجاست که مفهوم همزمانی مطرح میشه. هدف همزمانی اینه که بتونیم از منابع سیستم بهینهتر استفاده کنیم و سرعت اجرای برنامه رو بالا ببریم 🚀
مشکل از کجا شروع میشه؟ 😬
مشکل وقتی پیش میاد که چند تا ترد (Thread) یا پردازش (Process) به یه منبع مشترک دسترسی پیدا میکنن. مثلاً فرض کنید دو تا ترد همزمان دارن یه متغیر رو آپدیت میکنن. اینجاست که ممکنه مقدار نهایی اون متغیر چیزی که انتظار داشتیم نباشه و این یعنی Race Condition 🏁
مثال عملی Race Condition 🛠️
فرض کنید یه اپلیکیشن بانکی دارید که باید موجودی حساب کاربر رو مدیریت کنه. حالا دو تا ترد مختلف میخوان همزمان این موجودی رو آپدیت کنن. مثلاً یه ترد داره پول به حساب اضافه میکنه و ترد دیگه داره از حساب برداشت میکنه. اگه این دو تا ترد همزمان و بدون هماهنگی دقیق اجرا بشن، ممکنه موجودی حساب بهطور نادرست محاسبه بشه 😱 این اتفاق دقیقاً مثالی از Race Condition هست.
راهحلها چی هستن؟ 🔧
خب حالا که مشکل رو فهمیدیم، بیایید ببینیم چجوری میتونیم جلوی این مشکلات رو بگیریم:
1️⃣ Locks (قفلها) 🛡️:
یه راهحل معمول استفاده از قفلهاست. وقتی یه ترد میخواد به یه منبع مشترک دسترسی پیدا کنه، اول اون رو قفل میکنه. اینجوری بقیه تردها باید صبر کنن تا اون ترد کارش رو تموم کنه و قفل رو آزاد کنه. این کار میتونه از بههمریختگی جلوگیری کنه، ولی خودش یه چالش دیگه به نام Deadlock ایجاد میکنه، جایی که دو یا چند ترد منتظر قفلهای همدیگه هستن و هیچکدوم نمیتونن کارشون رو پیش ببرن 😩
2️⃣ Atomic Operations (عملیات اتمی) 💥:
این عملیاتها طوری طراحی شدن که یا کامل انجام میشن یا اصلاً انجام نمیشن. یعنی وسطشون هیچ ترد دیگهای نمیتونه دخالت کنه. مثلاً اضافه کردن یه مقدار به یه متغیر میتونه یه عملیات اتمی باشه.
3️⃣ Synchronization (همگامسازی) ⏰:
با همگامسازی میتونید مطمئن بشید که یه ترد قبل از اینکه ترد دیگه کارش تموم بشه، کاری رو شروع نکنه. این کار معمولاً با استفاده از دستوراتی مثل synchronized در جاوا یا پایتون انجام میشه.
4️⃣ Thread Pools (مجموعه تردها) 🏊:
استفاده از Thread Poolها میتونه به مدیریت بهتر تردها کمک کنه. اینجوری تعداد تردها محدود میشه و از مشکلاتی مثل Overhead جلوگیری میکنید.
مشکلات ناشی از راهحلها 🤯
حالا که از راهحلها گفتیم، یه نکته خیلی مهم رو هم باید اضافه کنم: همه این روشها مشکلات خودشون رو دارن. مثلاً استفاده زیاد از قفلها میتونه کارایی برنامه رو کاهش بده، چون تردها باید منتظر بمونن تا قفل آزاد بشه. از طرف دیگه، اگه قفلها رو درست مدیریت نکنید، ممکنه برنامهتون دچار Deadlock بشه و کلاً قفل بشه 😵
نتیجهگیری 🎯
مشکل همزمانی یه موضوع پیچیده و حساس تو برنامهنویسیه که اگه درست مدیریت نشه، میتونه مشکلات بزرگی رو ایجاد کنه. باید همیشه به این فکر کنید که چطور میتونید از منابع مشترک بهینه استفاده کنید، بدون اینکه برنامهتون دچار مشکلاتی مثل Race Condition یا Deadlock بشه. پس دفعه بعدی که داشتید یه برنامه چندتردی نوشتید، حتماً به این نکات فکر کنید و مطمئن بشید که بهترین راهحل رو انتخاب کردید ✅
مرسی که تا اینجا همراه من بودید، امیدوارم این توضیحات براتون مفید بوده باشه. اگه سوال یا نظری دارید حتماً تو کامنتا بنویسید 😁✌️
@ninja_learn_ir
امروز میخوایم یه موضوع خیلی مهم و جذاب رو با هم موشکافی کنیم:
مشکل همزمانی یا همون Concurrency Problem 🤓 شاید اسمش به گوشتون خورده باشه، ولی اگه دقیقتر بشناسیدش، میفهمید که چرا این موضوع اینقدر تو دنیای برنامهنویسی مهمه.
همزمانی یعنی چی؟ 🤔
اول از همه، بگم که وقتی از همزمانی حرف میزنیم، داریم در مورد اجرای چند تا کار بهصورت همزمان تو یه برنامه صحبت میکنیم. مثلاً فرض کنید یه برنامه دارید که داره همزمان چند تا درخواست کاربر رو مدیریت میکنه، یا داره یه سری عملیاتهای محاسباتی سنگین رو انجام میده. اینجاست که مفهوم همزمانی مطرح میشه. هدف همزمانی اینه که بتونیم از منابع سیستم بهینهتر استفاده کنیم و سرعت اجرای برنامه رو بالا ببریم 🚀
مشکل از کجا شروع میشه؟ 😬
مشکل وقتی پیش میاد که چند تا ترد (Thread) یا پردازش (Process) به یه منبع مشترک دسترسی پیدا میکنن. مثلاً فرض کنید دو تا ترد همزمان دارن یه متغیر رو آپدیت میکنن. اینجاست که ممکنه مقدار نهایی اون متغیر چیزی که انتظار داشتیم نباشه و این یعنی Race Condition 🏁
مثال عملی Race Condition 🛠️
فرض کنید یه اپلیکیشن بانکی دارید که باید موجودی حساب کاربر رو مدیریت کنه. حالا دو تا ترد مختلف میخوان همزمان این موجودی رو آپدیت کنن. مثلاً یه ترد داره پول به حساب اضافه میکنه و ترد دیگه داره از حساب برداشت میکنه. اگه این دو تا ترد همزمان و بدون هماهنگی دقیق اجرا بشن، ممکنه موجودی حساب بهطور نادرست محاسبه بشه 😱 این اتفاق دقیقاً مثالی از Race Condition هست.
راهحلها چی هستن؟ 🔧
خب حالا که مشکل رو فهمیدیم، بیایید ببینیم چجوری میتونیم جلوی این مشکلات رو بگیریم:
1️⃣ Locks (قفلها) 🛡️:
یه راهحل معمول استفاده از قفلهاست. وقتی یه ترد میخواد به یه منبع مشترک دسترسی پیدا کنه، اول اون رو قفل میکنه. اینجوری بقیه تردها باید صبر کنن تا اون ترد کارش رو تموم کنه و قفل رو آزاد کنه. این کار میتونه از بههمریختگی جلوگیری کنه، ولی خودش یه چالش دیگه به نام Deadlock ایجاد میکنه، جایی که دو یا چند ترد منتظر قفلهای همدیگه هستن و هیچکدوم نمیتونن کارشون رو پیش ببرن 😩
2️⃣ Atomic Operations (عملیات اتمی) 💥:
این عملیاتها طوری طراحی شدن که یا کامل انجام میشن یا اصلاً انجام نمیشن. یعنی وسطشون هیچ ترد دیگهای نمیتونه دخالت کنه. مثلاً اضافه کردن یه مقدار به یه متغیر میتونه یه عملیات اتمی باشه.
3️⃣ Synchronization (همگامسازی) ⏰:
با همگامسازی میتونید مطمئن بشید که یه ترد قبل از اینکه ترد دیگه کارش تموم بشه، کاری رو شروع نکنه. این کار معمولاً با استفاده از دستوراتی مثل synchronized در جاوا یا پایتون انجام میشه.
4️⃣ Thread Pools (مجموعه تردها) 🏊:
استفاده از Thread Poolها میتونه به مدیریت بهتر تردها کمک کنه. اینجوری تعداد تردها محدود میشه و از مشکلاتی مثل Overhead جلوگیری میکنید.
مشکلات ناشی از راهحلها 🤯
حالا که از راهحلها گفتیم، یه نکته خیلی مهم رو هم باید اضافه کنم: همه این روشها مشکلات خودشون رو دارن. مثلاً استفاده زیاد از قفلها میتونه کارایی برنامه رو کاهش بده، چون تردها باید منتظر بمونن تا قفل آزاد بشه. از طرف دیگه، اگه قفلها رو درست مدیریت نکنید، ممکنه برنامهتون دچار Deadlock بشه و کلاً قفل بشه 😵
نتیجهگیری 🎯
مشکل همزمانی یه موضوع پیچیده و حساس تو برنامهنویسیه که اگه درست مدیریت نشه، میتونه مشکلات بزرگی رو ایجاد کنه. باید همیشه به این فکر کنید که چطور میتونید از منابع مشترک بهینه استفاده کنید، بدون اینکه برنامهتون دچار مشکلاتی مثل Race Condition یا Deadlock بشه. پس دفعه بعدی که داشتید یه برنامه چندتردی نوشتید، حتماً به این نکات فکر کنید و مطمئن بشید که بهترین راهحل رو انتخاب کردید ✅
#Concurrency #برنامه_نویسی #مشکل_همزمانی #RaceCondition #Deadlock #Synchronization #Threading
YouTube | Instagram | Group
YouTube
Ninjalearn
خوش اومدی به Ninjalearn! 👋 اینجا قراره مسیر یادگیری برنامهنویسی و توسعه وب رو به یک تجربه جذاب و حرفهای تبدیل کنی! 💻
ما توی Ninjalearn باور داریم که هر کسی با راهنمایی درست و کمی انگیزه میتونه به یک توسعهدهنده موفق تبدیل بشه. برای همین، تیم ما که شامل…
ما توی Ninjalearn باور داریم که هر کسی با راهنمایی درست و کمی انگیزه میتونه به یک توسعهدهنده موفق تبدیل بشه. برای همین، تیم ما که شامل…
👍10❤1🔥1
Forwarded from ITShield
دوره های🔥 رایگانی 🔥که در حال برگزاریه و تو کانال @itshield داره قرار میگیره:
⭐️دوره اسمبلی (به هدف مقدمه برای مهندسی معکوس و تحلیل بدافزار)
https://t.me/itshieldassembly
⭐️دوره رایگان پایتون برای نفوذگر سطح مقدمات
https://t.me/itshield/1452
⭐️دوره پایتون برای تست نفوذ پیشرفته (دوره مقدماتیش تموم شده که تو همین کانال @itshield قرار گرفته)
https://t.me/PythonForPentester
⭐️دوره برنامه نویسی سی پلاس پلاس (به هدف ابزار امنیتی نوشتن)
https://t.me/CPlusPlus4Pentester
⭐️ دوره جرم شناسی ویندوز (For 500)
https://t.me/for500
⭐️ دوره اتوماسیون صنعتی
https://t.me/ICS_ITShield
😎پکیج رایگان ccna
https://t.me/itshield/1322
🤓پکیج رایگان MCSE
https://t.me/itshield/1326
🤓دوره رایگان ISMS
#isms
🥸دوره رایگان مقدمات SOC
#soc
🥸مینی دوره مهندسی اجتماعی
#مهندسی_اجتماعی
🥸 دوره جمع آوری اطلاعات برای تست نفوذ وب
#web_recon
🔥ماژول دوم دوره CEH
#CEH
یه سری دوره دیگه هم هست که باید سرچ بزنین پیدا کنین
نکته هزینه شرکت در این دوره ها اینه که روی لینک زیر کلیک کنین و فاتحه برای عزیزان من بفرستین :
https://fatehe-online.ir/g/13486
🤓یه سری دوره و مباحث آموزشی رایگان دیگه هم هست که با سرچ و ... تو کانال بدست میاد
👆اینها رو تا میتونین نشر بدین تا کسی بخاطر یادگیری مقدمات هزینه نکنه
رایگان بودن دوره ها باعث نشده سطحی تدریسشون کنم و واقعا به اندازه دوره تجاری و حتی گاهی بیشتر بهشون اهتمام داشتم و دارم
⭐️دوره اسمبلی (به هدف مقدمه برای مهندسی معکوس و تحلیل بدافزار)
https://t.me/itshieldassembly
⭐️دوره رایگان پایتون برای نفوذگر سطح مقدمات
https://t.me/itshield/1452
⭐️دوره پایتون برای تست نفوذ پیشرفته (دوره مقدماتیش تموم شده که تو همین کانال @itshield قرار گرفته)
https://t.me/PythonForPentester
⭐️دوره برنامه نویسی سی پلاس پلاس (به هدف ابزار امنیتی نوشتن)
https://t.me/CPlusPlus4Pentester
⭐️ دوره جرم شناسی ویندوز (For 500)
https://t.me/for500
⭐️ دوره اتوماسیون صنعتی
https://t.me/ICS_ITShield
😎پکیج رایگان ccna
https://t.me/itshield/1322
🤓پکیج رایگان MCSE
https://t.me/itshield/1326
🤓دوره رایگان ISMS
#isms
🥸دوره رایگان مقدمات SOC
#soc
🥸مینی دوره مهندسی اجتماعی
#مهندسی_اجتماعی
🥸 دوره جمع آوری اطلاعات برای تست نفوذ وب
#web_recon
🔥ماژول دوم دوره CEH
#CEH
یه سری دوره دیگه هم هست که باید سرچ بزنین پیدا کنین
نکته هزینه شرکت در این دوره ها اینه که روی لینک زیر کلیک کنین و فاتحه برای عزیزان من بفرستین :
https://fatehe-online.ir/g/13486
🤓یه سری دوره و مباحث آموزشی رایگان دیگه هم هست که با سرچ و ... تو کانال بدست میاد
👆اینها رو تا میتونین نشر بدین تا کسی بخاطر یادگیری مقدمات هزینه نکنه
رایگان بودن دوره ها باعث نشده سطحی تدریسشون کنم و واقعا به اندازه دوره تجاری و حتی گاهی بیشتر بهشون اهتمام داشتم و دارم
👍1
Forwarded from Django Expert (Majid A.M)
مقاله جدیدم در وبسایت داکبورد با موضوع نکات امنیتی که باید در جنگو رعایت کنیم منتشر شد✌️❤️💣
برای مشاهده کلیک کنید
امروزه جنگو یک فریمورک محبوب وب است که توسط بسیاری از برنامه نویسات برای ساخت وب اپلیکیشنهای امن و مقیاسپذیر استفاده میشود و از آن در پروژه های بسیار بزرگی مانند اینستاگرام استفاده میشود🔥🔥
در این مقاله، به بررسی نکات امنیتی که باید در پروژه های جنگویی خود رعایت کنیم میپردازیم تا بتوانیم اپلیکیشن های تحت وب خود را تا سطح بالایی ایمن و از داده های مربوط به آن حفاظت کنیم👌🤌
@shahriaarrr12
@duckboardnet
برای مشاهده کلیک کنید
امروزه جنگو یک فریمورک محبوب وب است که توسط بسیاری از برنامه نویسات برای ساخت وب اپلیکیشنهای امن و مقیاسپذیر استفاده میشود و از آن در پروژه های بسیار بزرگی مانند اینستاگرام استفاده میشود🔥🔥
در این مقاله، به بررسی نکات امنیتی که باید در پروژه های جنگویی خود رعایت کنیم میپردازیم تا بتوانیم اپلیکیشن های تحت وب خود را تا سطح بالایی ایمن و از داده های مربوط به آن حفاظت کنیم👌🤌
@shahriaarrr12
@duckboardnet
👍3🔥1
✅کد تخفیف ۸۰ درصدی
دوره غیر رایگان ساخت فروشگاه اینترنتی با جنگو
اگه کد تخفیف 80 درصدی میخواهید خصوصی به @miladhzz پیام بدید.
چند قسمت از این دوره رو اینجا ببینید:
https://t.me/djangolearn_ir/531
https://t.me/djangolearn_ir/533
https://t.me/djangolearn_ir/573
https://t.me/djangolearn_ir/676
https://t.me/djangolearn_ir/724
https://t.me/djangolearn_ir/808
https://t.me/djangolearn_ir/830
لینک دوره در دانشجویار:
https://www.daneshjooyar.com/project-django/
دوره غیر رایگان ساخت فروشگاه اینترنتی با جنگو
اگه کد تخفیف 80 درصدی میخواهید خصوصی به @miladhzz پیام بدید.
چند قسمت از این دوره رو اینجا ببینید:
https://t.me/djangolearn_ir/531
https://t.me/djangolearn_ir/533
https://t.me/djangolearn_ir/573
https://t.me/djangolearn_ir/676
https://t.me/djangolearn_ir/724
https://t.me/djangolearn_ir/808
https://t.me/djangolearn_ir/830
لینک دوره در دانشجویار:
https://www.daneshjooyar.com/project-django/
❤3
جنگولرن
خب دوستان پیرو نظرسنجی بالا 👆🏻 هر کسی تمایل داره کدهاش توسط اعضای کانال جنگولرن بررسی بشه. ✔️و ظرفیت دریافت انتقادات مهلک رو داره (که باعث پیشرفت میشه قطعا) به صورت خصوصی با من در ارتباط باشه. آیدی من @miladhzz ✔️بعضی کدهارو هم می تونیم به صورت "برنامه…
سلام به همه
پیرو این پست
✔️اگه کد یا پروژه ای دارید و میخواهید دوستان در موردش نظر بدهند.
لکن برای من بفرستید. آیدی من @miladhzz
✔️اگه کسی قبلاً فرستاده و یادم رفته، بهم یادآوری کنه لطفا
پیرو این پست
✔️اگه کد یا پروژه ای دارید و میخواهید دوستان در موردش نظر بدهند.
لکن برای من بفرستید. آیدی من @miladhzz
✔️اگه کسی قبلاً فرستاده و یادم رفته، بهم یادآوری کنه لطفا
🔥3
✅دومین پروژه برای کد ریویو
✔️پروژه جنگویی هست
اگه نظری دارید و نمیخواهید توی کامنت های این پست بنویسیدش خصوصی برام بفرستید. آیدی من @miladhzz
نکته: هر نظری اوکیه. فقط بی احترامی یا تحقیر و امثالهم نباشه. ممنون
✔️توضیحاتش:
این پروژه یک Api برای پنل پشتیبانی هست ممنون میشم اگر نگاهش کنید و بگید که چه مشکلاتی داره و چه ویژگی دیگر بهتر هست براش بگذارم
لینک:
https://github.com/yaser11138/Ticket-Api
✔️پروژه جنگویی هست
اگه نظری دارید و نمیخواهید توی کامنت های این پست بنویسیدش خصوصی برام بفرستید. آیدی من @miladhzz
نکته: هر نظری اوکیه. فقط بی احترامی یا تحقیر و امثالهم نباشه. ممنون
✔️توضیحاتش:
این پروژه یک Api برای پنل پشتیبانی هست ممنون میشم اگر نگاهش کنید و بگید که چه مشکلاتی داره و چه ویژگی دیگر بهتر هست براش بگذارم
لینک:
https://github.com/yaser11138/Ticket-Api
👍1
Media is too big
VIEW IN TELEGRAM
✅ بخشی از آپدیت جدید دوره ساخت فروشگاه اینترنتی با جنگو
✔️ تبدیل ویو فانکشن بیس به کلاس بیس در جنگو
توی این ویدئو متد get فرم لاگین رو از فانکش بیس به کلاس بیس تغییر دادیم.
توی این ویدئو که بخشی از آپدیت جدید آموزش ساخت فروشگاه اینترنتی هست در مورد موضوعات زیر صحبت شد:
✔️آشنایی با کلاس View
✔️ویوهای جنریک و نحوه ارث بری شون
✔️آشنایی با متد as_view
✔️آشنایی مختصر با متد dispatch
لینک ویدئو در آپارات:
https://www.aparat.com/v/ifby9eo
لینک ویدئو در یوتیوب:
https://youtu.be/hefA2sEby7c
هر مشکل یا ابهامی دیدید. خصوصی به @miladhzz پیام بدید
✔️ تبدیل ویو فانکشن بیس به کلاس بیس در جنگو
توی این ویدئو متد get فرم لاگین رو از فانکش بیس به کلاس بیس تغییر دادیم.
توی این ویدئو که بخشی از آپدیت جدید آموزش ساخت فروشگاه اینترنتی هست در مورد موضوعات زیر صحبت شد:
✔️آشنایی با کلاس View
✔️ویوهای جنریک و نحوه ارث بری شون
✔️آشنایی با متد as_view
✔️آشنایی مختصر با متد dispatch
لینک ویدئو در آپارات:
https://www.aparat.com/v/ifby9eo
لینک ویدئو در یوتیوب:
https://youtu.be/hefA2sEby7c
هر مشکل یا ابهامی دیدید. خصوصی به @miladhzz پیام بدید
👍1
Forwarded from Python Hints
وقتی با افراد باقی تیمهای شرکتهایی که باهاشون کار میکنم صحبت میکنم؛ همیشه سعی میکنم با دقت بسیار منتظر کلمات کلیدی باشم.
مثلا امروز متوجه شدم؛ یکی ازین شرکتها داره روی
اما پروژه
پارسال گفتم هرکی سمت
Django-Ninja Rest Framework Github
خواستم تاکید کنم: توجه کنید که گفتم اگر وقت خالی دارید؛ ۱-۲ ساعت نیم نگاه داشته باشید.
مثلا امروز متوجه شدم؛ یکی ازین شرکتها داره روی
django-ninja
کار میکنه پروژههای جدید که بیشتر هم کوتاه مدت لازم هست (نهایتا ۳-۶ ماه) رو دارند میبرند روی این فریمورک بجای استفاده از drf
یک تیم برای fastapi
هم داریم ولی drf, django
از خیلی سال پیش توی شرکت بوده و جا افتاده اما نداشتن Async, ...
باعث شده دنیال جایگزین باشند؛ چندماه قبل دنبال golang
هم رفتند اما به دلیل زیاد شدن هزینهها توسط شرکت مادر تایید نشد (چون باید ۲ تا تیم ساخته میشد؛ نگهداری پروژههای بزرگ قدیمی؛ جابجایی برخی از پروژههای فعلی و البته توسعه پروژههای جدید روی golang
) اما پروژه
django-ninja
با توجه به آنچه من از این بچهها شنیدم احتمال داره فریمورک جایگزین برای drf
باشه؛ بد نیست اگر فرصت دارید شبی ۱-۲ ساعت نیم نگاهی به داکیومنت این پروژه داشته باشید.پارسال گفتم هرکی سمت
Async
نره؛ توی تیم بازندههای پایتون خواهد بود.Django-Ninja Rest Framework Github
خواستم تاکید کنم: توجه کنید که گفتم اگر وقت خالی دارید؛ ۱-۲ ساعت نیم نگاه داشته باشید.
GitHub
GitHub - vitalik/django-ninja: 💨 Fast, Async-ready, Openapi, type hints based framework for building APIs
💨 Fast, Async-ready, Openapi, type hints based framework for building APIs - vitalik/django-ninja
👍7❤3🔥2
Python Hints
وقتی با افراد باقی تیمهای شرکتهایی که باهاشون کار میکنم صحبت میکنم؛ همیشه سعی میکنم با دقت بسیار منتظر کلمات کلیدی باشم. مثلا امروز متوجه شدم؛ یکی ازین شرکتها داره روی django-ninja کار میکنه پروژههای جدید که بیشتر هم کوتاه مدت لازم هست (نهایتا ۳-۶…
کامنت های این پست رو هم بخونید.