Forwarded from Django Expert (Amir Motahari)
مجموعهها در پایتون
- set متدهای پرکاربرد
- frozenset
- collections.Counter
لینک ویدیو:
https://youtu.be/qeVPRvvawLM
> پلیلیست کتاب ترفندهای پایتون
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
© @DjangoEX | > Instagram <
- set متدهای پرکاربرد
- frozenset
- collections.Counter
لینک ویدیو:
https://youtu.be/qeVPRvvawLM
> پلیلیست کتاب ترفندهای پایتون
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
© @DjangoEX | > Instagram <
👍1
Forwarded from Python Hints
این پست رو توی کانال
Post Link
بعد یکی از دوستان نزدیکم که با تشویق من شروع به یادگیری برنامهنویسی کرده بود گفت که توی ۲-۳ سالی که کار میکنه این مورد رو ندیده و اصلا هم الان درک نمیکنه.
بنظرم طبیعی هست؛ الگوریتم
بعد ی میت گذاشتیم همینطوری باهم صحبت کنیم و رفت بحث سمت الگوریتم و ساختمان داده و ...و متوجه شدم خیلی موارد رو که بلد نیست و اونهایی هم که بلده حفظ کرده و درک درستی ازش نداره.
با اینکه در حد قبولی مصاحبهها بلد هست ولی همین ضعف باعث شده نتونه مصاحبههای با سختی بیشتر رو شرکت کنه.
از اون روز رفت تو مخم که چطوری میشه به بعضی آدمها یک منبعی رو معرفی کرد که بصورت تصویری همه چیز رو نشون بده مثلا حتی نحوه قرار گیری دیتای آرایهها توی رم و ...
منابعی که تاحالا معرفی کردم هیچکدوم این مورد رو نداره.
تا اینکه چندی پیش این مورد رو دیدم؛
Data structures and algorithms crash course with animated illustrations and off-the-shelf code
از خوبیهاش :
۱- تصویری هست
۲- کلی چشم روش هست؛ چون
۳- همیشه در دسترس هست (حتما برید روی انگلیسی مگر اینکه چینی رو خوب بلد باشید)
۴- تمام موارد پیادهسازی داره و این پیادهسازی روی چندین زبان هست
۵- پیادهسازیها قدم به قدم هست.
خلاصه این رو بکنید مرجع؛ چون بنظرم خیلی خوبه (یک سری ایرادات داره؛ چون اختصاصی پایتون نیست ولی خب توضیحاتش انقدر خوب هست که کسی که ی مقدار پایتون رو جدی گرفته متوجه بشه)
بعد به کتاب رجوع کنید و اون موضوع رو روی پایتون هم بررسی کنید.
#DataStructure #Algorithm
Rust
زدم Post Link
بعد یکی از دوستان نزدیکم که با تشویق من شروع به یادگیری برنامهنویسی کرده بود گفت که توی ۲-۳ سالی که کار میکنه این مورد رو ندیده و اصلا هم الان درک نمیکنه.
بنظرم طبیعی هست؛ الگوریتم
Red-Black
جزو مواردی هست که واقعا ساده نیست مخصوصا وقتی صحبت پیادهسازی میشه.بعد ی میت گذاشتیم همینطوری باهم صحبت کنیم و رفت بحث سمت الگوریتم و ساختمان داده و ...و متوجه شدم خیلی موارد رو که بلد نیست و اونهایی هم که بلده حفظ کرده و درک درستی ازش نداره.
با اینکه در حد قبولی مصاحبهها بلد هست ولی همین ضعف باعث شده نتونه مصاحبههای با سختی بیشتر رو شرکت کنه.
از اون روز رفت تو مخم که چطوری میشه به بعضی آدمها یک منبعی رو معرفی کرد که بصورت تصویری همه چیز رو نشون بده مثلا حتی نحوه قرار گیری دیتای آرایهها توی رم و ...
منابعی که تاحالا معرفی کردم هیچکدوم این مورد رو نداره.
تا اینکه چندی پیش این مورد رو دیدم؛
Data structures and algorithms crash course with animated illustrations and off-the-shelf code
از خوبیهاش :
۱- تصویری هست
۲- کلی چشم روش هست؛ چون
open source
هست کلی آدم خطاهاش رو میگیرند۳- همیشه در دسترس هست (حتما برید روی انگلیسی مگر اینکه چینی رو خوب بلد باشید)
۴- تمام موارد پیادهسازی داره و این پیادهسازی روی چندین زبان هست
۵- پیادهسازیها قدم به قدم هست.
خلاصه این رو بکنید مرجع؛ چون بنظرم خیلی خوبه (یک سری ایرادات داره؛ چون اختصاصی پایتون نیست ولی خب توضیحاتش انقدر خوب هست که کسی که ی مقدار پایتون رو جدی گرفته متوجه بشه)
بعد به کتاب رجوع کنید و اون موضوع رو روی پایتون هم بررسی کنید.
#DataStructure #Algorithm
Telegram
Rust for Python developers
اگر خواستید یکی رو آزار بدید
بهش بگید
Red-Black Tree
رو توی Rust پیاده سازی کنه
فکر کنم این عذاب برنامهنویسهای جهنمی باشه 😂😂
بهش بگید
Red-Black Tree
رو توی Rust پیاده سازی کنه
فکر کنم این عذاب برنامهنویسهای جهنمی باشه 😂😂
❤2👍2
این پست و کامنت هاش هم با عنوان استفاده درست از جنگو رو ببینید
کامنت های جالبی داره
https://www.linkedin.com/posts/morteza-arab-256782244_aeqagpabraepaeuaex-aehaetahyaeqabraeqaecahyaet-activity-7222568302022184960-yB3O?utm_source=share&utm_medium=member_desktop
کامنت های جالبی داره
https://www.linkedin.com/posts/morteza-arab-256782244_aeqagpabraepaeuaex-aehaetahyaeqabraeqaecahyaet-activity-7222568302022184960-yB3O?utm_source=share&utm_medium=member_desktop
👍2
Forwarded from Security Analysis
⭕️ پروژه C2 ای توسعه داده شده که BotNet های HTTP/HTTPS و WebSocket ایجاد میکند.
در سمت Backend آن با Django توسعه داده شده و چون به صورت Freamwork نبوده میتوان در پروژه های خود از این کد استفاده کنیم.
از این پروژه میتوان به جهت شبیه سازی حملات DDOS و Mass Spam و دیگر حملات این چنینی استفاده کرد.
#RedTeam #C2
@securation
در سمت Backend آن با Django توسعه داده شده و چون به صورت Freamwork نبوده میتوان در پروژه های خود از این کد استفاده کنیم.
از این پروژه میتوان به جهت شبیه سازی حملات DDOS و Mass Spam و دیگر حملات این چنینی استفاده کرد.
#RedTeam #C2
@securation
GitHub
GitHub - 44b4c0/NexusC2: Public C2 server repository for everyone.
Public C2 server repository for everyone. Contribute to 44b4c0/NexusC2 development by creating an account on GitHub.
Forwarded from TorhamDev | تورهام 😳
این سری چهارتایی مقاله از stripe خیلی خوبه و توصیه میکنم حتما بخونید.
https://dev.to/stripe/designing-apis-for-humans-object-ids-3o5a
البته یک نکته درباره این مقاله اول بگم که تو کامنتهاش هم گفتن، داخل مقاله میگه uuid گزینه بهتری هستش تا آیدی عددی که شاید از نظر امنیت بهتر باشه ولی برای پرفرمنس نه، چرا که uuid ها رندوم هستن و به خوبی index نمیشن داخل دیتابیس.
#خواندنی
@TorhamDevCH
https://dev.to/stripe/designing-apis-for-humans-object-ids-3o5a
البته یک نکته درباره این مقاله اول بگم که تو کامنتهاش هم گفتن، داخل مقاله میگه uuid گزینه بهتری هستش تا آیدی عددی که شاید از نظر امنیت بهتر باشه ولی برای پرفرمنس نه، چرا که uuid ها رندوم هستن و به خوبی index نمیشن داخل دیتابیس.
#خواندنی
@TorhamDevCH
DEV Community
Designing APIs for humans: Object IDs
Choosing your ID type Regardless of what type of business you run, you very likely require...
👍2
Forwarded from محمد لرنینگ (آموزش برنامه نویسی)
.
لینک ویدیوی جلسه ۲۶:
https://youtu.be/mWqFwJYiQgM
تو این ویدیو، شروع کردیم در مورد بک اند صحبت کردیم که چی چی هست و کجاها کاربرد داره، از FastAPI و چند فریمورک دیگه حرف زدیم و در نهایت چند خط کد با فریمورک محبوب FastAPI کد زدیم
🔔 حتما حتما یوتیوب رو فالو کنید و ویدیو رو لایک کنید و نوتیف رو روشن بزارید 🫶
https://www.tgoop.com/QaDeveloper
✅ @SEYED_BAX | @MakeDeveloper
لینک ویدیوی جلسه ۲۶:
https://youtu.be/mWqFwJYiQgM
تو این ویدیو، شروع کردیم در مورد بک اند صحبت کردیم که چی چی هست و کجاها کاربرد داره، از FastAPI و چند فریمورک دیگه حرف زدیم و در نهایت چند خط کد با فریمورک محبوب FastAPI کد زدیم
https://www.tgoop.com/QaDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
✅ ای وای! پرفورمنسش افتاد!
این پست با کامنت هاش جالبه
بخشی از پست:
داستان از اینجا شروع میشه که من در تمامی شرکت هایی که کار کردم با یه چالش جدی مواجه بودن اونم اینه که بعد از یه مدت پرفورمنس سایت بخاطر دیپلوی ها و فیچرهایی که به سیستمشون اضافه می شد میومد پایین ( حالا کاری ندارم گیر از بک اندشون بود یا فرانت ) که در نتیجه از یه جایی به بعد گوگل روی سئو رنک پیج هاشونو میاورد پایین.
حالا این شرکت ها معمولا چیکار میکنن؟
میان یه اسپرینت روی این قضیه وقت میگذارن. گیر و گور کارو درمیارن تا یه جایی . دیپلوی میدن. همه چی تا یه مدت به حالت عادی برمیگرده ،۶ ماه بعد دوباره همین داستان تکرار میشه.
https://www.linkedin.com/posts/mostafadadkhah_%DA%86%D8%A7%D9%84%D8%B4-%D8%A7%DB%8C-%D9%88%D8%A7%DB%8C-%D9%BE%D8%B1%D9%81%D9%88%D8%B1%D9%85%D9%86%D8%B3%D8%B4-%D8%A7%D9%81%D8%AA%D8%A7%D8%AF-%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%D8%A7%D8%B2-activity-7225427107437318144-5i8d?utm_source=share&utm_medium=member_desktop
این پست با کامنت هاش جالبه
بخشی از پست:
داستان از اینجا شروع میشه که من در تمامی شرکت هایی که کار کردم با یه چالش جدی مواجه بودن اونم اینه که بعد از یه مدت پرفورمنس سایت بخاطر دیپلوی ها و فیچرهایی که به سیستمشون اضافه می شد میومد پایین ( حالا کاری ندارم گیر از بک اندشون بود یا فرانت ) که در نتیجه از یه جایی به بعد گوگل روی سئو رنک پیج هاشونو میاورد پایین.
حالا این شرکت ها معمولا چیکار میکنن؟
میان یه اسپرینت روی این قضیه وقت میگذارن. گیر و گور کارو درمیارن تا یه جایی . دیپلوی میدن. همه چی تا یه مدت به حالت عادی برمیگرده ،۶ ماه بعد دوباره همین داستان تکرار میشه.
https://www.linkedin.com/posts/mostafadadkhah_%DA%86%D8%A7%D9%84%D8%B4-%D8%A7%DB%8C-%D9%88%D8%A7%DB%8C-%D9%BE%D8%B1%D9%81%D9%88%D8%B1%D9%85%D9%86%D8%B3%D8%B4-%D8%A7%D9%81%D8%AA%D8%A7%D8%AF-%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%D8%A7%D8%B2-activity-7225427107437318144-5i8d?utm_source=share&utm_medium=member_desktop
👍3
Forwarded from Ninja Learn | نینجا لرن (Mohammad Eslami)
💎 مفهوم XFF یا همون X-Forward-For💎
امروز میخوایم در مورد یه هدر (Header) جالبی به اسم X-Forwarded-For حرف بزنیم. شاید اولش یه کم پیچیده به نظر بیاد، ولی نگران نباشید! میخوام براتون توضیح بدم که این چیز عجیب و غریبی نیست 😁
❓ حالا X-Forwarded-For چیه؟
تصور کنید شما یه نامه رو از تهران به شیراز پست میکنید. روی پاکت نامه آدرس فرستنده و گیرنده نوشته شده. حالا فرض کنید این نامه توی مسیرش از چندین پستخانه عبور کنه. هر پستخانه ای که نامه رو دست بگیره، یه برچسب کوچولو روش میچسبونه و آدرس پستخانه خودش رو هم روش مینویسه. این برچسب ها مثل یه ردیاب هستن که نشون میدن نامه از کجا اومده و به کجا رفته.
خب X-Forwarded-For هم دقیقا همین کارو برای درخواستهای اینترنتی انجام میده.
وقتی شما یه صفحه وب رو باز میکنید، کامپیوتر شما یه درخواست به سرور اون سایت ارسال میکنه. این درخواست حاوی اطلاعات مختلفی مثل آدرس IP شماست.
❓ ادرس IP چیست؟
آدرس IP مثل یه شماره شناسایی منحصر به فرد برای هر دستگاهی هست که به اینترنت متصله.
حالا فرض کنید این درخواست از چندین سرور عبور کنه.
هر سروری که درخواست رو دریافت کنه، آدرس IP خودش رو به همراه آدرس IP قبلی در یه هدر به اسم X-Forwarded-For ذخیره میکنه. اینجوری میشه فهمید که درخواست از کجا اومده و چه مسیری رو طی کرده.
❓ چرا X-Forwarded-For مهمه؟
🛡 امنیت: با استفاده از این هدر میشه به آسانی حملات هکرها رو ردیابی کرد. اگه یه هکر بخواد با استفاده از آدرس IP جعلی به یه سایت حمله کنه، با بررسی هدر X-Forwarded-For میشه آدرس IP واقعی اون رو پیدا کرد.
⚖ تعادل بار سرور(load balancing): سایتهایی که ترافیک بالایی دارن، از چندین سرور برای پاسخگویی به درخواستها استفاده میکنن. با بررسی این هدر میشه فهمید که هر درخواست از کدوم سرور پاسخ گرفته و اینجوری میشه بار کاری سرورها رو به صورت بهینه توزیع کرد.
🗺 جغرافیایی: با بررسی آدرسهای IP موجود در این هدر میشه فهمید که کاربران از کجا به سایت شما وصل میشن. این اطلاعات برای تحلیل رفتار کاربران و شخصیسازی محتوا خیلی مفیده.
✅خلاصه کلام:
هد X-Forwarded-For یه ابزار قدرتمند برای تحلیل ترافیک شبکه و افزایش امنیت سایتهاست. با استفاده از این هدر میشه به اطلاعات ارزشمندی درباره مسیر درخواستها، آدرس IP کاربران و نوع دستگاههایشون دست پیدا کرد.
#web #xff
امروز میخوایم در مورد یه هدر (Header) جالبی به اسم X-Forwarded-For حرف بزنیم. شاید اولش یه کم پیچیده به نظر بیاد، ولی نگران نباشید! میخوام براتون توضیح بدم که این چیز عجیب و غریبی نیست 😁
❓ حالا X-Forwarded-For چیه؟
تصور کنید شما یه نامه رو از تهران به شیراز پست میکنید. روی پاکت نامه آدرس فرستنده و گیرنده نوشته شده. حالا فرض کنید این نامه توی مسیرش از چندین پستخانه عبور کنه. هر پستخانه ای که نامه رو دست بگیره، یه برچسب کوچولو روش میچسبونه و آدرس پستخانه خودش رو هم روش مینویسه. این برچسب ها مثل یه ردیاب هستن که نشون میدن نامه از کجا اومده و به کجا رفته.
خب X-Forwarded-For هم دقیقا همین کارو برای درخواستهای اینترنتی انجام میده.
وقتی شما یه صفحه وب رو باز میکنید، کامپیوتر شما یه درخواست به سرور اون سایت ارسال میکنه. این درخواست حاوی اطلاعات مختلفی مثل آدرس IP شماست.
❓ ادرس IP چیست؟
آدرس IP مثل یه شماره شناسایی منحصر به فرد برای هر دستگاهی هست که به اینترنت متصله.
حالا فرض کنید این درخواست از چندین سرور عبور کنه.
هر سروری که درخواست رو دریافت کنه، آدرس IP خودش رو به همراه آدرس IP قبلی در یه هدر به اسم X-Forwarded-For ذخیره میکنه. اینجوری میشه فهمید که درخواست از کجا اومده و چه مسیری رو طی کرده.
❓ چرا X-Forwarded-For مهمه؟
🛡 امنیت: با استفاده از این هدر میشه به آسانی حملات هکرها رو ردیابی کرد. اگه یه هکر بخواد با استفاده از آدرس IP جعلی به یه سایت حمله کنه، با بررسی هدر X-Forwarded-For میشه آدرس IP واقعی اون رو پیدا کرد.
⚖ تعادل بار سرور(load balancing): سایتهایی که ترافیک بالایی دارن، از چندین سرور برای پاسخگویی به درخواستها استفاده میکنن. با بررسی این هدر میشه فهمید که هر درخواست از کدوم سرور پاسخ گرفته و اینجوری میشه بار کاری سرورها رو به صورت بهینه توزیع کرد.
🗺 جغرافیایی: با بررسی آدرسهای IP موجود در این هدر میشه فهمید که کاربران از کجا به سایت شما وصل میشن. این اطلاعات برای تحلیل رفتار کاربران و شخصیسازی محتوا خیلی مفیده.
✅خلاصه کلام:
هد X-Forwarded-For یه ابزار قدرتمند برای تحلیل ترافیک شبکه و افزایش امنیت سایتهاست. با استفاده از این هدر میشه به اطلاعات ارزشمندی درباره مسیر درخواستها، آدرس IP کاربران و نوع دستگاههایشون دست پیدا کرد.
#web #xff
👍3❤2
علی شریفی زارچی: دانشگاه شریف سال گذشته دورهی «برنامهنویسی پایتون و خلاقیت الگوریتمی» را برای هزاران دانشآموز متوسطهی سراسر کشور برگزار کرد.
تمام محتوای این دوره شامل ویدئوی کلاسها، تمرینهای نظری و عملی «به صورت رایگان» به همهی دانشآموزان ایران تقدیم میشود:
https://learn-python.ir
بیش از ۱۱۰ استاد، دانشجو و دانشآموختهی دانشگاه شریف و سایر دانشگاههای داخل و خارج ایران در تهیهی محتوا و برگزاری آن مشارکت داشتند.
علاوه بر دانشآموزان متوسطه، این دوره مناسب همهی افرادی است که میخواهند برای نخستین بار برنامهنویسی یاد بگیرند و از چالشهای زیبا لذت ببرند.
گذراندن این دوره و انجام تمرینهای نظری و عملی آن با تلفن همراه امکانپذیر است و نیازی به استفاده از لپتاپ یا کامپیوتر نیست.
صمیمانه پیشنهاد میکنیم اگر دانشآموز دبیرستان یا فردی علاقمند به یادگیری برنامهنویسی میشناسید، دوره را به او معرفی فرمایید.
تمام محتوای این دوره شامل ویدئوی کلاسها، تمرینهای نظری و عملی «به صورت رایگان» به همهی دانشآموزان ایران تقدیم میشود:
https://learn-python.ir
بیش از ۱۱۰ استاد، دانشجو و دانشآموختهی دانشگاه شریف و سایر دانشگاههای داخل و خارج ایران در تهیهی محتوا و برگزاری آن مشارکت داشتند.
علاوه بر دانشآموزان متوسطه، این دوره مناسب همهی افرادی است که میخواهند برای نخستین بار برنامهنویسی یاد بگیرند و از چالشهای زیبا لذت ببرند.
گذراندن این دوره و انجام تمرینهای نظری و عملی آن با تلفن همراه امکانپذیر است و نیازی به استفاده از لپتاپ یا کامپیوتر نیست.
صمیمانه پیشنهاد میکنیم اگر دانشآموز دبیرستان یا فردی علاقمند به یادگیری برنامهنویسی میشناسید، دوره را به او معرفی فرمایید.
👍4
Media is too big
VIEW IN TELEGRAM
✅شایستگی اتصال پایگاه داده در وب - آموزش MySql
✔️توی این ویدئو در مورد MySql صحبت می کنیم.
✔️درس پیاده سازی سیستم های اطلاعاتی و طراحی وب
پودمان 4 واحد یادگیری 6
شایستگی اتصال پایگاه داده در وب
لینک آپارات:
https://www.aparat.com/v/ezy0z22
لینک یوتیوب:
https://youtu.be/S286TFSsxj0
✔️توی این ویدئو در مورد MySql صحبت می کنیم.
✔️درس پیاده سازی سیستم های اطلاعاتی و طراحی وب
پودمان 4 واحد یادگیری 6
شایستگی اتصال پایگاه داده در وب
لینک آپارات:
https://www.aparat.com/v/ezy0z22
لینک یوتیوب:
https://youtu.be/S286TFSsxj0
❤3👍1🔥1
Forwarded from Ninja Learn | نینجا لرن (Mohammad Eslami)
💎 سایت مپ (sitemaps) درجنگو 💎
امروز میخوایم با همدیگه یکی از ابزارهای خیلی کاربردی در دنیای Django رو بشناسیم. چیزی که بهمون کمک میکنه تا سایتمون رو بهتر و سریعتر برای موتورهای جستجو بهینه کنیم.
❓ حالا Django sitemaps چیه؟
خب، فرض کنین سایتتون یه باغچه بزرگه. هر صفحه سایتتون هم یه گل قشنگ تو این باغچه. حالا Django sitemaps مثل یه نقشه کامل از این باغچهست که به موتورهای جستجو میگه هر گل کجا قرار داره و چه ویژگیهایی داره. ️
این نقشه به موتورهای جستجو کمک میکنه تا راحتتر توی سایت شما گشت بزنن و صفحات مهم رو سریعتر پیدا کنن. اینجوری هم کاربران زودتر به اطلاعات دلخواهشون میرسن و هم سایتتون رتبه بهتری تو نتایج جستجو میگیره. ✅
❓ چرا از Django sitemaps استفاده کنیم؟
1⃣ بهبود سئو: با ایجاد یک sitemap کامل، موتورهای جستجو راحتتر صفحات سایتتون رو ایندکس میکنن و در نتیجه سایتتون توی نتایج جستجو بالاتر میاد.
2⃣ افزایش سرعت لود: sitemap به موتورهای جستجو میگه کدوم صفحات مهمترن و باید زودتر بررسی بشن. اینجوری موتورهای جستجو وقت کمتری رو برای پیدا کردن صفحات مهم تلف میکنن.
3⃣ مدیریت بهتر صفحات: با استفاده از sitemaps میشه به راحتی صفحات سایت رو مدیریت کرد و صفحات اضافی یا قدیمی رو حذف کرد.
❓چطور Django sitemaps رو پیادهسازی کنیم؟ ️
1⃣ نصب پکیج: اول از همه باید پکیج django-sitemaps رو نصب کنیم. برای این کار کافیه تو ترمینال پروژهتون این دستور رو
بزنید:
2⃣ اضافه کردن به INSTALLED_APPS: بعد از نصب پکیج، باید اون رو به لیست اپلیکیشنهای پروژه اضافه کنیم. تو فایل settings.py پروژهتون، 'django_sitemaps' رو به لیست INSTALLED_APPS اضافه کنید.
3⃣ ایجاد کلاس Sitemap: حالا باید یه کلاس از کلاس Sitemap که توی پکیج django_sitemaps تعریف شده، ایجاد کنیم. تو این کلاس، مشخص میکنیم کدوم مدلها رو میخوایم توی sitemapمون قرار بدیم و چه فیلدهایی رو برای هر مدل میخوایم ایندکس کنیم.
4⃣ ایجاد URL برای Sitemap: در نهایت باید یه URL برای دسترسی به sitemap ایجاد کنیم. این کار رو توی فایل urls.py پروژه انجام میدیم.
5⃣ ارسال Sitemap به موتورهای جستجو: بعد از ایجاد sitemap، آدرس اون رو به کنسول جستجوی گوگل و سایر موتورهای جستجو ارسال کنید.
⭕️ نکته: برای اینکه موتورهای جستجو به طور خودکار sitemap رو پیدا کنن، بهتره از فایل robots.txt استفاده کنید و آدرس sitemap رو داخل اون قرار بدید.
✅ خلاصه:
خب Django sitemaps یه ابزار قدرتمند برای بهبود سئوی سایت هست. با استفاده از این ابزار، موتورهای جستجو بهتر میتونن محتوای سایتتون رو درک کنن و در نتیجه سایتتون توی نتایج جستجو بالاتر میاد.
امیدوارم این آموزش براتون مفید بوده باشه. اگه سوالی داشتین، حتما بپرسید.
بنظرتون پست بعدی راجب چی باشه؟
#Django #sitemap #seo #python #برنامه_نویسی
امروز میخوایم با همدیگه یکی از ابزارهای خیلی کاربردی در دنیای Django رو بشناسیم. چیزی که بهمون کمک میکنه تا سایتمون رو بهتر و سریعتر برای موتورهای جستجو بهینه کنیم.
❓ حالا Django sitemaps چیه؟
خب، فرض کنین سایتتون یه باغچه بزرگه. هر صفحه سایتتون هم یه گل قشنگ تو این باغچه. حالا Django sitemaps مثل یه نقشه کامل از این باغچهست که به موتورهای جستجو میگه هر گل کجا قرار داره و چه ویژگیهایی داره. ️
این نقشه به موتورهای جستجو کمک میکنه تا راحتتر توی سایت شما گشت بزنن و صفحات مهم رو سریعتر پیدا کنن. اینجوری هم کاربران زودتر به اطلاعات دلخواهشون میرسن و هم سایتتون رتبه بهتری تو نتایج جستجو میگیره. ✅
❓ چرا از Django sitemaps استفاده کنیم؟
1⃣ بهبود سئو: با ایجاد یک sitemap کامل، موتورهای جستجو راحتتر صفحات سایتتون رو ایندکس میکنن و در نتیجه سایتتون توی نتایج جستجو بالاتر میاد.
2⃣ افزایش سرعت لود: sitemap به موتورهای جستجو میگه کدوم صفحات مهمترن و باید زودتر بررسی بشن. اینجوری موتورهای جستجو وقت کمتری رو برای پیدا کردن صفحات مهم تلف میکنن.
3⃣ مدیریت بهتر صفحات: با استفاده از sitemaps میشه به راحتی صفحات سایت رو مدیریت کرد و صفحات اضافی یا قدیمی رو حذف کرد.
❓چطور Django sitemaps رو پیادهسازی کنیم؟ ️
1⃣ نصب پکیج: اول از همه باید پکیج django-sitemaps رو نصب کنیم. برای این کار کافیه تو ترمینال پروژهتون این دستور رو
بزنید:
pip install django-sitemaps
2⃣ اضافه کردن به INSTALLED_APPS: بعد از نصب پکیج، باید اون رو به لیست اپلیکیشنهای پروژه اضافه کنیم. تو فایل settings.py پروژهتون، 'django_sitemaps' رو به لیست INSTALLED_APPS اضافه کنید.
3⃣ ایجاد کلاس Sitemap: حالا باید یه کلاس از کلاس Sitemap که توی پکیج django_sitemaps تعریف شده، ایجاد کنیم. تو این کلاس، مشخص میکنیم کدوم مدلها رو میخوایم توی sitemapمون قرار بدیم و چه فیلدهایی رو برای هر مدل میخوایم ایندکس کنیم.
from django.contrib.sitemaps import Sitemap
from .models import Post
class PostSitemap(Sitemap):
changefreq = "weekly"
priority = 0.9
def items(self):
return Post.objects.all()
def lastmod(self, obj):
return obj.publish_date
def location(self, item):
return
reverse('home:post-detail',kwargs={' slug':item.slug})
4⃣ ایجاد URL برای Sitemap: در نهایت باید یه URL برای دسترسی به sitemap ایجاد کنیم. این کار رو توی فایل urls.py پروژه انجام میدیم.
from django.contrib.sitemaps.views import sitemap from django.urls import path
from .sitemaps import PostSitemap
sitemaps = {'posts': PostSitemap}
urlpatterns = [path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap')]
5⃣ ارسال Sitemap به موتورهای جستجو: بعد از ایجاد sitemap، آدرس اون رو به کنسول جستجوی گوگل و سایر موتورهای جستجو ارسال کنید.
⭕️ نکته: برای اینکه موتورهای جستجو به طور خودکار sitemap رو پیدا کنن، بهتره از فایل robots.txt استفاده کنید و آدرس sitemap رو داخل اون قرار بدید.
✅ خلاصه:
خب Django sitemaps یه ابزار قدرتمند برای بهبود سئوی سایت هست. با استفاده از این ابزار، موتورهای جستجو بهتر میتونن محتوای سایتتون رو درک کنن و در نتیجه سایتتون توی نتایج جستجو بالاتر میاد.
امیدوارم این آموزش براتون مفید بوده باشه. اگه سوالی داشتین، حتما بپرسید.
بنظرتون پست بعدی راجب چی باشه؟
#Django #sitemap #seo #python #برنامه_نویسی
❤13👍4🔥3🤔1
Forwarded from Learn with Osman (Osman Makhtoom)
پست جدید من تو لینکداین در خصوص RabbitMQ
خوشحال میشم حمایت کنید و کمک کنید به دست بقیه هم برسه.
https://www.linkedin.com/posts/osman-makhtoom_rabbitmq-messaging-techtalk-activity-7226960744251043840-Eq0u?utm_source=share&utm_medium=member_android
@osmanpydev
خوشحال میشم حمایت کنید و کمک کنید به دست بقیه هم برسه.
https://www.linkedin.com/posts/osman-makhtoom_rabbitmq-messaging-techtalk-activity-7226960744251043840-Eq0u?utm_source=share&utm_medium=member_android
@osmanpydev
Linkedin
Why Message Acknowledgment in RabbitMQ is essential | Osman Makhtoomnejad posted on the topic | LinkedIn
Exploring Message Acknowledgment in RabbitMQ
As many of you know, reliable message delivery is a cornerstone of robust asynchronous systems. RabbitMQ, one of…
As many of you know, reliable message delivery is a cornerstone of robust asynchronous systems. RabbitMQ, one of…
❤2
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
💎 لاگینگ (logging) در جنگو 💎
امروز میخوایم با همدیگه یکی از ابزارهای خیلی مهم برای دیباگ کردن و پیگیری کردن اتفاقات توی برنامه هامون رو بررسی کنیم: لاگینگ.
📃 لاگینگ چیه؟ به زبون ساده، لاگینگ یعنی نوشتن یه سری اطلاعات خاص در مورد اتفاقاتی که توی برنامهمون میفته توی یه فایل یا جایی دیگه.
این اطلاعات میتونه شامل زمان وقوع اتفاق، نوع اتفاق، و جزئیات دیگه ای باشه. با داشتن این اطلاعات، ما میتونیم خیلی راحت تر مشکلات برنامهمون رو پیدا کنیم و اونها رو برطرف کنیم.
❓چرا لاگینگ توی جنگو مهمه؟ 🤔
1⃣ دیباگ کردن: وقتی برنامهمون با خطا مواجه میشه، لاگ ها بهمون کمک میکنن تا بفهمیم دقیقا کجا و چرا این خطا رخ داده.
2⃣ پیگیری عملکرد: با بررسی لاگ ها میتونیم ببینیم که برنامهمون چقدر سریع اجرا میشه و کدهای مختلف چقدر زمان میبرن.
3⃣ امنیت: لاگ ها میتونن بهمون کمک کنن تا حملات امنیتی رو شناسایی کنیم و ازشون جلوگیری کنیم.
⚙ چطوری لاگینگ رو توی جنگو تنظیم کنیم؟
1⃣ وارد شدن به settings.py: اول از همه باید به فایل settings.py پروژه خودمون بریم. این فایل جاییه که همه تنظیمات کلی پروژهمون رو انجام میدیم.
2⃣ تنظیم متغیر LOGGING: توی این فایل یه متغیر به اسم LOGGING وجود داره که یه دیکشنری هست. ما باید این دیکشنری رو به شکلی که میخوایم تنظیم کنیم. مثلا برای اینکه لاگ هامون رو توی یه فایل به اسم mysite.log ذخیره کنیم، میتونیم این کد رو به settings.py اضافه کنیم:
🧐 درک تنظیمات:
version:
نسخه لاگر
disable_existing_loggers:
اگر True باشه، لاگرهای پیش فرض جنگو غیرفعال میشن.
handlers:
اینجا تعریف میکنیم که لاگ هامون رو کجا ذخیره کنیم. مثلا توی فایل، کنسول، یا یه دیتابیس.
loggers:
اینجا مشخص میکنیم که چه ماژول هایی لاگ تولید کنن و سطح لاگشون چی باشه.
🧪 پیاده سازی لاگینگ توی کد: برای استفاده از لاگینگ توی کدهامون، از ماژول logging پایتون استفاده میکنیم. مثلا:
📊 سطح های مختلف لاگ:
🟣 DEBUG:
برای اطلاعات خیلی جزئی
🔵 INFO:
برای اطلاعات عمومی
🟠 WARNING:
برای هشدارها
🔴 ERROR:
برای خطاها
☣ CRITICAL:
برای خطاهای خیلی جدی
⭕️ نکات مهم:
سطح لاگ رو با توجه به محیطتون تنظیم کنید: مثلا توی محیط توسعه سطح لاگ رو روی DEBUG بذارید تا همه چیز رو ببینید، اما توی محیط پروداکت سطح لاگ رو روی INFO یا بالاتر بذارید.
از لاگینگ برای دیباگ کردن استفاده کنید، اما اطلاعات حساس رو لاگ نکنید.
لاگ ها رو مرتبا بررسی کنید تا مشکلات رو زودتر پیدا کنید.
✅ خلاصه: لاگینگ یکی از ابزارهای خیلی مهم برای توسعه دهندگان جنگو هست. با استفاده از لاگینگ میتونیم برنامه های با کیفیت تر و پایدارتری بسازیم.
امیدوارم این آموزش براتون مفید بوده باشه. اگه سوالی داشتید حتما بپرسید.
#جنگو #لاگینگ #توسعه_وب #پایتون
امروز میخوایم با همدیگه یکی از ابزارهای خیلی مهم برای دیباگ کردن و پیگیری کردن اتفاقات توی برنامه هامون رو بررسی کنیم: لاگینگ.
📃 لاگینگ چیه؟ به زبون ساده، لاگینگ یعنی نوشتن یه سری اطلاعات خاص در مورد اتفاقاتی که توی برنامهمون میفته توی یه فایل یا جایی دیگه.
این اطلاعات میتونه شامل زمان وقوع اتفاق، نوع اتفاق، و جزئیات دیگه ای باشه. با داشتن این اطلاعات، ما میتونیم خیلی راحت تر مشکلات برنامهمون رو پیدا کنیم و اونها رو برطرف کنیم.
❓چرا لاگینگ توی جنگو مهمه؟ 🤔
1⃣ دیباگ کردن: وقتی برنامهمون با خطا مواجه میشه، لاگ ها بهمون کمک میکنن تا بفهمیم دقیقا کجا و چرا این خطا رخ داده.
2⃣ پیگیری عملکرد: با بررسی لاگ ها میتونیم ببینیم که برنامهمون چقدر سریع اجرا میشه و کدهای مختلف چقدر زمان میبرن.
3⃣ امنیت: لاگ ها میتونن بهمون کمک کنن تا حملات امنیتی رو شناسایی کنیم و ازشون جلوگیری کنیم.
⚙ چطوری لاگینگ رو توی جنگو تنظیم کنیم؟
1⃣ وارد شدن به settings.py: اول از همه باید به فایل settings.py پروژه خودمون بریم. این فایل جاییه که همه تنظیمات کلی پروژهمون رو انجام میدیم.
2⃣ تنظیم متغیر LOGGING: توی این فایل یه متغیر به اسم LOGGING وجود داره که یه دیکشنری هست. ما باید این دیکشنری رو به شکلی که میخوایم تنظیم کنیم. مثلا برای اینکه لاگ هامون رو توی یه فایل به اسم mysite.log ذخیره کنیم، میتونیم این کد رو به settings.py اضافه کنیم:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'mysite.log',
},
},
'loggers': {
'django': { 'handlers': ['file'], 'level': 'INFO',
},
},
}
🧐 درک تنظیمات:
version:
نسخه لاگر
disable_existing_loggers:
اگر True باشه، لاگرهای پیش فرض جنگو غیرفعال میشن.
handlers:
اینجا تعریف میکنیم که لاگ هامون رو کجا ذخیره کنیم. مثلا توی فایل، کنسول، یا یه دیتابیس.
loggers:
اینجا مشخص میکنیم که چه ماژول هایی لاگ تولید کنن و سطح لاگشون چی باشه.
🧪 پیاده سازی لاگینگ توی کد: برای استفاده از لاگینگ توی کدهامون، از ماژول logging پایتون استفاده میکنیم. مثلا:
import logging
logger = logging.getLogger(__name__)
def my_function():
logger.info(
"This is an info message"
)
logger.error(
"This is an error message"
)
📊 سطح های مختلف لاگ:
🟣 DEBUG:
برای اطلاعات خیلی جزئی
🔵 INFO:
برای اطلاعات عمومی
🟠 WARNING:
برای هشدارها
🔴 ERROR:
برای خطاها
☣ CRITICAL:
برای خطاهای خیلی جدی
⭕️ نکات مهم:
سطح لاگ رو با توجه به محیطتون تنظیم کنید: مثلا توی محیط توسعه سطح لاگ رو روی DEBUG بذارید تا همه چیز رو ببینید، اما توی محیط پروداکت سطح لاگ رو روی INFO یا بالاتر بذارید.
از لاگینگ برای دیباگ کردن استفاده کنید، اما اطلاعات حساس رو لاگ نکنید.
لاگ ها رو مرتبا بررسی کنید تا مشکلات رو زودتر پیدا کنید.
✅ خلاصه: لاگینگ یکی از ابزارهای خیلی مهم برای توسعه دهندگان جنگو هست. با استفاده از لاگینگ میتونیم برنامه های با کیفیت تر و پایدارتری بسازیم.
امیدوارم این آموزش براتون مفید بوده باشه. اگه سوالی داشتید حتما بپرسید.
#جنگو #لاگینگ #توسعه_وب #پایتون
👍14❤3
Forwarded from TorhamDev | تورهام 😳
قسمت سوم درک بهتر ORM جنگو | کوئری روی یک میلیون رکورد دیتابیس
https://youtu.be/Wt06muNbVT0
#درک_orm_جنگو
@TorhamDevCH
https://youtu.be/Wt06muNbVT0
#درک_orm_جنگو
@TorhamDevCH
YouTube
قسمت سوم درک بهتر ORM جنگو | کوئری روی یک میلیون رکورد دیتابیس
🔥3👍1
سنیور کیه؟ سنیور کسیه که:
حل مسئله براش یه بازیه: مارتین فاولر میگه یه سنیور باید بتونه مشکلات پیچیده رو قشنگ تحلیل کنه و راهحلهایی بده که نه تنها جواب بده، بلکه بعداً هم دردسر درست نکنه.
یادگیری براش آب خوردنه: اندرو هانت و دیوید توماس تو کتاب "The Pragmatic Programmer" تاکید میکنن که یه سنیور همیشه در حال یادگیریه و با سرعت میتونه تکنولوژیهای جدید رو بگیره و تو کارش پیاده کنه.
اصطلاحا میگن باید learning curve پایین باشه
به "نمیشه" اعتقادی نداره: باب مارتین میگه یه سنیور به جای اینکه بگه "نمیشه"، باید بیاد بگه "چقدر هزینه داره" و راههای مختلف رو ارائه بده، حتی اگه گرون دربیاد.
کدی که میزنه مثل جواهر میدرخشه (و تست شده است): کنت بک، پدر TDD، میگه که تست کردن کد از مهمترین بخشهای کاره. یه سنیور باید کدی بزنه که به طور کامل تست شده و هیچ خطایی توش نباشه.
یه عده معتقدن که تست کار سنیور نیست!
ای خدا
حرفاش پایه و اساس داره، نه از روی حدس و گمان: استیو مککانل تو کتاب "Code Complete" میگه تصمیمات یه سنیور باید بر اساس تجربه و داده باشه، نه از روی حدس. این باعث میشه که هم تیمیها و هم مشتریها بهش اعتماد کنن.
استراتژی رو توی خونش داره: وارن برگر توی کتاب "A More Beautiful Question" میگه یه سنیور باید تصویر کلی رو ببینه و با تفکر استراتژیک تصمیمات بلندمدت بگیره.
دنبال مقصر نمیگرده، دنبال راه حله: کن بلانچارد تو کتاب "The One Minute Manager" میگه یه سنیور به جای اینکه بگرده ببینه کی اشتباه کرده، دنبال راه حل میگرده. این طوری فرهنگ همکاری و اعتماد تو تیم قوی میشه.
قابل اعتماده: لینوس توروالدز، خالق لینوکس ، میگه که اعتماد یکی از مهمترین ویژگیهای یه سنیوره. سنیور باید بتونه با کیفیت کار و رفتار حرفهایش اعتماد دیگران رو جلب کنه.
زمان رو خوب مدیریت میکنه: استیون کاوی، نویسنده "7 عادت افراد بسیار مؤثر"، میگه: "اولویتها رو اولویتبندی کنید." یه سنیور باید بتونه زمانش رو خوب مدیریت کنه و کارای مهمتر رو تشخیص بده تا پروژهها به موقع و با کیفیت تحویل داده بشن.
انعطافپذیره: جیمز گوسلینگ، خالق جاوا ، میگه: "تغییرات دائمی هستن و نرمافزار باید باهاشون سازگار باشه." یه سنیور باید همیشه آماده تغییر باشه و با شرایط جدید کنار بیاد.
تفکر انتقادی داره و تحلیلگره: ریچارد استالمن، بنیانگذار نرمافزار آزاد ، میگه: "هر تصمیمی تو نرمافزار باید با دقت و تحلیل کامل گرفته بشه." یه سنیور باید بتونه مسائل رو تحلیل کنه و بهترین تصمیمات رو بگیره.
همیشه دنبال کیفیت و بهتر شدنه: ادوارد دمینگ، پیشگام مدیریت کیفیت، میگه: "کیفیت نتیجه تلاش مداوم و بهبوده." یه سنیور همیشه دنبال اینه که کیفیت کد و فرآیندها رو بالا ببره و به تیم کمک کنه تا بهترین خودشون باشن.
دید کلی به پروژه داره: اریک ریموند، یکی از نویسندگان "The Cathedral and the Bazaar"، میگه: "نگاه از بالا به پروژه بهتون کمک میکنه بفهمین هر تصمیم چطور بر کل سیستم تأثیر میذاره." یه سنیور باید دید کلی داشته باشه تا تصمیمات استراتژیک بگیره و پروژه رو به موفقیت برسونه.
✍️ Hossein Dadkhah
حل مسئله براش یه بازیه: مارتین فاولر میگه یه سنیور باید بتونه مشکلات پیچیده رو قشنگ تحلیل کنه و راهحلهایی بده که نه تنها جواب بده، بلکه بعداً هم دردسر درست نکنه.
یادگیری براش آب خوردنه: اندرو هانت و دیوید توماس تو کتاب "The Pragmatic Programmer" تاکید میکنن که یه سنیور همیشه در حال یادگیریه و با سرعت میتونه تکنولوژیهای جدید رو بگیره و تو کارش پیاده کنه.
اصطلاحا میگن باید learning curve پایین باشه
به "نمیشه" اعتقادی نداره: باب مارتین میگه یه سنیور به جای اینکه بگه "نمیشه"، باید بیاد بگه "چقدر هزینه داره" و راههای مختلف رو ارائه بده، حتی اگه گرون دربیاد.
کدی که میزنه مثل جواهر میدرخشه (و تست شده است): کنت بک، پدر TDD، میگه که تست کردن کد از مهمترین بخشهای کاره. یه سنیور باید کدی بزنه که به طور کامل تست شده و هیچ خطایی توش نباشه.
یه عده معتقدن که تست کار سنیور نیست!
ای خدا
حرفاش پایه و اساس داره، نه از روی حدس و گمان: استیو مککانل تو کتاب "Code Complete" میگه تصمیمات یه سنیور باید بر اساس تجربه و داده باشه، نه از روی حدس. این باعث میشه که هم تیمیها و هم مشتریها بهش اعتماد کنن.
استراتژی رو توی خونش داره: وارن برگر توی کتاب "A More Beautiful Question" میگه یه سنیور باید تصویر کلی رو ببینه و با تفکر استراتژیک تصمیمات بلندمدت بگیره.
دنبال مقصر نمیگرده، دنبال راه حله: کن بلانچارد تو کتاب "The One Minute Manager" میگه یه سنیور به جای اینکه بگرده ببینه کی اشتباه کرده، دنبال راه حل میگرده. این طوری فرهنگ همکاری و اعتماد تو تیم قوی میشه.
قابل اعتماده: لینوس توروالدز، خالق لینوکس ، میگه که اعتماد یکی از مهمترین ویژگیهای یه سنیوره. سنیور باید بتونه با کیفیت کار و رفتار حرفهایش اعتماد دیگران رو جلب کنه.
زمان رو خوب مدیریت میکنه: استیون کاوی، نویسنده "7 عادت افراد بسیار مؤثر"، میگه: "اولویتها رو اولویتبندی کنید." یه سنیور باید بتونه زمانش رو خوب مدیریت کنه و کارای مهمتر رو تشخیص بده تا پروژهها به موقع و با کیفیت تحویل داده بشن.
انعطافپذیره: جیمز گوسلینگ، خالق جاوا ، میگه: "تغییرات دائمی هستن و نرمافزار باید باهاشون سازگار باشه." یه سنیور باید همیشه آماده تغییر باشه و با شرایط جدید کنار بیاد.
تفکر انتقادی داره و تحلیلگره: ریچارد استالمن، بنیانگذار نرمافزار آزاد ، میگه: "هر تصمیمی تو نرمافزار باید با دقت و تحلیل کامل گرفته بشه." یه سنیور باید بتونه مسائل رو تحلیل کنه و بهترین تصمیمات رو بگیره.
همیشه دنبال کیفیت و بهتر شدنه: ادوارد دمینگ، پیشگام مدیریت کیفیت، میگه: "کیفیت نتیجه تلاش مداوم و بهبوده." یه سنیور همیشه دنبال اینه که کیفیت کد و فرآیندها رو بالا ببره و به تیم کمک کنه تا بهترین خودشون باشن.
دید کلی به پروژه داره: اریک ریموند، یکی از نویسندگان "The Cathedral and the Bazaar"، میگه: "نگاه از بالا به پروژه بهتون کمک میکنه بفهمین هر تصمیم چطور بر کل سیستم تأثیر میذاره." یه سنیور باید دید کلی داشته باشه تا تصمیمات استراتژیک بگیره و پروژه رو به موفقیت برسونه.
✍️ Hossein Dadkhah
👍6🔥2❤1👏1
Forwarded from Sadra Codes
تقریبا هرچیزی که راجع به Lambda Functionها در پایتون نیازه که بدونید رو اینجا قرار دادم! ۵ دقیقه زمان میبره خوندنش!
- بهترین و بدترین رویکردهای استفاده از لامبداها.
- یوزکیسهای عادی.
- یوزکیسهای پیشرفته و کاربردی.
link 👉 https://blog.imsadra.me/lambda-the-single-line-function
لذت ببرید. :))
پینوشت: عکس پست یکی از جالبترین و در عین حال، بدترین یوزکیسهای لامبدا فانکشنه. اینکه بعنوان یه Decorator از لامبدا استفاده کنی! 😅
- بهترین و بدترین رویکردهای استفاده از لامبداها.
- یوزکیسهای عادی.
- یوزکیسهای پیشرفته و کاربردی.
link 👉 https://blog.imsadra.me/lambda-the-single-line-function
لذت ببرید. :))
پینوشت: عکس پست یکی از جالبترین و در عین حال، بدترین یوزکیسهای لامبدا فانکشنه. اینکه بعنوان یه Decorator از لامبدا استفاده کنی! 😅
👍2
Forwarded from محمد لرنینگ (آموزش برنامه نویسی)
.
لینک ویدیوی جلسه 29:
https://youtu.be/vFZdox9DHnk
تو این ویدیو، در مورد اینکه یک رکوئست از مرورگر تا رسیدن به سایت و رد شدن از انواع ns و dns و کلادفلر و ... تا رسیدن به وب سرور و رد کردن nginx و asgi و FastAPI و صدا زدن فانکشن صحبت کردیم، بشدت بحث مفصل و خفنی بود.
🔔 حتما حتما یوتیوب رو فالو کنید و ویدیو رو لایک کنید و نوتیف رو روشن بزارید 🫶
https://www.tgoop.com/QaDeveloper
✅ @SEYED_BAX | @MakeDeveloper
لینک ویدیوی جلسه 29:
https://youtu.be/vFZdox9DHnk
تو این ویدیو، در مورد اینکه یک رکوئست از مرورگر تا رسیدن به سایت و رد شدن از انواع ns و dns و کلادفلر و ... تا رسیدن به وب سرور و رد کردن nginx و asgi و FastAPI و صدا زدن فانکشن صحبت کردیم، بشدت بحث مفصل و خفنی بود.
https://www.tgoop.com/QaDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Forwarded from Django Expert (Amir Motahari)
صفها در پایتون
- stack vs queue
- list
- collections.deque
- queue.Queue
- multiprocessing.Queue
لینک ویدیو:
https://youtu.be/mU2HTMUqiBY
> پلیلیست کتاب ترفندهای پایتون
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
© @DjangoEX | > Instagram <
- stack vs queue
- list
- collections.deque
- queue.Queue
- multiprocessing.Queue
لینک ویدیو:
https://youtu.be/mU2HTMUqiBY
> پلیلیست کتاب ترفندهای پایتون
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
© @DjangoEX | > Instagram <
👍2
Forwarded from Microfrontend.ir
Django Json Field
سالهاست که ذخیره سازی دادهها به شیوه رابطهای بهترین و رایج ترین شیوه ذخیره سازی است با این وجود در سالهای اخیر و با معرفی مفهوم NoSQL شیوههای دیگری نیز مطرح شده اند که پرکاربردترین آنها Document یا ذخیره داده به شکل JSON است. ابزارهای مختلفی مانند mongodb در این فضا رشد کردهاند اما امروزه اغلب دیتابیسهای رابطهای به شما امکان ذخیره و بازیابی این نوع از دادهها را میدهند و شاید بتوان گفت بهترین آنها PostgreSQL است. در این ویدیو ابتدا شیوه اجرای پستگرس از طریق داکر را شرح دادیم و سپس با اتصال به آن یک دیتابیس و یک جدول ساختیم که بتوان دادههای JSON را نیز در آن ذخیره کرد. سپس همان رویکرد را بر روی جنگو و با استفاده Django Json Field پیاده سازی کردیم و چند مثال از query دادهها را بررسی کردیم.
Video Link: https://youtu.be/aVahpcJQ8tE
** پلی لیست نکته ها و ترفندهای جنگو:
https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwdrfdaoOqbYev3_ocuBOfv
** کلاس آنلاین آموزش جنگو
https://www.youtube.com/playlist?list=PLJ9zDGwhhsByH5tcpM9H3VzdHYpne3bSa
〰️〰️〰️〰️〰️〰️
© @microfrontend_ir
سالهاست که ذخیره سازی دادهها به شیوه رابطهای بهترین و رایج ترین شیوه ذخیره سازی است با این وجود در سالهای اخیر و با معرفی مفهوم NoSQL شیوههای دیگری نیز مطرح شده اند که پرکاربردترین آنها Document یا ذخیره داده به شکل JSON است. ابزارهای مختلفی مانند mongodb در این فضا رشد کردهاند اما امروزه اغلب دیتابیسهای رابطهای به شما امکان ذخیره و بازیابی این نوع از دادهها را میدهند و شاید بتوان گفت بهترین آنها PostgreSQL است. در این ویدیو ابتدا شیوه اجرای پستگرس از طریق داکر را شرح دادیم و سپس با اتصال به آن یک دیتابیس و یک جدول ساختیم که بتوان دادههای JSON را نیز در آن ذخیره کرد. سپس همان رویکرد را بر روی جنگو و با استفاده Django Json Field پیاده سازی کردیم و چند مثال از query دادهها را بررسی کردیم.
Video Link: https://youtu.be/aVahpcJQ8tE
** پلی لیست نکته ها و ترفندهای جنگو:
https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwdrfdaoOqbYev3_ocuBOfv
** کلاس آنلاین آموزش جنگو
https://www.youtube.com/playlist?list=PLJ9zDGwhhsByH5tcpM9H3VzdHYpne3bSa
〰️〰️〰️〰️〰️〰️
© @microfrontend_ir
👍1
Forwarded from Python BackendHub (Mani)
یک نکته به حرفای صدرا اضافه کنم
قانون goodhart میگه که اگه یک measure (معیار) تبدیل به تارگت بشه، دیگه معیار خوبی نیست.
برای همین من اصلا چیزایی مثل تست کاوریج و استوری پوینتو اینا رو قبول ندارم. چون اینا measure نیستن هیچوقت همیشه تارگت میشن.
همین اتفاقی که واسه صدرا افتاد، شما به جای اینکه دنبال این باشین که تست بنویسید که یوزکیس و ادجکیس هارو کاور کنید، تست مینویسید که صد در صد شه 😅. برای همین قبلا گفتم تست کاوریج یک دروغه. خوبه که داشته باشیم، بدونیم عه فلان فایلمون اصلا کاور نشده، ولی target نیست! همین موضوع راجب استوری پوینت، استوری پوینت تارگت نیست!
تارگت باید این باشه: تست هایی که business requirement رو تست میکنن، که گارانتی میدن نرم افزار اون requirement رو satisfy میکنه طبق اون شرایط
استوری پونینتم همینه ها هیچ فرقی نداره. اونایی که از هر اسپرینت میام جمع میزنن استوری پوینتو و هدفشون میشه استوری پوینت دقیقا تو همین دستن.
@PyBackendHub
قانون goodhart میگه که اگه یک measure (معیار) تبدیل به تارگت بشه، دیگه معیار خوبی نیست.
برای همین من اصلا چیزایی مثل تست کاوریج و استوری پوینتو اینا رو قبول ندارم. چون اینا measure نیستن هیچوقت همیشه تارگت میشن.
همین اتفاقی که واسه صدرا افتاد، شما به جای اینکه دنبال این باشین که تست بنویسید که یوزکیس و ادجکیس هارو کاور کنید، تست مینویسید که صد در صد شه 😅. برای همین قبلا گفتم تست کاوریج یک دروغه. خوبه که داشته باشیم، بدونیم عه فلان فایلمون اصلا کاور نشده، ولی target نیست! همین موضوع راجب استوری پوینت، استوری پوینت تارگت نیست!
تارگت باید این باشه: تست هایی که business requirement رو تست میکنن، که گارانتی میدن نرم افزار اون requirement رو satisfy میکنه طبق اون شرایط
استوری پونینتم همینه ها هیچ فرقی نداره. اونایی که از هر اسپرینت میام جمع میزنن استوری پوینتو و هدفشون میشه استوری پوینت دقیقا تو همین دستن.
@PyBackendHub
👍2