Try Code Box – Telegram
Try Code Box
348 subscribers
43 photos
6 videos
2 files
47 links
👨🏻‍💻 TryCodeBox – جایی برای شروع و جدی‌تر ادامه دادن

گروه:
@TryCodeBoxGroup

🔗 کانال‌های ما:
📦 @TryHackBox – آموزش و چالش‌های هک و امنیت
🧭 @TryHackBoxOfficial – نقشه راه و منابع یادگیری
📖 @TryHackBoxStory – داستان ها و تجربه‌های هکری
Download Telegram
🚀 Arrow Functions in PHP 7.4+
رویکردی ساده‌تر برای کدنویسی حرفه‌ای!


سلام به اعضای محترم کانال TryCodeBox 👋
در اولین پست، می‌خوایم نگاهی داشته باشیم به یکی از قابلیت‌های کاربردی PHP از نسخه ۷.۴ به بعد

اگر با PHP کار می‌کنی، این ویژگی می‌تونه کدت رو خواناتر، کوتاه‌تر و حرفه‌ای‌تر کنه.


🔹توابع پیکانی(Arrow Function) چیست؟

توابع پیکانی، نوعی تابع ناشناس هستن با سینتکسی بسیار کوتاه‌تر از حالت کلاسیک.
نیازی به use برای گرفتن متغیر از scope خارجی ندارن و فقط از یک عبارت (expression) تشکیل می‌شن.

ساختارش به این صورته

$multiplier = 3;
$multiply = fn($x) => $x * $multiplier;
echo $multiply(4); // خروجی: 12



🔸 مقایسه با توابع ناشناس کلاسیک


$multiplier = 3;
$multiply = function($x) use ($multiplier) {
return $x * $multiplier;
};
echo $multiply(4); // خروجی: 12


همانطور که مشاهده می کنید, arrow function بسیار خلاصه‌تر و تمیزتره اما خاطرتان باشه فقط برای عملیات تک‌خطی مناسبه.


🔹 کاربردهای معروف:


توابع پیکانی در کنار aray_reduce , array_map , array_filter
فوق‌العاده‌ست.

$numbers = [1, 2, 3, 4];
$squares = array_map(fn($n) => $n * $n, $numbers);
print_r($squares); // [1, 4, 9, 16]


مزایا:

- سینتکس کوتاه و خوانا
- دسترسی خودکار به متغیرهای خارجی
- مناسب برای توابع ساده و کوتاه


⚠️ محدودیت‌ها:

- فقط در PHP 7.4 و بالاتر
- فقط یک عبارت، نه چند دستور


📎 مطالعه بیشتر در مقاله freeCodeCamp

https://www.freecodecamp.org/news/how-to-use-arrow-functions-in-php/


💻 با ما همراه باش تا از آموزش‌ها، اخبار و نکات برنامه‌نویسی روز دنیا جا نمونی
@TryCodeBox
#PHP #CleanCode
💻 ۳۹ سؤال مصاحبه JavaScript که هر توسعه‌دهنده جونیور باید برای ۲۰۲۵ بدونه!

سلام به همراهان TryCodeBox 👋

اگر در ابتدای مسیر برنامه‌نویسی Front-End هستی یا برای موقعیت‌های جونیور JavaScript آماده می‌شی، این پست برای تو هست!
در این پست سوالات مهم، پایه‌ای و پرتکرار رو مرور می‌کنیم.


📌 لیست سؤالات :


سوال ۱ - تفاوت بین var، let و const چیه؟

سوال ۲ - انواع داده (Data Types) در JavaScript چی هستن؟

سوال ۳ - فرق == و === چیه؟

سوال ۴ - Hoisting در JavaScript یعنی چی؟

سوال ۵ - Closure چیه و کاربردش چیه؟

سوال ۶ - فرق بین کدنویسی هم‌زمان (synchronous) و غیرهم‌زمان (asynchronous) چیه؟

سوال ۷ - Arrow Function ها چی هستن؟

سوال ۸ - Lexical Scope یعنی چی؟

سوال ۹ - Event Loop چطور کار می‌کنه؟

سوال ۱۰ - چطور می‌شه یک آبجکت رو clone کرد؟

سوال ۱۱ - تفاوت بین map()، filter() و reduce() چیه؟

سوال ۱۲ - Destructuring در JavaScript یعنی چی؟

سوال ۱۳ - Spread Operator چیه؟

سوال ۱۴ - Promise ها چی هستن؟

سوال ۱۵ - async/await چطور کار می‌کنه؟

