http://ads.telegram.org
هر کسی میتونه تو کانال شما تبلیغ بکنه.
https://telegram.org/blog/monetization-for-channels
#SADRA_K
Please open Telegram to view this post
VIEW IN TELEGRAM
ads.telegram.org
Telegram Ad Platform
The Telegram Ad Platform is a privacy-conscious tool to create sponsored messages in public one-to-many channels with 1000+ subscribers.
👍2👌1
LibreTube 0.22.2
یوتیوب بدون فیلترشکن و تبلیغات
بروزرسانی جدید هم اکنون در دسترس است
https://libre-tube.github.io/
لیبرهتیوب یک نرمافزار آزاد و اوپن سورس برای استفاده از یوتیوب است که تبلیغات را به طور اتوماتیک حذف میکند و ویدیوها را پراکسی میکند، به همین دلیل شما دیگر احتیاجی به تماشای تبلیغات و استفاده از VPN ندارید.
با لیبرهتیوب شما هیچ اتصالی به یوتیوب ندارید پس میتوانید با خیال راحت نسبت به دنبال شدن و نقض حریمخصوصیتان توسط گوگل به تماشای ویدیوها بپردازید.
به دلیل استفادهی «لیبرهتیوب» از کدینگ ویدئویی DASH در سمت سرور، ترافیک مصرفی شما میتواند تا ۵۰٪ کاهش یابد.
دانلود از مخزن گیتهاب
https://github.com/libre-tube/LibreTube/releases/tag/v0.22.2
دانلود از f droid
https://f-droid.org/en/packages/com.github.libretube
https://apt.izzysoft.de/fdroid/index/apk/com.github.libretube
@persians_python
یوتیوب بدون فیلترشکن و تبلیغات
بروزرسانی جدید هم اکنون در دسترس است
https://libre-tube.github.io/
لیبرهتیوب یک نرمافزار آزاد و اوپن سورس برای استفاده از یوتیوب است که تبلیغات را به طور اتوماتیک حذف میکند و ویدیوها را پراکسی میکند، به همین دلیل شما دیگر احتیاجی به تماشای تبلیغات و استفاده از VPN ندارید.
با لیبرهتیوب شما هیچ اتصالی به یوتیوب ندارید پس میتوانید با خیال راحت نسبت به دنبال شدن و نقض حریمخصوصیتان توسط گوگل به تماشای ویدیوها بپردازید.
به دلیل استفادهی «لیبرهتیوب» از کدینگ ویدئویی DASH در سمت سرور، ترافیک مصرفی شما میتواند تا ۵۰٪ کاهش یابد.
دانلود از مخزن گیتهاب
https://github.com/libre-tube/LibreTube/releases/tag/v0.22.2
دانلود از f droid
https://f-droid.org/en/packages/com.github.libretube
https://apt.izzysoft.de/fdroid/index/apk/com.github.libretube
@persians_python
👎3
JavaScript : Visual Studio Code
Java : IntelliJ IDEA
Swift : Xcode
Go : Visual Studio Code
Ruby : RubyMine
TypeScript : Visual Studio Code
Kotlin : IntelliJ IDEA
Rust : Visual Studio Code
MATLAB : MATLAB Editor
SQL : SQL Server Management Studio
R : RStudio
Scala : IntelliJ IDEA
Perl : Padre
Shell Scripting : Visual Studio Code
Lua : Visual Studio Code
Objective-C : Xcode
Dart : Visual Studio Code
Groovy : IntelliJ
Visual Basic : Visual Studio IDE
Assembly : Visual Studio Code
Lisp : Emacs
Haskell : GHCi
F# : Visual Studio Code
PowerShell : PowerShell
Clojure : Emacs
#SADRA_K
Please open Telegram to view this post
VIEW IN TELEGRAM
👌3👍1👎1
سلام به همگی تصویر استوری مجتمع فنی رو گذاشتم دو مطلب قبل ولی دوباره اعلام میکنم طبق اعلام مجتمع فنی کلاس ها از شنبه 18 فروردین رسماً شروع میشه
برای آخرین مطلب راجع به نات کوین
اینکه فکر کنید با کلیک کردن قراره کسی پولدار بشه یه رویای خوشایند غیرواقعی هست این شکل پروژه ها با استفاده از اهرم تعداد افراد به یه پروژه ای ارزش میدن و حالا ممکنه در آینده با ایده های پشتش بتونن این ارز رو قیمت گذاری کنند بهش به عنوان یک بازی نگاه کنید مثل کلی بازی دیگه که با بازی کردن و بازار nft میشه یه درآمد زایی انجام داد
مهم ترین نکته ای که باید در نظر گرفته بشه این شکل پروژه ها و احتمالا پروژه های در آینده دارن به بزرگتر شدن شبکه تلگرام یعنی ton کمک میکنند ، آینده درخشانی که در انتظار تلگرام و شبکه ton بعنوان شبکه انتقال دارایی خواهد بود
فرصتی که برای یک برنامه نویس بوجود اومده
با درآمد زا شدن کانال های تلگرامی قطعا ساخت ربات های کاربردی میتونه ایده های پول سازی باشه و وقتش شده که ساخت ربات تلگرام با پایتون رو کاملا جدی بگیرید و به دنبال ایده های ناب باشید
حتی در صورت قیمت گذاری نات کوین درآمدی که خواهد داشت به اندازه درآمد یک هفته یک پیک موتوری هم نخواهد بود پس تمرکز رو روی یادگیری بذارید و دنبال رویاهای محال نرید
اینکه فکر کنید با کلیک کردن قراره کسی پولدار بشه یه رویای خوشایند غیرواقعی هست این شکل پروژه ها با استفاده از اهرم تعداد افراد به یه پروژه ای ارزش میدن و حالا ممکنه در آینده با ایده های پشتش بتونن این ارز رو قیمت گذاری کنند بهش به عنوان یک بازی نگاه کنید مثل کلی بازی دیگه که با بازی کردن و بازار nft میشه یه درآمد زایی انجام داد
مهم ترین نکته ای که باید در نظر گرفته بشه این شکل پروژه ها و احتمالا پروژه های در آینده دارن به بزرگتر شدن شبکه تلگرام یعنی ton کمک میکنند ، آینده درخشانی که در انتظار تلگرام و شبکه ton بعنوان شبکه انتقال دارایی خواهد بود
فرصتی که برای یک برنامه نویس بوجود اومده
با درآمد زا شدن کانال های تلگرامی قطعا ساخت ربات های کاربردی میتونه ایده های پول سازی باشه و وقتش شده که ساخت ربات تلگرام با پایتون رو کاملا جدی بگیرید و به دنبال ایده های ناب باشید
حتی در صورت قیمت گذاری نات کوین درآمدی که خواهد داشت به اندازه درآمد یک هفته یک پیک موتوری هم نخواهد بود پس تمرکز رو روی یادگیری بذارید و دنبال رویاهای محال نرید
تو دنیای برنامه نویسی یکسری قرارداد های نامگذاری وجود داره برای اینکه بتونیم کدهای خوانایی بزنیم و ازونجایی که در دنیای برنامه نویسی چیزهای زیادی مانند متغیرها، توابع، کلاس ها، متد ها و ... وجود داره توسعه دهنده ها تصمیم گرفتن تا از کیس تایپ های مختلفی استفاده کنند برای نامگذاری.
اکثر ( اگر نگیم همه ) زبان های برنامه نویسی هر کلمه رو یک چیز کاملا جدا و منحصر فرد در نظر میگیرند. مثال زیر رو برای نامگذاری یک متغیر در نظر بگیرید
Number of donuts = 34
سه کلمه ی (number, of, donuts) در یک زبان برنامه نویسی به صورت مستقل باهاشون رفتار میشه به علت اینکه کارکتر اسپیس بین انها قرار گرفته است. برای اینکه برنامتون به درستی کار بکنه باید کارکتر های اسپیس رو حذف بکنید و اونرو به یک استرینگ واحد به شیوه خاصی تبدیل کنید.
4 نوع تایپ کیس داریم که جلوتر بهتون توضیح میدم ولی در همین ابتدا بگم هیچ جواب قاطعی برای اینکه کدوم بهتره وجود نداره.
شما باید با توجه به بست پرکتیس های زبان پروژتون انتخاب کنید که قراره از کدوم تایپ کیس استفاده کنید.
—————————————————————-
1- snake_case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از _ به هم وصل میشود.
بیشتر در زبان پایتون این قابل مشاهده هست و در زبان هایی مثل جاوا، جاوااسکریپت کمتر دیده میشه.
● کاربرد ها :
- ساختن متغیر ها، نام متد ها
- اسامی جدول و ستون های یک دیتابیس
همچنین یک ورژن دیگه از snake case وجود داره که از حروف بزرگ استفاده میشه و معمولا در زبان های برنامه نویسی مواقعی استفاده میشه که نشان دهنده داده ای است که در طول برنامه تغییر نخواهد کرد.
—————————————————————-
2- kebab-case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از – به هم وصل میشود.
● کاربرد ها :
- در یو ار ال ها (URLs) مشاهده میشود.
—————————————————————-
3- camelCase
- حرف اول کلمه اول کوچک و حرف اول بقیه کلمات بزرگ است.
● کاربرد ها :
- در زبان های جاوا، جاوااسکریپت واسه ساخت متغیر ها و توابع و اسامی متد ها استفاده میشود
—————————————————————-
4- PascalCase
- حرف اول تمام کلمات بزرگ نوشته میشود.
● کاربرد ها :
- در نامگذاری کلاس ها در اکثر زبان ها کاربرد دارد.
—————————————————————-
منبع
حالا بنظر شما ایدی چنل ما از کدوم تایپ کیس استفاده کرده؟
#monitoring
#mahyar
اکثر ( اگر نگیم همه ) زبان های برنامه نویسی هر کلمه رو یک چیز کاملا جدا و منحصر فرد در نظر میگیرند. مثال زیر رو برای نامگذاری یک متغیر در نظر بگیرید
Number of donuts = 34
سه کلمه ی (number, of, donuts) در یک زبان برنامه نویسی به صورت مستقل باهاشون رفتار میشه به علت اینکه کارکتر اسپیس بین انها قرار گرفته است. برای اینکه برنامتون به درستی کار بکنه باید کارکتر های اسپیس رو حذف بکنید و اونرو به یک استرینگ واحد به شیوه خاصی تبدیل کنید.
4 نوع تایپ کیس داریم که جلوتر بهتون توضیح میدم ولی در همین ابتدا بگم هیچ جواب قاطعی برای اینکه کدوم بهتره وجود نداره.
شما باید با توجه به بست پرکتیس های زبان پروژتون انتخاب کنید که قراره از کدوم تایپ کیس استفاده کنید.
—————————————————————-
1- snake_case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از _ به هم وصل میشود.
بیشتر در زبان پایتون این قابل مشاهده هست و در زبان هایی مثل جاوا، جاوااسکریپت کمتر دیده میشه.
● کاربرد ها :
- ساختن متغیر ها، نام متد ها
- اسامی جدول و ستون های یک دیتابیس
همچنین یک ورژن دیگه از snake case وجود داره که از حروف بزرگ استفاده میشه و معمولا در زبان های برنامه نویسی مواقعی استفاده میشه که نشان دهنده داده ای است که در طول برنامه تغییر نخواهد کرد.
—————————————————————-
2- kebab-case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از – به هم وصل میشود.
● کاربرد ها :
- در یو ار ال ها (URLs) مشاهده میشود.
—————————————————————-
3- camelCase
- حرف اول کلمه اول کوچک و حرف اول بقیه کلمات بزرگ است.
● کاربرد ها :
- در زبان های جاوا، جاوااسکریپت واسه ساخت متغیر ها و توابع و اسامی متد ها استفاده میشود
—————————————————————-
4- PascalCase
- حرف اول تمام کلمات بزرگ نوشته میشود.
● کاربرد ها :
- در نامگذاری کلاس ها در اکثر زبان ها کاربرد دارد.
—————————————————————-
منبع
حالا بنظر شما ایدی چنل ما از کدوم تایپ کیس استفاده کرده؟
#monitoring
#mahyar
freeCodeCamp.org
Snake Case VS Camel Case VS Pascal Case VS Kebab Case – What's the Difference Between Casings?
As a software engineer, you may be familiar with the following quote by Leon Bambrick: “There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.” Indeed, naming things when programming can be challengin...
👍6
بنچمارکینگ ( benchmark test) چیست؟؟؟
همیشه بحث بر سر کدهامون هست
مدام و مدام کد میزنیم چه در قالب فردی، چه در قالب گروهی و موضوع اصلی همیشه پابرجاست کد ما چقدر خوب و سریع هستش
یک کد رو از دیدگاههای مختلفی میشه بررسی کرد سرعت اجرایی اون در حالتهای مختلف، محک گذاری برای یافتن تنگناها، ناکارآمدی ها و رگرسیونها
تست عملکرد (benchmark) شامل قراردادن کد در معرض عوامل استرس زا و سناریوهای مختلف جهت سنجش پاسخگویی، ثبات و مقیاس پذیری است
از طرفی هم معیارسنجی فرآیند اندازهگیری زمان اجرای کد یا استفاده از منابع برای ایجاد یک خط پایه عملکرد و پیگیری تغییرات در طول زمان است
در خصوص موضوع این پست pytest متحد ما خواهد بود و در کنار آن pytest benchmark همراه ما خواهد بود
چرا باید کدهای خود را محک بزنیم؟؟؟
پیش نیازها
این کتابخونه به ما امکان این رو میده که کدهامون رو تو حالتهای مختلف و تعداد بالا محک بزنیم با استفاده از pytest گروه بندی کنیم خروجی هارو نگه داریم و هنگام توسعه خروجیها رو با هم مقایسه کنه و اینکه هیستوگرام بنچمارک رو هم برامون رسم کنه
به طور پیش فرض، pytest-benchmark محک گذاری مبتنی بر زمان را انجام می دهد. زمان اجرای کد مورد آزمایش را اندازه گیری می کند و آماری در مورد زمان بندی هر اجرا ارائه می دهد.
که موارد زیر رو شامل میشه
توضیحات رو در کامنتها براتون میزارم
در پست بعدی یک نمونه عملی رو باهم انجام میدیم
#monitoring
#mahyar
همیشه بحث بر سر کدهامون هست
مدام و مدام کد میزنیم چه در قالب فردی، چه در قالب گروهی و موضوع اصلی همیشه پابرجاست کد ما چقدر خوب و سریع هستش
یک کد رو از دیدگاههای مختلفی میشه بررسی کرد سرعت اجرایی اون در حالتهای مختلف، محک گذاری برای یافتن تنگناها، ناکارآمدی ها و رگرسیونها
تست عملکرد (benchmark) شامل قراردادن کد در معرض عوامل استرس زا و سناریوهای مختلف جهت سنجش پاسخگویی، ثبات و مقیاس پذیری است
از طرفی هم معیارسنجی فرآیند اندازهگیری زمان اجرای کد یا استفاده از منابع برای ایجاد یک خط پایه عملکرد و پیگیری تغییرات در طول زمان است
در خصوص موضوع این پست pytest متحد ما خواهد بود و در کنار آن pytest benchmark همراه ما خواهد بود
چرا باید کدهای خود را محک بزنیم؟؟؟
۱-برای بهینه سازی الگوریتمها و تکههای کد، شناسایی تنگناهای عملکرد و اعتبارسنجی پیشرفتها
۲-در مقایسه نسخههای متفاوت کمک میکند و اطمینان حاصل میکند که نسخههای جدید عملکرد را حفظ یا بهبود داده
۳-به تست سازگاری سخت افزار و پلتفرم کمک میکند و اختلافات را در محیطهای مختلف برجسته میکند
۴-در خطوط لوله یکپارچه سازی پیوسته، محک زدن بعنوان یک سیستم هشدار اولیه عمل میکند و از رگرسیون عملکرد جلوگیری میکند(به این معنی که کد جدید بر عملکرد قبلی تاثیر منفی نمیگذارد)
۵-در نهایت کمک میکند تا با مقایسه عملکرد کتابخانهها مختلف، انتخابهای فناوری آگاهانه داشته باشیمپیش نیازها
دانش پایهای از پایتون و ساختارهای داده(list, tuple, string)
دانش پایهای از pytest
اندکی دانش از الگوریتمها
pip install pytest
pip install pytest-benchmarkاین کتابخونه به ما امکان این رو میده که کدهامون رو تو حالتهای مختلف و تعداد بالا محک بزنیم با استفاده از pytest گروه بندی کنیم خروجی هارو نگه داریم و هنگام توسعه خروجیها رو با هم مقایسه کنه و اینکه هیستوگرام بنچمارک رو هم برامون رسم کنه
به طور پیش فرض، pytest-benchmark محک گذاری مبتنی بر زمان را انجام می دهد. زمان اجرای کد مورد آزمایش را اندازه گیری می کند و آماری در مورد زمان بندی هر اجرا ارائه می دهد.
که موارد زیر رو شامل میشه
Min
Max
Mean
StdDev
Median
IQR
Outliers
OPS (Mops/s)
Rounds
Iterationsتوضیحات رو در کامنتها براتون میزارم
در پست بعدی یک نمونه عملی رو باهم انجام میدیم
#monitoring
#mahyar
👌5
خب بیاید با یک پروژه ساده پیش بریم دایرکتوری کاری ما به شکل زیر خواهد بود
توضیحات
با دستور زیر گروه sort_small رو اجرا میکنیم
با دستور زیر میتونیم هیستوگرام اون رو هم ببینیم
و اما یک سوال
ایا اگر در تابع تستی نیاز به خوندن داده از کسیر خاصی یا دیتابیس خاصی باشد آیا این تایم صرف شده رو در بررسی سطح عملکر و محک تاثیر میده؟؟؟ طبق اسناد این کتابخونه خیر
#monitoring
#mahyar
Plbenchmark-test
├── src
│ └── sorting_examples.py
└── test
├── conftest.py
└── test_benchmark.pتوضیحات
در داخل فایل sorting_example.py سه الگوریتم مرتب سازی قرار دادیم
در فایل conftest.py دو نوع داده ورودی کوچک و بزرگ برای تستهامون ساختیم
در فایل test_benchmark.py تستهامون رو نوشتیمبا دستور زیر گروه sort_small رو اجرا میکنیم
pytest -m sort_small -v -sو خروجی سه تستی که برای اون نوشتیم رو میبینیم که شامل موارد ذکر شده در پست قبلی میباشد
با دستور زیر میتونیم هیستوگرام اون رو هم ببینیم
pip install pygalدر پست قبلی گفته بودیم که این کتابخونه پیش فرض بر روی زمان اجرا تمرکز دارد با دستور زیر و احرا کردن یک قسمت خاص از کدهای تست میتونید این مورد رو مشاهده کنید
pytest --benchmark-histogram -m sort-larg
هیستوگرام رو در یک تصویر در مسیر جاریتون خواهد ساخت هر تابع تست شده رو به شکل یک کندل نشون میده
pytest --benchmark-histogram -m benchmarkو با دستور زیر در هربار اجرا میتوانید بنچمارک رو ذخیره کنید
خروجی تست عملکرد در خط فرمان و هیستوگرام در یک فایل تصویری بصورت کندل
pytest -m sort_large --benchmark-autosaveو اخرین دستور جهت مقایسه دو مقدار بنچمارک ذخیره شده
در مسیر جاری و در دایرکتوری benchmarks. این فایلهارو مطابق با ورژن پایتون ذخیره میکند در ابتدای هر فایل یک مقدار چهر عددی قرار میده که بعدا از این برای مقابسه دو بنچمارک باهم استفاده میکنیم
جالبه بدونید که مشخصات سخت افزار و نود ،تاریخ و ورژن ، مشخصات پردازنده بصورت و ... روکامل هم ذخیره میکنه تا در هربار بنچمارک بتونید مقایسه کاملی انجام دهید
pytest-benchmark compare 0001 0002
نتایج خروجی رو در خط فرمان میتونید مشاهده کنیدو اما یک سوال
ایا اگر در تابع تستی نیاز به خوندن داده از کسیر خاصی یا دیتابیس خاصی باشد آیا این تایم صرف شده رو در بررسی سطح عملکر و محک تاثیر میده؟؟؟ طبق اسناد این کتابخونه خیر
#monitoring
#mahyar
👍4
پایتون فارسی(PyCore)
خب بیاید با یک پروژه ساده پیش بریم دایرکتوری کاری ما به شکل زیر خواهد بود Plbenchmark-test ├── src │ └── sorting_examples.py └── test ├── conftest.py └── test_benchmark.p توضیحات در داخل فایل sorting_example.py سه الگوریتم مرتب سازی قرار دادیم…
این ریپوزیتوری میتونید دریافت کنید ، و فایل ها و کد رو روی سیستم خودتون ببنید و اجرا کنید
GitHub
GitHub - mahyardelbari/benchmark-test-master
Contribute to mahyardelbari/benchmark-test-master development by creating an account on GitHub.
👍4
کتابخانه pydantic یکهمه کاره در validate!?
اگر قراره یک داده رو بصورت صفر تا صد validate کنید چه از لحاظ نوع داده که عدد باشه یا رشته یا حتی لیست یا دیکشنری باشه که داخلش مجموعه ای از استرینگ ها باشه
فیلد های داخل کلاس رو چک کنید مثلا پسورد و تکرار پسورد که هر کدوم ساختار خاصی داشته باشند مثل regix ها و ....
حتی پارامتری که به تابع پاس داده میشه رو میتونید با دکوریتوری که در اختیار میذاره قبل از پاسخ دادن چک کنه و اگه valid بود تازه پاس بده به تابع یا حتی نوع خروجی که تابع return میکنه رو چک کنه و کلی امکانات دیگه
یک مثال ساده
( pip install pydantic )ابتدا با دستور
کتابخانه رو نصب میکنید
حالا میخایم یک کلاس بسازیم که نام و شماره دانشجویی فرد رو بگیره و نوعش رو چک کنه
from pydantic import BaseModel
class NameValid(BaseModel):
name : str
number : int
user1 = NameValid (name="ali" , number = 12345 )
print(user1)
اگر همه چیز درست باشه دقیقا داده ها رو بهتون برمی گردونه اما اگه تایپ ها اشتباه باشه ValidationError برمی گردونه که میتونید با try و except مدیریتش کنید
داده های پاس داده شده میتونند بصورت Json باشند که در وب خیلی زیاد ازشون استفاده میشه
#M_Sh
@persians_python
اگر قراره یک داده رو بصورت صفر تا صد validate کنید چه از لحاظ نوع داده که عدد باشه یا رشته یا حتی لیست یا دیکشنری باشه که داخلش مجموعه ای از استرینگ ها باشه
فیلد های داخل کلاس رو چک کنید مثلا پسورد و تکرار پسورد که هر کدوم ساختار خاصی داشته باشند مثل regix ها و ....
حتی پارامتری که به تابع پاس داده میشه رو میتونید با دکوریتوری که در اختیار میذاره قبل از پاسخ دادن چک کنه و اگه valid بود تازه پاس بده به تابع یا حتی نوع خروجی که تابع return میکنه رو چک کنه و کلی امکانات دیگه
یک مثال ساده
( pip install pydantic )ابتدا با دستور
کتابخانه رو نصب میکنید
حالا میخایم یک کلاس بسازیم که نام و شماره دانشجویی فرد رو بگیره و نوعش رو چک کنه
from pydantic import BaseModel
class NameValid(BaseModel):
name : str
number : int
user1 = NameValid (name="ali" , number = 12345 )
print(user1)
اگر همه چیز درست باشه دقیقا داده ها رو بهتون برمی گردونه اما اگه تایپ ها اشتباه باشه ValidationError برمی گردونه که میتونید با try و except مدیریتش کنید
داده های پاس داده شده میتونند بصورت Json باشند که در وب خیلی زیاد ازشون استفاده میشه
#M_Sh
@persians_python
👍5
پایتون فارسی(PyCore)
کتابخانه pydantic یکهمه کاره در validate!? اگر قراره یک داده رو بصورت صفر تا صد validate کنید چه از لحاظ نوع داده که عدد باشه یا رشته یا حتی لیست یا دیکشنری باشه که داخلش مجموعه ای از استرینگ ها باشه فیلد های داخل کلاس رو چک کنید مثلا پسورد و تکرار پسورد…
امروز ۶ میلیون نفر pydantic رو دانلود کردن! pydantic تبدیل به یکی از پر استفاده ترین پکیج های پایتونی شده و در حال حاضر معدود پکیج هایی فقط بالاتر از pydantic هستند مثل numpy با ۹ میلیون دانلود روزانه. این در حالیه که fastapi فقط یک میلیون دانلود داشته. این آمار و ارقام نشون میده pydantic کامل وارد اکوسیستم پایتون شده و تو انواع پروژه ها استفاده میشه.
حتی در پروژه های drf (django-rest-framework) هم بعضی ها به جای استفاده از از drf serializer از pydntic استفاده میکنن!
حالا چرا !؟ چون سرعت خیلی بالاتری نسبت به سریالایزر drf داره
مقاله های که این کار رو توضیح دادن زیادن، ولی خب اومدن یه پکیج واسطه استفاده کردن، ولی شما میتونی هم مستقیم آبجکت مدل جنگو رو با پایدانتیک سریالایز کنی.
مقاله اول
مقاله دوم
#pydantic
#Serializer
#mahyar
حتی در پروژه های drf (django-rest-framework) هم بعضی ها به جای استفاده از از drf serializer از pydntic استفاده میکنن!
حالا چرا !؟ چون سرعت خیلی بالاتری نسبت به سریالایزر drf داره
مقاله های که این کار رو توضیح دادن زیادن، ولی خب اومدن یه پکیج واسطه استفاده کردن، ولی شما میتونی هم مستقیم آبجکت مدل جنگو رو با پایدانتیک سریالایز کنی.
مقاله اول
مقاله دوم
#pydantic
#Serializer
#mahyar
Obytes
Integrate Pydantic with Django and Django REST Framework | Obytes
Pydantic is a Pythonic data validation library that makes it easy to create data models and validate data.
👍5
پایتون فارسی(PyCore)
خب بیاید با یک پروژه ساده پیش بریم دایرکتوری کاری ما به شکل زیر خواهد بود Plbenchmark-test ├── src │ └── sorting_examples.py └── test ├── conftest.py └── test_benchmark.p توضیحات در داخل فایل sorting_example.py سه الگوریتم مرتب سازی قرار دادیم…
در ادامه مبحث بنچمارکینگ روی یک پروژه جنگویی پیاده سازی میکنیم و در نهایت با تست عملکرد برای ویوهای ساخته شده با FBV ,CBV بررسی میکنیم عملکرد و محک زدن کدوم بهتره.(Class base view, function base view)
ابتدا یک پروژه جنگویی همراه یک اپ core ایجاد میکنیم
models.py
الزامات مربوط به templates در settings و فایلهای list.html , detail.html رو برای اپ core بصورت ساده انجام دهید
جهت راه اندازی بنچمارکینگ نیاز به نصب سه کتابخانه داریم
در دایرکتوری root پروژه یک فایل با نام pytest.ini ساخته کدهای زیر رو در ان قرار دهید
دلیل اینکار ازین بابت هست که بخشی از کدهای ما وابسته به اجرا شدن پروژه جنگویی میباشد و اجرا کردن پروژه جنگویی با صدا زدن فایل تنظیمات آن میباشد و به این صورت pytest اینکار رو انجام میدهد
دایرکتوری tests ساخته و داخل ان فایل test_view.py رو میسازیم و کدهای زیر رو داخل اون میزاریم
دستورات زیر رو در خط فرمان بزنید
خروجی بنچمارکینگ و تست عملکرد رو برای ویوهای FBV و CBV در جنگو رو باهم میتونید مقایسه کنید
#monitoring
#mahyar
ابتدا یک پروژه جنگویی همراه یک اپ core ایجاد میکنیم
pip install djangoدر دایرکتوری config
django-admin startproject config .
python manage.py startapp core
فایل settings.pyدر اپ core کدهای زیر رو وارد میکنیم
INSTALLED_APPS = [
...
"core",
]
فایل urls.py
path('', include('core.urls')),
models.py
class CategoryModel(models.Model):views.py
title = models.CharField(max_length=255)
from django.views.generic import DetailView, ListViewurls.py
from .models import CategoryModel
def category_list_view(request):
objs = CategoryModel.objects.all()
return render(request, 'core/list.html', {"objs":objs})
def category_detail_view(request, pk):
obj = CategoryModel.objects.get(id=pk)
return render(request, 'core/detail.html', {"obj":obj})
class CategoryListView(ListView):
model = CategoryModel
template_name = 'core/list.html'
context_object_name = 'objs'
class CategoryDetailView(DetailView):
model = CategoryModel
template_name='core/detail.html'
context_object_name = 'obj'
from .views import category_list_view, category_detail_view, CategoryDetailView, CategoryListViewدستورات makemigrations و migrate رو فراموش نکنید
app_name = 'core'
urlpatterns = [
path('fbv/', category_list_view),
path('fbv/<pk>/', category_detail_view),
path('cbv/', CategoryListView.as_view()),
path('cbv/<pk>/', CategoryDetailView.as_view()),
]
الزامات مربوط به templates در settings و فایلهای list.html , detail.html رو برای اپ core بصورت ساده انجام دهید
جهت راه اندازی بنچمارکینگ نیاز به نصب سه کتابخانه داریم
pip install pytest pytest-benchmark pytest-django
در دایرکتوری root پروژه یک فایل با نام pytest.ini ساخته کدهای زیر رو در ان قرار دهید
[pytest]
DJANGO_SETTINGS_MODULE = config.settings
دلیل اینکار ازین بابت هست که بخشی از کدهای ما وابسته به اجرا شدن پروژه جنگویی میباشد و اجرا کردن پروژه جنگویی با صدا زدن فایل تنظیمات آن میباشد و به این صورت pytest اینکار رو انجام میدهد
دایرکتوری tests ساخته و داخل ان فایل test_view.py رو میسازیم و کدهای زیر رو داخل اون میزاریم
import pytest
from core.models import CategoryModel
from django.test import RequestFactory
from core.views import category_list_view, category_detail_view, CategoryListView, CategoryDetailView
@pytest.fixture
def rf():
return RequestFactory()
@pytest.mark.fbv
def test_fbv_list(benchmark, rf):
request = rf.get('/fbv/')
result = benchmark(category_list_view, request)
assert result.status_code == 200
@pytest.mark.fbv
@pytest.mark.django_db
def test_fbv_detail(benchmark, rf):
blog_comment = CategoryModel.objects.create(title='Test')
request = rf.get(f'/fbv/{blog_comment.pk}/')
result = benchmark(category_detail_view, request, pk=blog_comment.pk)
assert result.status_code == 200
@pytest.mark.cbv
def test_cbv_list(benchmark, rf):
request = rf.get('/cbv/')
view = CategoryListView.as_view()
result = benchmark(view, request)
assert result.status_code == 200
@pytest.mark.cbv
@pytest.mark.django_db
def test_cbv_detail(benchmark, rf):
blog_comment = CategoryModel.objects.create(title='Test')
request = rf.get(f'/cbv/{blog_comment.pk}/')
view = CategoryDetailView.as_view()
result = benchmark(view, request, pk=blog_comment.pk)
assert result.status_code == 200
دستورات زیر رو در خط فرمان بزنید
pytest -m cbv --benchmark-autosave
pytest -m fbv --benchmark-autosave
pytest-benchmark compare 0001 0002
خروجی بنچمارکینگ و تست عملکرد رو برای ویوهای FBV و CBV در جنگو رو باهم میتونید مقایسه کنید
#monitoring
#mahyar
👍5👎1
سلام به همگی
از فردا کلاس ها طبق ساعت های که بوده برگزار میشه لطفاً کسی غیبت نداشته باشه که از مباحث جا بمونه
از فردا کلاس ها طبق ساعت های که بوده برگزار میشه لطفاً کسی غیبت نداشته باشه که از مباحث جا بمونه
👍3
Django rich-text editors.pdf
502.3 KB
معرفی انواع ویرایشگر های متن (rich-text editor) در جنگو
خیلی پیش میاد در پروژه هایی که مبتنی بر render یا django templateهستش بخواید از یک ویرایشگر متن خیلی خوب برای تولید محتوا استفاده کنین.
تمام ویرایشگر های متنی خصوصیت های مشترکی دارن منتهی بعضی هاشون توی ساز و کار جنگو بهتون قابلیت آپلود عکس و در کل کار با media ها رو هم فراهم می کنن و جایگاهشون خاص تر میشه.
البته شما می تونین بدون استفاده از این ماژول ها هم بر حسب نیازتون به صورت مستقیم از این ها ساتفاده کنین ولی خوب باید تنظیمات متفاوتی رو درش اعمال کنین که معمولا زمان بر هستش. از جمله ویرایشگر های جنگو میشه به این ها اشاره کرد، البته فقط محدود به این ها نیستن:
django-ckeditor - django-froala-editor - django-summernote - django-quill - django-tinymce
البته که جنگو محدود به این ها نیستش و می تونین ماژول های متفاوتی هم توسعه بدید و یا پیدا کنین ولی این ماژول ها جزو پر مصرف ترین ها به شمار میان.
انتخاب خودم:
من به شخصه بیشتر از ckeditor استفاده می کنم به خصوص اینکه پشتیبانی از آپلود فایل رو هم داره
مبنع
#djnago
#mahyar
خیلی پیش میاد در پروژه هایی که مبتنی بر render یا django templateهستش بخواید از یک ویرایشگر متن خیلی خوب برای تولید محتوا استفاده کنین.
تمام ویرایشگر های متنی خصوصیت های مشترکی دارن منتهی بعضی هاشون توی ساز و کار جنگو بهتون قابلیت آپلود عکس و در کل کار با media ها رو هم فراهم می کنن و جایگاهشون خاص تر میشه.
البته شما می تونین بدون استفاده از این ماژول ها هم بر حسب نیازتون به صورت مستقیم از این ها ساتفاده کنین ولی خوب باید تنظیمات متفاوتی رو درش اعمال کنین که معمولا زمان بر هستش. از جمله ویرایشگر های جنگو میشه به این ها اشاره کرد، البته فقط محدود به این ها نیستن:
django-ckeditor - django-froala-editor - django-summernote - django-quill - django-tinymce
البته که جنگو محدود به این ها نیستش و می تونین ماژول های متفاوتی هم توسعه بدید و یا پیدا کنین ولی این ماژول ها جزو پر مصرف ترین ها به شمار میان.
انتخاب خودم:
من به شخصه بیشتر از ckeditor استفاده می کنم به خصوص اینکه پشتیبانی از آپلود فایل رو هم داره
مبنع
#djnago
#mahyar
👍4
انشالله در آینده یکم دوباره میریم سمت پایتون، تا بچه های دوره پایتون هم بتونن از مطالب استفاده کنن و کانال براشون مفید باشه.
همچنین اگر دوست دارید راجب موضوع خاصی از پایتون پست بزاریم و درموردش بیشتر حرف بزنیم توی کامنت بگید.
#mahyar
همچنین اگر دوست دارید راجب موضوع خاصی از پایتون پست بزاریم و درموردش بیشتر حرف بزنیم توی کامنت بگید.
#mahyar
👍4
موردی که ممکنه در آینده بدرد خودتون یا اطرافیان تون بخوره
قطعا اگر این مسیر رو ادامه بدید بدردتون میخوره
https://virgool.io/applymag/%DA%86%D8%B7%D9%88%D8%B1-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%DB%8C%D9%87-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-%D8%A8%D8%A7-%DB%B3%DB%B0%DB%B0-%DB%8C%D9%88%D8%B1%D9%88-%D8%AA%D9%88-%D8%A7%D8%B1%D9%88%D9%BE%D8%A7-%D8%B4%D8%B1%DA%A9%D8%AA-%D8%AB%D8%A8%D8%AA-%DA%A9%D9%86%DB%8C%D9%85-ubgyakdugueb
#M_Sh
@persians_python
قطعا اگر این مسیر رو ادامه بدید بدردتون میخوره
https://virgool.io/applymag/%DA%86%D8%B7%D9%88%D8%B1-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%DB%8C%D9%87-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-%D8%A8%D8%A7-%DB%B3%DB%B0%DB%B0-%DB%8C%D9%88%D8%B1%D9%88-%D8%AA%D9%88-%D8%A7%D8%B1%D9%88%D9%BE%D8%A7-%D8%B4%D8%B1%DA%A9%D8%AA-%D8%AB%D8%A8%D8%AA-%DA%A9%D9%86%DB%8C%D9%85-ubgyakdugueb
#M_Sh
@persians_python
ویرگول
چطور به عنوان یه ایرانی با ۳۰۰ یورو تو اروپا شرکت ثبت کنیم؟
اگر شما برنامه نویس هستید و تو ایران (یا هرجای دیگه دنیا) زندگی میکنید ممکنه دنبال شغل ریموت از بقیه دنیا یا حتی ایدهای جهانی دارید ولی از…
👍2👎1