teachify | Unsorted

Telegram-канал teachify - برنامه نویسی | Teachify

10327

برای موفق شدن 🌱 با این عبارت خداحافظی کن: "باشه فردا"🍃 💻 برای دسترسی راحت تر به مطالب به "لیست پین شده" برو🙃 👩‍💻 Support: @narges_madhi 🪧 ads: @teachifyads 💁‍♀️ instagram : instagram.com/teachify_ir

Subscribe to a channel

برنامه نویسی | Teachify

✔️ بهترین مهندس‌های نرم‌افزار، تنبل‌ترین‌ها هستند

در ادبیات مهندسی نرم‌افزار، «تنبلی» به‌هیچ‌وجه به معنای کم‌کاری یا بی‌مسئولیتی نیست؛
بلکه به نوعی تفکر بهینه‌محور اشاره دارد.

مهندس نرم‌افزار «تنبل» فردی است که:

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

نتیجه چنین رویکردی، تولید نرم‌افزاری است که:

+ پایدارتر است
+ نگه‌داری آسان‌تری دارد
+ و در بلندمدت هزینه کمتری تحمیل می‌کند

به‌همین دلیل است که در نگاه حرفه‌ای،
«تنبلی» نه یک ضعف، بلکه یکی از نشانه‌های بلوغ مهندسی محسوب می‌شود.

همان‌طور که Larry Wall (خالق Perl) بیان می‌کند:

> سه فضیلت یک برنامه‌نویس: تنبلی، بی‌صبری و غرور

@Teachify | برنامه‌نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ نکته آموزشی پایتون | بررسی Reference و Copy

a = [1, 2, 3]
b = a
b.append(4)
print(a)

خروجی:
[1, 2, 3, 4]

در پایتون، دستور زیر:
b = a
منجر به ایجاد یک کپی مستقل از لیست نمی‌شود؛
بلکه متغیر b تنها به همان شیء‌ای اشاره می‌کند که a به آن متصل است.
به بیان دقیق‌تر، هر دو متغیر به یک reference مشترک در حافظه اشاره دارند.
در نتیجه، هرگونه تغییر روی لیست از طریق b، مستقیماً روی a نیز اعمال می‌شود.

■ در صورتی که نیاز به ایجاد یک کپی مستقل از لیست دارید، باید از یکی از روش‌های زیر استفاده کنید:
b = a.copy()
# or
b = list(a)
# or
b = a[:]

در این حالت، تغییرات اعمال‌شده روی b تأثیری بر a نخواهند داشت.

لیست‌ها در پایتون از نوع mutable هستند و عمل انتساب (=) تنها reference را منتقل می‌کند، نه خود داده را.
@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ 8 مدل LLM مناسب اجرا روی لوکال (دسامبر 2025)

1️⃣ Devstral-2-123B
بهترین برای برنامه‌نویسی
مخصوص توسعه نرم‌افزار، دیباگ، ریفکتور و ساخت Agent

2️⃣ MiniMax-M2
Agent + Coding + UI
مناسب فول‌استک و پروتوتایپ سریع

3️⃣ GLM-4.5-Air
بهترین انتخاب کلی
روزمره، سریع و پایدار

4️⃣ Qwen3-VL-235B-A22B
متن + تصویر
بهترین مدل بینایی (VLM)

5️⃣ GLM-4.6 (REAPed)
استدلال قوی + کدنویسی پیشرفته
قدرت بالا در مسائل پیچیده

6️⃣ Nemotron-3-Nano-30B-A3B
سبک ولی قدرتمند
کیفیت بالا با مصرف کمتر

7️⃣ GPT-OSS-120B
GPT-5 روی سیستم خودت
Agent و Coding سنگین

8️⃣ GPT-OSS-20B
سریع و کم‌مصرف
مناسب Automation و Tool Calling

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ چه بلایی سر MinIO اومده؟

تیم توسعه MinIO رسماً اعلام کرده است که نسخه متن‌باز MinIO وارد Maintenance Mode شده است.