سوال ۱۶ - تابع fetch() چه کاربردی داره؟

سوال ۱۷ - چطور با async/await خطا رو مدیریت می‌کنی؟

سوال ۱۸ - Promise.all() چیه؟

سوال ۱۹ - JavaScript Modules چی هستن؟

سوال ۲۰ - تفاوت بین null و undefined چیه؟

سوال ۲۱ - مفهوم debounce و throttle چیه؟

سوال ۲۲ - کلیدواژه this در JS چه رفتاری داره؟

سوال ۲۳ - وراثت در جاوااسکریپت به سبک prototype چطوره؟

سوال ۲۴ - DOM چیه؟

سوال ۲۵ - فرق == و === در مقایسه DOM؟

سوال ۲۶ - چطور از DOM عنصر انتخاب می‌کنی؟

سوال ۲۷ - Event Delegation یعنی چی؟

سوال ۲۸ - چطور جلوی رفتار پیش‌فرض event رو می‌گیری؟

سوال ۲۹ - Template Literal چیه؟

سوال ۳۰ - Callback Function چیه؟

سوال ۳۱ - مقادیر falsy در JavaScript چی هستن؟

سوال ۳۲ - IIFE (توابع اجراشونده فوری) چی هستن؟

سوال ۳۳ - تفاوت Shallow Copy و Deep Copy چیه؟

سوال ۳۴ - Garbage Collection در JavaScript چطور کار می‌کنه؟

سوال ۳۵ - تفاوت بین localStorage، sessionStorage و cookie چیه؟

سوال ۳۶ - Service Worker چیه؟

سوال ۳۷ - تابع higher-order چیه؟

سوال ۳۸ - متدهای مرتبط با array چیا هستن؟

سوال ۳۹ - مزایا و معایب استفاده از arrow function نسبت به function declaration چیه؟


🔗 برای مطالعه‌ی پاسخ این سؤالات، به مقاله اصلی سر بزنید
https://dev.to/finalroundai/40-javanoscript-interview-questions-every-frontend-developer-should-prepare-in-2025-eal

کانال TryCodeBox رو دنبال کن برای آموزش، تحلیل، نکته و خبرهای حرفه‌ای برنامه‌نویسی 🚀
@TryCodeBox
#Js
🧠 خروجی کد زیر چیست؟


x = [0, None]
y = ["abc", 1]
s = (any(x), any(y)) == (all(x), all(y))
print(s)


@TryCodeBox
#Quiz #Python
🧠 خروجی کد زیر چیست؟

def f():
yield 0
yield from [1, 2]
yield 3

print(*f())


@TryCodeBox
#Quiz #Python
This media is not supported in your browser
VIEW IN TELEGRAM
💻 Rust و C++26 – زمانی که زبان برنامه‌نویسی خودش برای شما کدنویسی می‌کند

@TryCodeBox
#Rust #Cpp
Try Code Box
💻 Rust و C++26 – زمانی که زبان برنامه‌نویسی خودش برای شما کدنویسی می‌کند @TryCodeBox #Rust #Cpp
سلام به همراهان TryCodeBox 👋

در دنیای توسعه نرم‌افزار، ایده‌ی "کدی که خودش کد تولید می‌کند" دیگر صرفاً یک مفهوم آکادمیک نیست.
در این پست درباره‌ی یک ویژگی مهم و آینده‌محور صحبت می‌کنیم:
کد جنریشن از طریق قابلیت‌هایی مانند macro در Rust و reflection در C++.


🔹 Rust – زمانی که یک خط کافی‌ست


در Rust، با استفاده از derive macros می‌توان تنها با افزودن یک annotation ساده مانند

#[derive(Debug)]

امکان تولید خودکار پیاده‌سازی‌هایی مانند نمایش ساختار (e.g. Debug) را به زبان داد، بدون نیاز به تعریف دستی.

مثال

#[derive(Debug)]
struct Point {
x: i32,
y: i32,
}

fn main() {
let p = Point { x: 10, y: 20 };
println!("{:?}", p);
}

خروجی
Point { x: 10, y: 20 }


بدون آنکه برنامه‌نویس نیازی به نوشتن تابع خاصی برای نمایش Point داشته باشد، خود زبان تمام کد لازم را تولید کرده است.

زبان Rust امروزه با بهره‌گیری از proc macros و سیستم توسعه‌یافته‌ی meta-programming، این امکانات را در محیط‌های production به‌صورت پایدار ارائه می‌دهد.


