Telegram Web
✔️ معماری نرم‌افزار در طراحی سایت

اگه فقط کد می‌زنی ولی ساختار معماری پروژه‌هات رو نمی‌شناسی، داری نصف قدرت واقعی برنامه‌نویسی رو از دست می‌دی!

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

1. MVC – Model View Controller
معروف‌ترین معماری در دنیای وب. تقسیم به سه بخش اصلی میشه:
+ Model:
داده‌ها و منطق تجاری
+ View:
خروجی نهایی برای کاربر
+ Controller:
دریافت ورودی کاربر و هدایت جریان برنامه
فریم‌ورک‌ها:
Laravel (PHP), ASP.NET MVC (C#), Spring (Java), Rails (Ruby)

2. MTV – Model Template View (خاص Django)
در ظاهر شبیه MVC هست، ولی ترتیب و نقش‌ها کمی فرق دارن:
+ Model:
دیتا و منطق کسب‌وکار
+ Template:
فایل‌های HTML و ظاهر سایت
+ View:
ترکیب داده با Template و خروجی گرفتن
این ساختار مخصوص فریم‌ورک Django (Python) هست. جالبه بدونی View در Django مثل Controller در MVC عمل می‌کنه!

3. MVVM – Model View ViewModel
مناسب برای UIهای داینامیک با ارتباط دوطرفه داده و رابط کاربری
+ ViewModel
همون پل بین Model و + View هست با data binding
فریم‌ورک‌ها: Vue.js، Angular، WPF، Xamarin

4. MVP – Model View Presenter
مثل MVC ولی Presenter همه‌چیز رو مدیریت می‌کنه، حتی UI رو
استفاده در: WinForms، Android (قبل از MVVM)

5. SPA – Single Page Application
سایت‌هایی که کل تجربه کاربر توی یک صفحه اتفاق می‌افته. کاملاً وابسته به جاوااسکریپت، سریع و مدرن
فریم‌ورک‌ها: React، Vue، Angular، Svelte

معماری داخلیش معمولاً MVVM یا Redux هست

6. Clean Architecture / Onion / Hexagonal
برای پروژه‌های بزرگ، قابل‌تست، مستقل از UI و پایگاه داده. ساختاری ماژولار با جداسازی کامل لایه‌ها داره.
زبان‌ها: Java، C#، Python، Go
مناسب برای اپلیکیشن‌های مقیاس‌پذیر و تیم‌های بزرگ

@Teachify | برنامه نویسی
10👍1
This media is not supported in your browser
VIEW IN TELEGRAM
✔️ واقعا خداحافظی تلخی هست :(

@Teachify | برنامه نویسی
💔29🤣2
+ گفت ما تایپ هم نیستیم
- تلاشی هم واسش کردی؟

من:

#SEYED_BAX
@Teachify | برنامه نویسی
🤣32💔42
✔️ بزرگ‌ترین مجموعه ورک‌فلوهای آماده برای n8n

اگه با n8n کار می‌کنی یا دنبال راهی سریع برای ساخت اتوماسیون‌های کاربردی هستی، این مخزن گیت‌هاب رو از دست نده:

https://github.com/Zie619/n8n-workflows

▪️دارای بیش از ۲۰۰۰ ورک‌فلو واقعی و قابل استفاده
▪️پوشش بیش از ۳۶۵ سرویس مثل Gmail، Slack، Telegram، Google Sheets و...
▪️ دسته‌بندی بر اساس نوع تریگر (مانند Webhook، Manual، Cron و ...)
▪️ جستجوی خیلی سریع بین ورک‌فلوها (با SQLite FTS5)
▪️ امکان نمایش نمودار گرافی، پیش‌نمایش، و خروجی JSON هر ورک‌فلو

@Teachify | برنامه نویسی
❤‍🔥81👍1
✔️ چطور پایتون آرگومان‌ها رو به توابع پاس می‌ده؟

خیلی وقتا وقتی درباره‌ی ارسال آرگومان به توابع صحبت می‌شه، می‌شنویم:

Pass by Value (ارسال کپی)

Pass by Reference (ارسال خود متغیر)

اما پایتون یه مدل مخصوص خودش داره به اسم:

Pass by Object Reference
یا همون: Pass by Assignment

یعنی چی؟ بذار با یه مثال ساده توضیح بدیم:

فرض کن یه صندوق داری که توش وسیله‌س (مثل یه object پایتونی مثلاً list)
آدرسش رو روی یه کاغذ نوشتی و گذاشتی جیبت (این میشه reference)

وقتی یه تابعی می‌خواد از اون object استفاده کنه، پایتون یه کاغذ جدید درمیاره و همون آدرس رو روش می‌نویسه و می‌ده به تابع.
تابع با اون آدرس می‌تونه بره سراغ همون صندوق.

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

این دقیقاً میشه تفاوت بین mutable و immutable بودن objectها:

Mutable object (مثل list): تابع می‌تونه محتوای اصلی رو تغییر بده.

Immutable object (مثل int): تابع نمی‌تونه خودش رو تغییر بده، باید یه نسخه‌ی جدید بسازه.
مثال کد:
def demonstrate_passing_behavior(my_list, my_int):
    my_list.append(4)  # تغییر مستقیم در لیست اصلی
    my_list = list(my_list)  # ساخت کپی جدید
    my_int = my_int + 10  # ساخت int جدید، بدون تغییر عدد اصلی

original_list = [1, 2, 3]
original_int = 5
demonstrate_passing_behavior(original_list, original_int)

خروجی بعد از اجرای تابع:
original_list تغییر کرده (چون mutable بوده)

original_int همون قبلیه باقی مونده (چون immutable بوده)

در نتیجه:

> تو پایتون ما نه Pass by Value داریم، نه Pass by Reference
بلکه داریم: Pass by Object Reference

یعنی reference به object ارسال می‌شه، ولی خود reference به صورت value پاس می‌شه!

#پایتون #Python #برنامه‌نویسی

@Teachify | برنامه نویسی
👍5
✔️ اگه bad ux رو داخل گوگل سرچ کنید، نتایج با فونت Comic Sans می‌آد. :))