- توسعه فعال نسخه Community متوقف شده است
- رفع مشکلات تنها برای باگ‌های امنیتی حیاتی انجام می‌شود
- افزودن قابلیت‌های جدید یا بهبودهای عمده دیگر در نسخه متن‌باز ارائه نخواهد شد
- تمرکز تیم توسعه اکنون به سمت نسخه Enterprise با نام AIStor معطوف شده است

—> به عبارت دیگر، نسخه متن‌باز MinIO دیگر در حال رشد و توسعه فعال نیست و تنها برای اطمینان از ثبات و امنیت نگه‌داری می‌شود.

پیامدها برای کاربران:

_ پروژه‌هایی که روی نسخه Community بنا شده‌اند، ممکن است نیازمند بازبینی و برنامه‌ریزی بلندمدت باشند
- انتشار باینری‌ها و تصاویر رسمی Docker/Helm نسخه متن‌باز متوقف شده است
- مدیریت و تنظیمات پیشرفته UI به نسخه Enterprise منتقل شده است

جایگزین‌های متن‌باز معتبر:

Ceph
SeaweedFS
Garage
Zenko

🔗 لینک رسمی پروژه: MinIO GitHub

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

برنامه نویس های عزیز شما دلتون گرفتنی چیکار میکنید؟

Читать полностью…

برنامه نویسی | Teachify

✔️ تفاوت set و frozenset در پایتون

در پایتون، دو نوع ساختار برای کار با مجموعه‌های غیرتکراری وجود دارد: set و frozenset
تفاوت اصلی آن‌ها در قابلیت تغییر است:

▪️set (قابل تغییر – Mutable)

s = {1, 2, 3}
s.add(4)        #افزودن عنصر
s.remove(2)     # حذف عنصر
print(s)        # خروجی: {1, 3, 4}

کاربرد: زمانی که داده‌ها در طول برنامه نیاز به به‌روزرسانی دارند.

▪️frozenset (غیرقابل تغییر – Immutable)
fs = frozenset([1, 2, 3])
print(fs)       # خروجی: frozenset({1, 2, 3})
# fs.add(4)
#خطا: frozenset قابل تغییر نیست

کاربرد: داده‌های ثابت و hashable

weights = {frozenset(["سیب", "موز"]): 120}
key = frozenset(["موز", "سیب"])
print(weights[key])  # خروجی: 120

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

💸 دنیای پردرآمد Devops رو کشف کن!

شروع ثبت‌نام دومین بوت‌کمپ آموزشی استخدامی دواپس مکتب شریف 😍

🎯 اگه تو هم می‌خوای از صفر تا صد دواپس رو یاد بگیری و به یه مهندس دواپس حرفه‌ای تبدیل بشی، بوت‌کمپ دواپس مکتب شریف با آموزش‌های عملی و پروژه محور، همه چیز رو بهت یاد میده.

🔔 مشاوره و ثبت‌نام در: httb.ir/7Gr9u ➡️

💭 گفتگو با مشاور ثبت‌نام هوشمند‌‌‌‌ مکتب 🔽

🆔 @MaktabSharif_Admin

#مکتب_شریف
🟣🟣🟣🟣🟣🟣

Читать полностью…

برنامه نویسی | Teachify

✔️ کنترل همزمانی در تراکنش‌های مالی و جلوگیری از Race Condition / Double Spending

در سرویس‌های مالی، اگر چند درخواست برداشت همزمان به یک حساب برسد، هر دو موجودی را در یک لحظه می‌خوانند و هر دو تراکنش را تأیید می‌کنند؛ نتیجه: برداشت بیش از موجودی و ایجاد Double Spending.

برای جلوگیری از این اتفاق، از قفل‌گذاری Redis استفاده می‌شود:

SET lock:user_id unique_token NX PX 10000


این دستور چه می‌کند؟


🔸 NX
فقط اگر قفل قبلاً وجود نداشته باشد، ثبت می‌شود؛ یعنی تنها یک فرآیند قفل را می‌گیرد.

🔸 PX 10000
قفل بعد از ۱۰ ثانیه خودکار آزاد می‌شود تا Deadlock رخ ندهد.

🔸 unique_token
یک UUID که تضمین می‌کند فقط صاحب قفل بتواند آن را آزاد کند.

با این مکانیزم، عملیات حساس روی حساب به‌صورت انحصاری انجام می‌شود و احتمال Double Spending از بین می‌رود.