🔹 C++26 – reflection همچنان در مسیر توسعه


در زبان ++C، قابلیت reflection هنوز به‌صورت رسمی وارد استاندارد نشده است.
پیشنهاد رسمی این ویژگی با عنوان P1240 مطرح شده و انتظار می‌رود در نسخه‌ی C++26 به استاندارد زبان افزوده شود.

هدف reflection این است که زبان بتواند در زمان compile به ساختارهای کد دسترسی داشته باشد و از آن برای تولید کد استفاده کند.
در حال حاضر، این ویژگی صرفاً در برخی کامپایلرهای آزمایشی (مانند Clang) آن هم با فعال‌سازی گزینه‌های خاص قابل بررسی است.

🟩 در مجموع، گرچه هر دو زبان در مسیر هوشمندتر شدن گام برمی‌دارند، اما Rust در این حوزه چند گام جلوتر قرار دارد.


کانال TryCodeBox رو دنبال کن برای آموزش، تحلیل، نکته و خبرهای حرفه‌ای برنامه‌نویسی 🚀

@TryCodeBox
#Rust #Cpp
خروجی کد چه خواهد بود؟
class A:
    x = 1
    l = []
a1, a2 = A(), A()
a1.x = 2
a1.l.append(100)
print(a2.x, len(a2.l))

@TryCodeBox
#Quiz #Python
🧠 کوییز FinOps در IaaS !

مدیریت هزینه‌ها در
Infrastructure as a Service (IaaS)

مثل AWS EC2 یکی از کلیدهای موفقیت در FinOps هست. بیاید یه چالش کدنویسی باحال حل کنیم! 🚀

کد زیر هزینه یه instance رو در AWS محاسبه می‌کنه. به نظرتون خروجی این کد چیه؟
def calculate_instance_cost(instance_type, hours):
pricing = {
"t2.micro": 0.0116,
"m5.large": 0.096,
"c5.xlarge": 0.17
}

if instance_type not in pricing:
return "Error: Invalid instance type"

cost = pricing[instance_type] * hours
return round(cost, 2)

result = calculate_instance_cost("m5.large", 10)
print(result)
🚀 Model Serving Frameworks:
مدل‌های یادگیری ماشین رو چطور عملیاتی کنیم؟


اگر یه مدل یادگیری ماشین (مثل TensorFlow یا PyTorch) ساختید، حالا چطور می‌تونید اونو تو دنیای واقعی مستقر کنید؟ اینجا Model Serving Frameworks به کمک میان! این ابزارها مثل یه پل بین مدل‌های شما و دنیای واقعی عمل می‌کنن. بیاید سه تا از معروف‌هاشون رو بشناسیم:

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

TorchServe :
ساخته شده برای مدل‌های PyTorch، استفاده‌ش آسونه و انعطاف‌پذیره. اگر با PyTorch کار می‌کنید، این بهترین دوست شماست!
KFServing :
مناسب برای محیط‌های Kubernetes، از مدل‌های مختلف (TensorFlow، PyTorch و غیره) پشتیبانی می‌کنه و برای سیستم‌های ابری عالیه.

چرا اینا مهم‌اند؟ این فریم‌ورک‌ها به شما کمک می‌کنن مدل‌هاتون رو با سرعت، مقیاس‌پذیری و مدیریت ساده‌تر در دسترس بذارید (مثلاً API برای پیش‌بینی).

🚀 انتخاب درست این ابزارها می‌تونه پروژه‌تون رو از یه آزمایش به یه سرویس واقعی تبدیل کنه!

فرض کنید یه مدل PyTorch دارید و می‌خواید با TorchServe یه API برای پیش‌بینی بسازید. کد زیر یه مثال ساده‌ست که نشون می‌ده چطور مدل رو آماده و سرویس‌دهی می‌کنید:
# 1. مدل PyTorch رو ذخیره کنید
import torch
from torchvision import models

model = models.resnet18(pretrained=True)
model.eval()
torch.jit.save(torch.jit.noscript(model), "model.pt")

# 2. فایل مدل رو برای TorchServe آماده کنید
# دستور ترمینال:
# torch-model-archiver --model-name resnet18 --version 1.0 --model-file model.pt --handler image_classifier

# 3. TorchServe رو اجرا کنید
# torchserve --start --model-store model_store --models resnet18=resnet18.mar

# 4. درخواست پیش‌بینی با API
import requests
response = requests.post("http://localhost:8080/predictions/resnet18", files={"data": open("image.jpg", "rb")})
print(response.json())

