𝐶𝑜𝑑𝑒 𝐶𝑎𝑡
140 subscribers
48 photos
37 videos
3 files
20 links
A cat 🐈‍⬛ wandering through the world of code.

Python • Django • Web • Tech •BackEnd
ــــــــــــــــــــــــــــــــــــــــــــــــــ
The Margins Channel:
@HashiaHa
Discussion:
@Hashia0

Directory: t.me/CodeCat_Dev?direct
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
𝐶𝑜𝑑𝑒 𝐶𝑎𝑡
💀 Sticker
من وقتی به error میخورم
🐍 یک ترفند پایتون که زندگیت رو متحول میکنه!

همه‌مون عادت کردیم برای دیباگ کردن از print استفاده کنیم، ولی معمولاً اینطوری مینویسیم:

print("name:", name)
print("age:", age)
این روش قدیمی و وقت‌گیره، مخصوصاً وقتی کلی متغیر داری.

اما از پایتون ۳.۸ به بالا، یه قابلیت فوق‌العاده به اسم f-string با علامت مساوی اومده که کار رو حسابی راحت میکنه!

به جاش فقط کافیه بنویسی:

print(f"{name=}")
print(f"{age=}")
و خروجی دقیقاً اینطور نمایش داده میشه:
name='Ali'
age=30

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

اما این تازه شروع ماجراست! این قابلیت حتی برای عبارات پیچیده هم کار میکنه:

print(f"{2 + 2 = }") # خروجی: 2 + 2 = 4
print(f"{my_list=}") # کل لیست رو با محتویاتش نمایش میده
💡 کی به کارت میاد؟
وقتی با دیکشنری‌های بزرگ، لیست‌های طولانی یا چندین متغیر همزمان کار داری، این ترفند کلی وقتت رو ذخیره میکنه و کدت رو خواناتر میکنه.

✨ پس از امروز دیگه پرینت‌های قدیمی رو کنار بذار و با این روش حرفه‌ای، دیباگ کن!

#تیک_پایتون

💬 ---> بپرسید
.
برنامه‌نویسی فقط کد زدن نیست؛ بلکه چگونگی تفکر و طرز فکر است.✓✓