@Teachify | برنامه‌نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ معرفی Antigravity – IDE جدید و انقلابی گوگل

گوگل با معرفی IDE جدید خودش به نام Antigravity نگاه تازه‌ای به توسعه نرم‌افزار ارائه داده. این IDE بر پایه Agent طراحی شده و هوش مصنوعی فقط پیشنهاد نمی‌دهد، بلکه می‌تواند خودش برنامه‌ریزی کند، کد بزند، اجرا کند، تست بگیرد و نتیجه را تحلیل کرده و مرحله بعد را انتخاب کند؛ مثل یک توسعه‌دهنده واقعی داخل محیط IDE.

ایجنت فقط متن تولید نمی‌کند و به ابزارها دسترسی مستقیم دارد. می‌تواند دستور در ترمینال اجرا کند، پروژه را در مرورگر تست بگیرد، اسکرین‌شات ثبت کند و همه این مراحل قابل بازبینی باشند؛ یعنی نتیجه عملی است، نه صرفاً تئوری.

همچنین Antigravity فقط محدود به Gemini 3 Pro نیست و امکان استفاده از مدل‌هایی مثل Claude Sonnet 4.5 و حتی مدل‌های متن‌باز وجود دارد که آزادی بیشتری به تیم‌ها می‌دهد.

این IDE به مرور از سبک کاری تیم یاد می‌گیرد و هرچه پروژه جلو برود، خروجی‌ها هوشمندتر و شخصی‌تر می‌شوند.

https://antigravity.google/

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ مسیر یک API از مرورگر تا بک‌اند یک سامانه جنگویی

🌐 مرورگر (Browser): درخواست‌ها را به سرور می‌فرستد.
📍 سیستم نام دامنه (DNS): نام سایت را به آی‌پی تبدیل می‌کند.
⚖️ لود بالانسر (Load Balancer): ترافیک را بین سرورها تقسیم می‌کند تا سرورها شلوغ نشوند.
🖥 سرور وب (Nginx): فایل‌های ثابت را ارائه می‌دهد و ارتباط امن (SSL) را مدیریت می‌کند.
🚀 سرور اپلیکیشن (Gunicorn / Uvicorn): درخواست‌ها را دریافت و به جنگو می‌فرستد.
🧩 میان‌افزار جنگو (Django Middleware): پردازش میانی و بررسی امنیت یا اعتبار درخواست‌ها.
🗺 مسیر‌یاب URL (URL Router): تعیین می‌کند که درخواست به کدام ویو برود.
💡 ویو (View): منطق کسب‌وکار را پردازش می‌کند.
💾 مدیریت پایگاه‌داده (ORM): داده‌ها را از پایگاه‌داده خوانده یا در آن ذخیره می‌کند.
🔄 سریالایزر (Serializer): داده‌ها را به فرمت مناسب (مثلاً JSON) تبدیل می‌کند.
📤 پاسخ (Response): نتیجه پردازش به مرورگر بازمی‌گردد.

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ فرمت TOON چیه و چرا این‌قدر ترند شده؟

فرمت TOON در اصل یک روش نوشتاری ساده و فشرده برای نمایش داده‌های ساختاریافته‌ست؛ خیلی شبیه JSON، اما خواناتر برای انسان و بسیار سبک‌تر برای مدل‌های زبانی.
این فرمت عملاً یک فایل‌فرمت واقعی نیست و بیشتر به‌عنوان یک شیوهٔ نمایش داده طراحی شده تا زمانی که دادهٔ زیاد به هوش مصنوعی می‌فرستیم، مصرف توکن به حداقل برسه.
در TOON نشانه‌های اضافی مثل آکولادها و براکت‌ها حذف می‌شن و داده‌ها فقط با تورفتگی و چینش منظم نمایش داده می‌شن؛ درست شبیه YAML اما حتی ساده‌تر. به همین دلیل داده‌ها هم راحت‌تر خوانده می‌شن و هم حجم کمتری مصرف می‌کنن.
در مجموع، TOON انتخابی مناسب برای زمانی‌ست که با داده‌های حجیم کار می‌کنید و می‌خواید ورودی هوش مصنوعی هم تمیزتر باشه و هم سبک‌تر.

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ روش‌های فراخوانی متدها در پایتون