توضیح کد:

مدل ResNet18 از PyTorch لود و ذخیره می‌شه.
با ابزار torch-model-archiver مدل برای TorchServe آماده می‌شه.

سپس TorchServeیه سرور راه‌اندازی می‌کنه که می‌تونید باهاش درخواست‌های پیش‌بینی (مثل طبقه‌بندی تصویر) بفرستید.

در نهایت، با یه درخواست HTTP ساده، خروجی پیش‌بینی رو می‌گیرید!
بیاید یه کد ساده رو بررسی کنیم و ببینیم خروجی‌ش چی می‌شه.
کد زیر یه مدل PyTorch رو برای پیش‌بینی با TorchServe آماده می‌کنه و یه درخواست API می‌فرسته.
import torch
import requests
from torchvision import models

# 1. ذخیره مدل
model = models.resnet18(pretrained=True)
model.eval()
torch.jit.save(torch.jit.noscript(model), "model.pt")

# 2. فرض کنید TorchServe اجرا شده و مدل لود شده
# دستورات ترمینال (برای آماده‌سازی و اجرا):
# torch-model-archiver --model-name resnet18 --version 1.0 --model-file model.pt --handler image_classifier
# torchserve --start --model-store model_store --models resnet18=resnet18.mar

# 3. ارسال درخواست پیش‌بینی
response = requests.post("http://localhost:8080/predictions/resnet18", files={"data": open("cat.jpg", "rb")})
result = response.json()

# فرض کنید خروجی JSON اینه: {"class": "tabby_cat", "confidence": 0.85}
print(result["confidence"])

با فرض اینکه درخواست API به درستی کار می‌کنه و خروجی JSON شامل

{"class": "tabby_cat", "confidence": 0.85}

باشه، مقدار چاپ‌شده توسط خط زیر چیست ؟

print(result["confidence"])
🛠 این دو سوال فقط به این دلیل می باشد که با دو دنیای MLops و Finops آشنا بشید:

MLOps چیه؟ 🤖

MLOps (Machine Learning Operations) ترکیبی از DevOps و ماشین‌لرنینگه. هدفش اینه که چرخه عمر مدل‌های یادگیری ماشین (از توسعه تا استقرار و نظارت) رو خودکار و مقیاس‌پذیر کنه.

هدف: ساخت، آزمایش، استقرار و مانیتورینگ مدل‌ها با سرعت و کیفیت بالا.
مسیر:
داده و مدل‌سازی: آماده‌سازی داده‌ها و آموزش مدل.
استقرار: استفاده از ابزارهایی مثل TensorFlow Serving، TorchServe یا KFServing برای سرو کردن مدل‌ها.
نظارت: مانیتورینگ عملکرد مدل و به‌روزرسانی مداوم (مثل retraining).
اتوماسیون: استفاده از CI/CD برای خودکارسازی فرآیندها.
ابزارها: Docker، Kubernetes، MLflow، Kubeflow.
چرا مهمه؟ بدون MLOps، مدل‌هاتون ممکنه تو محیط واقعی به مشکل بخورن یا مقیاس‌پذیر نباشن!

FinOps چیه؟ 💸
FinOps (Financial Operations) درباره مدیریت هوشمند هزینه‌های ابریه. تو دنیایی که سرویس‌های ابری مثل AWS، Azure و Google Cloud هزینه‌های بالایی دارن، FinOps کمک می‌کنه پول‌تون رو بهینه خرج کنید.

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

شفافیت: رصد دقیق هزینه‌ها با ابزارهایی مثل AWS Cost Explorer.

بهینه‌سازی: انتخاب منابع مناسب (مثل Spot Instances) و خاموش کردن منابع بلااستفاده.

فرهنگ: ایجاد همکاری بین تیم‌های فنی و مالی برای تصمیم‌گیری بهتر.

ابزارها: CloudHealth، AWS Budgets، Azure Cost Management.

چرا مهمه؟
با FinOps می‌تونید تا 30٪ هزینه‌های ابری رو کم کنید و منابع رو بهتر مدیریت کنید!
هر دو به بهینه‌سازی و مقیاس‌پذیری پروژه‌های ابری و ماشین‌لرنینگ کمک می‌کنن:

MLOps تضمین می‌کنه مدل‌هاتون درست و سریع کار کنن.

FinOps مطمئن می‌شه این کار با کمترین هزینه انجام بشه.

مثلاً، یه مدل رو با TorchServe مستقر می‌کنید (MLOps)، اما با FinOps مطمئن می‌شید که سرورها فقط وقتی نیازه روشن باشن تا هزینه اضافی ندید!

شما کجای این مسیرید؟ 🤔
تازه با MLOps یا FinOps آشنا شدید؟
یا دارید از ابزارهایی مثل Kubernetes یا AWS Cost Explorer استفاده می‌کنید؟
💡 تحول در چرخه توسعه با GitLab
ادغام هوش مصنوعی Duo برای توانمندسازی توسعه‌دهندگان
گیت لب یکی از پیشروترین پلتفرم‌های DevOps، با معرفی و ادغام گسترده‌ی مجموعه قابلیت‌های هوش مصنوعی تحت عنوان GitLab Duo، گامی مهم در بهبود چرخه عمر توسعه نرم‌افزار برداشته است.
این نسخه جدید، که در ۱۵ مه ۲۰۲۵ معرفی شد، با هدف افزایش بهره‌وری، کاهش خطاها و تسهیل فرآیندهای توسعه منتشر شده است.


مهم‌ترین ابزارهای ارائه‌شده در GitLab Duo


🔹 تکمیل و تولید کد
🔹 توضیح و تفسیر کد
🔹 تولید خودکار تست
🔹 خلاصه‌سازی مباحث
🔹 تحلیل امنیتی و پیشنهاد راه‌حل


ادغام AI در GitLab صرفاً یک ویژگی جدید نیست بلکه بازتعریفی از شیوه کار توسعه‌دهندگان است.

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


مدیر ارشد محصول GitLab در این رابطه می‌گوید
:

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


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


کانال TryCodeBox رو دنبال کن برای آموزش، تحلیل، نکته و خبرهای حرفه‌ای برنامه‌نویسی🚀
@TryCodeBox
#news #gitlab
This media is not supported in your browser
VIEW IN TELEGRAM
🎯 آموزش اضافه کردن DeepSeek-V3 به Docker در چند قدم ساده!
🚀 مخصوص علاقه‌مندان به مدل‌های زبانی قدرتمند و هوش مصنوعی
📦 اجرای لوکال مدل با FastAPI + Docker
🔐 بدون نیاز به GPU قوی یا سرور گران‌قیمت

🔥 به سبک TRY CODE BOX این بار با DeepSeek در خدمت شماییم...

@TryCodeBox
#HackTheBox #DeepSeek #Docker #AI #LLM #FastAPI #هوش_مصنوعی #آموزش
🤖این مدل با معماری Mixture-of-Experts (MoE) و ۶۷۱ میلیارد پارامتر طراحی شده است که تنها ۳۷ میلیارد پارامتر در هر توکن فعال می‌شوند، و بر روی ۱۴.۸ تریلیون توکن با کیفیت آموزش دیده است حال این مدل MOE میخواییم در محیط داکر پیاده سازی کنیم به صورت step by step
📦 پیاده‌سازی DeepSeek-V3 با Docker
برای استقرار DeepSeek-V3 در محیط Docker، چندین گزینه وجود دارد:

1. استفاده از پروژه deepseek-docker:
مخزن GitHub به نام deepseek-docker یک راه‌حل کامل برای استقرار مدل‌های DeepSeek-R1 و DeepSeek-Coder ارائه می‌دهد. این پروژه شامل فایل‌های docker-compose.yml، پیکربندی Nginx به‌عنوان پروکسی معکوس، و پشتیبانی از گواهی‌های SSL با Certbot است. برای استفاده از این پروژه، نیاز به کارت گرافیک NVIDIA و حساب Hugging Face برای دانلود مدل‌ها دارید.

2. پروژه مقایسه چندمدلی با FastAPI:
پروژه‌ای دیگر با نام DeepSeek-MultiModel-Comparison امکان مقایسه DeepSeek-V3 با مدل‌هایی مانند LLaMA 3.1 را فراهم می‌کند. این پروژه از FastAPI برای ارائه API REST استفاده می‌کند و شامل Dockerfile برای استقرار آسان است. پس از راه‌اندازی، می‌توانید از طریق آدرس http://localhost:8000/infer به API دسترسی داشته باشید.

3. استقرار با Kubernetes:
برای مقیاس‌پذیری بیشتر، می‌توانید از Kubernetes برای استقرار DeepSeek-V3 استفاده کنید. با ایجاد فایل‌های پیکربندی deployment.yaml و استفاده از FastAPI برای ارائه API، می‌توانید مدل را در محیط‌های ابری یا خوشه‌های محلی اجرا کنید.