@teachify | 7rshla
😁15
✔️ پروژه هایی که توی گیتهابم کار کردم :)))

#fun
@Teachify | Linuxor
😁40🔥21
از بس درگیر پروژه و کارم که اصلا وقت هیچی رو ندارم
ببخشید بابت کم کاری🙏

به زودی جبران میکنم.

@Teachify | برنامه نویسی
❤‍🔥13👌54
✔️ بعضیا رفتن آی‌پی 127.0.0.1 رو ریپورت کردن…

داداش این یعنی رفتی پیش پلیس گفتی: «سلام، اومدم خودمو تحویل بدم!» 🤦‍♂️
#Loopback

@Teachify | برنامه نویسی
🤣263
من اون باگم که فقط توی پروداکشن خودشو نشون میده.

من اون ارور ۴۰۴‌ام که وسط دیباگ شدن پیدام می‌کنی.

من اون تب اضافی‌ام که کل فرمت کدتو بهم می‌زنه.

من اون dependencyایم که موقع آپدیت همه‌چی رو می‌ترکونه.

من اون merge conflictـم که درست وقتی عجله داری ظاهر میشم.

من اون تیکه کُدیم که باعث می‌شه قهوت یخ کنه

من اون فانکشنی‌ام که هیچ‌وقت کال نمیشه ولی پاکش هم کنی همه‌چی می‌ریزه بهم.

من اون logـم که فقط وقتی نمی‌خوای دیده بشه، تو کنسول می‌مونه.

@Teachify | برنامه نویسی
🗿15🤣4💔3😭21
✔️ کمپانی xAI مدل Grok 2.5 رو متن‌باز کرده!

حالا همه می‌تونن به کدهاش دسترسی داشته باشن، تغییرش بدن یا نسخه شخصی بسازن. این حرکت یه گام مهم برای آزادتر شدن هوش مصنوعیه. همچنین اعلام شده تا شش ماه دیگه مدل قدرتمندتر Grok 3 هم متن‌باز می‌شه.
https://huggingface.co/xai-org/grok-2

@Teachify | برنامه نویسی
❤‍🔥81
✔️یک ریپازیتوری که کل مسیر طراحی یک سیستم یادگیری ماشین (ML) رو پوشش می‌ده

گام های اصلی:

- Project setup
- Data pipeline
- Modeling: selecting, training, and debugging
- Serving: testing, deploying, and maintaining

Source: Github

#هوش_مصنوعی
@Teachify | برنامه نویسی
👌32
✔️ همه فقط نوک کوه یخ رو می‌بینن...

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

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

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