در پایتون، متدها را می‌توان به چند روش مختلف فراخوانی کرد:

▪️ فراخوانی متد روی نمونه (Instance Method)

+ رایج‌ترین روش فراخوانی متد است.
+ متد روی یک شیء (نمونه) از کلاس اجرا می‌شود.

class Person:
def greet(self, name):
print(f"Hello, {name}!")

p = Person()
p.greet("Ali") # خروجی: Hello, Ali!


▪️ فراخوانی متد کلاس (Class Method)

+ متدهای کلاس با @classmethod تعریف می‌شوند.
+ می‌توان آن‌ها را روی کلاس یا نمونه فراخوانی کرد.

class Person:
population = 0

@classmethod
def increase_population(cls):
cls.population += 1
print(cls.population)

Person.increase_population() # خروجی: 1


▪️ فراخوانی متد استاتیک (Static Method)

+ متدهای استاتیک با @staticmethod تعریف می‌شوند.
+ می‌توان آن‌ها را بدون نیاز به نمونه فراخوانی کرد.

class Math:
@staticmethod
def add(a, b):
return a + b

print(Math.add(5, 3)) # خروجی: 8


▪️ فراخوانی متد با نام دینامیک (getattr)

+ می‌توان نام متد را به صورت رشته ذخیره و سپس فراخوانی کرد.

class Person:
def greet(self):
print("Hello!")

p = Person()
method_name = "greet"
getattr(p, method_name)() # خروجی: Hello!


▪️ فراخوانی متد کلاس والد (`super`)

+ برای فراخوانی متدهای کلاس والد در کلاس فرزند استفاده می‌شود.

class Animal:
def speak(self):
print("Animal sound")

class Dog(Animal):
def speak(self):
super().speak()
print("Bark!")

d = Dog()
d.speak()
# خروجی:
# Animal sound
# Bark!


@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ ابزار آموزشی گوگل برای یادگیری برنامه‌نویسی به روش بلوکی

گوگل یه ابزار متن‌باز داره به نام Blockly که به شما اجازه می‌ده با کشیدن و رها کردن بلوک‌ها، منطق برنامه‌نویسی رو یاد بگیرید!

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

راهنمای استفاده و مستندات رسمی گوگل:
developers.google.com/blockly

پ.ن: پیشنهاد می‌کنم اگر مربی، معلم یا مدرس برنامه‌نویسی هستید، حتماً از این ابزار برای آموزش مفاهیم پایه استفادها کنید.

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ چطور مثل یک برنامه‌نویس فکر کنیم؟

بیشتر تازه‌کارها مستقیم سراغ کدنویسی می‌روند، اما برنامه‌نویس واقعی اول فکر می‌کند، بعد کد می‌نویسد.

چهار گام طلایی برای «فکر کردن مثل یک برنامه‌نویس»:
1️⃣ درک مسئله — دقیق بفهم چی می‌خواهی بنویسی. ورودی و خروجی را مشخص کن.
2️⃣ طراحی راه‌حل — قبل از نوشتن کد، الگوریتم را روی کاغذ یا در ذهنت مرور کن.
3️⃣ پیاده‌سازی تدریجی — از ساده‌ترین نسخه شروع کن و کم‌کم بهترش کن.
4️⃣ بازبینی و بهینه‌سازی — کد را تمیز، سریع و قابل‌خواندن کن.

یک مثال با هدف: تشخیص اینکه عددی اول است یا نه؟

منطق قبل از کدنویسی:

اگر عدد کمتر از ۲ بود → اول نیست

از ۲ تا ریشه‌ی عدد را بررسی کن

اگر عددی پیدا شد که بر آن بخش‌پذیر بود → اول نیست

اگر نه → اول است ✅

import math

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True

نکته: برنامه‌نویس حرفه‌ای کسی است که قبل از نوشتن کد، مسئله را حل کرده باشد.

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ معرفی وب‌سایت Refactoring.Guru

این وب‌سایت یکی از منابع معتبر و شناخته‌شده در زمینه‌ی آموزش الگوهای طراحی نرم‌افزار (Design Patterns)، بازآرایی کد (Refactoring) و اصول طراحی شی‌ءگرا (SOLID Principles) است.

