💠 نسخه جدید محیط توسعه Zed منتشر شده است
🔸 ارتقا از نسخه 1.9.0 به 1.10.0
🔖 #zed, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.9.0 به 1.10.0
🔖 #zed, #chat, #release
💎 @DevelopixChannel
👍2
💠 نسخه جدید محیط توسعه VSCode منتشر شده است
🔸 ارتقا از نسخه 1.128.1 به 1.129.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.128.1 به 1.129.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
💠 نسخه جدید محیط توسعه ویژوال استودیو (Visual Studio) منتشر شده است
🔸 ارتقا از نسخه 18.7.4 به 18.8.0
🔖 #visual_studio, #chat, #csharp, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 18.7.4 به 18.8.0
🔖 #visual_studio, #chat, #csharp, #release
💎 @DevelopixChannel
💠 نسخه جدید محیط توسعه Zed منتشر شده است
🔸 ارتقا از نسخه 1.10.3 به 1.11.3
🔖 #zed, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.10.3 به 1.11.3
🔖 #zed, #chat, #release
💎 @DevelopixChannel
نامگذاری تمیز؛ اولین خط دفاع در Clean Code 🧹
یکی از عملیترین ایدههای کتاب Clean Code این است که «اسم خوب، نصف راه خوانایی کد است». خیلی از بدهیهای فنی فقط با نامگذاری درست اصلاً بهوجود نمیآیند.
👀 نشانههای نامگذاری بد
وقتی متغیر و تابع اینطوری هستند:
از روی اسمها تقریباً هیچ چیز قابلفهم نیست. برای فهمیدن کد، مجبور میشویم پیادهسازی داخلی را خطبهخط بخوانیم.
✅ چطور بهترش کنیم؟
۱️⃣ اسم باید «بگوید» چهکار میکند
نام تابع، ورودی و شرطها واضح شدهاند. نیاز کمتری به کامنت داریم، چون خود کد توضیحدهنده است.
۲️⃣ از اسمهای عمومی مثل data, info, tmp دوری کن
هرجا اسم مبهم میشود، خواننده باید در ذهنش حدس بزند؛ همین حدسها منبع اصلی سوتفاهم در کد هستند.
۳️⃣ اسم تابع را فعل، اسم متغیر را اسم بگذار
این الگوی ساده کمک میکند بدون نگاه به بدنه، از روی اسمها بفهمیم هر چیزی «چیز است» یا «کار».
۴️⃣ از abbreviation بیمعنی خودداری کن
خودمان امروز معنای cfg را میفهمیم، ۶ ماه بعد یا برای همکار جدید، این تبدیل میشود به رمز.
۵️⃣ اسمها را بر اساس domain انتخاب کن
استفاده از واژههای همان دامنه (Order, Invoice, Payment, Discount) کد را به زبان بیزینس نزدیک میکند و فهم سیستم را برای همهی تیم آسانتر میکند.
📚 برای مطالعه بیشتر:
Clean Code, Chapter 2: Meaningful Names
Refactoring Guru - Code Smells
در هر refactor کوچک، فقط با بهتر کردن اسمها میشود کیفیت طراحی را بالا برد؛ بدون تغییر رفتار کد. از همین commit بعدی، روی هر اسم چند ثانیه بیشتر فکر شود، بازدهش در بلندمدت شگفتانگیز است ✨
🔖 #Programming #برنامه_نویسی #clean_code #naming #meaningful_names #refactoring #readability #architecture
👤 Developix
💎 Channel: @DevelopixChannel
یکی از عملیترین ایدههای کتاب Clean Code این است که «اسم خوب، نصف راه خوانایی کد است». خیلی از بدهیهای فنی فقط با نامگذاری درست اصلاً بهوجود نمیآیند.
👀 نشانههای نامگذاری بد
وقتی متغیر و تابع اینطوری هستند:
def p(u):
if len(u) > 0:
for x in u:
if x[3] == 1:
send(x)
از روی اسمها تقریباً هیچ چیز قابلفهم نیست. برای فهمیدن کد، مجبور میشویم پیادهسازی داخلی را خطبهخط بخوانیم.
✅ چطور بهترش کنیم؟
۱️⃣ اسم باید «بگوید» چهکار میکند
def send_active_users(users):
if len(users) == 0:
return
for user in users:
if user.is_active():
send(user)
نام تابع، ورودی و شرطها واضح شدهاند. نیاز کمتری به کامنت داریم، چون خود کد توضیحدهنده است.
۲️⃣ از اسمهای عمومی مثل data, info, tmp دوری کن
# بد
result = process(data)
# بهتر
normalized_orders = normalize_orders(raw_orders)
هرجا اسم مبهم میشود، خواننده باید در ذهنش حدس بزند؛ همین حدسها منبع اصلی سوتفاهم در کد هستند.
۳️⃣ اسم تابع را فعل، اسم متغیر را اسم بگذار
# تابع با اسم اسمی (بدفهم)
user_status = user()
# واضحتر
status = get_user_status()
این الگوی ساده کمک میکند بدون نگاه به بدنه، از روی اسمها بفهمیم هر چیزی «چیز است» یا «کار».
۴️⃣ از abbreviation بیمعنی خودداری کن
# بد
cfg = read_cfg(pth)
# بهتر
config = read_config_file(path)
خودمان امروز معنای cfg را میفهمیم، ۶ ماه بعد یا برای همکار جدید، این تبدیل میشود به رمز.
۵️⃣ اسمها را بر اساس domain انتخاب کن
استفاده از واژههای همان دامنه (Order, Invoice, Payment, Discount) کد را به زبان بیزینس نزدیک میکند و فهم سیستم را برای همهی تیم آسانتر میکند.
📚 برای مطالعه بیشتر:
Clean Code, Chapter 2: Meaningful Names
Refactoring Guru - Code Smells
در هر refactor کوچک، فقط با بهتر کردن اسمها میشود کیفیت طراحی را بالا برد؛ بدون تغییر رفتار کد. از همین commit بعدی، روی هر اسم چند ثانیه بیشتر فکر شود، بازدهش در بلندمدت شگفتانگیز است ✨
🔖 #Programming #برنامه_نویسی #clean_code #naming #meaningful_names #refactoring #readability #architecture
👤 Developix
💎 Channel: @DevelopixChannel
❤4
Forwarded from Developix Support
با Migration Boost هاستایران، برای مهاجرت به سرور ابری دوباره هزینه ترافیک نده! 🚀
با خرید اولین سرور ابری غیرساعتی از **هاستایران**، بسته ترافیک هدیه مهاجرت بهصورت خودکار برای سرویس شما فعال میشود:
✅ حداقل ۱۰۰ گیگابایت ترافیک هدیه مهاجرت
✅ افزایش حجم هدیه متناسب با ظرفیت دیسک اولیه
✅ ترافیک آپلود رایگان
✅ بدون محدودیت زمانی
سرور ابری هاستایران را راهاندازی کنید و بکاپها، فایلها و پایگاه داده خود را بدون دغدغه هزینههای پنهان ترافیک منتقل کنید.
👇 مشاهده پلنهای سرور ابری هاستایران
hostiran.club/Migration
hostiran.club/Migration
با خرید اولین سرور ابری غیرساعتی از **هاستایران**، بسته ترافیک هدیه مهاجرت بهصورت خودکار برای سرویس شما فعال میشود:
✅ حداقل ۱۰۰ گیگابایت ترافیک هدیه مهاجرت
✅ افزایش حجم هدیه متناسب با ظرفیت دیسک اولیه
✅ ترافیک آپلود رایگان
✅ بدون محدودیت زمانی
سرور ابری هاستایران را راهاندازی کنید و بکاپها، فایلها و پایگاه داده خود را بدون دغدغه هزینههای پنهان ترافیک منتقل کنید.
👇 مشاهده پلنهای سرور ابری هاستایران
hostiran.club/Migration
hostiran.club/Migration
💠 نسخه جدید محیط توسعه VSCode منتشر شده است
🔸 ارتقا از نسخه 1.130.0 به 1.131.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.130.0 به 1.131.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
👍1
💠 نسخه جدید محیط توسعه Zed منتشر شده است
🔸 ارتقا از نسخه 1.12.1 به 1.13.1
🔖 #zed, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.12.1 به 1.13.1
🔖 #zed, #chat, #release
💎 @DevelopixChannel
👍1
در نمونهکد بالا، استفاده از آرگومان پیشفرض قابلتغییر (مثل
🔖 #Programming #برنامه_نویسی
👤 Developix
💎 Channel: @DevelopixChannel
list) در تعریف تابع باعث بروز رفتار غیرقابلپیشبینی و Memory Leak منطقی در سناریوهای پیچیده میشود، چون همهٔ فراخوانیها همان آبجکت پیشفرض را بهاشتراک میگذارند. بهجای آن میتوانید با مقدار پیشفرض None و ساخت لیست جدید داخل تابع، هر بار یک state مستقل بسازید و از باگهای سخترفع در کدهای چندماژوله و تستنویسی جلوگیری کنید.🔖 #Programming #برنامه_نویسی
👤 Developix
💎 Channel: @DevelopixChannel
💠 نسخه جدید محیط توسعه VSCode منتشر شده است
🔸 ارتقا از نسخه 1.131.0 به 1.132.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.131.0 به 1.132.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
👍1
💠 نسخه جدید محیط توسعه Zed منتشر شده است
🔸 ارتقا از نسخه 1.13.2 به 1.14.2
🔖 #zed, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.13.2 به 1.14.2
🔖 #zed, #chat, #release
💎 @DevelopixChannel
👍1
💠 نسخه جدید محیط توسعه VSCode منتشر شده است
🔸 ارتقا از نسخه 1.132.1 به 1.133.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.132.1 به 1.133.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
👍1
💠 نسخه جدید محیط توسعه Zed منتشر شده است
🔸 ارتقا از نسخه 1.14.2 به 1.15.0
🔖 #zed, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.14.2 به 1.15.0
🔖 #zed, #chat, #release
💎 @DevelopixChannel
❤2
💠 نسخه جدید محیط توسعه ویژوال استودیو (Visual Studio) منتشر شده است
🔸 ارتقا از نسخه 18.8.3 به 18.9.0
🔖 #visual_studio, #chat, #csharp, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 18.8.3 به 18.9.0
🔖 #visual_studio, #chat, #csharp, #release
💎 @DevelopixChannel
👍3❤1
🧩 این کد پایتون چه باگ عجیبی داره؟
هر بار که تابع add_item رو صدا میزنی، یه نتیجه غیرمنتظره میگیری.
مشکل اصلی توی این پیادهسازی چیه و چطور درستش میکنی؟
🔖 #Programming #برنامه_نویسی
👤 Developix
💎 Channel: @DevelopixChannel
هر بار که تابع add_item رو صدا میزنی، یه نتیجه غیرمنتظره میگیری.
مشکل اصلی توی این پیادهسازی چیه و چطور درستش میکنی؟
🔖 #Programming #برنامه_نویسی
👤 Developix
💎 Channel: @DevelopixChannel
💠 نسخه جدید محیط توسعه VSCode منتشر شده است
🔸 ارتقا از نسخه 1.133.0 به 1.134.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.133.0 به 1.134.0
🔖 #vscode, #chat, #release
💎 @DevelopixChannel
💠 نسخه جدید محیط توسعه Zed منتشر شده است
🔸 ارتقا از نسخه 1.15.1 به 1.16.1
🔖 #zed, #chat, #release
💎 @DevelopixChannel
🔸 ارتقا از نسخه 1.15.1 به 1.16.1
🔖 #zed, #chat, #release
💎 @DevelopixChannel
🔥 پروژه: سرور LLM روی مک Apple Silicon
روی مک با Apple Silicon کار میکنی و میخواهی LLM محلی سریع داشته باشی؟ پروژه omlx دقیقا برای همین است 🤓
یک inference server سبک که مدلها را با continuous batching و کش روی SSD اجرا میکند و همهچیز از منوی بالای macOS مدیریت میشود؛ بدون ترمینال، بدون دنگوفنگ.
برای تست و دیباگ اپهای هوش مصنوعی روی مک گزینهٔ خیلی جمعوجوری است.
لینک گیتهاب را یکبار چک کن، شاید دقیقا همان چیزی باشد که دنبالش بودی.
⭐️ 1,102 stars this week
🔖 #Programming #برنامه_نویسی #هوش_مصنوعی #LLM #Apple_Silicon
💎 @DevelopixChannel
روی مک با Apple Silicon کار میکنی و میخواهی LLM محلی سریع داشته باشی؟ پروژه omlx دقیقا برای همین است 🤓
یک inference server سبک که مدلها را با continuous batching و کش روی SSD اجرا میکند و همهچیز از منوی بالای macOS مدیریت میشود؛ بدون ترمینال، بدون دنگوفنگ.
برای تست و دیباگ اپهای هوش مصنوعی روی مک گزینهٔ خیلی جمعوجوری است.
لینک گیتهاب را یکبار چک کن، شاید دقیقا همان چیزی باشد که دنبالش بودی.
⭐️ 1,102 stars this week
🔖 #Programming #برنامه_نویسی #هوش_مصنوعی #LLM #Apple_Silicon
💎 @DevelopixChannel
🔥3❤1
یادته اون باگ لعنتی که هر ریکوئست جدید همون timestamp قدیمی رو برمیگردوند؟ معمولاً مقصر همچین چیزیه 👇
اینجا تو تابع اول، از
تو نسخهٔ درست، پیشفرض رو
خلاصهاش: اگه میخوای یه مقدار «الان» یا یه لیست/دیکشنری خالی پیشفرض داشته باشی، از آرگومان پیشفرض قابل تغییر یا dynamic استفاده نکن؛ None بذار و داخل تابع مقدارش رو بساز 😉
🔖 #Programming #برنامه_نویسی
👤 Developix
💎 Channel: @DevelopixChannel
اینجا تو تابع اول، از
datetime.now() بهعنوان آرگومان پیشفرض استفاده شده. این مقدار فقط یکبار موقع تعریف تابع حساب میشه، نه هر بار صدا زدن تابع؛ برای همین همهٔ لاگها همون زمان اولی رو میگیرن.تو نسخهٔ درست، پیشفرض رو
None گذاشتیم و داخل تابع اگر timestamp تهی بود، تازه اونجا datetime.now() رو صدا میزنیم. اینطوری هر بار یه زمان جدید و درست ثبت میشه.خلاصهاش: اگه میخوای یه مقدار «الان» یا یه لیست/دیکشنری خالی پیشفرض داشته باشی، از آرگومان پیشفرض قابل تغییر یا dynamic استفاده نکن؛ None بذار و داخل تابع مقدارش رو بساز 😉
🔖 #Programming #برنامه_نویسی
👤 Developix
💎 Channel: @DevelopixChannel
👍5