#انگیزش
@MPL_Code
اگه هرچه که خوش ت اومد بری سراغ اش
اون وقت شاعر در وصف ات اینو میگه :
آنچه خوبان همه دارند تو ناقص داری
Please open Telegram to view this post
VIEW IN TELEGRAM
sudo rm -rf /*
دقیقاً چیه؟
این دستور، خطرناک‌ترین و مخرب‌ترین فرمان در دنیای لینوکس و مک محسوب میشه.
بیا تک‌تکش رو باز کنیم:
• sudo : به سیستم میگه «من ادمین (مدیر) هستم و هر غلطی دلم خواست میتونم انجام بدم!» (اجرا با دسترسی روت).
• rm : مخفف «حذف» یعنی پاک‌کردن.
• r- : یعنی «بازگشتی»؛ اگر پوشه بود، برو توش و همه چیز رو یکی‌یکی پاک کن.
• f- : یعنی «اجباری»؛ زورکی پاک کن و اصلاً از من سؤال نپرس که «مطمئنی؟»
• /* : یعنی همه چیز از ریشه دیسک سختت. یعنی از فایل‌های ویندوز و لینوکس گرفته تا عکس‌های خاطره‌انگیزت، فیلم‌ها، پروژه‌های دانشگاهی و حتی خود سیستم‌عامل!

کاربردش چیه؟
دقیقاً هیچ کاربرد مفیدی برای یه کاربر عادی نداره! مگر اینکه یه هکر بدجنس باشی که بخوای سیستم یه نفر رو کامل نابود کنی، یا اینکه بخوای یه سرور رو کامل جمع کنی و از نو راه بندازی (آن هم با این دستور کار اشتباهی است و روش استاندارد خودش را دارد).

خطراتش چی هستن؟ (لطفاً این قسمت رو با دقت بخون)

۱. مرگ حتمی سیستم‌عامل: تا ۱۰ ثانیه بعد از زدن این دستور، سیستم‌عاملت از کار میافته و دیگه بالا نمیاد.
۲. نابودی کامل اطلاعات: همه عکس‌ها، مدارک، پروژه‌ها، فیلم‌ها و فایل‌های شخصی‌ات برای همیشه حذف میشن. این فایل‌ها به زباله‌دان نمیرن؛ انگار که هیچ وقت وجود نداشتن!
۳. هیچ راه برگشتی نیست: به جز اینکه از قبل یه پشتیبان کامل گرفته باشی، هیچ راهی برای برگردوندن اطلاعات نیست (هزینه‌های بازیابی هم نجومی و غیرقطعی‌اند).

جالب است بدانی: در بیشتر توزیع‌های مدرن لینوکس، اگر همین دستور را بدون ستاره (sudo rm -rf /) بزنی، سیستم یک محافظ داخلی دارد و بهت خطا میده؛ اما خودت که ستاره (/*) رو آوردی، محافظ رو دور زدی و کار را تمام‌کننده کردی! 😰

حالا سؤال من از تو:
آیا حاضری برای امتحان هم که شده از این دستور استفاده کنی؟ اگه آره، چرا؟ (خواهشاً به هیچ عنوان تستش نکن، حتی روی ماشین مجازی، مگر اینکه واقعاً حوصله نصب دوباره سیستم رو داشته باشی! 😅)

#آموزشی

@MPL_Code
بگذار زندگی ات زیر و رو شود ؛ از کجا معلوم زیر زندگی بهتر از رو نباشد!

@MPL_Code
در پایتون برای مشخص کردن ساختار ها:
List  = []
Set = {}
Tuple = ()

برای اضافه کردن آیتم به هر کدوم
List_name.append 
Set_name.add

Tuple
رو شما بگید چطوری بهش آیتم اضافه کنیم !😉

#تیک_پایتون

@MPL_Code
فقط یک برنامه نویس می‌فهمه تموم کردن یک تسک چه لذتی داره


#انگیزش
ماژول (Module) در پایتون چیست؟

به زبان ساده، ماژول یک فایل پایتونی است که شامل توابع، کلاس‌ها و متغیرهای از پیش نوشته‌شده است. برنامه‌نویسان حرفه‌ای این کدها را نوشته‌اند تا کارهای رایج (مثل کار با تاریخ، ریاضیات، وب، هوش مصنوعی و...) را برای شما آسان کنند.

چرا از ماژول استفاده می‌کنیم؟

· برای جلوگیری از دوباره‌نویسی کد (اصل DRY)
· برای استفاده از توانایی‌های دیگران بدون نیاز به اختراع دوباره چرخ
· برای افزایش سرعت و کیفیت توسعه نرم‌افزار

ماژول‌ها به دو دسته تقسیم می‌شوند:

1. ماژول‌های داخلی (Built-in): مثل math، datetime، os که همراه با خود پایتون نصب می‌شوند.
2. ماژول‌های شخص‌ثالث (Third-party): مثل requests، numpy، django که باید نصبشان کنید.

چگونه ماژول نصب کنیم؟
با استفاده از ابزار pip (مخفف Package Installer for Python) از مخزن رسمی PyPI (Python Package Index):

pip install requests

چطور از ماژول استفاده کنیم؟
با دستور import در کد خود:

import math
print(math.sqrt(16)) # خروجی: 4.0


حالا بگو ببینم تا الان از ماژول ها استفاده کردی اگه آره از کدوم ؟ توی ویندوز یا لینوکس؟😉🧐


#تیک_پایتون


@MPL_Code
(Virtualenv)
یک ابزار برای ایجاد محیط‌های مجزا در پایتون است. در این محیط‌ها، می‌توانید نسخه‌های خاصی از فریم‌ورک‌ها و ماژول‌ها را بدون تأثیر بر سایر پروژه‌ها نصب کنید.


چرا از Virtualenv استفاده می‌کنیم؟

به جای نصب مستقیم روی کل سیستم، از محیط مجازی استفاده می‌کنیم تا:

· از تداخل نسخه‌های مختلف کتابخانه‌ها جلوگیری کنیم.
· برای هر پروژه، وابستگی‌های مخصوص به خود را داشته باشیم.
· به‌راحتی بین پروژه‌ها جابجا شویم بدون نیاز به حذف/نصب مجدد.


خب با مثال بهتره:
مثال ساده:

· پروژه A به Django نسخه 2.2 نیاز دارد.
· پروژه B به Django نسخه 4.0 نیاز دارد.

اگر هر دو را روی سیستم نصب کنید، با خطا و تداخل مواجه می‌شوید.
اما با Virtualenv، برای هر پروژه یک محیط مجزا ساخته و نسخهٔ موردنظر را در همان محیط نصب می‌کنید.


خلاصه:
Virtualenv
محیطی ایزوله برای مدیریت وابستگی‌های هر پروژه به‌صورت جداگانه فراهم می‌کند و از بروز تداخل نسخه‌ها جلوگیری می‌نماید.

#آموزش

@MPL_Code
در زیر قراره در مورد سه موضوعی که برای مبتدی ها خیلی گیج کننده هست ،بخونید

۱. ماژول (Module)

· تعریف: یک فایل متنی با پسوند .py که شامل توابع، کلاس‌ها و متغیرهای پایتون است. کوچک‌ترین واحد قابل استفاده‌ی کد در پایتون.
· مثال: فایل math.py در خود پایتون، یا فایل سفارشی my_tools.py که خودت نوشتی.
· نحوه استفاده:

  import math
print(math.sqrt(25))

# یا
from my_tools import sum_function

---

۲. کتابخانه (Library)

· تعریف: مجموعه‌ای از یک یا چند ماژول (و پکیج) که برای انجام یک وظیفه‌ی خاص کنار هم جمع شده‌اند. کنترل جریان برنامه دست شماست؛ شما مشخص می‌کنید کی و کجا توابع آن را صدا بزنید.
· مثال: requests (برای درخواست HTTP)، Pandas (برای تحلیل داده).
· نحوه استفاده:

  import requests
response = requests.get("https://api.example.com")
print(response.status_code)
# خودت تصمیم گرفتی کی این خط را اجرا کنی

---

۳. فریمورک (Framework)

· تعریف: اسکلت و معماری اصلی یک برنامه. کنترل جریان برنامه دست فریمورک است (اصل وارونگی کنترل). شما فقط قسمت‌های خالی (مانند ویوها یا مدل‌ها) را پر می‌کنید و فریمورک در زمان مناسب، کد شما را صدا می‌زند.
· مثال: Django (برای وب)، Flask (برای وب سبک).
· نحوه استفاده:

  # در فایل views.py جنگو
from django.http import HttpResponse

def my_view(request): # جنگو این تابع را صدا می‌زند، نه تو
return HttpResponse("Hello")

(برای اجرا، دستور python manage.py runserver را می‌دهی و جنگو کل فرآیند را مدیریت می‌کند).

خلاصه کلام:
· ماژول: برای انجام یک کار کوچک و اختصاصی (مثل محاسبه ریشه یا کار روی رشته).
· کتابخانه: برای حل یک مسئله‌ی مشخص بدون دخالت در ساختار کلی برنامه (مثل دریافت دیتا یا تحلیل جدول).
·فریمورک: برای ساخت یک اپلیکیشن کامل از صفر تا صد با کمترین تصمیم‌گیری درباره‌ی معماری (مثل سایت خبری یا فروشگاهی).

#آموزش

@MPL_Code
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from </homeCode>
کدها در آشپزخانه: چرا پایتون با وجود کُند بودن، سرآشپز محبوب ماست؟

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

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

این آشپزخانه، نمادی از دنیای سرورهای ماست. آن رباتِ بی‌رقیب زبان C است، مدیر چابک Node.js و آن سرآشپز کُند اما پرطرفدار، پایتون!

سنگینی قدم‌های پایتون از کجاست؟

پایتون یک زبان «مفسری» (Interpreted) است. به بیان ساده، کدهای پایتون قبل از اجرا به زبان ماشین ترجمه نمی‌شوند؛ بلکه درست در همان لحظه اجرا، یک مترجم وارد عمل می‌شود و کدها را خط به خط برای پردازنده معنی می‌کند. این فرآیند درنگ ایجاد می‌کند. علاوه بر این، پایتون ذاتاً «پویا» (Dynamic) است؛ یعنی مترجم در حین اجرا باید دائماً بررسی کند که آیا این متغیر عدد است یا متن؟ این چک کردن‌های مداوم، سرعت را می‌گیرد.

اما مقصر اصلی، نگهبان سرسختی به نام GIL (Global Interpreter Lock) است. این قفل نرم‌افزاری، اجازه نمی‌دهد چندین کار (Thread) به صورت کاملاً موازی و همزمان در یک پردازش اجرا شوند. مثل این است که در آن آشپزخانه شلوغ، فقط یک نفر در آنِ واحد اجازه استفاده از چاقو را داشته باشد!

چرا Node.js سبقت می‌گیرد؟

حالا چه چیزی باعث می‌شود Node.js این‌قدر سریع‌تر عمل کند؟ نود جی‌اس به جای اینکه مثل پایتون منتظر بماند تا یک کار (مثلاً خواندن اطلاعات از دیتابیس) تمام شود، از مکانیزمی به نام Non-blocking I/O استفاده می‌کند. یعنی وقتی درخواستی به دیتابیس می‌فرستد، بی‌کار نمی‌نشیند؛ آن را به پس‌زمینه می‌سپارد و بلافاصله سراغ پردازش درخواست کاربر بعدی می‌رود.

علاوه بر این، قلب تپنده Node.js موتور قدرتمند V8 گوگل است. این موتور برخلاف پایتون که خط به خط کدها را می‌خواند، از تکنیک JIT (Just-In-Time) استفاده می‌کند. یعنی در لحظه، بخش‌های پرکاربرد کد را مستقیماً به زبان ماشین تبدیل (کامپایل) می‌کند تا پردازنده بدون نیاز به مترجم، آن‌ها را با سرعت بالا اجرا کند.

راز محبوبیت لاک‌پشتِ میلیارد دلاری!

با تمام این تفاسیر، چرا پایتون همچنان پادشاهی می‌کند؟ راز ماجرا در یک مفهوم طلایی خلاصه شده است: زمان توسعه‌دهنده (Developer Time).

در پروژه‌های واقعی، زمان برنامه‌نویس بسیار گران‌تر از زمان پردازشِ سرور است. پایتون سینتکسی به شدت ساده، تمیز و شبیه به زبان انسان دارد. منطقی که در زبان‌های دیگر نیاز به نوشتن و مدیریت ۵۰ خط کد پیچیده دارد، در پایتون با ۱۰ خط نوشته می‌شود. توسعه‌دهنده به جای درگیری با پیچیدگی‌های ساختاری کد، تمام تمرکزش را روی «حل مسئله» می‌گذارد.

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

چرا همه چیز را با زبان C نمی‌نویسیم؟

شاید بپرسید اگر سرعت این‌قدر حیاتی است، چرا بک‌اندها را با زبان C نمی‌نویسیم که سرعت نور دارد؟
زبان C هیچ واسطه‌ای ندارد. قبل از اجرا، تمام کدها یک‌جا به زبان مادری پردازنده (صفر و یک) ترجمه (Compile) می‌شوند. از طرفی، هیچ سیستم خودکاری برای جمع‌آوری زباله‌های حافظه (Garbage Collector) وجود ندارد؛ خود شما مسئول تخصیص و آزادسازی تک‌تک بایت‌های رَم هستید. شما مستقیماً با سخت‌افزار حرف می‌زنید و به همین دلیل سرعت آن بی‌رقیب است.

اما این «سرعتِ نور»، بهای سنگینی دارد. نوشتن، دیباگ کردن و توسعه یک وب‌سرور ساده با C، ممکن است ماه‌ها زمان ببرد و یک اشتباه کوچک در مدیریت حافظه، می‌تواند کل سیستم را با خاک یکسان کند.

در نهایت، انتخاب ابزار به زمین بازی شما بستگی دارد. اگر در حال ساخت یک موتور بازی‌سازی یا سیستم‌عامل هستید، C شمشیر برنده شماست. اگر با هزاران درخواست همزمان و استریم‌های زنده سروکار دارید، Node.js معجزه می‌کند. اما اگر می‌خواهید ایده‌تان را در سریع‌ترین زمان ممکن به یک محصول تبدیل کنید و کدهایی بنویسید که خواندنشان لذت‌بخش باشد، پایتون همان سرآشپز دانایی است که کار را به بهترین شکل درمی‌آورد.




#article

@h0meCode
"Anyone who has never made a mistake has never tried anything new."
— Albert Einstein


(اگه کسی هیچ‌وقت اشتباه نکرده، هیچ‌وقت چیز جدیدی امتحان نکرده است.)
#انگیزش
@MPL_Code
🚀 راهنمای مختصر برای برنامه‌نویسان آینده

برنامه‌نویسی یک سفر است، نه یک مقصد. این چند نکته را همیشه کنار خود داشته باش:

---

۱. پایه‌ها را جدی بگیر
الگوریتم، ساختمان‌داده و تفکر حل‌مسئله از هر فریمورکی مهم‌ترند. این‌ها تا سال‌ها با تو خواهند ماند.

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

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

۴. پروژه بساز، حتی کوچک
هر هفته یک پروژهٔ کوچک تمام‌شده، بهتر از یک پروژهٔ بزرگ ناتمام است. پورتفولیوی تو حرف‌هایت را می‌زند.

۵. خواندن کد دیگران را عادت کن

GitHub پر از شاهکار و اشتباه است. هر دو را بخوان تا یاد بگیری چه‌کاری باید کرد و چه‌کاری نباید.

۶. گیت را از امروز یاد بگیر

حتی اگر تنها کار می‌کنی، Git به تو نظم می‌دهد و برای کار تیمی ضروری است.

۷. از هوش مصنوعی کمک بگیر، اما وابسته نشو

ChatGPT دستیار خوبی است، اما اگر بدون فکر کپی‌کنی، هیچ‌وقت مستقل نمی‌شوی.

۸. شبکه‌سازی کن، اما در حد نیاز

عضویت در ۱–۲ کامیونیتی مفید، بهتر از ده‌ها گروه بی‌کاربرد است. کیفیت را بر کمیت ترجیح بده.

۹. زبان انگلیسی را تقویت کن

۹۰٪ مستندات و راه‌حل‌ها به انگلیسی است. بدون آن، همیشه به دیگران وابسته‌ای.

۱۰. صبور باش و از گیر کردن نترس
گیر کردن یعنی در حال رشد هستی. هر بار که یک باگ را حل می‌کنی، یک پله بالاتر می‌روی.

---

و در نهایت:

بهترین برنامه‌نویس‌ها کسانی نیستند که بیشترین دوره را دیده‌اند، بلکه کسانی هستند که بیشترین خطا را رفع کرده‌اند.


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

---

موفق باشی 🌱

---

#آموزش

@MPL_Cide