این وب‌سایت با زبانی روان و همراه با مثال‌های متنوع، مفاهیم پیچیده‌ی طراحی نرم‌افزار را به‌صورت ساده و کاربردی توضیح می‌دهد. در هر بخش، علاوه بر توضیح تئوری، نمونه‌کدهایی در زبان‌های مختلف از جمله Python، Java، C#، PHP و TypeScript ارائه شده است تا درک موضوع برای برنامه‌نویسان در سطوح مختلف آسان‌تر شود.

▪️ویژگی‌های برجسته Refactoring.Guru:

+ توضیح گام‌به‌گام مفاهیم طراحی و معماری نرم‌افزار

+ ارائه‌ی نمودارها و مثال‌های تصویری برای هر الگو

+ مقایسه‌ی مزایا، معایب و کاربردهای هر Design Pattern

+ آموزش روش‌های بازآرایی کد برای بهبود ساختار و خوانایی آن

این وب‌سایت برای برنامه‌نویسانی که به دنبال ارتقای مهارت‌های طراحی و نوشتن کدهای تمیز و قابل نگهداری هستند، منبعی ارزشمند و قابل اتکا به‌شمار می‌رود.

🌐 https://refactoring.guru

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ سال نو میلادی مبارک
امیدوارم 2026 برای همه‌ی ما ایرانی‌ها، هر کجای دنیا که هستیم، سالی پر از آرامش، پیشرفت و خبرهای خوب باشه ❤️

@Teachify | برنامه‌نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ داکر Hardened Images خود را به‌صورت رایگان و متن‌باز منتشر شد

شرکت Docker اعلام کرده است که Docker Hardened Images (DHI) را برای استفاده‌ی عمومی، به‌صورت رایگان و Open Source در دسترس قرار داده است.

این ایمیج‌ها با تمرکز بر امنیت زنجیره تأمین نرم‌افزار و کاهش سطح حمله طراحی شده‌اند و ویژگی‌های زیر را ارائه می‌دهند:

▪️ کاهش قابل توجه آسیب‌پذیری‌ها (CVE) در مقایسه با Base Imageهای متداول
▪️ ساختار حداقلی و سبک (حذف ابزارها و پکیج‌های غیرضروری در محیط Runtime)
▪️ ارائه SBOM شفاف و دسترسی کامل به اطلاعات اجزای ایمیج
▪️ مبتنی بر توزیع‌های رایج Debian و Alpine با حداقل نیاز به تغییر در Dockerfile

این اقدام، استفاده از ایمیج‌های امن و استاندارد را برای تیم‌های توسعه، DevOps و پروژه‌های متن‌باز ساده‌تر کرده و می‌تواند به کاهش خطاهای امنیتی در CI/CD Pipeline کمک کند.

لازم به ذکر است که برخی امکانات پیشرفته مانند SLA برای Patchهای امنیتی سریع‌تر همچنان در پلن‌های Enterprise ارائه می‌شوند.

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ تفاوت repr و str در پایتون

متد repr:
نمایش رسمی و دقیق شیء
مخصوص برنامه‌نویس، دیباگ و لاگ
متد str:
نمایش کاربرپسند شیء
مخصوص خروجی برای کاربر نهایی

class User:
    def init(self, name):
        self.name = name

    def repr(self):
        return f"User(name={self.name!r})"

    def str(self):
        return self.name

u = User("Yousef")
print(u)        # Yousef
repr(u)         # User(name='Yousef')`

نکته مهم:
اگه str نباشه پایتون از repr استفاده می‌کنه.

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ سطح توسعه‌دهنده، فقط کدنویسی نیست!

برنامه نویس Junior

کد می‌زنه تا برنامه فقط کار کنه.

برنامه نویس Mid-Level

کد رو تمیز و مرتب می‌کنه. می‌دونه:
هر چیزی که کار می‌کنه، لزوماً خوب نیست.

برنامه نویس Senior
می‌فهمه کی باید کد بزنه، کی نزنه و کی کد رو حذف کنه.

برنامه نویس Lead
اصلاً نمی‌ذاره کد اشتباه نوشته بشه.
قبل از اجرا، مسئله رو درست تعریف می‌کنه.

