Splash Pro AI
#هوش_مصنوعی برای ایجاد آهنگ از متن
این سرویس که از هوش مصنوعی پشتیبانی میکند، دری را به روی دنیای خلاقیت موسیقی باز میکند و به شما امکان میدهد حتی بدون دانش عمیق موسیقی، آهنگهای شخصی ایجاد کنید.
@persians_python
#هوش_مصنوعی برای ایجاد آهنگ از متن
این سرویس که از هوش مصنوعی پشتیبانی میکند، دری را به روی دنیای خلاقیت موسیقی باز میکند و به شما امکان میدهد حتی بدون دانش عمیق موسیقی، آهنگهای شخصی ایجاد کنید.
@persians_python
در این پست قراره تمایز اغلب گیج کننده بین function و method هارو را بررسی کنیم🥸. هر دو بلوک های اساسی در پایتون هستند اما اهداف کمی تفاوت دارد. ما آنها را در کنار هم در قالب جدول با هم مقایسه خواهیم کرد و نمونه های کد واقعی را برای نشان دادن نحوه استفاده از هر کدام ارائه می دهیم. چه مبتدی باشید و چه به دنبال تقویت مهارت های پایتون خود باشید، این تفکیک دقیق به شما درک روشنی از زمان و نحوه استفاده موثر از function ها و method ها می دهد.
تابع(functios)در پایتون چیست؟ در پایتون، یک تابع یک بلوک از کد است که برای انجام یک کار خاص طراحی شده است. توابع به تقسیم برنامه ما به قطعات کوچکتر و ماژولار کمک می کنند. با ایجاد برنامه های پیچیده تر، توابع را می توان مجدداً مورد استفاده قرار داد و کد شما را سازماندهی و مدیریت کرد. مثالی از یک تابع:
متد در پایتون چیست؟
متد، به عکس تابع، یک تابع است که به یک شیء مرتبط است. در پایتون، متدها مستقل نیستند و باید بر روی یک شیء یا داخل یک کلاس فراخوانی شوند. متدها به طور ضمنی از یک شیء استفاده میکنند که برای آن فراخوانی شدهاند.
برای درک بهتر به مثال زیر توجه کنید.
در اینجا، greet یک متد از کلاس Greeter است و بر روی نمونه g از آن کلاس فراخوانی میشود.
در ادامه چند مثال عملی رو باهم بررسی میکنیم.
Function:
در اینجا یک تابع ساده برای به دست اوردن فاکتوریل یک عدد داریم.(5!)
Method:
در اینجا تابع description یک متود است که جزئیات مربوط به یک نمونه خودرو رو نشون میده.
درک تمایز بین توابع و متودها در پایتون برای نوشتن کد واضح و موثر بسیار مهم است. توابع ماژولار بودن و قابلیت استفاده مجدد را ارائه می دهند، در حالی که متود ها ما را قادر می سازند تا رفتارهای درون اشیاء را با رعایت اصول برنامه نویسی شی گرا محصور کنیم. اینکه یک تابع یا یک روش را انتخاب کنید تا حد زیادی به نیازهای خاص برنامه و ترجیحات طراحی شما بستگی دارد. با درک این مفاهیم، می توانید از انعطاف پذیری و استحکام پایتون در پروژه های برنامه نویسی خود استفاده کنید و کد خود را سازماندهی و پویا تر کنید.
منبع
#mahyar
تابع(functios)در پایتون چیست؟ در پایتون، یک تابع یک بلوک از کد است که برای انجام یک کار خاص طراحی شده است. توابع به تقسیم برنامه ما به قطعات کوچکتر و ماژولار کمک می کنند. با ایجاد برنامه های پیچیده تر، توابع را می توان مجدداً مورد استفاده قرار داد و کد شما را سازماندهی و مدیریت کرد. مثالی از یک تابع:
def greet(name):
return f"Hello, {name}!"
print(greet("ali")) # Output: Hello, ali!
متد در پایتون چیست؟
متد، به عکس تابع، یک تابع است که به یک شیء مرتبط است. در پایتون، متدها مستقل نیستند و باید بر روی یک شیء یا داخل یک کلاس فراخوانی شوند. متدها به طور ضمنی از یک شیء استفاده میکنند که برای آن فراخوانی شدهاند.
برای درک بهتر به مثال زیر توجه کنید.
class Greeter:
def __init__(self, name):
self.name = name
def greet(self):
return f"Hello, {self.name}!"
g = Greeter("ali")
print(g.greet()) # Output: Hello, ali!
در اینجا، greet یک متد از کلاس Greeter است و بر روی نمونه g از آن کلاس فراخوانی میشود.
در ادامه چند مثال عملی رو باهم بررسی میکنیم.
Function:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print(factorial(5)) # Output: 120
در اینجا یک تابع ساده برای به دست اوردن فاکتوریل یک عدد داریم.(5!)
Method:
class Car:
def __init__(self, make, model):
self.make = make
self.model = model
def description(self):
return f"{self.make} {self.model}"
my_car = Car("Toyota", "Corolla")
print(my_car.description()) # Output: Toyota Corolla
در اینجا تابع description یک متود است که جزئیات مربوط به یک نمونه خودرو رو نشون میده.
درک تمایز بین توابع و متودها در پایتون برای نوشتن کد واضح و موثر بسیار مهم است. توابع ماژولار بودن و قابلیت استفاده مجدد را ارائه می دهند، در حالی که متود ها ما را قادر می سازند تا رفتارهای درون اشیاء را با رعایت اصول برنامه نویسی شی گرا محصور کنیم. اینکه یک تابع یا یک روش را انتخاب کنید تا حد زیادی به نیازهای خاص برنامه و ترجیحات طراحی شما بستگی دارد. با درک این مفاهیم، می توانید از انعطاف پذیری و استحکام پایتون در پروژه های برنامه نویسی خود استفاده کنید و کد خود را سازماندهی و پویا تر کنید.
منبع
#mahyar
👍1
پایتون فارسی(PyCore)
در این پست قراره تمایز اغلب گیج کننده بین function و method هارو را بررسی کنیم🥸. هر دو بلوک های اساسی در پایتون هستند اما اهداف کمی تفاوت دارد. ما آنها را در کنار هم در قالب جدول با هم مقایسه خواهیم کرد و نمونه های کد واقعی را برای نشان دادن نحوه استفاده…
اینم یه جدول برای درک بهتر تفاوت متود و تابع
در این پست نکات و ترفند های پیشرفته مدل های جنگو رو بررسی خواهیم کرد.🥸
از جمله: ...indexing, custom managers, inheritance
ارث بری مدل ها به شما امکان می دهد یک مدل پایه با اطلاعات رایج ایجاد کنید و آن را در مدل های دیگر گسترش دهید. جنگو از سه نوع model inheritance پشتیبانی می کند:
abstract base classes, multi-table inheritance, and proxy models
Using Abstract Models:
روشی فوقالعاده برای جمعبندی اطلاعات و رفتار مشترک هستند. برای یک abstract model هیچ جدولی در دیتابیس نشان داده نمی شود. در عوض، فیلدها و متدهای آن توسط زیر کلاسها به ارث میرسند.
Example:
در اینجا BaseProfile مانند یک الگو عمل میکند.StudentProfile, TeacherProfile هر دو دارای فیلد های bio , avatar خواهند بود اما هر کدام در جدول های پایگاه داده خودشان ذخیره میشوند.
Custom Managers :
در جنگو Custom Managers به شما این امکان را می دهند که عملکردهای سطح جدول را به مدل های جنگو خود اضافه کنید. آنها را می توان برای کپسوله کردن و عملیات های crud پیچیده و ارائه یک API تمیزتر برای مدل استفاده کرد.
Example:
این custom manager تمامی query های شمارو بر اساس "deleted" فیلتر میکند.
Models Migrations:
مدیریت Migrations مدلها
در جنگو migrations به شما امکان میدهند تا طی زمان، طرح پایگاه داده خود را تکامل دهید. مدیریت مناسب migrations ها برای حفظ یک پروژه سالم بسیار حیاتی است.
توصیهها:
برنامهریزی migrations خود: سعی کنید هنگام امکانپذیر بودن، مهاجرتها را ترکیب کنید و آنها را به کنترل نسخه منتقل کنید.
تست migrations: همیشه migrations را به صورت محلی و در محیط استیجینگ تست کنید، قبل از اعمال آنها در محیط تولید.
استفاده از دستور makemigrations برای تولید فایلهای migrations
استفاده از دستور migrate برای اعمال migrations ها
استفاده از دستور sqlmigrate برای پیشنمایش دستور sql
Proxy Models:
مدلهای پروکسی برای تغییر رفتار یک مدل، مانند defualt ordering یا custom manager بدون ایجاد جدول پایگاه داده جدید استفاده میشوند.
Example:
این پروکسی مدل تمامی profile هارا بر اساس نام نشان میدهد.
Multi-table Inheritance:
این نوع وراثت زمانی استفاده می شود که هر مدل در سلسله مراتب به تنهایی یک موجودیت کامل در نظر گرفته شود که به طور بالقوه به جدول پایگاه داده دیگری مرتبط است.به زبان ساده هر مدل به تنهایی میتواند در یک جدول جداگانه در پایگاه داده نمایش داده شود، به جای اینکه همه اطلاعات در یک جدول واحد ذخیره شود.
مدل Restaurant از مدل Place ارثبری میکند. این بدان معنی است که همه فیلدهای Place به صورت اتوماتیک به Restaurant ارث میبرده شده و Restaurant از همه ویژگیهای Place استفاده میکند.
این الگو به شما امکان میدهد که یک مدل (در اینجا Restaurant) را برای ارثبری از ویژگیها و رفتارهای یک مدل دیگر (در اینجا Place) استفاده کنید، در حالی که همچنان میتوانید به آن فیلدها و ویژگیهای جدیدی را اضافه کنید.
ادامه مطالب در پست بعد
#djnago
#model
#mahyar
از جمله: ...indexing, custom managers, inheritance
ارث بری مدل ها به شما امکان می دهد یک مدل پایه با اطلاعات رایج ایجاد کنید و آن را در مدل های دیگر گسترش دهید. جنگو از سه نوع model inheritance پشتیبانی می کند:
abstract base classes, multi-table inheritance, and proxy models
Using Abstract Models:
روشی فوقالعاده برای جمعبندی اطلاعات و رفتار مشترک هستند. برای یک abstract model هیچ جدولی در دیتابیس نشان داده نمی شود. در عوض، فیلدها و متدهای آن توسط زیر کلاسها به ارث میرسند.
Example:
class BaseProfile(models.Model):
bio = models.TextField()
avatar = models.ImageField(upload_to='avatars/')
class Meta:
abstract = True
class StudentProfile(BaseProfile):
graduation_year = models.IntegerField()
class TeacherProfile(BaseProfile):
office = models.CharField(max_length=100)
در اینجا BaseProfile مانند یک الگو عمل میکند.StudentProfile, TeacherProfile هر دو دارای فیلد های bio , avatar خواهند بود اما هر کدام در جدول های پایگاه داده خودشان ذخیره میشوند.
Custom Managers :
در جنگو Custom Managers به شما این امکان را می دهند که عملکردهای سطح جدول را به مدل های جنگو خود اضافه کنید. آنها را می توان برای کپسوله کردن و عملیات های crud پیچیده و ارائه یک API تمیزتر برای مدل استفاده کرد.
Example:
class ActiveProfileManager(models.Manager):
def get_queryset(self):
return super().get_queryset().filter(deleted=False)
class Profile(models.Model):
name = models.CharField(max_length=100)
deleted = models.BooleanField(default=False)
objects = models.Manager() # The default manager.
active_objects = ActiveProfileManager() # Our custom manager.
# Usage:
active_profiles = Profile.active_objects.all()
این custom manager تمامی query های شمارو بر اساس "deleted" فیلتر میکند.
Models Migrations:
مدیریت Migrations مدلها
در جنگو migrations به شما امکان میدهند تا طی زمان، طرح پایگاه داده خود را تکامل دهید. مدیریت مناسب migrations ها برای حفظ یک پروژه سالم بسیار حیاتی است.
توصیهها:
برنامهریزی migrations خود: سعی کنید هنگام امکانپذیر بودن، مهاجرتها را ترکیب کنید و آنها را به کنترل نسخه منتقل کنید.
تست migrations: همیشه migrations را به صورت محلی و در محیط استیجینگ تست کنید، قبل از اعمال آنها در محیط تولید.
استفاده از دستور makemigrations برای تولید فایلهای migrations
استفاده از دستور migrate برای اعمال migrations ها
استفاده از دستور sqlmigrate برای پیشنمایش دستور sql
Proxy Models:
مدلهای پروکسی برای تغییر رفتار یک مدل، مانند defualt ordering یا custom manager بدون ایجاد جدول پایگاه داده جدید استفاده میشوند.
Example:
class OrderedProfile(Profile):
class Meta:
proxy = True
ordering = ['name']
# Usage:
ordered_profiles = OrderedProfile.objects.all()
این پروکسی مدل تمامی profile هارا بر اساس نام نشان میدهد.
Multi-table Inheritance:
این نوع وراثت زمانی استفاده می شود که هر مدل در سلسله مراتب به تنهایی یک موجودیت کامل در نظر گرفته شود که به طور بالقوه به جدول پایگاه داده دیگری مرتبط است.به زبان ساده هر مدل به تنهایی میتواند در یک جدول جداگانه در پایگاه داده نمایش داده شود، به جای اینکه همه اطلاعات در یک جدول واحد ذخیره شود.
class Place(models.Model):
name = models.CharField(max_length=50)
class Restaurant(Place):
serves_pizza = models.BooleanField(default=False)
مدل Restaurant از مدل Place ارثبری میکند. این بدان معنی است که همه فیلدهای Place به صورت اتوماتیک به Restaurant ارث میبرده شده و Restaurant از همه ویژگیهای Place استفاده میکند.
این الگو به شما امکان میدهد که یک مدل (در اینجا Restaurant) را برای ارثبری از ویژگیها و رفتارهای یک مدل دیگر (در اینجا Place) استفاده کنید، در حالی که همچنان میتوانید به آن فیلدها و ویژگیهای جدیدی را اضافه کنید.
ادامه مطالب در پست بعد
#djnago
#model
#mahyar
👍1
پایتون فارسی(PyCore)
در این پست نکات و ترفند های پیشرفته مدل های جنگو رو بررسی خواهیم کرد.🥸 از جمله: ...indexing, custom managers, inheritance ارث بری مدل ها به شما امکان می دهد یک مدل پایه با اطلاعات رایج ایجاد کنید و آن را در مدل های دیگر گسترش دهید. جنگو از سه نوع model…
در ادامه پست قبلی:
Indexing:
ایندکس ها برای بهبود عملکرد عملیات پایگاه داده، به ویژه برای مجموعه داده های بزرگ، ضروری هستند.
به عنوان مثال، فرض کنید شما یک جدول کاربران دارید و میخواهید بر اساس نام آنها جستجو کنید. بدون ایندکس، پایگاه داده باید هر رکورد را از ابتدا تا انتها بررسی کند تا نام مورد نظر را پیدا کند. اما با ایجاد یک ایندکس بر روی فیلد نام، پایگاه داده میتواند به سرعت به رکوردهای مرتبط با نام مورد نظر دسترسی پیدا کند.
Example:
Overriding Model Methods:
وقتی در Django یک مدل ایجاد میکنید، میتوانید رفتارهای خاصی را برای عملیاتهای مختلف مدل، مانند ذخیرهسازی یا حذف، سفارشیسازی کنید. این کار به شما این امکان را میدهد که قبل یا بعد از انجام یک عملیات، کارهای خاصی انجام دهید. شما میتوانید عملیات save , delete ,.... رو بازنویسی کنید.
Example:
در این مثال، هر زمان که یک نمونه از MyModel ذخیره میشود، مقدار فیلد name به حروف بزرگ تبدیل میشود قبل از ذخیرهسازی و سپس عملیات ذخیرهسازی انجام میشود.
Soft Deletion:
استفاده از Soft Deletion به شما این امکان را میدهد که آیتمها را به عنوان حذف شده علامتگذاری کنید، اما در واقع آنها را از پایگاه داده حذف نکنید. به این تکنیک "حذف نرم" یا "حذف موقت" نیز گفته میشود. این روش برای نگهداری تاریخچه دادهها، امکان بازگردانی آیتمهای حذف شده و همچنین حفظ ارتباطات بین آیتمهای مختلف مفید است.
Example:
هر یک از این تکنیک ها مجموعه ای از مزایای خاص خود را ارائه می دهد و می تواند به طور قابل توجهی بر کارایی و عملکرد پروژه های شما تأثیر بگذارد. با اجرای این استراتژیها، میتوانید از قابلیتهای قدرتمند مدلسازی جنگو برای ساخت برنامههای کاربردی وب قویتر و مقیاسپذیرتر بهره ببرید.
منبع
#djnago
#model
#mahyar
Indexing:
ایندکس ها برای بهبود عملکرد عملیات پایگاه داده، به ویژه برای مجموعه داده های بزرگ، ضروری هستند.
به عنوان مثال، فرض کنید شما یک جدول کاربران دارید و میخواهید بر اساس نام آنها جستجو کنید. بدون ایندکس، پایگاه داده باید هر رکورد را از ابتدا تا انتها بررسی کند تا نام مورد نظر را پیدا کند. اما با ایجاد یک ایندکس بر روی فیلد نام، پایگاه داده میتواند به سرعت به رکوردهای مرتبط با نام مورد نظر دسترسی پیدا کند.
Example:
class User(models.Model):
username = models.CharField(max_length=100, db_index=True)
email = models.CharField(max_length=100)
class Meta:
indexes = [
models.Index(fields=['username'], name='username_idx'),
models.Index(fields=['email'], name='email_idx')
]
Overriding Model Methods:
وقتی در Django یک مدل ایجاد میکنید، میتوانید رفتارهای خاصی را برای عملیاتهای مختلف مدل، مانند ذخیرهسازی یا حذف، سفارشیسازی کنید. این کار به شما این امکان را میدهد که قبل یا بعد از انجام یک عملیات، کارهای خاصی انجام دهید. شما میتوانید عملیات save , delete ,.... رو بازنویسی کنید.
Example:
class MyModel(models.Model):
name = models.CharField(max_length=100)
def save(self, *args, **kwargs):
self.name = self.name.upper()
super().save(*args, **kwargs)
در این مثال، هر زمان که یک نمونه از MyModel ذخیره میشود، مقدار فیلد name به حروف بزرگ تبدیل میشود قبل از ذخیرهسازی و سپس عملیات ذخیرهسازی انجام میشود.
Soft Deletion:
استفاده از Soft Deletion به شما این امکان را میدهد که آیتمها را به عنوان حذف شده علامتگذاری کنید، اما در واقع آنها را از پایگاه داده حذف نکنید. به این تکنیک "حذف نرم" یا "حذف موقت" نیز گفته میشود. این روش برای نگهداری تاریخچه دادهها، امکان بازگردانی آیتمهای حذف شده و همچنین حفظ ارتباطات بین آیتمهای مختلف مفید است.
Example:
class SoftDeleteModel(models.Model):
is_deleted = models.BooleanField(default=False)
def delete(self, *args, **kwargs):
self.is_deleted = True
self.save()
هر یک از این تکنیک ها مجموعه ای از مزایای خاص خود را ارائه می دهد و می تواند به طور قابل توجهی بر کارایی و عملکرد پروژه های شما تأثیر بگذارد. با اجرای این استراتژیها، میتوانید از قابلیتهای قدرتمند مدلسازی جنگو برای ساخت برنامههای کاربردی وب قویتر و مقیاسپذیرتر بهره ببرید.
منبع
#djnago
#model
#mahyar
🌟Code with MrCoder7️⃣0️⃣1️⃣
Advanced Django Models Tips and Tricks #django - 🌟Code with MrCoder7️⃣0️⃣1️⃣
Elevate your Django skills with these advanced tips and tricks for optimizing models. Learn about inheritance, indexing, custom managers, and other techniques to improve your application's performance and scalability.
👍1
بچه ها ویدیوهای آموزشی الگوریتم که آقا سجاد اماده کرده رو حتما ببینید به شدت توی فهم ساختارهای برنامه نویسی کمک میکنه
اپلیکیشن Beeper که سر کلاس راجع بهش صحبت کردم ، این اپ میتونه با تمام پیام رسان های شما پل بزنه و براحتی هم به واتس اپ تلگرام اینستاگرام و بقیه اپ ها پیام بفرستید و دریافت کنید بدون هیچ فیلتری یا نیاز به پروکسی و فیلترشکن
اپ رو نصب کنید واردش که شدید صفحه اول پل ها رو نشون میده که رو هر کدوم کلیک کنید فعال میشه فقط زمان اتصال به مثلا تلگرام یه کد تایید به حساب تلگرام میفرسته که باید داخل اپ جایی که خودش مشخص میکنه وارد کنید تا متصل به تلگرام بشه و همینجوری به بقیه
همزمان همه اپ ها رو در یک اپ بدون فیلتر خواهید داشت
اینستاگرام قسمت دایرکت براتون اضافه میشه
https://play.google.com/store/apps/details?id=com.beeper.android
#M_Sh
@persians_python
اپ رو نصب کنید واردش که شدید صفحه اول پل ها رو نشون میده که رو هر کدوم کلیک کنید فعال میشه فقط زمان اتصال به مثلا تلگرام یه کد تایید به حساب تلگرام میفرسته که باید داخل اپ جایی که خودش مشخص میکنه وارد کنید تا متصل به تلگرام بشه و همینجوری به بقیه
همزمان همه اپ ها رو در یک اپ بدون فیلتر خواهید داشت
اینستاگرام قسمت دایرکت براتون اضافه میشه
https://play.google.com/store/apps/details?id=com.beeper.android
#M_Sh
@persians_python
Google Play
Beeper: Universal Chat - Apps on Google Play
Chat with anyone you want on any chat network
پایتون فارسی(PyCore)
پاول دورف نابغه قرن جدید !؟! تلگرام بر خلاف اکثر شبکه های اجتماعی و پیام رسان های معروف به دور از سیاسی گری متولد شد و تا به امروز به دو شعار باطنی خود که دوری از جانب گری در مسایل سیاسی و حفظ حریم خصوصی کاربران بوده عمل کرده است. به شکلی که تلگرام هم در کشورهای…
اینم نقد شدن نات کوین از شروع این پروژه چندین مطلب راجع بهش نوشتم امیدوارم ازش استفاده کرده باشید
👍3
سلام وقت همگی بخیر
با توجه به تعطیلی روز پنجشنبه در خراسان رضوی کلیه کلاس های مجتمع فنی روز پنجشنبه
تعطیل هست
با توجه به تعطیلی روز پنجشنبه در خراسان رضوی کلیه کلاس های مجتمع فنی روز پنجشنبه
تعطیل هست
سایتscr که فانکشن های تبدیل زمان میلادی به زمان شمسی رو بهتون میده
یه فانکشن پایتونی رو نوشته که سه تا آرگومان بهش داده میشه سال و ماه و روز میلادی و خروجی یه لیست برمیگردونه که سال و ماه و روز شمسی رو میده و میتونید تو پروژه هاتون استفاده کنید ازش بدون نیاز به پکیج خاصی
https://jdf.scr.ir/jdf/python
یه فانکشن پایتونی رو نوشته که سه تا آرگومان بهش داده میشه سال و ماه و روز میلادی و خروجی یه لیست برمیگردونه که سال و ماه و روز شمسی رو میده و میتونید تو پروژه هاتون استفاده کنید ازش بدون نیاز به پکیج خاصی
https://jdf.scr.ir/jdf/python
#SADRA_K
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👌2
سلام به همه دو تا پروژه جدید رو تلگرام لانچ شدن شبیه به نات کوین و تپ سواپ
اگه علاقه به این موضوعات دارید میتونید تست کنید شاید مثل نات کوین قیمت گرفتن
اولی بزرگترین کانال تلگرام رو دارن با بیست میلیون کاربر
دومی هم در حال حاضر ده میلیون عضو داره
بازی همستر با کانال بیست میلیونی
https://t.me/hamsTer_kombat_bot/start?startapp=kentId26472764
--------------------------------------------------------
بازی یس کوین که الان ده میلیون کاربر داره
https://t.me/theYescoin_bot/Yescoin?startapp=TmPQnI
اگه علاقه به این موضوعات دارید میتونید تست کنید شاید مثل نات کوین قیمت گرفتن
اولی بزرگترین کانال تلگرام رو دارن با بیست میلیون کاربر
دومی هم در حال حاضر ده میلیون عضو داره
بازی همستر با کانال بیست میلیونی
https://t.me/hamsTer_kombat_bot/start?startapp=kentId26472764
--------------------------------------------------------
بازی یس کوین که الان ده میلیون کاربر داره
https://t.me/theYescoin_bot/Yescoin?startapp=TmPQnI
Telegram
Hamster Kombat
Just for you, we have developed an unrealistically cool application in the clicker genre, and no hamster was harmed! Perform simple tasks that take very little time and get the opportunity to earn money!
👍6👎3👌1
پایتون فارسی(PyCore)
برای آخرین مطلب راجع به نات کوین اینکه فکر کنید با کلیک کردن قراره کسی پولدار بشه یه رویای خوشایند غیرواقعی هست این شکل پروژه ها با استفاده از اهرم تعداد افراد به یه پروژه ای ارزش میدن و حالا ممکنه در آینده با ایده های پشتش بتونن این ارز رو قیمت گذاری کنند…
یک بار دیگه این مطلب رو بخونید و لپ مطلب رو بگیرید
پروژه های بر بستر تلگرام بعد از نات قطعا قارچ وار رشد میکنن و همه شون هم قرار نیست به جایی برسند
فرصت های که بعنوان یه برنامه نویس پیش اومده رو بگیرید و روی تخصص خودتون متمرکز بشید
و این پروژه ها رو هم بعنوان یه گیم ببینید که ممکنه بشه ممکنه نشه
جوری نشه که بخاطر این جوی که شکل گرفته از هدف اصلی دور بشید و تمام وقت و تمرکز رو روی اینا بذارید
هیچ چیزی تو این دنیا مجانی نیست
پروژه های بر بستر تلگرام بعد از نات قطعا قارچ وار رشد میکنن و همه شون هم قرار نیست به جایی برسند
فرصت های که بعنوان یه برنامه نویس پیش اومده رو بگیرید و روی تخصص خودتون متمرکز بشید
و این پروژه ها رو هم بعنوان یه گیم ببینید که ممکنه بشه ممکنه نشه
جوری نشه که بخاطر این جوی که شکل گرفته از هدف اصلی دور بشید و تمام وقت و تمرکز رو روی اینا بذارید
هیچ چیزی تو این دنیا مجانی نیست
👍6👎1
خب سلام دوباره در ادامه مجموعه پست های دیتابیس تو این یکی قراره با معماری Vitess اشنا بشیم و متوجه بشیم یوتوب چگونه 2.49 میلیارد کاربر خودش رو با MySQL هندل میکنه.
توجه این پست بر اساس تحقیق هستش و ممکنه با پیادهسازی واقعی فرق داشته باشه.
روزی روزگاری، سه نفر که تو PayPal کار میکردن، تصمیم گرفتن یه سایت دوستیابی درست کنن. اما مدل کسبوکارشون شکست خورد. برای همین ایدهشون رو عوض کردن و یه سایت اشتراکگذاری ویدئو درست کردن و اسمش رو گذاشتن یوتیوب.
اونا عناوین ویدئوها، توضیحات و اطلاعات کاربران رو تو MySQL ذخیره کردن. وقتی کاربرهای بیشتری به سایت پیوستن، اونا MySQL رو به حالت رهبر-دنبالکننده (leader-follower replication topology) تنظیم کردن تا بتونن بهتر مقیاسپذیری کنن. اما تکرار در MySQL تکنخی (single-threaded) است. بنابراین دنبالکنندهها نمیتونستن در عملیات نوشتن شدید به رهبر برسند و دادههای جدید رو بهروز کنن. با این حال، نرخ رشدشون خیلی زیاد بود و به یک میلیارد کاربر رسیدن و به دومین سایت پربازدید در جهان تبدیل شدن.
بنابراین با اضافه کردن یه حافظه نهان (cache) مقیاسپذیری کردن و همه رویدادها رو از لاگ باینری MySQL (binary log) بارگذاری کردن. این یعنی تکرار به حافظه وابسته شد و سرعت بیشتری پیدا کرد. اگرچه این کار به طور موقت مشکل مقیاسپذیری اونا رو حل کرد، مشکلات جدیدی به وجود اومد.
در اینجا به برخی از اونا اشاره میکنم:
1. پارتیشنبندی (Sharding):
اولین کاری که باید کرد این که MySQL باید پارتیشنبندی بشه تا نیازهای ذخیرهسازی رو مدیریت کنه. اما بعد از پارتیشنبندی، معاملات (transactions) و پیوستن جداول (joins) سخت میشه. بنابراین منطق برنامه (application logic) باید این رو مدیریت کنه. این یعنی منطق برنامه باید بفهمه که کدوم پارتیشنها رو باید پرسوجو کنه و این باعث افزایش احتمال زمان خرابی (downtime) میشه.
2. عملکرد (Performance):
و(leader-follower replication topology) باعث میشه که دادههای قدیمی از دنبالکنندهها خونده بشه. بنابراین منطق برنامه باید خوندن دادهها رو به رهبر هدایت کنه اگر دادههای جدید لازم باشه. و این نیاز به پیادهسازی منطق اضافی داره.
3. حفاظت (Protection):
ریسک اینکه برخی پرسوجوها خیلی طول بکشه تا دادهها رو برگردونن وجود داره. همچنین تعداد زیادی از اتصالات MySQL به طور همزمان میتونه مشکلساز بشه و ممکنه دیتابیس رو از کار بندازه.
اونا میخواستن یه لایه انتزاعی روی MySQL برای سادگی و مقیاسپذیری ایجاد کنند. بنابراین Vitess رو ساختن. در اینجا نحوه ارائه مقیاسپذیری بالا توسط Vitess رو توضیح میدم:
1. تعامل با پایگاه داده:(Interacting with Database)
اونا یه سرور جانبی (sidecar server) جلو هر نمونه MySQL نصب کردن و اسمش رو گذاشتند VTTablet.
این سرور جانبی به اونا اجازه میداد:
- کنترل سرور MySQL و مدیریت پشتیبانگیری از پایگاه داده
- بازنویسی کوئریهای سنگین با اضافه کردن محدودیت (limit clause)
- کش کردن دادههای پر دسترس برای جلوگیری از مشکل Thundering Herd
2. مسیریابی کوئریها(Routing SQL Queries):
یه سرور پراکسی بدون حالت (stateless proxy server) برای مسیریابی کوئریها تنظیم کردند و اسمش رو گذاشتند VTGate.
این سرور پراکسی بهشون اجازه میداد:
- پیدا کردن VTTablet صحیح برای مسیریابی کوئری بر اساس اسکیما و طرح پارتیشنبندی
- پایین نگه داشتن تعداد اتصالات MySQL از طریق تجمیع اتصالات (connection pooling)
- صحبت با لایه کاربردی به پروتکل MySQL
- عمل کردن مانند یه سرور MySQL یکپارچه برای سادگی
- محدود کردن تعداد معاملات در یک زمان برای عملکرد بهتر
همچنین برای مقیاسپذیری بیشتر، سرورهای VTGate متعددی راهاندازی کردند.
3. اطلاعات حالت:
تصویر چهارم در کامنت ها
یه پایگاه داده توزیعشده کلید-مقدار (distributed key-value database) راهاندازی کردند تا اطلاعات مربوط به اسکیما، طرحهای پارتیشنبندی و نقشها رو ذخیره کنه.
این پایگاه داده همچنین روابط بین پایگاههای داده مثل رهبر و دنبالکنندهها رو مدیریت میکنه.
در ادمه از Zookeeper برای پیادهسازی این پایگاه داده کلید-مقدار استفاده کرندند.
علاوه بر این، این دادهها رو در VTGate برای عملکرد بهتر کش میکردند.
برای بهروزرسانی پایگاه داده کلید-مقدار، یه سرور HTTP راهاندازی کردند و اسمش رو گذاشتند VTctld. این سرور فهرست کامل سرورها و روابطشون رو میگیره و سپس پایگاه داده کلید-مقدار رو بهروزرسانی میکنه.
#database
#postgresql
توجه این پست بر اساس تحقیق هستش و ممکنه با پیادهسازی واقعی فرق داشته باشه.
روزی روزگاری، سه نفر که تو PayPal کار میکردن، تصمیم گرفتن یه سایت دوستیابی درست کنن. اما مدل کسبوکارشون شکست خورد. برای همین ایدهشون رو عوض کردن و یه سایت اشتراکگذاری ویدئو درست کردن و اسمش رو گذاشتن یوتیوب.
اونا عناوین ویدئوها، توضیحات و اطلاعات کاربران رو تو MySQL ذخیره کردن. وقتی کاربرهای بیشتری به سایت پیوستن، اونا MySQL رو به حالت رهبر-دنبالکننده (leader-follower replication topology) تنظیم کردن تا بتونن بهتر مقیاسپذیری کنن. اما تکرار در MySQL تکنخی (single-threaded) است. بنابراین دنبالکنندهها نمیتونستن در عملیات نوشتن شدید به رهبر برسند و دادههای جدید رو بهروز کنن. با این حال، نرخ رشدشون خیلی زیاد بود و به یک میلیارد کاربر رسیدن و به دومین سایت پربازدید در جهان تبدیل شدن.
بنابراین با اضافه کردن یه حافظه نهان (cache) مقیاسپذیری کردن و همه رویدادها رو از لاگ باینری MySQL (binary log) بارگذاری کردن. این یعنی تکرار به حافظه وابسته شد و سرعت بیشتری پیدا کرد. اگرچه این کار به طور موقت مشکل مقیاسپذیری اونا رو حل کرد، مشکلات جدیدی به وجود اومد.
در اینجا به برخی از اونا اشاره میکنم:
1. پارتیشنبندی (Sharding):
اولین کاری که باید کرد این که MySQL باید پارتیشنبندی بشه تا نیازهای ذخیرهسازی رو مدیریت کنه. اما بعد از پارتیشنبندی، معاملات (transactions) و پیوستن جداول (joins) سخت میشه. بنابراین منطق برنامه (application logic) باید این رو مدیریت کنه. این یعنی منطق برنامه باید بفهمه که کدوم پارتیشنها رو باید پرسوجو کنه و این باعث افزایش احتمال زمان خرابی (downtime) میشه.
2. عملکرد (Performance):
و(leader-follower replication topology) باعث میشه که دادههای قدیمی از دنبالکنندهها خونده بشه. بنابراین منطق برنامه باید خوندن دادهها رو به رهبر هدایت کنه اگر دادههای جدید لازم باشه. و این نیاز به پیادهسازی منطق اضافی داره.
3. حفاظت (Protection):
ریسک اینکه برخی پرسوجوها خیلی طول بکشه تا دادهها رو برگردونن وجود داره. همچنین تعداد زیادی از اتصالات MySQL به طور همزمان میتونه مشکلساز بشه و ممکنه دیتابیس رو از کار بندازه.
اونا میخواستن یه لایه انتزاعی روی MySQL برای سادگی و مقیاسپذیری ایجاد کنند. بنابراین Vitess رو ساختن. در اینجا نحوه ارائه مقیاسپذیری بالا توسط Vitess رو توضیح میدم:
1. تعامل با پایگاه داده:(Interacting with Database)
اونا یه سرور جانبی (sidecar server) جلو هر نمونه MySQL نصب کردن و اسمش رو گذاشتند VTTablet.
این سرور جانبی به اونا اجازه میداد:
- کنترل سرور MySQL و مدیریت پشتیبانگیری از پایگاه داده
- بازنویسی کوئریهای سنگین با اضافه کردن محدودیت (limit clause)
- کش کردن دادههای پر دسترس برای جلوگیری از مشکل Thundering Herd
2. مسیریابی کوئریها(Routing SQL Queries):
یه سرور پراکسی بدون حالت (stateless proxy server) برای مسیریابی کوئریها تنظیم کردند و اسمش رو گذاشتند VTGate.
این سرور پراکسی بهشون اجازه میداد:
- پیدا کردن VTTablet صحیح برای مسیریابی کوئری بر اساس اسکیما و طرح پارتیشنبندی
- پایین نگه داشتن تعداد اتصالات MySQL از طریق تجمیع اتصالات (connection pooling)
- صحبت با لایه کاربردی به پروتکل MySQL
- عمل کردن مانند یه سرور MySQL یکپارچه برای سادگی
- محدود کردن تعداد معاملات در یک زمان برای عملکرد بهتر
همچنین برای مقیاسپذیری بیشتر، سرورهای VTGate متعددی راهاندازی کردند.
3. اطلاعات حالت:
تصویر چهارم در کامنت ها
یه پایگاه داده توزیعشده کلید-مقدار (distributed key-value database) راهاندازی کردند تا اطلاعات مربوط به اسکیما، طرحهای پارتیشنبندی و نقشها رو ذخیره کنه.
این پایگاه داده همچنین روابط بین پایگاههای داده مثل رهبر و دنبالکنندهها رو مدیریت میکنه.
در ادمه از Zookeeper برای پیادهسازی این پایگاه داده کلید-مقدار استفاده کرندند.
علاوه بر این، این دادهها رو در VTGate برای عملکرد بهتر کش میکردند.
برای بهروزرسانی پایگاه داده کلید-مقدار، یه سرور HTTP راهاندازی کردند و اسمش رو گذاشتند VTctld. این سرور فهرست کامل سرورها و روابطشون رو میگیره و سپس پایگاه داده کلید-مقدار رو بهروزرسانی میکنه.
#database
#postgresql
پایتون فارسی(PyCore)
خب سلام دوباره در ادامه مجموعه پست های دیتابیس تو این یکی قراره با معماری Vitess اشنا بشیم و متوجه بشیم یوتوب چگونه 2.49 میلیارد کاربر خودش رو با MySQL هندل میکنه. توجه این پست بر اساس تحقیق هستش و ممکنه با پیادهسازی واقعی فرق داشته باشه. روزی روزگاری،…
خلاصه:
اول-VTGate: سرور پراکسی برای مسیریابی کوئریها
دوم-Key-Value Database: سرور پیکربندی برای مدیریت توپولوژی
سوم-VTTablet: سرور جانبی که روی هر MySQL اجرا میشه
اونا Vitess رو با زبان Go نوشتند و اون رو اوپن سورس کردند. همچنین از MariaDB هم پشتیبانی میکنه. یوتیوب تونست با ترکیب رVitess و MySQL به 2.49 میلیارد کاربر رو مدیریت کنه. این مطالعه موردی نشون میده که MySQL میتونه به راحتی ترافیک در مقیاس اینترنت و کاربران زیاد رو مدیریت کنه.
اول-VTGate: سرور پراکسی برای مسیریابی کوئریها
دوم-Key-Value Database: سرور پیکربندی برای مدیریت توپولوژی
سوم-VTTablet: سرور جانبی که روی هر MySQL اجرا میشه
اونا Vitess رو با زبان Go نوشتند و اون رو اوپن سورس کردند. همچنین از MariaDB هم پشتیبانی میکنه. یوتیوب تونست با ترکیب رVitess و MySQL به 2.49 میلیارد کاربر رو مدیریت کنه. این مطالعه موردی نشون میده که MySQL میتونه به راحتی ترافیک در مقیاس اینترنت و کاربران زیاد رو مدیریت کنه.
This media is not supported in your browser
VIEW IN TELEGRAM
⭐️ پاول دوروف از #تلگرام_استارز (Stars) به صورت رسمی رونمایی کرد. حالا این استارز به چه درد میخوره؟ بیا تا بگم
فکر کن علی یه فروشگاه کفش فروشی داره، میاد و یه مینی اپ تلگرامی طراحی میکنه، برای فروش کفش. عکس محصولاتش رو هم خیلی معمولی توی کانالش میذاره.
مینی اپ رو بخوام مثال بزنم، مثل نات کوین، همستر و... که بدون نیاز به دانلود، چیزی شبیه به اپلیکیشن رو توی تلگرام براتون باز میکنن.
نحوه پرداخت توی ویدیوی ببینید، چقدر ساده و فقط با یک کلیک.
فروش میتونه هرچیزی باشه. چه محصولات فیزیکی، چه محصولات دیجیتال. برای مثال میتونین با استارز، از من تبلیغ خریداری کنین.
⭐️ چه کاری باید انجام بدیم؟
بخش مهم کار اینجاست. با اومدن استارز، تلگرام به مقصد مهم و کلیدی برای کسب و کارها تبدیل میشه. هرکسی میتونه فروشگاه آنلاین خودش رو توی تلگرام داشته باشه، با ظاهری شیک و پرداختی خیلی راحت.
اگر فروشگاه آنلاین دارین، زود به فکر پیدا کردن برنامه نویس برای نوشتن مینی اپ فروشگاهتون باشین.
⭐️ از کجا استارز بخریم؟
درحال حاضر از طریق گوگلپلی، اپ استور و ربات @PremiumBot
برای کاربران ایرانی در دسترس نیست فعلا
فکر کن علی یه فروشگاه کفش فروشی داره، میاد و یه مینی اپ تلگرامی طراحی میکنه، برای فروش کفش. عکس محصولاتش رو هم خیلی معمولی توی کانالش میذاره.
مینی اپ رو بخوام مثال بزنم، مثل نات کوین، همستر و... که بدون نیاز به دانلود، چیزی شبیه به اپلیکیشن رو توی تلگرام براتون باز میکنن.
نحوه پرداخت توی ویدیوی ببینید، چقدر ساده و فقط با یک کلیک.
فروش میتونه هرچیزی باشه. چه محصولات فیزیکی، چه محصولات دیجیتال. برای مثال میتونین با استارز، از من تبلیغ خریداری کنین.
⭐️ چه کاری باید انجام بدیم؟
بخش مهم کار اینجاست. با اومدن استارز، تلگرام به مقصد مهم و کلیدی برای کسب و کارها تبدیل میشه. هرکسی میتونه فروشگاه آنلاین خودش رو توی تلگرام داشته باشه، با ظاهری شیک و پرداختی خیلی راحت.
اگر فروشگاه آنلاین دارین، زود به فکر پیدا کردن برنامه نویس برای نوشتن مینی اپ فروشگاهتون باشین.
⭐️ از کجا استارز بخریم؟
درحال حاضر از طریق گوگلپلی، اپ استور و ربات @PremiumBot
برای کاربران ایرانی در دسترس نیست فعلا
Forwarded from CodeCrafters (mahyar)
خب سلام دوستان. تصمیم گرفتم تو یکسری پست سریالی(دوره) در مورد فناوری های نوین و جدید و آینده دار که در ایران متاسفانه کمتر بهشون پرداخته شده بپردازیم و چیزای جدید رو یاد بگیریم.
فناوری های نوین مثل بلاکچین، وب 3 و کامپیوترهای کوانتومی که در حال تغییر جهان اینده هستند. در این دوره قصد داریم با این سه فناوری آشنا بشیم و بهمون کمک کنه تا درک عمیقی از آنها پیدا کنیم.
بخش اول: بلاکچین - انقلاب در دنیای دیجیتال
ما این دوره را با بلاکچین آغاز میکنیم، فناوریای که با تمرکززدایی، امنیت و شفافیت خود، تحولات عظیمی در ارزهای دیجیتال، قراردادهای هوشمند و مدیریت زنجیره تأمین ایجاد کرده است.
چرا بلاکچین؟
بلاکچین پایه و اساس ارزهای دیجیتال مانند بیتکوین و اتریوم است و کاربردهای فراتر از ارزهای دیجیتال دارد. در این بخش، شما با اصول پایهای بلاکچین، نحوه کارکرد و کاربردهای متنوع آن آشنا خواهید شد.
ساختار دوره
این دوره به 4 فصل کلیدی تقسیم شده است:
فصل 1: بلاکچین چیست و چگونه کار میکند
پس از تسلط بر بلاکچین، به سراغ وب 3 و سپس کامپیوترهای کوانتومی خواهیم رفت تا شما را برای آیندهای دیجیتالی و هوشمند آماده کنیم.
همچنین میتونید مطالب مرتبط با بلاکچین و وب3 رو و مطالب مرتبط با کامپیوتر های کوانتومی رو با هشتگ های زیر ازین پس در چنل پیدا کنید.
#blockchain
#web3
#quantum_computing
فناوری های نوین مثل بلاکچین، وب 3 و کامپیوترهای کوانتومی که در حال تغییر جهان اینده هستند. در این دوره قصد داریم با این سه فناوری آشنا بشیم و بهمون کمک کنه تا درک عمیقی از آنها پیدا کنیم.
بخش اول: بلاکچین - انقلاب در دنیای دیجیتال
ما این دوره را با بلاکچین آغاز میکنیم، فناوریای که با تمرکززدایی، امنیت و شفافیت خود، تحولات عظیمی در ارزهای دیجیتال، قراردادهای هوشمند و مدیریت زنجیره تأمین ایجاد کرده است.
چرا بلاکچین؟
بلاکچین پایه و اساس ارزهای دیجیتال مانند بیتکوین و اتریوم است و کاربردهای فراتر از ارزهای دیجیتال دارد. در این بخش، شما با اصول پایهای بلاکچین، نحوه کارکرد و کاربردهای متنوع آن آشنا خواهید شد.
ساختار دوره
این دوره به 4 فصل کلیدی تقسیم شده است:
فصل 1: بلاکچین چیست و چگونه کار میکند
1-بلاکچین چیستفصل 2: مفاهیم پایه ارز دیجیتال
2-بلاکچین چگونه کار میکند
3-کاربردهای بلاکچین
4-اولین بلاکچین و معروفترینها
1-بلاکچینهای معروف در حوزه ارزهای دیجیتالفصل 3: کاربردهای پیشرفته بلاکچی
2-استخراج (Mining)
3-کیف پولهای دیجیتال و امنیت
1-قراردادهای هوشمندفصل 4: ابزارها و تکنولوژیهای مرتبط با بلاکچین
2-دپس (DApps) و وب 3.0
3-بلاکچین در صنایع مختلف
4-آینده بلاکچی
1-زبانهای برنامهنویسی بلاکچینادامه مسیر: وب 3 و کامپیوترهای کوانتومی
2-پلتفرمهای توسعه و ابزارهای کاربردی
3-تحلیل دادههای بلاکچین
4-آموزش و منابع یادگ
پس از تسلط بر بلاکچین، به سراغ وب 3 و سپس کامپیوترهای کوانتومی خواهیم رفت تا شما را برای آیندهای دیجیتالی و هوشمند آماده کنیم.
همچنین میتونید مطالب مرتبط با بلاکچین و وب3 رو و مطالب مرتبط با کامپیوتر های کوانتومی رو با هشتگ های زیر ازین پس در چنل پیدا کنید.
#blockchain
#web3
#quantum_computing
👍5👌1
Forwarded from CodeCrafters (mahyar)
فصل اول
1-بلاکچین چیست؟
همه بلاکچین با بیت کوین میشناسند. البته که خیلی هم اتفاق عجیبی نیست بخاطر این که بیت کوین در بستر بلاکچین هست که معنا پیدا کرده.
اما جالبکه بدونید تاریخچه بلاکچین به مدت ها قبل مربوط میشه.بلاکچین در واقع یک مدل دیتابیس هست اما با یکسری تفاوت کلیدی.
خب این تفاوت ها چی هستن؟
1-تغییر ناپذیری و مدیریت داده ها
میشه گفت بلاکچین یک بانک اطلاعاتی است که به اشتراک گذاشته شده و اطلاعتش به کمک رمز نگاری خیلی امن شده و عملا انقلابی در شیوه ذخیره کردن اطلاعات به وجود اورده.
به طور کلی یکسری ردیف از اطلاعات در فضایی با حجم محدود(مثلا 1 مگابایت) ذخیره میشه. فرض کنیم اسم این فضا رو بلوک انتخاب کنیم حالا هرکدوم از این بلوک ها یک کد منحصر به فردی دارن که به بلوک قبلی مرتبط میشه به این صورت که بلوک هایی که دارای اطالاعات هستند با کمک یک زنجیره فرضی بهم وصل میشن.
در نتیجه هر تغییری در اطلاعات یک بلوک نیازمند تغییر همه بلوک های بعد اون است که این امر رو عملا غیر ممکن میکنه.
2-معماری
3-هزینه و پیادهسازی
4-سرعت و عملکرد
#blockchain
@code_crafters
1-بلاکچین چیست؟
همه بلاکچین با بیت کوین میشناسند. البته که خیلی هم اتفاق عجیبی نیست بخاطر این که بیت کوین در بستر بلاکچین هست که معنا پیدا کرده.
اما جالبکه بدونید تاریخچه بلاکچین به مدت ها قبل مربوط میشه.بلاکچین در واقع یک مدل دیتابیس هست اما با یکسری تفاوت کلیدی.
خب این تفاوت ها چی هستن؟
1-تغییر ناپذیری و مدیریت داده ها
به محض این که اطلاعاتی در بلاکچین ذخیره بشه به هیچ عنوان قابلیت
پاک شدن یا تغییر رو نداره
ما در دیتابیس عملیات CRUD رو داریم (create, read , update , delete)
اما بلاکچین از عملیات تغییر پذیری پیشتیبانی نمیکند. به عبارت دیگر در بلاکچین فقط فقط عملیات C&R(Read, Create) داریم.
به این معنی که داده های یک بار نوشته میشن و دیگه نمیتونن پاک بشن یا جایگزین بشن.
میشه گفت بلاکچین یک بانک اطلاعاتی است که به اشتراک گذاشته شده و اطلاعتش به کمک رمز نگاری خیلی امن شده و عملا انقلابی در شیوه ذخیره کردن اطلاعات به وجود اورده.
به طور کلی یکسری ردیف از اطلاعات در فضایی با حجم محدود(مثلا 1 مگابایت) ذخیره میشه. فرض کنیم اسم این فضا رو بلوک انتخاب کنیم حالا هرکدوم از این بلوک ها یک کد منحصر به فردی دارن که به بلوک قبلی مرتبط میشه به این صورت که بلوک هایی که دارای اطالاعات هستند با کمک یک زنجیره فرضی بهم وصل میشن.
در نتیجه هر تغییری در اطلاعات یک بلوک نیازمند تغییر همه بلوک های بعد اون است که این امر رو عملا غیر ممکن میکنه.
2-معماری
از نظر معماری، بلاکچین و دیتابیس متفاوت هستند.سایر تفاوتها
پایگاه داده بر اساس معماری کلاینت-سرور Client-server ساخته شده یکی معماری که هم در محیط های کوچک و هم در مقیاس های بزرگ موفقیت های زیادی داشته.
بلاکچین ها قابلیت این رو دارند که غیر متمرکز بشن یعنی هیچ نهادی واحدی بلاکچین رو کنترل نمیکنه . این بانک اطلاعاتی در شبکه های از کامپیوتر ها توضیع شده و تمامشون یک نسخه از این دیتابیس رو داره بخاطر همین میشه گفت هم شفافیت و هم صحت اطلاعات دائم در داخل شبکه تایید میشه . عملا این اتفاق الزام یک نهاد واسطه مثل سازمان ها و یا دولت ها که مجبور باشن نظارت داشته باشن رو از بین میبره. عملا بلاکچین میتونه روی یک شبکه با اجماع اکثریت به صورت خودمختار و قابل اعتماد اطلاعات رو نگه داری و پردازش کنه.
3-هزینه و پیادهسازی
4-سرعت و عملکرد
#blockchain
@code_crafters
👍2
Forwarded from CodeCrafters (Amirali)
فصل اول
2- بلاکچین چگونه کار میکند؟
بلاکچین را مجموعهای از بلاکها تصور کنید که به صورت زنجیرهوار به یکدیگر متصلاند.
1- ساختار هر بلاک
هر بلاک در زنجیره شامل 3 بخش اصلی است:
برای افزودن بلاک جدید به زنجیره، مراحل زیر انجام میشود:
هر تراکنش در بلاکچین به صورت عمومی قابل مشاهده و ردیابی است. این ویژگی باعث میشود تا تمامی تراکنشها شفاف و قابل اعتماد باشند. این شفافیت به ویژه در کاربردهایی مانند رایگیری الکترونیکی، مدیریت زنجیره تأمین و سیستمهای مالی بسیار مهم است.
تکمیلی:
بعضی از سایتهای تولید محتوا مانند ویکیپدیا و everpedia بر بستر بلاکچین هستند.که اصولا برای اضافه کردن بلاک جدید نیاز به حل معادلات پیچیده نیست،مثلا در سایت everpedia براساس یک سری الگورتیم های دیگه بلاکچین باشه که هیچ یک از این کار ها رو کاربر انجام نمیده.
بیشتر بخوانید:
الگوریتم های هشینگ Hashing algorithms
هش بلاک Block Hash
نود Node
#blockchain
@code_crafters
2- بلاکچین چگونه کار میکند؟
بلاکچین را مجموعهای از بلاکها تصور کنید که به صورت زنجیرهوار به یکدیگر متصلاند.
1- ساختار هر بلاک
هر بلاک در زنجیره شامل 3 بخش اصلی است:
1.1- داده (Data): این بخش شامل اطلاعاتی است که بلاک ذخیره میکند. برای نمونه، در بلاکچین بیتکوین دادهها شامل جزئیات هر تراکنش است مانند فرستنده، گیرنده و مقدار بیتکوین انتقال داده شده.2- فرایند افزودن بلاک به زنجیره
1.2- هش بلاک (Block Hash): هر بلاک دارای یک کد منحصر به فرد به نام هش است که با استفاده از الگوریتمهای رمزنگاری تولید میشود. هش یک بلاک مانند اثر انگشت آن بلاک است و کوچکترین تغییری در جزئیات دادههای بلاک، هش آن را به کلی تغییر میدهد.
الگوریتمهای هشینگ توابع ریاضی یکطرفهای هستند که ورودی آن هر چیزی میتواند باشد اما خروجی آن یک مقدار منحصر به فرد با اندازه ثابت است. یکطرفه بودن این توابع به این معناست که با داشتن خروجی نمیتوان به داده ورودی آن دست پیدا کرد.
1.3- هش بلاک قبلی (Previous Block Hash): هر بلاک حاوی هش بلاک قبلی است که به آن متصل است. این ویژگی باعث ایجاد زنجیرهای از بلاکها میشود و امنیت و تغییرناپذیری بلاکچین را تضمین میکند.
برای افزودن بلاک جدید به زنجیره، مراحل زیر انجام میشود:
2.1- تایید تراکنشها (Transaction Verification): ابتدا تراکنشهای جدید توسط نودهای شبکه تایید میشوند. این تایید شامل بررسی صحت امضاهای دیجیتال و اطمینان از عدم تکراری بودن تراکنشها است.شفافیت و قابلیت ردیابی
2.2- حل مسئله ریاضی (Proof of Work): برای اضافه کردن بلاک جدید به زنجیره، نودها باید یک مسئله ریاضی پیچیده را حل کنند که به آن اثبات کار میگویند. این فرآیند نیازمند قدرت محاسباتی زیادی است و زمان و انرژی زیادی مصرف میکند.
2.3- اضافه شدن به زنجیره (Block Addition): پس از حل مسئله و تایید صحت بلاک جدید توسط سایر نودهای شبکه، بلاک به زنجیره اضافه میشود.
هر تراکنش در بلاکچین به صورت عمومی قابل مشاهده و ردیابی است. این ویژگی باعث میشود تا تمامی تراکنشها شفاف و قابل اعتماد باشند. این شفافیت به ویژه در کاربردهایی مانند رایگیری الکترونیکی، مدیریت زنجیره تأمین و سیستمهای مالی بسیار مهم است.
تکمیلی:
بعضی از سایتهای تولید محتوا مانند ویکیپدیا و everpedia بر بستر بلاکچین هستند.که اصولا برای اضافه کردن بلاک جدید نیاز به حل معادلات پیچیده نیست،مثلا در سایت everpedia براساس یک سری الگورتیم های دیگه بلاکچین باشه که هیچ یک از این کار ها رو کاربر انجام نمیده.
بیشتر بخوانید:
الگوریتم های هشینگ Hashing algorithms
هش بلاک Block Hash
نود Node
#blockchain
@code_crafters
Forwarded from CodeCrafters (mahyar)
فصل اول
3-کاربردهای بلاکچین
بلاکچین به دلیل ویژگیهای منحصر به فرد خود، کاربردهای متنوعی در صنایع و حوزههای مختلف دارد. در این درس به بررسی برخی از مهمترین کاربردهای بلاکچین میپردازیم.
1- ارزهای دیجیتال
2- قراردادهای هوشمند
3- زنجیره تأمین
4- رأیگیری الکترونیکی
5- بهداشت و درمان
6- مدیریت
نتیجهگیری
@code_craftesr
3-کاربردهای بلاکچین
بلاکچین به دلیل ویژگیهای منحصر به فرد خود، کاربردهای متنوعی در صنایع و حوزههای مختلف دارد. در این درس به بررسی برخی از مهمترین کاربردهای بلاکچین میپردازیم.
1- ارزهای دیجیتال
اولین و معروفترین کاربرد بلاکچین، ارزهای دیجیتال یا رمزارزها هستند. بیتکوین و اتریوم به عنوان نمونههای اصلی این دسته، توانستهاند با استفاده از بلاکچین، پرداختها و تراکنشهای مالی را به صورت امن و غیرمتمرکز انجام دهند.
- بیتکوین: به عنوان اولین ارز دیجیتال، بیتکوین امکان انجام تراکنشهای همتا به همتا را بدون نیاز به واسطهها فراهم کرده است.
- اتریوم: علاوه بر قابلیتهای بیتکوین، اتریوم پلتفرمی برای اجرای قراردادهای هوشمند و توسعه برنامههای غیرمتمرکز ارائه میدهد.
2- قراردادهای هوشمند
قراردادهای هوشمند (Smart Contracts) برنامههایی هستند که بر روی بلاکچین اجرا میشوند و شرایط قراردادی را به صورت خودکار و بدون نیاز به واسطههای سنتی اجرا میکنند.
- مزایا: حذف واسطهها، کاهش هزینهها و افزایش سرعت اجرای قراردادها.
- مثال: میتوان از قراردادهای هوشمند برای اتوماسیون فرآیندهای حقوقی، بیمه و معاملات املاک استفاده کرد.
3- زنجیره تأمین
بلاکچین میتواند شفافیت و کارایی زنجیره تأمین را بهبود بخشد. از تولید تا مصرف، هر مرحله از زنجیره تأمین میتواند به صورت امن و قابل ردیابی در بلاکچین ثبت شود.
- مزایا: افزایش شفافیت، کاهش تقلب و بهبود مدیریت موجودی.
- مثال: پیگیری محصولات غذایی از مزرعه تا فروشگاه برای اطمینان از کیفیت و اصالت کالا.
4- رأیگیری الکترونیکی
استفاده از بلاکچین در سیستمهای رأیگیری الکترونیکی میتواند شفافیت و امنیت انتخابات را افزایش دهد.
- مزایا: جلوگیری از تقلب، افزایش شفافیت و امکان رأیگیری از راه دور.
- مثال: پیادهسازی سیستمهای رأیگیری برای انتخابات ملی و محلی با استفاده از بلاکچین
5- بهداشت و درمان
در حوزه بهداشت و درمان، بلاکچین میتواند به اشتراکگذاری امن و کارآمد اطلاعات پزشکی بین بیماران، پزشکان و مراکز درمانی کمک کند.
- مزایا: افزایش امنیت و حریم خصوصی، بهبود هماهنگی بین مراکز درمانی و کاهش هزینهها.
- مثال: ایجاد پروندههای پزشکی الکترونیکی بر روی بلاکچین که تنها توسط افراد مجاز قابل دسترسی باشد
6- مدیریت
هویت
بلاکچین میتواند به ایجاد سیستمهای مدیریت هویت دیجیتال امن و غیرمتمرکز کمک کند.
- مزایا: افزایش امنیت اطلاعات شخصی، کاهش تقلب و سوء استفاده از هویت.
- مثال: ایجاد شناسههای دیجیتال برای افراد که به صورت امن در بلاکچین ذخیره میشوند و در دسترسی به خدمات مختلف مورد استفاده قرار میگیرند
نتیجهگیری
بلاکچین با ویژگیهای منحصر به فرد خود، کاربردهای فراوانی در صنایع و حوزههای مختلف دارد. این فناوری میتواند به بهبود شفافیت، امنیت و کارایی فرآیندها کمک کرده و نوآوریهای جدیدی را در دنیای دیجیتال به ارمغان آورد. در درسهای بعدی، به بررسی عمیقتر سایر مفاهیم و کاربردهای بلاکچین خواهیم پرداخت.#blockchain
@code_craftesr