en
Feedback
برنامه نویسی

برنامه نویسی

Open in Telegram

لیست گروه های برنامه نویسی: 🍁 @programming_list

Show more
5 434
Subscribers
No data24 hours
-87 days
-2230 days
Posts Archive
⭕️ همکاران سیستم از برنامه‌نویسان و متخصصان توسعه نرم‌افزار در حوزه‌های DevOps ، .Net ، Frontend ، Golang و تست نرم‌افزار دعو
⭕️ همکاران سیستم از برنامه‌نویسان و متخصصان توسعه نرم‌افزار در حوزه‌های DevOps ، .Net ، Frontend ، Golang و تست نرم‌افزار دعوت به عمل می‌آورد. 💻 ما در حال توسعه و نگهداشت نرم‌افزارهای مقیاس‌بزرگی هستیم که کیفیت، پایداری و نگاه بلندمدت در آن‌ها اهمیت دارد. در تیم تولید نرم‌افزار همکاران سیستم، توانایی حل مسئله، درک معماری نرم‌افزار، کار تیمی و مسئولیت‌پذیری در تحویل خروجی اهمیت بالایی دارد؛ برای ما صرفاً تسلط به ابزار مهم نیست، بلکه تجربه کار در تیم‌های ساختارمند و علاقه‌مندی به رشد فنی ارزشمند است. 🧲 اگر شما هم تجربه کار در پروژه‌های جدی نرم‌افزاری دارید، این فرصت برای شماست. منتظر دریافت رزومه شما هستیم. 📩 ارسال رزومه: 📎 HR-Dev@Systemgroup.net ➖➖➖➖➖➖

🚨 آخرین فرصت ثبت‌نام با تخفیف ویژه | دوره فرانت‌اند (مقدماتی) با عرض سلام و تسلیت خدمت همه‌ی دوستان بابت اتفاقات چند هفته اخ
🚨 آخرین فرصت ثبت‌نام با تخفیف ویژه | دوره فرانت‌اند (مقدماتی) با عرض سلام و تسلیت خدمت همه‌ی دوستان بابت اتفاقات چند هفته اخیر 🖤 و آرزوی سلامتی برای همه شما و بهتر شدن حال هممون 💚 به‌دلیل شرایط اخیر و اختلال‌های اینترنت، 📅 شروع دوره به پنج‌شنبه ۲۳ بهمن منتقل شد. همچنین با توجه به شرایط اقتصادی سخت این روزها تسهیلات ویژه ای هم در نظر گرفتیم برای شما 🤍 که امیدواریم بتونیم کمی کمک حال شما باشیم. ⏳ ثبت‌نام در حال تکمیل شدنه و 👉 فقط چند ظرفیت باقی مونده 🔥 تخفیف محدود و زمان‌دار: 💸 تخفیف ویژه فقط تا امشب، ساعت ۲۴ چهارشنبه ۲۲ بهمن ماه 💳 امکان پرداخت اقساطی 📌 امکانات دوره: - آموزش اصولی مبانی فرانت‌اند (HTML، CSS، JavaScript) - پروژه واقعی + تمرین عملی - منتورینگ فردی (۱ ساعت برای هر نفر در هفته) - شبیه‌سازی مصاحبه - استفاده حرفه‌ای از هوش مصنوعی (AI & LLMs) - امکان همکاری در پروژه‌ها و دوره‌های آینده برای افراد برتر 📩 برای پرسش سوالات، ثبت‌نام و استفاده از تخفیف: 👉 تلگرام: @hamedkhanaki_dev 🌐 اطلاعات کامل دوره: learnwithhamed.vercel.app

سلام. دوستان سرور اول وی پی ان رهگذر (v2ray) با پینگ پایین وصله، از امروز صبح وصلم تست کردم. قطعی یا کاهش سرعت نداشته. اگر مشکل اتصال داشتید با بقیه سرویس ها از این میتونید استفاده کنید. ربات رهگذر آنلاین

🌐 ابزار HTTPie — بهترین ابزار برای تست API اگر با curl کار می‌کنی ولی از سخت بودنش خسته شدی، HTTPie نسخه انسان‌پسند curl هست. مثال:
http GET https://api.example.com/users
یا:
http POST https://api.example.com/login username=reza password=1234
ویژگی‌ها: 🔹 خروجی JSON رنگی و مرتب 🔹 تست سریع API بدون Postman 🔹 نسخه CLI و نسخه Desktop 🔹 پشتیبانی از Token/Auth/JWT 🔹 رایگان و کراس‌پلتفرم 🎯 چرا خفنه؟ چون سریع‌ترین و تمیزترین ابزار برای برنامه‌نویس‌های Backend و موبایل و ML engineers هست. 🆔 @RezaDolati01

🔸 قبل از رزومه، گیت‌هاب و مصاحبه: این مهارت‌ها را بساز این پست مکمل پستای قبلی در مورد رزومه است: 🔹 ۱) مهارت حل مسئله سریع فکر کردن + ساده‌سازی مسئله‌ها حتی مهم‌تر از زبان برنامه‌نویسی. 🔹 ۲) مهارت دیباگ حرفه‌ای قبل از کد زدن، یاد بگیر چطور اشکال را پیدا کنی. Debug بزرگ‌ترین مهارت برنامه‌نویس است. 🔹 ۳) مهارت نوشتن کد خوانا کد برای انسان نوشته می‌شود، نه فقط ماشین. نام‌گذاری درست + تابع‌های کوچک + ساختار واضح. 🔹 ۴) مهارت سرچ کردن ۹۰٪ جواب‌ها در گوگل، StackOverflow، Docs است. برنامه‌نویس خوب = سرچ خوب. 🔹 ۵) مهارت مستندسازی چهار خط توضیح خوب = نصف زحمت همکارها کم می‌شود. 🎯 نکته طلایی: تکنولوژی عوض می‌شود؛ مهارت‌های پایه همیشه ماندگارند. 🆔 @RezaDolati01

🔸 کد File Organizer (مرتب کردن پوشه بر اساس نوع فایل)
from pathlib import Path
from shutil import move

def organize_directory(path: str) -> None:
    base = Path(path).expanduser().resolve()
    if not base.is_dir():
        raise NotADirectoryError(f"{base} is not a directory.")

    groups = {
        "images": [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".svg", ".webp"],
        "videos": [".mp4", ".mkv", ".avi", ".mov"],
        "documents": [".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".txt", ".md"],
        "archives": [".zip", ".rar", ".7z", ".tar", ".gz"],
        "audio": [".mp3", ".wav", ".flac", ".aac", ".ogg"],
        "code": [".py", ".js", ".ts", ".html", ".css", ".java", ".c", ".cpp", ".rs", ".go"],
    }

    ext_to_folder = {}
    for folder, exts in groups.items():
        for ext in exts:
            ext_to_folder[ext] = folder

    for item in base.iterdir():
        if item.is_dir():
            continue
        ext = item.suffix.lower()
        folder_name = ext_to_folder.get(ext, "others")
        target_dir = base / folder_name
        target_dir.mkdir(exist_ok=True)
        target = target_dir / item.name

        if target.exists():
            stem = item.stem
            suffix = item.suffix
            counter = 1
            while True:
                new_name = f"{stem}_{counter}{suffix}"
                candidate = target_dir / new_name
                if not candidate.exists():
                    target = candidate
                    break
                counter += 1

        move(str(item), str(target))


def main():
    import argparse

    parser = argparse.ArgumentParser(description="Organize files in a directory by type")
    parser.add_argument("path", help="Path to directory to organize")
    args = parser.parse_args()

    organize_directory(args.path)


if __name__ == "__main__":
    main()
🔅 این اسکریپت وارد یک پوشه میشه و همه فایل‌ها رو بر اساس نوع‌شان می‌فرسته داخل فولدرهای مشخص مثل: images videos documents code audio و… ✨ اگر اسم فایل تکراری بود، خودش نسخه‌ی شماره‌دار می‌سازد. 🎖 کاربرد: مرتب‌کردن دانلودها، پروژه‌ها، هارد درایو، فولدرهای شلوغ. 🆔 @RezaDolati01

+4
download (86).jpg0.64 KB

✨ والپیپر جوکر 🆔 @Rezadolati01

⌨️ ابزار Fig — ترمینال هوشمند با Auto-complete حرفه‌ای در واقع Fig یک ابزار رایگان هست که برای ترمینال شما (Bash, Zsh, Fish) Autocomplete واقعی و شبیه JetBrains فعال می‌کنه. ویژگی‌ها: 🔹 تکمیل فرمان‌ها 🔹 پیشنهاد آپشن‌ها و پارامترها 🔹 و Snippets و Aliasها 🔹 سازگار با VSCode Terminal و iTerm 🔹 پشتیبانی از همه CLIهای معروف (git, docker, npm, uv و…) 🎯 چرا خفنه؟ چون واقعاً سرعت کار با ترمینال رو دو برابر می‌کنه. دیگه لازم نیست دستورها رو از حفظ باشی! 🆔 @RezaDolati01

🔸 نکات مصاحبه فنی برنامه‌نویسی 🔹 ۱) با صدای بلند فکر کن حتی اگر جواب دقیق نمی‌دانی، مسیر فکری‌ت را بگو. مصاحبه‌گر دنبال منطق توست، نه حفظ بودن. 🔹 ۲) تسلط روی پایه‌ها قبل از هر مصاحبه: - ساختمان داده‌ها - برنامه نویسی شی گرا - و SQL - مفاهیم HTTP - و Git - الگوریتم‌های ساده (two pointers, recursion) 🔹 ۳) رفتار حرفه‌ای اگر نمی‌دانی: بگو «نمی‌دانم» اگر مطمئن نیستی: بگو «احتمال می‌دم…» سوال‌ها را تکرار کن تا درست بفهمی 🔹 ۴) قبل از جواب دادن مثال بزن مثل: «اگر ۱۰۰ هزار رکورد داریم، این روش بهتره چون…» 🔹 ۵) پروژه‌های خودت را خوب توضیح بده تمرین کن قبل از مصاحبه بتوانی در ۳۰ ثانیه بگویی: چرا ساختی؟ چطور ساختی؟ نتیجه چه شد؟ 🎯 نکته طلایی: اعتمادبه‌نفس = نصف راه قبولی. 🆔 @RezaDolati01

🔸 کد Quiz Game در ترمینال (سؤال‌ها از فایل JSON) فایل JSON نمونه (مثلاً questions.json):
[
  {
    "text": "2 + 2 = ?",
    "options": ["3", "4", "5"],
    "answer_index": 1
  },
  {
    "text": "Capital of France?",
    "options": ["Paris", "Berlin"],
    "answer_index": 0
  }
]
کد بازی:
import json
from dataclasses import dataclass
from typing import List

@dataclass
class Question:
    text: str
    options: List[str]
    answer_index: int


def load_questions_from_json(path: str) -> List[Question]:
    with open(path, "r", encoding="utf-8") as f:
        data = json.load(f)
    questions: List[Question] = []
    for item in data:
        q = Question(
            text=item["text"],
            options=item["options"],
            answer_index=int(item["answer_index"]),
        )
        questions.append(q)
    return questions


def ask_question(question: Question) -> bool:
    print("\n" + question.text)
    for idx, opt in enumerate(question.options, start=1):
        print(f"{idx}. {opt}")

    while True:
        choice = input("Your answer (number): ").strip()
        if not choice.isdigit():
            print("Please enter a valid number.")
            continue
        choice_idx = int(choice) - 1
        if 0 <= choice_idx < len(question.options):
            break
        print("Choice out of range, try again.")

    correct = choice_idx == question.answer_index
    if correct:
        print("✅ Correct!")
    else:
        print(f"❌ Wrong. Correct answer: {question.options[question.answer_index]}")
    return correct


def run_quiz(questions: List[Question]) -> None:
    if not questions:
        print("No questions found.")
        return
    print("Welcome to the Quiz! Answer the questions:\n")
    score = 0
    for q in questions:
        if ask_question(q):
            score += 1
    print("\nQuiz finished!")
    print(f"Your score: {score}/{len(questions)}")


def main():
    import argparse

    parser = argparse.ArgumentParser(description="Simple CLI Quiz Game")
    parser.add_argument("file", help="Path to questions JSON file")
    args = parser.parse_args()

    questions = load_questions_from_json(args.file)
    run_quiz(questions)


if __name__ == "__main__":
    main()
🔅 یه بازی پرسش ‌و پاسخ که سؤال‌ها رو از یک فایل JSON می‌خونه. شامل: - نمایش سؤال - گزینه‌ها - انتخاب کاربر - بررسی درستی پاسخ - نمایش امتیاز نهایی 🔅 کاربرد: ساخت بازی‌های کوچک آموزشی، آزمون برنامه‌نویسی، کوییزهای تلگرامی و حتی مسابقه‌های کلاسی. 🆔 @RezaDolati01

✨ والپیپر 🆔 @Rezadolati01

+5
download (80).jpg3.68 KB

✨ والپیپر 🆔 @Rezadolati01

🔸 4 کتابخانه خفن اما کم‌تر شناخته‌شده پایتون 1) کتابخانه Rich — زیباتر کردن ترمینال خروجی ترمینال رو با رنگ، جدول، بارگذاری، Markdown، Traceback رنگی و حتی Progress Bar مثل جت می‌کنه. برای ساخت CLI حرفه‌ای عالیه. 2) کتابخانه Pydantic — ولیدیشن مدل‌ها با سرعت نور با تعریف یک کلاس ساده، ورودی‌ها به‌طور خودکار: تایپ‌چک می‌شن، اعتبارسنجی می‌شن، تبدیل میشن (Parsing). هسته اصلی FastAPI همینه. 3) کتابخانه Loguru — لاگ‌نویسی واقعی و خوشگل نوشتن لاگ رو فوق ساده می‌کنه: چرخش فایل، رنگی‌کردن لاگ، StackTrace واضح، بدون تنظیمات عجیب. 4) کتابخانه Typer — ساخت CLI حرفه‌ای و زیبا نسل جدید CLI‌سازی پایتون، بر پایه Click اما خیلی ساده‌تر. برای ساخت ابزارهای خط فرمان فوق‌العاده‌ست. 🆔 @RezaDolati01

🔸 چطور پروژه مناسب گیت‌هاب بسازیم؟ گیت‌هاب فقط محل ذخیره کد نیست؛ ویترین حرفه‌ای توست. 🔹 ۱) پروژه واقعی بساز، نه تمرینی بهترین پروژه‌ها: یک API کامل وب‌سرویس کوچک وب‌اسکرپر سیستم مدیریت کارها ابزار CLI پروژه داده‌کاوی 🔹 ۲) و README عالی بنویس باید حتماً شامل باشد: توضیح کوتاه پروژه چطور اجراش کنیم؟ مثال ورودی/خروجی تصاویر یا GIF تکنولوژی‌ها و TODO های آینده 🔹 ۳) فولدرها را تمیز نگه دار ساختار مثل:
src/
tests/
README.md
requirements.txt
🔹 ۴) و Commit های مرتب و مفید به‌جای "fix", "update" بنویس: مثلا : add login endpoint و optimize query performance 🔹 ۵) پروژه کامل بهتر از ۱۰ پروژه نیمه‌کاره کیفیت >>> تعداد 🎯 نکته طلایی: یک پروژه خوب می‌تواند نتیجه مصاحبه را عوض کند. 🆔 @RezaDolati01

💾 ابزار Turso — دیتابیس SQLite ابری مخصوص برنامه‌نویس‌های مدرن ابازر Turso یک دیتابیس ابری بسیار سریع بر پایه SQLite هست که به درستی طراحی شده برای: 🔹 برنامه‌های کوچک تا متوسط 🔹 پروژه‌های لبه‌ای (Edge apps) 🔹 سرورلس‌ها (Next.js, Remix, Cloudflare Workers) ویژگی‌ها: سرعت بالا و Latency بسیار پایین یک API ساده پلن رایگان واقعی مدیریت آسان دیتابیس 🎯 چرا خفنه؟ چون مثل SQLite ساده‌ست، اما روی Cloud با سرعت موشک کار می‌کنه. برای پروژه‌های شخصی و تجاری عالیه. 🆔 @RezaDolati01

🔸 4 کتابخانه کاربردی که احتمالاً تا حالا اسم‌شون رو نشنیدی 1) کتابخانه Arq — Task Queue سبک و سریع اگر Celery برات زیادی سنگینه، این عالیه! بر پایه Redis و asyncio → مناسب برای FastAPI. 2) کتابخانه Beanie — ODM مدرن برای MongoDB یک لایه داده مدرن برای FastAPI: ولیدیشن + Async + مدل‌سازی تمیز. جایگزین عالی موتورهایی مثل MongoEngine. 3) کتابخانه orjson کتابخانه orjson سریع‌ترین JSON سریالایزر پایتونه. اگه با JSON زیاد کار می‌کنی (API، دیتابیس، لاگینگ، پردازش داده)، این کتابخونه literally موشک‌وار عمل می‌کنه. 4) کتابخانه pendulum بهترین جایگزین برای datetime پایتون. کار با تاریخ و زمان رو خیلی راحت‌تر، تمیزتر و بدون باگ‌های timezone می‌کنه. 🆔 @RezaDolati01

🔸 کد Expense Tracker ساده (پیگیری خرج‌ها + خلاصه دسته‌ها)
import json
from dataclasses import dataclass, asdict
from datetime import datetime
from pathlib import Path
from typing import List, Dict, Optional

DATA_FILE = Path("expenses.json")

@dataclass
class Expense:
    id: int
    amount: float
    category: str
    note: str
    created_at: str


def load_expenses() -> List[Expense]:
    if not DATA_FILE.exists():
        return []
    with DATA_FILE.open("r", encoding="utf-8") as f:
        data = json.load(f)
    return [Expense(**item) for item in data]


def save_expenses(expenses: List[Expense]) -> None:
    with DATA_FILE.open("w", encoding="utf-8") as f:
        json.dump([asdict(e) for e in expenses], f, ensure_ascii=False, indent=2)


def add_expense(amount: float, category: str, note: str = "") -> Expense:
    expenses = load_expenses()
    next_id = max((e.id for e in expenses), default=0) + 1
    exp = Expense(
        id=next_id,
        amount=round(float(amount), 2),
        category=category,
        note=note,
        created_at=datetime.now().isoformat(timespec="seconds"),
    )
    expenses.append(exp)
    save_expenses(expenses)
    return exp


def list_expenses(category: Optional[str] = None) -> List[Expense]:
    expenses = load_expenses()
    if category:
        return [e for e in expenses if e.category.lower() == category.lower()]
    return expenses


def summary_by_category() -> Dict[str, float]:
    expenses = load_expenses()
    summary: Dict[str, float] = {}
    for e in expenses:
        summary[e.category] = summary.get(e.category, 0.0) + e.amount
    return summary


def _print_expenses(expenses: List[Expense]) -> None:
    if not expenses:
        print("No expenses yet.")
        return
    total = 0.0
    for e in expenses:
        total += e.amount
        print(f"#{e.id:3d} | {e.amount:8.2f} | {e.category:10s} | {e.note} ({e.created_at})")
    print("-" * 40)
    print(f"Total: {total:.2f}")


def _print_summary(summary: Dict[str, float]) -> None:
    if not summary:
        print("No expenses to summarize.")
        return
    print("Summary by category:")
    for cat, amount in summary.items():
        print(f"- {cat}: {amount:.2f}")


def main():
    import argparse

    parser = argparse.ArgumentParser(description="Simple Expense Tracker")
    subparsers = parser.add_subparsers(dest="command", required=True)

    # add
    p_add = subparsers.add_parser("add", help="Add a new expense")
    p_add.add_argument("amount", type=float, help="Amount of the expense")
    p_add.add_argument("category", help="Category (e.g., food, rent, travel)")
    p_add.add_argument("--note", default="", help="Optional note")

    # list
    p_list = subparsers.add_parser("list", help="List expenses")
    p_list.add_argument("--category", help="Filter by category", default=None)

    # summary
    subparsers.add_parser("summary", help="Show summary by category")

    args = parser.parse_args()

    if args.command == "add":
        exp = add_expense(args.amount, args.category, args.note)
        print(f"Added expense #{exp.id}: {exp.amount:.2f} ({exp.category})")
    elif args.command == "list":
        expenses = list_expenses(args.category)
        _print_expenses(expenses)
    elif args.command == "summary":
        summ = summary_by_category()
        _print_summary(summ)


if __name__ == "__main__":
    main()
🔸 این یک سیستم کوچیک حسابداری شخصیه. میتونی بگی: - فلان مبلغ رو برای «غذا»، «حمل و نقل»، «خرید»، … خرج کردم - همه خرج‌ها رو ببینی - خلاصۀ هزینه‌ها رو به تفکیک دسته دریافت کنی کاربرد: مدیریت خرج‌ها، مخصوصاً برای دانشجوها و فریلنسرها. 🆔 @RezaDolati01

🚀ابزار Raycast — سریع‌ترین لانچر و دستیار توسعه‌دهنده ابزار Raycast فقط یک لانچر نیست؛ یک ابزار بهره‌وری برای macOS هست که توسعه‌دهنده‌ها عاشقشن. 🔹 اجرای فرمان‌ها با 1 ثانیه سرعت 🔹 مدیریت GitHub 🔹 و Snippet manager فوق‌سریع 🔹 مدیریت کانتینرهای Docker 🔹 ایجاد Scriptهای خودکار با JS/Python 🔹 افزونه‌های آماده برای VSCode، Notion، Jira و… 🎯 چرا خفنه؟ چون همه کارهای روزمره رو بدون لمس موس انجام می‌دی. سرعت کار → ×3 میشه. رایگان + افزونه‌های نامحدود. 🆔 @RezaDolati01