حقیقت ساده ولی مهم:
هر چی جلوتر میری، کمتر کد می‌زنی
ولی مسئولیت تصمیم‌هات خیلی سنگین‌تر می‌شه.

تجربه فقط به سال‌ها نیست؛
طرز فکر و تصمیم‌گیریه که سطح واقعی تو رو نشون می‌ده.

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ حقیقتی که باید قبول کنیم

عزیزان ،

اگر صرفا یک Endpoint از OpenAI یا هر AI Service Provider دیگری را صدا میزنید و یک اتفاقی می افتد، شما از خدایان هوش مصنوعی نیستید - باور کنید شما اصلا چیز خاصی نیستید، شما در حال حرام شدن و یک استعداد کشف نشده نیستید، شما صرفا یک صدا کننده یک API هستید - زیاد خودتان را اذیت نکنید !! - کسی هم در هیچ کجای دنیا الاف این تخصص عجیب شما نیست - به همان CRUD ادامه بدهید - خبری هم از حقوق 800 هزار دلاری نیست - بشین سر جات دوست من !

پیروز باشید

@Teachify | #AliKolahdoozan

Читать полностью…

برنامه نویسی | Teachify

✔️ سوءاستفاده از بلک‌فرایدی در ایران!

این روزها همه‌مون شاهدیم که بعضی از فروشگاه‌های ایرانی با چه جسارتی مردم رو دست می‌اندازن و تخفیف‌های ساختگی رو به‌عنوان «بلک‌فرایدی» جا می‌زنن.

شما هم اینجوری باهاش حساب کنین:

اسم فروشگاه رو در گوگل جست‌وجو کنید. روی لینک اول، سه‌نقطه‌ی سمت راستش رو بزنید و وارد گزینه‌ی Feedback بشید.
از بین گزینه‌ها، Irrelevant content رو انتخاب کنید.
در باکسی که ظاهر میشه، بنویسید:
scam shopping
و ارسالش کنید.
از بقیه هم بخواین همین کار رو انجام بدن. وقتی تعداد گزارش‌ها بالا بره، گوگل فروشگاه رو ریپورت می‌کنه و رتبه‌ش به‌شدت سقوط می‌کنه. این بهترین راهه تا بفهمن نمی‌تونن با بی‌شرمی، نامردی و سوءاستفاده از اعتماد مردم ادامه بدن.

در نهایت، همیشه به یاد داشته باشیم:
پنیرِ مفت فقط تو تلهٔ موشه.

همه میدونیم کدوم فروشگاه ها رو باید ریپورت کنیم(توی عکس ها من با آمازون یاد دادم ولی به اشتباه نرید آمازون رو بزنید)🙏

این پست رو share کنید تا همه در جریان باشن.

@kaliboys | کالی بویز

Читать полностью…

برنامه نویسی | Teachify

✔️ آشنایی با متد کاربردی dict.fromkeys در پایتون

گاهی لازم است یک دیکشنری با مجموعه‌ای از کلیدها بسازیم که همه مقادیر اولیه یکسان باشند. برای این کار، متد dict.fromkeys راهکاری سریع و استاندارد ارائه می‌دهد:

keys = ["a", "b", "c"]
d = dict.fromkeys(keys, 0)
print(d)
# خروجی: {'a': 0, 'b': 0, 'c': 0}


نکته مهم درباره مقادیر mutable

اگر مقدار اولیه از نوع mutable مثل لیست، دیکشنری یا set باشد، تمام کلیدها به یک آبجکت مشترک اشاره می‌کنند:

d = dict.fromkeys(["x", "y"], [])
d["x"].append(1)
print(d)
# خروجی: {'x': [1], 'y': [1]}


در این حالت، استفاده از dictionary comprehension پیشنهاد بهتری است.

متدهای مهم و رایج دیکشنری‌ها در پایتون

get(key, default) → دریافت مقدار بدون خطا
setdefault(key, default) → ایجاد کلید در صورت عدم وجود
update(mapping) → ادغام دو دیکشنری
pop(key, default) → حذف کلید و بازگرداندن مقدار
popitem() → حذف آخرین کلید اضافه‌شده
keys(), values(), items() → دسترسی به اجزای دیکشنری

