سلام چطورید، امروز با یه نکته مفید دیگه اومدم که ممکنه به کارتون بیاد
تا حالا به داک استرینگها توی پایتون توجه کردید؟ 🤔 داک استرینگها همون توضیحات کوتاه و مفیدی هستن که داخل تریپل کوتیشنها مینویسید و هدفشون اینه که عملکرد فانکشنها، کلاسها یا متغیرها رو توضیح بدن
مثال میزنم تا بهتر متوجه بشید:
وقتی از داک استرینگ استفاده میکنید، میتونید با فانکشن
اینطوری:
خروجیش اینه:
اینطوری میتونید کدتون رو برای دیگران قابل فهمتر کنید، و وقتی کسی از کدتون استفاده کرد، سریعاً بفهمه هر قسمت چیکار میکنه! 😎
مخلص 💜
تا حالا به داک استرینگها توی پایتون توجه کردید؟ 🤔 داک استرینگها همون توضیحات کوتاه و مفیدی هستن که داخل تریپل کوتیشنها مینویسید و هدفشون اینه که عملکرد فانکشنها، کلاسها یا متغیرها رو توضیح بدن
مثال میزنم تا بهتر متوجه بشید:
def add(a, b):
"""
این تابع دو عدد رو به هم اضافه میکنه.
:param a: عدد اول (int یا float)
:param b: عدد دوم (int یا float)
:return: حاصل جمع دو عدد
"""
return a + b
وقتی از داک استرینگ استفاده میکنید، میتونید با فانکشن
help() یا حتی __doc__ به راحتی مستندات کدتون رو ببینید.اینطوری:
print(help(add)) # نمایش مستندات
print(add.__doc__) # مستندات به صورت ساده
خروجیش اینه:
Help on function add in module __main__:
add(a, b)
این تابع دو عدد رو به هم اضافه میکنه.
:param a: عدد اول (int یا float)
:param b: عدد دوم (int یا float)
:return: حاصل جمع دو عدد
اینطوری میتونید کدتون رو برای دیگران قابل فهمتر کنید، و وقتی کسی از کدتون استفاده کرد، سریعاً بفهمه هر قسمت چیکار میکنه! 😎
مخلص 💜
❤9👍4🔥2
رفتم اخبار رو یه نگاه بندازم، خبری چیزی پیدا کنم پست بزارم
دیدم ویندوز چقدر خرابکاری کرده
از ۲۶ سپتامبر، تا امروز، حداقل ۹ تا خبر درباره این بود که «ویندوز فلان مشکل امنیتی را رفع کرد، «امنیت بیشتر را تجربه کنید.»»
دیدم ویندوز چقدر خرابکاری کرده
از ۲۶ سپتامبر، تا امروز، حداقل ۹ تا خبر درباره این بود که «ویندوز فلان مشکل امنیتی را رفع کرد، «امنیت بیشتر را تجربه کنید.»»
🤣15👍1😁1
فیچر های جدید تلگرام
⭐ با آپدیت جدید تلگرام اپلیکیشنها و وبسایتها میتوانند با پرداخت هزینه در fragment، کد تأیید را از طریق تلگرام ارسال کنند.
🎁 در بهروزرسانی جدید تلگرام هدیه بدهید. میتوانید با استفاده از استار، برای دیگران هدیه بفرستید. این هدیه میتواند پیام اختصاصی یا پیامهای متحرک باشد. دریافتکننده میتواند آن را در پروفایلش نمایش دهد یا آنها را به استار تبدیل کند.
⭐ با آپدیت جدید تلگرام اپلیکیشنها و وبسایتها میتوانند با پرداخت هزینه در fragment، کد تأیید را از طریق تلگرام ارسال کنند.
🎁 در بهروزرسانی جدید تلگرام هدیه بدهید. میتوانید با استفاده از استار، برای دیگران هدیه بفرستید. این هدیه میتواند پیام اختصاصی یا پیامهای متحرک باشد. دریافتکننده میتواند آن را در پروفایلش نمایش دهد یا آنها را به استار تبدیل کند.
4🔥6👍1
🔥 ببینم کی میتونه جواب بده ( این چالش شامل همه جز فرشاد میشه😂 )
دوتا کُد داریم. بگید کدوم از نظر تئوری رم کمتری مصرف میکنه.
پ.ن: اختلاف مصرف رمشون در حد چند بایته در اینجا، پس اصلا مهم نیست که کدومو استفاده کنید.
دوتا کُد داریم. بگید کدوم از نظر تئوری رم کمتری مصرف میکنه.
پ.ن: اختلاف مصرف رمشون در حد چند بایته در اینجا، پس اصلا مهم نیست که کدومو استفاده کنید.
import random
is_equal = random.randint(0, 10) == 10
# Code 1
print(
("Not Equal", "Equal")[is_equal]
)
# Code 2
print(
"Equal" if is_equal else "Not Equal"
)
🔥6👍1
❤6🤣3
🚀 بنظرتون کدوم سریع تره؟
# فرض کنین یه متن بزرگه این:
text = "Suppose this is a large text"
# Code 1
print( text.find("Hello") != -1 )
# Code 2
print( "Hello" in text )
❤1
🔥 آموزش کاربردی Enums در پایتون 🔥
آیا میدونستید که Enums میتونن کدهای شما رو مرتبتر و حرفهایتر کنن؟ 🤔
توی این ویدیو از یوتیوب، روش استفاده از Enums و مزایای اونها رو کامل توضیح دادم! از مدیریت مقادیر ثابت تا افزایش خوانایی کد... همه اینها رو یاد بگیرید و سطح برنامهنویسیتون رو ارتقا بدید! 🚀
🎥 ویدیو رو اینجا ببینید: [لینک ویدیو]
👨💻 این ویدیو برای همه کسانی که میخوان کدهای تمیزتر و سازماندهیشدهتری داشته باشن عالیه!
آیا میدونستید که Enums میتونن کدهای شما رو مرتبتر و حرفهایتر کنن؟ 🤔
توی این ویدیو از یوتیوب، روش استفاده از Enums و مزایای اونها رو کامل توضیح دادم! از مدیریت مقادیر ثابت تا افزایش خوانایی کد... همه اینها رو یاد بگیرید و سطح برنامهنویسیتون رو ارتقا بدید! 🚀
🎥 ویدیو رو اینجا ببینید: [لینک ویدیو]
👨💻 این ویدیو برای همه کسانی که میخوان کدهای تمیزتر و سازماندهیشدهتری داشته باشن عالیه!
❤8🔥2👍1
Coding Lovers
🔥 آموزش کاربردی Enums در پایتون 🔥 آیا میدونستید که Enums میتونن کدهای شما رو مرتبتر و حرفهایتر کنن؟ 🤔 توی این ویدیو از یوتیوب، روش استفاده از Enums و مزایای اونها رو کامل توضیح دادم! از مدیریت مقادیر ثابت تا افزایش خوانایی کد... همه اینها رو یاد بگیرید…
یک ماهی هست ویدیو نزاشتم ببخشید 💜
اگه دوست داشتید برید لایک و کامنت بزارید که الگوریتم یوتوب کمتر اذیتمون کنه
الانم بیرون بودم وقت نکردم خودم متن بنویسم دادم GPT، عجب توضیحاتی هم نوشت خدایی 😂❤️
عشقید
اگه دوست داشتید برید لایک و کامنت بزارید که الگوریتم یوتوب کمتر اذیتمون کنه
الانم بیرون بودم وقت نکردم خودم متن بنویسم دادم GPT، عجب توضیحاتی هم نوشت خدایی 😂❤️
عشقید
❤11
یا خدا انقلابی در تلگرام قراره باشه
اپدیت بشدت کوچیک و جزئی هستش
و قول میدم تاثیر خیلی بزرگی میزاره
قراره این قابلیت اضافه بشه که بعد از ارسال مسیج، به مسیجی که حتی مدیا هم نداره، مدیا اضافه کنی
اپدیت بشدت کوچیک و جزئی هستش
و قول میدم تاثیر خیلی بزرگی میزاره
قراره این قابلیت اضافه بشه که بعد از ارسال مسیج، به مسیجی که حتی مدیا هم نداره، مدیا اضافه کنی
👍14🔥6❤1
💥 درباره 3 تا از پراستفاده ترین دیتابیس ها به صورت خلاصه بدونیم:
▎MySQL
ایدهآل برای برنامههایی که به پرسوجوهای پیچیده، تراکنشها و یکپارچگی داده نیاز دارند. معمولاً در برنامههای وب، پلتفرمهای تجارت الکترونیک و سیستمهای مدیریت محتوا استفاده میشود.
به طور کلی برای عملیات خواندن سنگین خوب است. برای تراکنشها و پیوندها بهینهسازی شده است.
مقیاسپذیری عمودی رایج است (اضافه کردن منابع بیشتر به یک سرور واحد)، اما مقیاسپذیری افقی (شاردینگ) با برخی پیچیدگیها ممکن است.
دیتابیس MySQL معمولاً از حافظه برای کش کردن، بافر کردن و مدیریت اتصالات استفاده میکند. موتور ذخیرهسازی InnoDB (پیشفرض) از یک استخر بافر برای کش کردن دادهها و ایندکسها استفاده میکند که میتوان آن را بر اساس حافظه موجود سیستم پیکربندی کرد. MySQL به طور کلی در استفاده از حافظه کارآمد است، اما پیکربندی نادرست (مانند تعداد زیاد اتصالات یا اندازههای بافر ناکافی) میتواند منجر به مصرف بیش از حد حافظه شود.
▎MongoDB
بهترین گزینه برای برنامههایی با ساختارهای داده متغیر، تجزیه و تحلیل در زمان واقعی و دادههای کلان. معمولاً در مدیریت محتوا، برنامههای IoT و برنامههای موبایل کاربرد دارد.
عالی برای عملیات خواندن/نوشتن با حجم بالا و میتواند مجموعههای داده بزرگ را به طور مؤثر مدیریت کند. عملکرد ممکن است بر اساس استراتژیهای ایندکسگذاری متفاوت باشد.
از ابتدا برای مقیاسپذیری افقی (شاردینگ) طراحی شده است که توزیع دادهها در چندین سرور را آسانتر میکند.
دیتابیس MongoDB از حافظه برای کش کردن دادهها و ایندکسها در RAM استفاده میکند. این سیستم از رویکرد فایل نقشهبرداری شده در حافظه استفاده میکند، به این معنی که از ویژگیهای حافظه مجازی سیستم عامل برای مدیریت دادهها بهره میبرد.
موتور ذخیرهسازی WiredTiger (پیشفرض) از یک کش داخلی استفاده میکند که میتواند با پارامتر storage.wiredTiger.engineConfig.cacheSizeGB پیکربندی شود.
مصرف حافظه MongoDB ممکن است به دلیل ساختار مستند محور و نیاز به بارگذاری کل مستندات در حافظه برای عملیات بالاتر باشد. با این حال، این سیستم به طور مؤثر حافظه را برای برنامههای با توان خروجی بالا مدیریت میکند.
▎PostgreSQL
مناسب برای برنامههایی که به پرسوجوهای پیچیده و یکپارچگی داده نیاز دارند. معمولاً در سیستمهای مالی، برنامههای جغرافیایی و هر سناریویی که به روابط پیچیده داده نیاز دارد، استفاده میشود.
عملکرد عالی برای هر دو عملیات خواندن و نوشتن. از تکنیکهای پیشرفته ایندکسگذاری و بهینهسازی پرسوجو پشتیبانی میکند.
از هر دو مقیاسپذیری عمودی و افقی پشتیبانی میکند (با ابزارهایی مانند Citus برای شاردینگ).
دیتابیس PostgreSQL از چندین ناحیه حافظه استفاده میکند، از جمله بافرهای مشترک (برای کش کردن دادهها)، work_mem (برای مرتبسازی و جدولهای هش) و maintenance_work_mem (برای عملیات نگهداری مانند پاکسازی). PostgreSQL به خاطر استفاده کارآمد از حافظه شناخته شده است، به ویژه در پردازش پرسوجوهای پیچیده. با این حال، مانند MySQL، پیکربندی نادرست میتواند منجر به مصرف بیش از حد حافظه شود.
❓ شما کدوم دیتابیس رو توی پروژه هاتون انتخاب میکنید ( غیر از Sqlite ) ؟
پ.ن: از chatgpt پرسیدم، گفتم با شماهم به اشتراک بزارم.
▎MySQL
ایدهآل برای برنامههایی که به پرسوجوهای پیچیده، تراکنشها و یکپارچگی داده نیاز دارند. معمولاً در برنامههای وب، پلتفرمهای تجارت الکترونیک و سیستمهای مدیریت محتوا استفاده میشود.
به طور کلی برای عملیات خواندن سنگین خوب است. برای تراکنشها و پیوندها بهینهسازی شده است.
مقیاسپذیری عمودی رایج است (اضافه کردن منابع بیشتر به یک سرور واحد)، اما مقیاسپذیری افقی (شاردینگ) با برخی پیچیدگیها ممکن است.
دیتابیس MySQL معمولاً از حافظه برای کش کردن، بافر کردن و مدیریت اتصالات استفاده میکند. موتور ذخیرهسازی InnoDB (پیشفرض) از یک استخر بافر برای کش کردن دادهها و ایندکسها استفاده میکند که میتوان آن را بر اساس حافظه موجود سیستم پیکربندی کرد. MySQL به طور کلی در استفاده از حافظه کارآمد است، اما پیکربندی نادرست (مانند تعداد زیاد اتصالات یا اندازههای بافر ناکافی) میتواند منجر به مصرف بیش از حد حافظه شود.
▎MongoDB
بهترین گزینه برای برنامههایی با ساختارهای داده متغیر، تجزیه و تحلیل در زمان واقعی و دادههای کلان. معمولاً در مدیریت محتوا، برنامههای IoT و برنامههای موبایل کاربرد دارد.
عالی برای عملیات خواندن/نوشتن با حجم بالا و میتواند مجموعههای داده بزرگ را به طور مؤثر مدیریت کند. عملکرد ممکن است بر اساس استراتژیهای ایندکسگذاری متفاوت باشد.
از ابتدا برای مقیاسپذیری افقی (شاردینگ) طراحی شده است که توزیع دادهها در چندین سرور را آسانتر میکند.
دیتابیس MongoDB از حافظه برای کش کردن دادهها و ایندکسها در RAM استفاده میکند. این سیستم از رویکرد فایل نقشهبرداری شده در حافظه استفاده میکند، به این معنی که از ویژگیهای حافظه مجازی سیستم عامل برای مدیریت دادهها بهره میبرد.
موتور ذخیرهسازی WiredTiger (پیشفرض) از یک کش داخلی استفاده میکند که میتواند با پارامتر storage.wiredTiger.engineConfig.cacheSizeGB پیکربندی شود.
مصرف حافظه MongoDB ممکن است به دلیل ساختار مستند محور و نیاز به بارگذاری کل مستندات در حافظه برای عملیات بالاتر باشد. با این حال، این سیستم به طور مؤثر حافظه را برای برنامههای با توان خروجی بالا مدیریت میکند.
▎PostgreSQL
مناسب برای برنامههایی که به پرسوجوهای پیچیده و یکپارچگی داده نیاز دارند. معمولاً در سیستمهای مالی، برنامههای جغرافیایی و هر سناریویی که به روابط پیچیده داده نیاز دارد، استفاده میشود.
عملکرد عالی برای هر دو عملیات خواندن و نوشتن. از تکنیکهای پیشرفته ایندکسگذاری و بهینهسازی پرسوجو پشتیبانی میکند.
از هر دو مقیاسپذیری عمودی و افقی پشتیبانی میکند (با ابزارهایی مانند Citus برای شاردینگ).
دیتابیس PostgreSQL از چندین ناحیه حافظه استفاده میکند، از جمله بافرهای مشترک (برای کش کردن دادهها)، work_mem (برای مرتبسازی و جدولهای هش) و maintenance_work_mem (برای عملیات نگهداری مانند پاکسازی). PostgreSQL به خاطر استفاده کارآمد از حافظه شناخته شده است، به ویژه در پردازش پرسوجوهای پیچیده. با این حال، مانند MySQL، پیکربندی نادرست میتواند منجر به مصرف بیش از حد حافظه شود.
❓ شما کدوم دیتابیس رو توی پروژه هاتون انتخاب میکنید ( غیر از Sqlite ) ؟
پ.ن: از chatgpt پرسیدم، گفتم با شماهم به اشتراک بزارم.
❤8🔥2
دوستان این چند وقت که کم پیدام منو عفو کنین، درگیر دانشگاهم، اوکی بشه پرقدرت میام
👍9❤4🔥4
مصرف مموری MySQL رو کاهش بده
امروز یچیزی کشف کردم.
مای اسکوال یه بخشی داره به اسم performance schema، که حالت دیفالت فعاله.
از این بخش برای ثبت و مانیتورینگ اطلاعات و پرفورمنس دیتابیس استفاده میکنه، تا شما بتونین با استفاده از این اطلاعات، دیتابیستون رو سرعت ببخشین.
شما میتونین این بخش رو غیر فعال کنین؛ خب چرا؟ وقتی ازش استفاده نمیکنین، بهتره غیرفعالش کنین، چون نزدیک ۱۶۰ مگابایت مصرف مموری داره و باعث کاهش سرعت ( به چشم نمیاد ) میشه...
حالا چجوری؟
داخل فایل کانفینگ مای اسکوال
معمولا با ادرس:
/etc/mysql/my.cnf
این خط رو اضافه کنین:
و یه بار خاموش روشنش کنین:
و لذت ببرید ...
امروز یچیزی کشف کردم.
مای اسکوال یه بخشی داره به اسم performance schema، که حالت دیفالت فعاله.
از این بخش برای ثبت و مانیتورینگ اطلاعات و پرفورمنس دیتابیس استفاده میکنه، تا شما بتونین با استفاده از این اطلاعات، دیتابیستون رو سرعت ببخشین.
شما میتونین این بخش رو غیر فعال کنین؛ خب چرا؟ وقتی ازش استفاده نمیکنین، بهتره غیرفعالش کنین، چون نزدیک ۱۶۰ مگابایت مصرف مموری داره و باعث کاهش سرعت ( به چشم نمیاد ) میشه...
حالا چجوری؟
داخل فایل کانفینگ مای اسکوال
معمولا با ادرس:
/etc/mysql/my.cnf
این خط رو اضافه کنین:
performance_schema = OFF
و یه بار خاموش روشنش کنین:
systemctl restart mysql
و لذت ببرید ...
👍15❤2
قیمت گذاری در مارکتینگ یا Pricing models
این پست مربوط به قیمت گذاری پروژه هاتون نیست.
همونطور که میدونید ( یا خواهید فهمید ) برنامه نویسی، فقط به خود برنامه نویسی ختم نمیشه؛ چون رسما نمیشه از برنامه نویسی درآمد خوبی داشت، بلکه از محصول برنامه نویسی هستش که درآمد بدست میاد ( برای درک بهتر، بخوانید ).
💥 پس بحث مارکتینگ میاد وسط برای ارائه محصولات و درآمد بیشتر؛
❔ خب حالا تاحالا فکر کردید هزینه های داخل محصولات خودمون ( همون «خرید درون-برنامهای» ) رو چجوری قیمت گذاری یا طراحی کنیم که مارکتینگ بهتری داشته باشیم؟
▎Cost-plus pricing
این همون روش معمولی هستش که مغازه دارا استفاده میکنن. اگه برای ارائه چیزی 20 دلار هزینه کردید، 25 دلار بفروشید تا 5 دلار سود کنید.
▎Penetration pricing
این روش وقتی هستش که شما کمترین قیمت ممکن رو ارائه میدید، حتی وقتی به ضرر کسب و کارتون باشه.
این روش وقتی استفاده میشه که میخواین بازار رو مختل کنید و جذب مشتری داشته باشید؛ البته این روش پایدار نیست و وقتی به هدفتون رسیدید باید تغییرش بدید؛ این روش برای استارتآپ ها پیشنهاد میشه
▎Premium pricing
گاهی وقت ها بازار هدف، قیمت براشون مهم نیست و کسایی هستن که برای کیفیت بالا، بهای زیادی میدن. این روش با تکیه بر این قانون که «بهترین کیفیت، ارزون نیست» بوجود اومده. دقیقا روشی هستش که تلگرام استفاده میکنه برای پرمیوم. امکاناتی خاص برای کسایی که پول پرمیوم میدن.
▎Freemium pricing
دیدین بعضی جاها Free trial میدن؟ دقیقا همون روشه. بزارین کاربر ها قابلیت هارو ازمایش کنن، تا جذب قابلیت ها بشن.
از این روش توی این شرایط استفاده میشه:
- وقتی شما داخل کسب و کاری هستید و رقبا مشتری هاتون رو میدزدن، وقتشه بزارین قابلیت های ویژه ای رو امتحان کنن
- کسب و کاری رو آغاز میکنین که نیاز به جذب مشتری داره و از کیفیت خودتون مطمئنید؛ پس بزارید امتحان کنن تا جذب بشن.
▎Tiered pricing
این همون فروش اشتراکیه؛ روشی که VPN فروشا استفاده میکنن پس نیاز به توضیح نیست.
▎Per-user pricing
قیمت گذاری بر اساس تعداد یوزر؛ هرچی تعداد یوزر هاتون بیشتر میشن، قیمت رو بیشتر کاهش بدید تا همیشه حداکثر جذب مشتری رو داشته باشید.
▎Usage-based pricing
هممون عاشق اینیم. دقیقا این جملست: «هرکی بیشتر پول بده بیشتر آش میخوره»
یوزر هرچی مصرف بیشتر کنه، پول بیشتری میپردازه.
💥 روش ها فقط همینا نیستن، بیشتر میخواین یاد بگیرین سرچ کنین
Pricing models in marketing
این پست مربوط به قیمت گذاری پروژه هاتون نیست.
همونطور که میدونید ( یا خواهید فهمید ) برنامه نویسی، فقط به خود برنامه نویسی ختم نمیشه؛ چون رسما نمیشه از برنامه نویسی درآمد خوبی داشت، بلکه از محصول برنامه نویسی هستش که درآمد بدست میاد ( برای درک بهتر، بخوانید ).
💥 پس بحث مارکتینگ میاد وسط برای ارائه محصولات و درآمد بیشتر؛
❔ خب حالا تاحالا فکر کردید هزینه های داخل محصولات خودمون ( همون «خرید درون-برنامهای» ) رو چجوری قیمت گذاری یا طراحی کنیم که مارکتینگ بهتری داشته باشیم؟
▎Cost-plus pricing
این همون روش معمولی هستش که مغازه دارا استفاده میکنن. اگه برای ارائه چیزی 20 دلار هزینه کردید، 25 دلار بفروشید تا 5 دلار سود کنید.
▎Penetration pricing
این روش وقتی هستش که شما کمترین قیمت ممکن رو ارائه میدید، حتی وقتی به ضرر کسب و کارتون باشه.
این روش وقتی استفاده میشه که میخواین بازار رو مختل کنید و جذب مشتری داشته باشید؛ البته این روش پایدار نیست و وقتی به هدفتون رسیدید باید تغییرش بدید؛ این روش برای استارتآپ ها پیشنهاد میشه
▎Premium pricing
گاهی وقت ها بازار هدف، قیمت براشون مهم نیست و کسایی هستن که برای کیفیت بالا، بهای زیادی میدن. این روش با تکیه بر این قانون که «بهترین کیفیت، ارزون نیست» بوجود اومده. دقیقا روشی هستش که تلگرام استفاده میکنه برای پرمیوم. امکاناتی خاص برای کسایی که پول پرمیوم میدن.
▎Freemium pricing
دیدین بعضی جاها Free trial میدن؟ دقیقا همون روشه. بزارین کاربر ها قابلیت هارو ازمایش کنن، تا جذب قابلیت ها بشن.
از این روش توی این شرایط استفاده میشه:
- وقتی شما داخل کسب و کاری هستید و رقبا مشتری هاتون رو میدزدن، وقتشه بزارین قابلیت های ویژه ای رو امتحان کنن
- کسب و کاری رو آغاز میکنین که نیاز به جذب مشتری داره و از کیفیت خودتون مطمئنید؛ پس بزارید امتحان کنن تا جذب بشن.
▎Tiered pricing
این همون فروش اشتراکیه؛ روشی که VPN فروشا استفاده میکنن پس نیاز به توضیح نیست.
▎Per-user pricing
قیمت گذاری بر اساس تعداد یوزر؛ هرچی تعداد یوزر هاتون بیشتر میشن، قیمت رو بیشتر کاهش بدید تا همیشه حداکثر جذب مشتری رو داشته باشید.
▎Usage-based pricing
هممون عاشق اینیم. دقیقا این جملست: «هرکی بیشتر پول بده بیشتر آش میخوره»
یوزر هرچی مصرف بیشتر کنه، پول بیشتری میپردازه.
💥 روش ها فقط همینا نیستن، بیشتر میخواین یاد بگیرین سرچ کنین
Pricing models in marketing
👍10❤6🔥3