Sadra Codes
الذهاب إلى القناة على Telegram
Sadra Yahyapour ✌️ Let's dive deeper together. :) imsadra.dev github.com/lnxpy linkedin.com/in/sadra-yahyapour x.com/lnxpylnxpy lnxpylnxpy@gmail.com
إظهار المزيد3 547
المشتركون
+524 ساعات
+677 أيام
+7430 أيام
جاري تحميل البيانات...
القنوات المماثلة
سحابة العلامات
الإشارات الواردة والصادرة
---
---
---
---
---
---
جذب المشتركين
يونيو '26
يونيو '26
+129
في 3 قنوات
مايو '26
+39
في 2 قنوات
Get PRO
أبريل '26
+57
في 0 قنوات
Get PRO
مارس '26
+22
في 0 قنوات
Get PRO
فبراير '26
+162
في 1 قنوات
Get PRO
يناير '26
+14
في 0 قنوات
Get PRO
ديسمبر '25
+24
في 1 قنوات
Get PRO
نوفمبر '25
+57
في 1 قنوات
Get PRO
أكتوبر '25
+65
في 0 قنوات
Get PRO
سبتمبر '25
+54
في 1 قنوات
Get PRO
أغسطس '25
+57
في 0 قنوات
Get PRO
يوليو '25
+72
في 1 قنوات
Get PRO
يونيو '25
+63
في 0 قنوات
Get PRO
مايو '25
+60
في 0 قنوات
Get PRO
أبريل '25
+47
في 0 قنوات
Get PRO
مارس '25
+88
في 8 قنوات
Get PRO
فبراير '25
+62
في 6 قنوات
Get PRO
يناير '25
+159
في 2 قنوات
Get PRO
ديسمبر '24
+204
في 5 قنوات
Get PRO
نوفمبر '24
+267
في 4 قنوات
Get PRO
أكتوبر '24
+182
في 3 قنوات
Get PRO
سبتمبر '24
+182
في 5 قنوات
Get PRO
أغسطس '24
+253
في 10 قنوات
Get PRO
يوليو '24
+105
في 3 قنوات
Get PRO
يونيو '24
+392
في 7 قنوات
Get PRO
مايو '24
+151
في 7 قنوات
Get PRO
أبريل '24
+126
في 7 قنوات
Get PRO
مارس '24
+126
في 5 قنوات
Get PRO
فبراير '24
+143
في 5 قنوات
Get PRO
يناير '24
+166
في 2 قنوات
Get PRO
ديسمبر '23
+229
في 8 قنوات
Get PRO
نوفمبر '23
+63
في 2 قنوات
Get PRO
أكتوبر '23
+23
في 0 قنوات
Get PRO
سبتمبر '23
+90
في 0 قنوات
Get PRO
أغسطس '23
+206
في 0 قنوات
Get PRO
يوليو '23
+85
في 0 قنوات
Get PRO
يونيو '23
+122
في 0 قنوات
Get PRO
مايو '23
+225
في 0 قنوات
Get PRO
أبريل '23
+279
في 0 قنوات
Get PRO
مارس '23
+214
في 0 قنوات
Get PRO
فبراير '23
+32
في 0 قنوات
Get PRO
يناير '23
+80
في 0 قنوات
Get PRO
ديسمبر '22
+97
في 0 قنوات
Get PRO
نوفمبر '22
+12
في 0 قنوات
Get PRO
أكتوبر '22
+115
في 0 قنوات
Get PRO
سبتمبر '22
+15
في 0 قنوات
Get PRO
أغسطس '22
+16
في 0 قنوات
Get PRO
يوليو '22
+27
في 0 قنوات
Get PRO
يونيو '22
+26
في 0 قنوات
Get PRO
مايو '22
+24
في 0 قنوات
Get PRO
أبريل '22
+20
في 0 قنوات
Get PRO
مارس '22
+72
في 0 قنوات
Get PRO
فبراير '22
+5
في 0 قنوات
Get PRO
يناير '22
+2
في 0 قنوات
Get PRO
ديسمبر '21
+2
في 0 قنوات
Get PRO
نوفمبر '21
+4
في 0 قنوات
Get PRO
أكتوبر '21
+4
في 0 قنوات
Get PRO
سبتمبر '210
في 0 قنوات
Get PRO
أغسطس '21
+2
في 0 قنوات
Get PRO
يوليو '21
+2
في 0 قنوات
Get PRO
يونيو '21
+7
في 0 قنوات
Get PRO
مايو '21
+4
في 0 قنوات
Get PRO
أبريل '21
+6
في 0 قنوات
Get PRO
مارس '21
+5
في 0 قنوات
Get PRO
فبراير '21
+3
في 0 قنوات
Get PRO
يناير '21
+3
في 0 قنوات
Get PRO
ديسمبر '20
+720
في 0 قنوات
| التاريخ | نمو المشتركين | الإشارات | القنوات | |
| 18 يونيو | +6 | |||
| 17 يونيو | +5 | |||
| 16 يونيو | +4 | |||
| 15 يونيو | +13 | |||
| 14 يونيو | +5 | |||
| 13 يونيو | +15 | |||
| 12 يونيو | +15 | |||
| 11 يونيو | +15 | |||
| 10 يونيو | +6 | |||
| 09 يونيو | +8 | |||
| 08 يونيو | +8 | |||
| 07 يونيو | +10 | |||
| 06 يونيو | +3 | |||
| 05 يونيو | +3 | |||
| 04 يونيو | +8 | |||
| 03 يونيو | +5 | |||
| 02 يونيو | 0 | |||
| 01 يونيو | 0 |
منشورات القناة
وقتی دارید روی یه پکیج کار میکنید که یوزرها برنامهنویس هستن، در قسمتهایی از پروژه، ورژن پکیج رو قید کردین. مسلما هر بیلد، یه ورژن خاص خودش رو داره. معروفترین نوع ورژنبندی هم که همه تقریبا باهاش آشناییم همون Semantic Versioning هست که از سه بخش اصلی درست شده:
[MAJOR].[MINOR].[PATCH]شمارهٔ نسخهٔ اصلی (MAJOR) رو زمانی افزایش میدیم که تغییرات بزرگ اعمال شدن و ممکنه باعث Breaking Changes در بخشهایی از پروژه شده باشن. شمارهٔ نسخهٔ جزئی (MINOR) رو زمانی افزایش میدیم که قابلیتهایی اضافه شدن که با نسخههای قبل سازگار هستند. (مثلا اکوسیستم و پترنها همون پترنهای قبلن، یه دوتا ماژول یا util جدید اضافه شدن به ساختار قبلی) شمارهٔ نسخهٔ (PATCH) رو زمانی افزایش میدیم که صرفا یه باگ فیکس کردیم که با نسخههای قبل هم سازگار هست و Breaking Changesی نداریم. یه اصطلاح هست به اسم Version Bumping. موقعی شما ورژن رو بامپ میکنید که تغییراتی ایجاد کردید و میخواید یه بیلد جدید بگیرید از پکیج. (شما هیچوقت نمیتونید از یه ورژن، دوتا بیلد داشته باشید. حتی اگه یه خط هم اضافه کنید، نیازه واسه منتشر کردنش، حتما یه ورژن بامپ کنید و بعد بیلد بگیرید) قبلا من از bump-my-version استفاده میکردم. کاری که میکنن، ورژن فعلی رو از pyproject یا setup.py یا.. میخونن، ورژن فعلی رو پیدا میکنن توی تمام قسمتهای پروژه، سپس شما اجرا میکنی:
bump-my-version bump patch
و این میاد در هر قسمت از پروژه که ورژن اصلی (مثلا 1.2.3 ثبت شده) رو تبدیل میکنه به 1.2.4.
اگه از uv استفاده میکنید، با این روش هم میتونید ورژن رو بامپ کنید و خیلی بهتر و تمیزتره.
منبع: https://blog.imsadra.dev/python-313-new-features-deprecations
منبع: https://semver.org
Join 👉 @lnxpylnxpy| 2 | واسه اینکه راحتتر درک کنید قدرت Genericها رو در پایتون، چند مثال پایین رو ببینید، قشنگ جا میوفته واستون.
ساختار به این شکله:
def FUNCTION_NAME[TYPES](ARGS..) -> TYPE:
مثال:
```python
def select[T](items: List[T]) -> T:
...
پس داریم:
python
select(items=[1, 2, 3, 4, 5]) # T=int & List[T] = List[int]
select(items=["a", "b", "c"]) # T=str & List[T] = List[str]
select(items=[1.2, 1.3, 1.4]) # T=float & List[T] = List[Float]
# Therefore, we have..
users = [User("Abby"), User("Chris"), User("Nick")]
select(items=users) # T=User & List[T] = List[User]
همونطور که محسوسه، T داره بصورت داینامیک، طبق دیتایی که توی items قرار میگیره، ماهیت و نوعش تغییر میکنه. پوینت کل ماجرا همینه.
چرا اصلا اسمش T هست؟
اصلا مهم نیست اسمش چی باشه. یه سری مسائل هست که Conventionalان. یعنی یک سری قواعد نانوشتهای هستن که توسعهدهندهها ازش بصورت مرامی، پیروی میکنن وگرنه این مثال هم کاملا درسته:
python
def convert[B](item: B) -> Tuple[B, B, B]:
return (item,)
یه تابع، با چند Generic Type:
python
def convert[A, B](first: A, second: B) -> Tuple[A, B]:
return (first, second)
`
منبع: https://blog.imsadra.dev/generic-typing-in-python
Join 👉 @lnxpylnxpy | 983 |
| 3 | چرا Generic Typing مهمه؟
خیلی از برنامهنویسای پایتون هنگام استفاده از Type Hinting تنها از انواع مشخصی مانند str`، `int یا list[str] استفاده میکنن. اما زمانی که یک تابع یا کلاس باید با چندین نوع داده مختلف کار کنه، استفاده از Generic Typing باعث میشه هم انعطافپذیری حفظ شه و هم Type Safety از بین نره.
به جای اینکه برای هر نوع داده یک تابع جداگانه بنویسید، میتونید یک Type Variable تعریف کنید و نوع ورودی و خروجی رو به اون وابسته کنید. به این ترتیب ابزارهایی مثل MyPy و Pyright قادر خواهند بود خطاهای احتمالی رو پیش از اجرای برنامه تشخیص بدن.
from typing import TypeVar
T = TypeVar("T")
def first(items: list[T]) -> T:
return items[0]
در این مثال، تابع first میتونه روی لیستی از هر نوع دادهای کار کنه؛ اما نوع خروجی دقیقاً با نوع عناصر لیست مطابقت داره.
منبع: https://blog.imsadra.dev/generic-typing-in-python
Join 👉 @lnxpylnxpy | 1 253 |
| 4 | نزدیک به ۵۰ تا مقاله پیرامون تجربیاتم در زمینهها مختلف پایتون، وب، تستنویسی، برنامهنویسی، AI و.. نوشتم که همشون اینجا در دسترسن:
blog.imsadra.dev
هدفم اینه که مهمترین مقالهها و مواردی که بیشترین بازدید رو داشتن رو انتخاب و به کمک AI به فارسی برگردونم و ترجمه و بصورت bite-sized، همینجا به اشتراک بذارم.
اینطوری هم خسته نمیشید، هم مطالب در دسترسن. :) ❤️ | 1 353 |
| 5 | اگه نیاز به نسخه pdf کتابهای مرتبط با برنامهنویسی داشتین، احتمالا اینجا پیداش کنین:
@progerbooks
(تبلیغ نیست، خودم یه سری کتاب ها رو میخواستم و دقیقا همون ویرایش ها رو داشت) | 1 913 |
| 6 | لا يوجد نص... | 1 910 |
| 7 | من برنامهنویسی در دبیرستان با csharp شروع کردم. کامپایلری بود، کد رو مینوشتی، کامپایل میشد و نهایتا یه فایل قابل اجرا بهت میداد که طبق منطقی که واسش برنامهنویسی کرده بودی، کار میکرد. اگه پروگرمت درست کار نمیکرد، دوباره باید ادیت میکردی، دوباره کامپایل و..
معقولانه بود. واسه شروع بد نبود. دید جالبی نسبت به برنامه نویسی بهم داد. بعد. رفتم سراغ پایتون. دیدم بهه بههه..! چه خوبه، سریع، بدون دردسر و خفنه ولی چرا نمیشه فایل اجرایی ازش گرفت؟ یعنی همیشه، پروگرمت هرجا میخواد بره، پایتونم باید اونجا نصب باشه؟ عهخ. این بده که.. اینجا بود که کم کم با مفهوم زبان های مفسری اشنا شدم.
فهمیدم اون فایل اجرایی که csharp بهم میداد هم همچین standalone نبود.. حتما باید dot net نصب داشته باشی واسه اجراش و چون بیسیک ترین ابزار ها روی ویندوز، دات نت از نیازمندیهاشونه (حتی خود سیستم عامل ویندوز)، واسه همین حس میکنی برنامه ای که نوشتی همه جا کار میکنه، روی تمام سیستم ها اجرا میشه و به به و اینا. (اینو موقعی فهمیدم که روی لینوکس اولین پروگرم سی شارپم رو کامپایل و اجرا کردم) 😁
بعد رفتم سراغ embedded و iot. دیدم اونجا، اکثر تمرکز دیگه سمت برنامه نویسی نیست. تقریبا ۷۰ درصد تمرکز سمت طراحی و معماری فیزیکی ماژول ها و الکترونیکه. برنامه نویسیش هم خیلی اصول خاصی نیاز نداره به رعایت کردن. (مگر در شرایط خاص که قرار باشه فریم ورک یا پروژه بزرگی رو پیاده کنی)
پلن بعدی جاوا اسکریپت و ریاکت بود. اولش خیلی گنگ بود واسم. حتی همون اوایل مسیرم. یه فانکشن مینوشتم، الان کار میکرد، نیم ساعت بعد هرچی رانش میکردم جواب نمیداد. کلا js تو دیدم یه چیز به شدت unreliable و غیرقابل اعتماد بود. نمیدونم چرا. 😂
یکم جی اس خوندم و ریکت رو شروع کردم. قشنگ لمس کردم که یه کمپانی یا تیم، چقدر خوب میتونه یه مفهوم رو به کل عوض کنه و کلا یک ساختار و معماری جدید، به شدت قدرتمند، زیبا و در عین حال باحال بسازه.
ریاکت، روی خوش js رو بهم نشون داد. واقعا کیف کردم از کار کردن با ریاکت. دیدم نسبت به این اکوسیستم و برنامهنویسی یکنواختی که انجام میدادیم عوض شد. ناگفته نماند، شما توی ریاکت، یه سری ساختارها و قابلیتهایی میبینید که هرکدومشون میتونن یه کورس جداگانه باشن بس که به ظاهر ساده و زیبا هستن، ولی به شدت عمیقان و سر از یه سری کانسپتهای خیلی پایهای در میارن. (دیگه یه سری از کتابخونه ها و پکیج هایی که واسه ریاکت درست شدنم نگم..)
بعد از ریاکت، صرفا بخاطر نیاز، یکم کوچ کردم به سمت ریاکت نیتیو و expo. تجربه جالب بود.
ولی خب پایتون یه چیز دیگهاس.. تو این مسیر، خیلی چیزا رو تجربه کردم. اینکه میگن ۱۰۰ درصد تمرکزت رو بذار روی یه زبان/فریم ورک یا تکنولوژی، بنظرم کاملا اشتباه هست. ناخوداگاه داره جلوی بروز خلاقیت در ذهنت رو میگیری.
هر استکی دیدید باحاله، حتما یه چنگی بهش بزنید. در کنارش، سر کار هم برید و تایتل پروفایل کاریتون ثابت باشه.
بنظرم اینجوری، تجربه شیرینتره، مسیر کمتر یکنواخته، خستگی کمتره، هیجان و کنجکاوی بیشتره و چیزی جز خودپروری و پیشرفت درش نمیبینم.
موفق باشید. :) ❤️ | 2 200 |
| 8 | Ah shit.. here we go again. 🚬 | 2 097 |
| 9 | بنظرم یه ترم جدید باید داشته باشیم تحت عنوان “Shipophobia” به خصوص تو این دوره که ابزارهایی مثل Claude و Codex و.. روند توسعه رو تغییر دادن.
به زودی راجع بهش مینویسم. بنظرم یه ترس و احساس خطریه که شاید اکثر کسایی که حرفهای (تا قبل از AI) کد میزدن تو این برهه باهاش مواجهان.
اینکه چطور باهاش مواجه شیم و بعنوان یه اهرم پیشرفت ازش استفاده کنیم رو واستون توضیح میدم. | 2 687 |
| 10 | خب شادباش میگم (؟!). یکی از زنجیرهایی که به پامون بسته بودن رو باز کردن و تنها یک گام به اینترنت آزاد (چیزی که حق انکارناپذیر مردمه و همه دنیا آزادانه ازش استفاده میکنن) نزدیکتر شدیم. همونجایی که همیشه بودیم؛ پس خوشحالی نداره.
درضمن، تو این ۸۰-۹۰ روزی که پشت سر گذاشتیم، بیشرفی و شرافت خیلیا به مردم ثابت شد.
امیدوارم هنوز امیدتون رو از دست نداده باشین. به امید روزهای بهتر. 💪❤️ | 2 835 |
| 11 | در هفته گذشته، بعد از ۱۵ سال اولین پیمنت ویزا و مستر کارت در سوریه انجام شد، همچنین اپل اولین نمایندگی رسمی خودش رو در افغانستان به ثبت رسوند.
و تو هنوز داری پینگ میگیری.. :) | 3 075 |
| 12 | تبلیغ:
امنیت شما خیلی واسمون مهمه، اما جیب شما مهمتر.
#اینترنت_پرو | 2 993 |
| 13 | چقد دلم واستون تنگ شده. ❤️🩹 | 2 268 |
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