@Teachify | برنامه‌نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ معرفی کانال

آموزش جنگو، مفاهیم پر کاربرد پایتون و مهندسی نرم افزار و...

/channel/djangolearn_ir

Читать полностью…

برنامه نویسی | Teachify

✔️ چند نفر توی لینکدین گفته بودن ابرآوران Status Checker خودش رو گذاشته پشت Cloudflare و بابتش کنایه زده بودن!

به‌نظر می‌رسه بعضی‌ها هنوز فلسفه‌ی Status Page رو با سرویس اصلی قاطی می‌کنن. در حالی که پایه‌ای‌ترین اصل در SRE اینه که رصد وضعیت یک سرویس نباید وابسته به خود اون سرویس باشه.

کاملاً واضحه اگه Status Page روی همان زیرساخت سرویس اصلی قرار بگیره، با هر قطعی یا اختلال، خود Status Checker هم از دسترس خارج میشه.

در نتیجه هیچ گزارش مستقلی وجود نخواهد داشت. این دقیقاً ضد اصول Site Reliability Engineering است.
اینکه ابرآوران Status Page رو روی یک زیرساخت مستقل مثل Cloudflare قرار داده، نه‌تنها ضعف نیست، بلکه Best Practice جهانیه.

شرکت های Cloudflare، AWS، Google، GitHub و هزاران سرویس بزرگ دنیا دقیقاً همین طراحی رو دارن.
چون سرویس اصلی ممکنه داون بشه اما Status Page باید همیشه Up باشه.
پس Status Page باید بیرون از مسیر خطای سرویس ساخته بشه. وگرنه این کار مثل اینه که آژیر خطر یه ساختمان، برقش فقط از خود همون ساختمان تأمین بشه؛ اگه حادثه پیش بیاد و برق بره… خود آژیر هم خاموش می‌شه!

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ اختلال گسترده در Cloudflare

به دلیل مشکل در شبکه جهانی Cloudflare، امروز تعداد زیادی از سایت‌ها و سرویس‌ها با خطاهای 500 و قطعی موقت روبه‌رو شده‌اند.
این اختلال روی سرویس‌هایی که از شبکه Cloudflare استفاده می‌کنند تأثیر گذاشته و ممکن است در بارگذاری سایت‌ها، APIها و حتی برخی اپلیکیشن‌ها مشکل مشاهده کنید.

شرکت Cloudflare اعلام کرده مشکل در حال بررسی و رفع است.

اگر سایت‌ها یا سرویس‌هایی امروز برای شما باز نمی‌شوند، احتمالاً مشکل از Cloudflare است و نه سرویس مقصد.

@kaliboys | کالی بویز

Читать полностью…

برنامه نویسی | Teachify

سلام،
در یک سامانه‌ای که با REST API پیاده‌سازی شده، به ما گفته شده که رمز عبور پیش‌فرض کاربران هنگام ثبت‌نام برابر با کد ملی آن‌ها باشد. همچنین لازم است قابلیتی قرار دهیم تا کاربر در اولین ورود مجبور به تغییر رمز عبور (Force Change Password) شود.
این کار را چطور پیاده‌سازی میکنید؟

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

انواع متدها در کلاس پایتون چیست؟

در پایتون، متدها (Methods) در کلاس‌ها به روش‌های تعریف‌شده در داخل کلاس گفته می‌شوند که می‌توانند بر روی اشیاء آن کلاس عمل کنند.
به طور کلی، متدها را می‌توان به چند نوع اصلی تقسیم کرد:


▪️متدهای نمونه (Instance Methods)

+ معمول‌ترین نوع متد هستند.
+ به یک شیء خاص از کلاس تعلق دارند.
+ اولین پارامتر آن‌ها معمولاً self است که به نمونه فعلی کلاس اشاره دارد.

class Person:
def __init__(self, name):
self.name = name

def greet(self):
print(f"Hello, my name is {self.name}")

p = Person("Ali")
p.greet() # خروجی: Hello, my name is Ali


▪️متدهای کلاس (Class Methods)

+ به خود کلاس تعلق دارند، نه به یک نمونه.
+ از دکوریتور @classmethod استفاده می‌کنند.
+ اولین پارامتر آن‌ها معمولاً cls است که به خود کلاس اشاره دارد.
+ برای تغییر یا دسترسی به متغیرهای کلاس مفید هستند.

class Person:
species = "Human"

@classmethod
def show_species(cls):
print(f"Species: {cls.species}")

Person.show_species() # خروجی: Species: Human


▪️ متدهای استاتیک (Static Methods)

+ به هیچ نمونه‌ای و حتی به کلاس وابسته نیستند.
+ از دکوریتور @staticmethod استفاده می‌کنند.
+ می‌توانند به عنوان یک تابع معمولی داخل کلاس عمل کنند، بدون دسترسی به self یا cls.

class Math:
@staticmethod
def add(a, b):
return a + b

print(Math.add(5, 3)) # خروجی: 8


▪️ متدهای جادویی یا ویژه (Magic / Dunder Methods)

+ با دو آندرلاین قبل و بعد از نام متد تعریف می‌شوند: __init__, __str__, __len__, ...
+ برای اعمال عملیات خاص روی شیء استفاده می‌شوند، مثل ساخت، چاپ، یا جمع و تفریق شیء.

class Book:
def __init__(self, title):
self.title = title

def __str__(self):
return f"Book title: {self.title}"

b = Book("Python 101")
print(b) # خروجی: Book title: Python 101


@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ چرا TypeScript از Python جلو زد؟

در سال 2025، TypeScript با عبور از Python محبوب‌ترین زبان دنیا شد.

دلیل اصلی: مهاجرت گسترده پروژه‌های JavaScript به TypeScript به‌خاطر static typing، ابزارهای توسعه پیشرفته و پشتیبانی قوی Microsoft و Google.

درحالی‌که Python هنوز در هوش مصنوعی و علم داده پیشتاز است، اما در پروژه‌های بزرگ و تیمی از TypeScript عقب مانده.

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ تایپ‌اسکریپت به صدر رسید؛ آغاز فصل تازه در دنیای زبان‌های برنامه‌نویسی

گزارش جدید GitHub Octoverse 2025 نشان می‌دهد که برای نخستین بار TypeScript به محبوب‌ترین زبان برنامه‌نویسی گیت‌هاب تبدیل شده و از Python و JavaScript پیشی گرفته است. این تحول مهم در آگوست ۲۰۲۵ رخ داده و نقطه عطفی در تغییر سلیقه توسعه‌دهندگان به شمار می‌رود.

نقش کلیدی هوش مصنوعی در این تغییر غیرقابل انکار است:

ابزارهای AI و کدنویسی خودکار مسیر استفاده از TypeScript را هموار کرده‌اند.

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

استفاده گسترده از GitHub Copilot و Agentهای هوشمند، سهم توسعه‌دهندگان تازه‌کار را در پروژه‌ها به شکل چشمگیری افزایش داده است.

این تغییر نشان می‌دهد که دنیای برنامه‌نویسی وارد فصل جدیدی شده؛ جایی که ترکیب هوش مصنوعی و زبان‌های تایپ‌محور، مسیر توسعه نرم‌افزار را شکل می‌دهد.

@Teachify | برنامه نویسی

Читать полностью…

برنامه نویسی | Teachify

✔️ گاهی وقتا زندگی یه چرخش عجیبه...
یه نفر بعد از ۲۲ سال کار توی مایکروسافت، از دنیای صفر و یک جدا میشه و میره سراغ پرورش غاز و درخت بن‌سای!

از جلسات و محیط دیجیتالی، می‌ره سمت طبیعت، خاک، سکوت و آرامش...
شاید چون دلش دیگه دنبال «ساده‌زیستیِ واقعی» بوده.

راستش رو بخوای، خیلیا توی دنیای IT (خود من هم بینشون) گاهی ته دلمون یه عشق پنهون به یه زندگی آروم‌تر داریم...
یه جایی دور از استرس، سر و صدا و نوتیفیکیشن‌ها

شاید یه روزی ما هم بزنیم به دل طبیعت.
تو چی؟
@Teachify | برنامه نویسی

Читать полностью…
Subscribe to a channel