ru
Feedback
The Commit

The Commit

Открыть в Telegram

توسعه میدیم و توی راه توسعه چالش ها و مشکلات رو به اشتراک میزاریم (: @TheLinuxGP

Больше
419
Подписчики
+124 часа
+27 дней
+630 день
Архив постов
نظرتونو جلب میکنم به این کامیتی که الان برای باکس مووی زدم 🌚
نظرتونو جلب میکنم به این کامیتی که الان برای باکس مووی زدم 🌚

LINUX USERS ARE NOT HACKERS! LINUX USERS ARE NOT HACKERS! LINUX USERS ARE NOT HACKERS! LINUX USERS ARE NOT HACKERS! LINUX USERS ARE NOT HACKERS! LINUX USERS ARE NOT HACKERS! LINUX USERS ARE NOT HACKERS!

میگن که ۲۲ بهمن قراره تلگرام و یوتیوب رفع بشن ولی چند ساله این حرف زده میشه ! میمونیم بینم چی میشه ( روش حساب نکنید😂 )

در مورد الگوهای طراحی توی یک پست جدا صحبت میکنم

۳. کد اسپاگتی (Spaghetti Code) به نوعی از کد اشاره داره که خیلی به‌هم‌ریخته و بی‌نظم نوشته شده و در نتیجه خوندن و درک کردنش سخت میشه. وقتی کد شما مثل یه کاسه اسپگتی درهم و برهم می‌شه، باید مراقب باشید چون این کار باعث میشه که دیگه به‌راحتی نتونید مشکلات رو پیدا کنید یا تغییرات لازم رو اعمال کنید. این نوع کد معمولاً به خاطر نداشتن ساختار و عدم رعایت الگوهای مناسب طراحی ایجاد می‌شه. مثال: فرض کنید ما قصد داریم یک برنامه ساده برای مدیریت کتاب‌ها بنویسیم. در اینجا یک مثال از کد Spaghetti Code رو می‌بینید:

books = []

def add_book(title, author, year):
    books.append({'title': title, 'author': author, 'year': year})
    print(f"کتاب '{title}' با موفقیت اضافه شد.")

def list_books():
    if not books:
        print("هیچ کتابی وجود ندارد.")
    else:
        for book in books:
            print(f"عنوان: {book['title']}, نویسنده: {book['author']}, سال: {book['year']}")

def delete_book(title):
    for book in books:
        if book['title'] == title:
            books.remove(book)
            print(f"کتاب '{title}' حذف شد.")
            return
    print(f"کتاب '{title}' پیدا نشد.")


add_book("کتاب اول", "نویسنده اول", 2021)
add_book("کتاب دوم", "نویسنده دوم", 2020)
list_books()
delete_book("کتاب اول")
list_books()

توی این کد، همه‌ی منطق‌ها در یک فایل و بدون هیچ گونه ساختار خاصی شکل گرفته. با افزایش تعداد کتاب‌ها یا ویژگی‌ها، مدیریت این کد به شدت دشوار و احتمال بروز خطا بیشتر میشه. به طور کلی برای جلوگیری از Spaghetti Code، پیشنهاد میشه که کد خودتون رو به ماژول‌های کوچیک‌تر و منظم‌تر تقسیم کنید و از الگوهای طراحی استفاده کنید تا کد شما قابل نگهداری و فهم‌تر بشه.

چون من دیدم شماهم ببینید اولین بلاک از بیت کوین که ریواردی که داده ( جایزه ) ۵۰ تا بیت کوین هستش چیزی حدود ۴،۵ میلیون دلار با قیمت ۹۰ هزار تا ! https://www.blockchain.com/explorer/blocks/btc/0

هروقت خواستی ناامید بشی به این فکر کن توی لینکدین طرف میگه 9.11 از 9.9 بزرگتره🥸
هروقت خواستی ناامید بشی به این فکر کن توی لینکدین طرف میگه 9.11 از 9.9 بزرگتره🥸

۲. شیء خدا (God Object) در برنامه‌نویسی شیءگرا به شیء یا کلاسی اشاره داره که تمام کارها رو انجام و همه‌چیز رو میدونه!. این موضوع می‌تونه به پیچیدگی و درهم ریختگی کد هم منجر بشه. مثلا یک شیء می‌تونه مسئولیت‌های زیادی رو بر عهده بگیره، که باعث سردرگمی و دشواری نگهداری می‌شه روش صحیح اینه که مشکلات بزرگ رو به بخش‌های کوچک‌‌تر تقسیم کنیم. هر شی باید تنها مسئولیت‌های خاصی رو در راستای حل یک مشکل محدود بر عهده بگیره. این کار کمک می‌کنه تا کد سازماندهی‌شده و قابل‌فهم‌تری داشته باشیم. مثالی برای شی‌ خدا بصورت زیر هست:

class ShoppingCart:
    def __init__(self):
        self.items = []
    
    def add_item(self, item):
        self.items.append(item)
    
    def remove_item(self, item):
        self.items.remove(item)
    
    def checkout(self):
        total = sum(item.price for item in self.items)
        print(f'Total amount: {total}')


cart = ShoppingCart()
cart.add_item(Item("Apple", 1.5))
cart.add_item(Item("Banana", 1.0))
cart.checkout()

۲. شیء خدا (God Object) در برنامه‌نویسی شیءگرا به شیء یا کلاسی اشاره داره که تمام کارها رو انجام و همه‌چیز رو میدونه!. این موضوع می‌تونه به پیچیدگی و درهم ریختگی کد هم منجر بشه. مثلا یک شیء می‌تونه مسئولیت‌های زیادی رو بر عهده بگیره، که باعث سردرگمی و دشواری نگهداری می‌شه روش صحیح اینه که مشکلات بزرگ رو به بخش‌های کوچک‌‌تر تقسیم کنیم. هر شی باید تنها مسئولیت‌های خاصی رو در راستای حل یک مشکل محدود بر عهده بگیره. این کار کمک می‌کنه تا کد سازماندهی‌شده و قابل‌فهم‌تری داشته باشیم. مثالی برای شی‌ خدا بصورت زیر هست:

class ShoppingCart:
    def __init__(self):
        self.items = []
    
    def add_item(self, item):
        self.items.append(item)
    
    def remove_item(self, item):
        self.items.remove(item)
    
    def checkout(self):
        total = sum(item.price for item in self.items)
        print(f'Total amount: {total}')


cart = ShoppingCart()
cart.add_item(Item("Apple", 1.5))
cart.add_item(Item("Banana", 1.0))
cart.checkout()

کتابخانه Tortoise ORM در پایتون یکی از ابزارهای جذاب برای کار با دیتابیس‌هاست. این کتابخانه به صورت غیرهمزمان (asynchronous) طراحی شده و می‌توانه با پایگاه‌ها داده‌هایی مثل PostgreSQL، MySQL و SQLite ارتباط برقرار کنه. https://tortoise.github.io/

۱. اختراع دوباره چرخ در دنیای نرم‌افزار به معنای تکرار کارهایی هست که قبلا توسط بقیه انجام شده. به عبارتی، وقتی برنامه‌نویس به جای استفاده از راه‌حل‌های موجود، به سراغ ایجاد دوباره ابزار یا متدهایی می‌ره که قبلا ساخته شده‌، به این وضعیت به اصطلاح می‌گن اختراع دوباره چرخ. این موضوع اتلاف وقت و منابع رو در پی داره. چرا که برنامه‌نویس به جای اینکه روی مشکلات جدید تمرکز کنه، به سراغ مسائلی می‌ره که بقیه قبلا اون‌ها رو حل کردن. توصیه میشه تیم‌ها به جای اختراع دوباره، از ابزارها و کتابخانه‌های موجود استفاده کنن و روی نواوری‌های واقعی و حل مشکلات جدید تمرکز کنن. این شیوه باعث میشه بهره‌وری بیشتری داشته باشن و زمان و تلاش خودشون رو به شکل بهتری مدیریت کنن

ضدالگوها در صنعت نرم‌افزار قصد دارم از امشب طی چند پست مجزا به موضوعی جالب در دنیای توسعه نرم‌افزار بپردازم: "ضدالگوها". شاید تا حالا اسمش رو شنیده باشید، اما بیاید یه نگاهی بهش بندازیم. ضدالگوها، همین‌طور که از اسمشون پیداست، الگوهای منفی‌ای هستن که می‌تونن پروژه‌های نرم‌افزاری رو به خطر بندازن. در واقع، اینها رفتارها یا تصمیماتی هستن که در ظاهر ممکنه منطقی به نظر بیان، ولی در نهایت به مشکلات بزرگی منجر می‌شن. امشب اولین پست رو میزارم. طولانی نیستن و گمون نمی‌کنم از ۴ - ۵ پست بیشتر بشه

اینشتین، هایزنبرگ و نیوتن داشتن قایم موشک بازی می‌کردن. اینشتین چشم می‌ذاره؛ شمردنش که تموم می‌شه برمیگرده می‌بینه نیوتن یه مربع یک در یک کشیده توش وایستاده. سریع می‌گه پیدات کردم! نیوتن سُک سُک. نیوتن می‌گه نخیر من که نیوتن نیستم. اینشتین می‌پرسه یعنی چی پلشت؟ نیوتن جواب می‌ده من توی یک مربع یک در یک هستم که من رو نیوتن برمتر مربع می‌کنه. از اونجایی که نیوتن برمتر مربع برابر یک پاسکال می‌شه، بنابراین من پاسکالم. پس باید می‌گفتی پاسکال سُک سُک.

خب بکدور خوشگلی زدم روش سرویس ها به حالت پایدار برگشتن میتونید بدون مشکل استفاده کنید.

من دهن اون کسی که اومد درگاه پرداخت صرافیا رو بست …

متاسفانه دیتاسنتر زیر حملات DDoS هستش و فعلا سرور کلا قطع هستش!

بلوک دیاگرام بیسیک cpu هستش… همون بیوی گیت هابم ( step by step ) تمام پروژه های توی دنیا همینجورین و وقتی مرحله و با برنامه ب
بلوک دیاگرام بیسیک cpu هستش… همون بیوی گیت هابم ( step by step ) تمام پروژه های توی دنیا همینجورین و وقتی مرحله و با برنامه برید جلو وقتی به ارور یا مشکلی بخورید دیباگ کردن خیلی اسون تر میشه خدا میدونه چقدر برای طراحیش فکر و خلاقیت و تحقیق پشتشه خوشحال میشم اگر کسی بیشتر میدونه بهمون در موردش بگه (((:

😏

Downloaded by @MegaSaverBot 🤖

غم انگیز که گفتم منظورم برای انویدیا هستش وگرنه منم مخالف این هستم که بعضی از دوستان میگن چون ساخت چین هستش نباید باهاش کار کرد…