شما بگید؛ زیر این کوه یخ، برای شما سخت‌ترین بخش برنامه‌نویسی چی بوده؟
@Teachify | برنامه نویسی
14👍2👎1
✔️ برترین الگوریتم های هوش مصنوعی

@Teachify | برنامه نویسی
10👍2
✔️ مستند پایتون منتشر شد!

بالاخره مستند رسمی پایتون با عنوان
Python: The Documentary | An origin story
منتشر شد!

این مستند داستان شکل‌گیری پایتون رو روایت می‌کنه؛ از ایده‌ی اولیه‌ی خیدو فن روسوم در دهه ۹۰ میلادی تا تبدیل شدن به یکی از پرکاربردترین زبان‌های دنیا در هوش مصنوعی، وب، دیتا و هزاران پروژه‌ی دیگه.

توی این مستند چهره‌های سرشناس کامیونیتی پایتون مثل Guido van Rossum، Travis Oliphant، Barry Warsaw و خیلی‌های دیگه حضور دارن.

بخش‌های جذابی مثل "Zen of Python" هم بررسی می‌شه.

انتشار رسمی این مستند در تاریخ ۲۸ اوت ۲۰۲۵ بوده و الان به صورت رایگان قابل مشاهده‌ست.

لینک تماشا در یوتیوب:
https://youtu.be/GfH4QL4VqJ0?si=KOs9QrvwFq9BlGlR

@Teachify | برنامه نویسی
11👍1👌1
✔️ معرفی ابزار SlimToolkit (DockerSlim سابق)

اگه با Docker کار کرده باشی، می‌دونی که حجم ایمیج‌ها بعضی وقتا خیلی بزرگ می‌شه و این باعث مشکلاتی مثل سرعت پایین در Pull/Push یا مصرف زیاد منابع می‌شه.

اینجاست که SlimToolkit به کمکت میاد! این ابزار متن‌باز (به زبان Go) می‌تونه بدون هیچ تغییری در ایمیج اصلی، حجمش رو تا ۳۰ برابر کوچیک‌تر کنه

ویژگی‌های مهم SlimToolkit:

+ کاهش چشمگیر حجم ایمیج‌ها

+ ساخت خودکار پروفایل‌های امنیتی (مثل AppArmor و Seccomp)

ابزارهای کاربردی مثل:

xray (تحلیل محتویات ایمیج)
lint (بررسی بهینه بودن ایمیج)
build (ساخت ایمیج بهینه)
debug و چند ابزار دیگه...

slimtoolkit.org

@Teachify | برنامه نویسی
5👍2
✔️ اختلاف سنی خیلی مهمه مثلا طرف داره درباره BTS صحبت می‌کنه تو هی عکس این دکله می‌آد جلوی چشت :))

@Teachify | #Linuxor
😁191👀1
✔️ وقتی تمساح داره قورتت می‌ده ولی هنوز یادت نرفته git push کنی!

@Teachify | برنامه نویسی
🤣241
✔️ روز جهانی برنامه نویس مبارک 😊✌️

آرزوی موفقیت برای همه دوستان ❤️

💭@Teachify | آموزش برنامه نویسی
19
✔️ تابع getattr در پایتون

گاهی اوقات لازم داریم به یک ویژگی (Attribute) یا متد (Method) از یک شیء دسترسی پیدا کنیم، بدون اینکه اسم آن را مستقیم در کد بنویسیم. اینجا تابع getattr به کمک ما می‌آید.

ساختار کلی:
getattr(object, name[, default])

object ➝ شیء موردنظر

name ➝ نام ویژگی یا متد (به صورت رشته)

default ➝ (اختیاری) مقداری که اگر ویژگی پیدا نشد، برگردانده می‌شود

مثال ساده:
class Person:
    name = "Ali"
    age = 25

p = Person()

print(getattr(p, "name"))     # Ali
print(getattr(p, "age"))      # 25
print(getattr(p, "city", "Tehran"))  # چون city وجود ندارد => Tehran

+ اگر ویژگی یا متد وجود داشته باشد، مقدارش برمی‌گردد.

+ اگر وجود نداشته باشد و default تعریف کرده باشیم، همان مقدار برمی‌گردد.

+ اگر default تعریف نشده باشد و ویژگی وجود نداشته باشد → خطای AttributeError رخ می‌دهد.

@kaliboys | کالی بویز
3👍2
2025/10/18 10:20:11
Back to Top
HTML Embed Code: