DevTwitter | توییت برنامه نویسی
32.6K subscribers
5.53K photos
446 videos
6 files
5.45K links
توییت های برنامه نویسی و طراحی وب :)

Admin:
@dvtwi

Hashtags:
devtwitter.t.me/5

DevBooks Channel:
https://t.me/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
می‌خواهید وارد دنیای DevSecOps شوید؟ از کجا باید شروع کنید؟

این روزها موقعیت شغلی DevSecOps Engineer را بیشتر می‌بینیم؛ اما سؤال مهم این است:

آیا برای ورود به DevSecOps فقط باید Docker، Kubernetes و GitLab بلد باشیم؟ یا لازم است متخصص امنیت و تست نفوذ هم باشیم؟

واقعیت این است که DevSecOps صرفاً یادگیری چند ابزار نیست.

در این رویکرد، امنیت نباید فقط در انتهای پروژه بررسی شود، بلکه باید از ابتدا در فرایندها، Pipelineها و معماری سیستم حضور داشته باشد.

اما برای ورود به این حوزه چه مهارت‌هایی اهمیت دارند؟

۱. ابتدا زیرساخت و مبانی را جدی بگیرید.
بدون درک مناسب از Linux، Networking، Git، Python و Bash، پیاده‌سازی اتوماسیون امنیتی در محیط‌های واقعی دشوار خواهد بود.

۲. مفاهیم DevOps را یاد بگیرید.
باید بدانید CI/CD چگونه کار می‌کند، اپلیکیشن‌ها چطور Build و Deploy می‌شوند و ابزارهایی مثل GitLab CI/CD، Docker، Kubernetes، Terraform و Ansible چه نقشی در این فرایند دارند.

۳. امنیت نرم‌افزار را بشناسید.
اینجاست که مباحثی مثل Secure SDLC، OWASP Top 10، OWASP API Security Top 10، Threat Modeling، مدیریت Secrets و کنترل دسترسی اهمیت پیدا می‌کنند.

یک مهندس DevSecOps باید بداند آسیب‌پذیری‌ها چگونه ایجاد می‌شوند و چگونه می‌توان از وقوع یا انتشار آن‌ها جلوگیری کرد.

۴. مفهوم Security Testing را وارد Pipeline کنید.
با مفاهیم زیر آشنا شوید:
- مفهوم SAST: بررسی امنیت ایستای کد
- مفهوم DAST: تست امنیت اپلیکیشن در حال اجرا
- مفهوم SCA: بررسی امنیت وابستگی‌های نرم‌افزاری
- مفهوم Secret Scanning: شناسایی اطلاعات حساس
- مفهوم Container & IaC Scanning: بررسی امنیت کانتینرها و زیرساخت تعریف‌شده با کد

ابزارهایی مانند Semgrep، Trivy، Checkov، Burp Suite و DefectDojo می‌توانند بخشی از این مسیر باشند.

۵. فقط ابزار اجرا نکنید؛ تحلیل امنیتی یاد بگیرید.
تفاوت مهم یک مهندس حرفه‌ای با کسی که صرفاً Scanner اجرا می‌کند، در توانایی تحلیل نتایج است.

باید بتوانید:
- یافته‌های واقعی را از False Positive تشخیص دهید.
- ریسک و قابلیت بهره‌برداری از آسیب‌پذیری‌ها را ارزیابی کنید.
- برای رفع مشکلات، راهکار عملی ارائه دهید.
- با تیم‌های Development، DevOps، SecOps و SOC همکاری کنید.

۶. یک پروژه واقعی بسازید.
برای مثال، یک اپلیکیشن تستی را در GitLab قرار دهید، Pipeline طراحی کنید، تست‌های امنیتی را به آن اضافه کنید و نتایج را در یک فرایند Vulnerability Management مدیریت کنید.

این تجربه عملی بسیار ارزشمندتر از حفظ‌کردن نام ده‌ها ابزار است.

یک نکته مهم برای مسیر شغلی:
برای شروع DevSecOps لازم نیست از روز اول در همه حوزه‌ها متخصص باشید.

اما برای رسیدن به سطح Senior، صرف آشنایی با ابزارها کافی نیست. تجربه عملی در Application Security، Security Automation، تحلیل آسیب‌پذیری‌ها و طراحی کنترل‌های امنیتی اهمیت زیادی دارد.

اگر از حوزه‌های Network Engineering، Network Automation، DevOps یا Cybersecurity وارد این مسیر می‌شوید، بخشی از مهارت‌های لازم را از قبل دارید؛ کافی است شکاف‌های تخصصی خود را شناسایی کنید و به‌صورت هدفمند توسعه دهید.

@DevTwitter | <Ehsan Momeni Bashusqeh/>
❤11👍4👎3
افزونه راستچین هوشمند VS Code — Noor RTL

یه افزونه VS Code نوشتم که محیط VS Code رو کامل راستچین میکنه — از چتباتهایی مثل Copilot و AI Chat گرفته تا خود ادیتور!

امکانات:
- راستچین کردن گفتگوهای Copilot و AI Chat
- پیشنمایش Markdown با نمایش فارسی
- تشخیص خودکار جهت متن در پرامپتها و ورودیها
- راستچین کردن خودکار کامنتهای فارسی بدون تغییر جهت کد
- کاملاً قابل کانفیگ — هر بخش رو جداگانه میتونید فعال/غیرفعال کنید
- تغییر جهت با Control + Shift + چپ/راست


نصب:
مارکت VS Code:
https://marketplace.visualstudio.com/items?itemName=Noor-CRCIS.rtl-copilot

گیتهاب :
https://github.com/Noor-CRCIS/rtl-copilot/

از Extensions توی VS Code عبارت Noor RTL رو جستجو کنید و نصب کنید. برای نصب دستی هم فایل VSIX از Releases گیتهاب قابل دریافت هست.

@DevTwitter | <علی رهنما/>
❤24🍌7👎3
Forwarded from DevTwitter Ads.
✨ اشتراک های پریمیوم🛍
♊️ Gemini Pro | اشتراک ۱۸ ماهه
💰قیمت: ۶۵۰,۰۰۰ تومان
⭕️ با تخفیف ۴۹۵٫۰۰۰ تومان

😃 Super Duolingo - 12 Months
📱 Capcut pro team individual - 1m
😺 Chatgpt plus individual - 1 month
😺 Chatgpt Go individual - 1 month

برای سفارش و خرید:
💸 @ZikoTechBot
آدرس کانال:
📣 @ZikoTech
دریافت مشاوره:
👩‍💻 @ZikoTechAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👎7🍌2❤1
مجموعه ای از بهترین اسکیل ها رو جمع آوری کردم و با ترکیب اونها و چند اسکیل یه اسکیل کامل برای کدکس ساختم

https://github.com/realjustawall/perfect-ai

@DevTwitter | <RealJustAWall/>
🍌14🔥4💔2
DevTwitter | توییت برنامه نویسی
اگر تا حالا یک فایل Markdown فارسی رو توی Android Studio، IntelliJ IDEA، PyCharm یا هرکدوم از JetBrains IDEs باز کرده باشید، احتمالاً این صحنه براتون آشناست: متن چپ‌ چینه، پرانتزها و نقطه‌ها جای درستشون نیستن و فونت هم برای خوندن متن‌های طولانی چندان مناسب…
آپدیت جدید پلاگین Markdown RTL (نسخه ۱.۱.۱) با پشتیبانی از نمودارهای Mermaid منتشر شد:

- رندر مستقیم و آفلاین نمودارهای Mermaid بدون نیاز به پلاگین جدا
- تشخیص خودکار زبان نمودار (فونت وزیرمتن و راست‌چین برای فارسی، JetBrains Mono برای انگلیسی)
- دکمه‌های زوم (+ / −) روی هر دیاگرام و هماهنگی با تم تیره و روشن IDE
- نمایش مرتب متادیتای ابتدای فایل (YAML Front Matter) به شکل جدول یا کد خام

دریافت و آپدیت از مارکت‌پلیس JetBrains:
https://plugins.jetbrains.com/plugin/34457-markdown-rtl

مخزن گیت‌هاب:
https://github.com/mahdiasd/MarkdownRTL



@DevTwitter | <Mahdi Asadollahpour/>
🔥12
Forwarded from DevTwitter Ads.
❤️❤️؜انجمن علمی دانشکده مهندسی کامپیوتر امیرکبیر با همکاری همکاران سیستم برگزار می‌کند:

؜🐧 ‌ثبت‌نام پانزدهمین دوره‌ی Linuxfest آغاز شد.

؜فرقی نمی‌کنه سال‌هاست با لینوکس زندگی می‌کنی یا هنوز نمی‌دونی از کجا باید شروع کنی؛ ؜‌LinuxFest⁩ جاییه برای هرکسی که دوست داره بیشتر با دنیای لینوکس و ‌Open Source⁩ آشنا بشه، چیزهای جدید یاد بگیره و آدم‌های هم‌مسیر خودش رو پیدا کنه.

؜قراره کنار هم کلی اتفاق جذاب داشته باشیم:
🤯؜ ورکشاپ‌های کاربردی
؜🎙️ ارائه‌های متنوع
؜⬇️ ‌Install Fest⁩
؜👥 فرصت آشنایی و شبکه‌سازی

؜و البته مهمون‌هایی که قراره بیشتر درباره‌شون بشنوید 👌

؜📍 دانشگاه صنعتی امیرکبیر
؜🗓 ۲۲ تا ۲۴ مهر ۱۴۰۵

😃 ؜شرکت در رویداد برای عموم آزاده و با هر سطح دانشی می‌تونید کنارمون باشید.

؜همین حالا از طریق وب‌سایت ‌ثبت‌نام کنید:
🖥 Linuxfest.ir

💙‎Telegram | 🐦‎X | 📷Instagram
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥37👍13🍌7
از وقتی اومدم لینوکس، جای پات‌پلیر خالی بود. آخرش خودم برای لینوکس ساختمش.
موتورش mpv عه
هنوز کامل نیست، ولی اگه امتحانش کردید و مشکلی داشت، بهم بگید.

github.com/AliMilani/samovar-lite

@DevTwitter | <Ali/>
👍48🍌29🔥8
شرکت آنتروپیک (Anthropic) ابزاری به نام «اسکنر متن‌باز» (OSS Scanner) را معرفی کرد که به‌صورت اختیاری (opt-in) و با استفاده از هوش مصنوعی، به ایمن‌سازی اکوسیستم نرم‌افزارهای متن‌باز کمک می‌کند.
به گفته این شرکت، این سرویس بر پایه تجربه استفاده از مدل هوش مصنوعی کلود (Claude) در یافتن آسیب‌پذیری‌ها طی «پروژه گلسوینگ» (Project Glasswing) طراحی شده و پروژه‌هایی که عضو آن شوند، به‌صورت رایگان و دوره‌ای توسط قوی‌ترین مدل‌های این شرکت، از جمله کلود میتوس (Claude Mythos)، اسکن امنیتی خواهند شد.
آنتروپیک تأکید کرد که خروجی این اسکنر کاملاً توسط مدل تولید می‌شود و نیازی به بازبینی یا غربالگری انسانی ندارد که این امر اسکن سریع‌تر و مکرر را ممکن می‌سازد.
برای ثبت‌نام، نگهدارندگان اصلی پروژه باید با ارسال یک درخواست ادغام (pull request) در مخزن گیت‌هاب این ابزار همراه با یک فایل پیکربندی YAML حاوی اطلاعاتی نظیر لینک مخزن گیت، ایمیل تماس اصلی و مسیر فایل داکر (Dockerfile) برای راه‌اندازی محیط بدون نیاز به اتصال اینترنت اقدام کنند. تاکنون ۱۱۶ درخواست ادغام برای این برنامه ثبت شده است.
https://www.anthropic.com/research/launching-opt-in-vuln-finding-service-for-open-source

@DevTwitter | <Teegra/>
👍7👎1🍌1
Forwarded from DevTwitter Ads.
📊 دوره آنلاین و جامع #علم_داده (Data Science)

👈 ورود به دنیای Data Science و هوش مصنوعی

🔰 بدون نیاز به سابقه برنامه‌نویسی

از مفاهیم پایه تا تحلیل داده و پیاده‌سازی مدل‌های واقعی

🐍 آموزش پایتون (Python) و SQL Server
📊 تحلیل و مصورسازی داده
🤖 یادگیری ماشین (ML) و Deep Learning
📈 پیش‌بینی و تحلیل سری‌های زمانی
🧩 پروژه‌ها و Case Studyهای واقعی


👥 مناسب دانشجویان، تحلیلگران و علاقه‌مندان به ورود یا تغییر مسیر شغلی به Data Science

👈 مشاوره رایگان + مشاهده جزئیات دوره:
➡️ https://httb.ir/jXbWL

➖➖➖
🎓 همراه با گواهینامه معتبر مؤسسه توسعه
Please open Telegram to view this post
VIEW IN TELEGRAM
👎5🍌2
آژانس‌ها خدماتشون رو با عنوان «هوش مصنوعی به‌عنوان سرویس» می‌فروشن؛ درحالی‌که کد خیلی از ابزارهایی که برای ساخت این سیستم‌ها نیاز داری، رایگان روی GitHub قرار گرفته!

این ۸ پروژه رو از گزینه‌های خوب تا جذاب‌ترین‌ها مرتب کردم؛ ابزارهایی که می‌تونن نقطه شروع ساخت ایجنت‌های هوش مصنوعی خودت باشن.

۱. پروژه Dyad؛ از ایده تا ساخت اپلیکیشن

با توضیح دادن ایده‌ات، می‌تونی یک وب‌سایت یا اپلیکیشن بسازی و نتیجه رو مستقیماً روی سیستم خودت اجرا کنی.

بیش از ۲۱٫۶ هزار ستاره

http://github.com/dyad-sh/dyad

۲. پروژه E2B؛ محیط امن برای اجرای کد ایجنت‌ها

به ایجنت هوش مصنوعی اجازه بده کد اجرا کنه، بدون اینکه مستقیماً به سیستم شخصی تو دسترسی داشته باشه. E2B محیط‌های ابری ایزوله‌ای برای اجرای کد فراهم می‌کنه.

بیش از ۱۳٫۴ هزار ستاره

http://github.com/e2b-dev/E2B

۳. پروژه Mem0؛ حافظه‌ای برای ایجنت‌های هوش مصنوعی

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

بیش از ۶۶٫۸ هزار ستاره

http://github.com/mem0ai/mem0

۴. پروژه Dify؛ ساخت ایجنت بدون پیچیدگی‌های همیشگی کدنویسی

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

بیش از ۱۵۲ هزار ستاره

http://github.com/langgenius/dify

۵ پروژه. OpenHands؛ یک ایجنت برنامه‌نویس متن‌باز

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

بیش از ۹۰ هزار ستاره

http://github.com/All-Hands-AI/OpenHands

۶. پروژه Browser Use؛ ایجنتی که با مرورگر کار می‌کنه

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

بیش از ۱۱۷ هزار ستاره

http://github.com/browser-use/browser-use…

۷. پروژه Photo؛ جایگزینی متن‌باز برای Photoshop

یک پروژه گرافیکی که طبق معرفی پست، با Rust و کمک Claude از نو ساخته شده و بخشی از یک مجموعه متن‌باز برای ابزارهای مشابه محصولات Adobe محسوب می‌شه.

بیش از ۴۹٫۵ هزار ستاره

http://github.com/storytold/phot

۸. Reverse Engineering با کمک MCP

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

بیش از ۱۳۰ هزار ستاره

http://github.com/morluto/rea

نکته مهم: متن‌باز بودن لزوماً به معنی رایگان بودن تمام هزینه‌های اجرا نیست. بعضی از این ابزارها برای میزبانی ابری، مدل‌های هوش مصنوعی یا سرویس‌های جانبی به هزینه نیاز دارن.

اما فرصت اصلی اینجاست: به‌جای اینکه همیشه هزینه ساخت یک ایجنت رو به دیگران پرداخت کنی، می‌تونی از این پروژه‌ها شروع کنی، اون‌ها رو متناسب با نیازت تغییر بدی و سرویس خودت رو بسازی.

کدشون در دسترسه؛ حالا نوبت ایده توئه.

@DevTwitter | <Yarad/>
❤11🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
چین یه OCR اوپن سورس منتشر کرده که می‌تونه ده‌ها صفحه PDF رو یک‌جا بخونه!

اسمش Unlimited-OCRـه و توسط Baidu توسعه داده شده.

تا الان خیلی از ابزارهای OCR برای خوندن یه PDF طولانی، صفحات رو جداجدا پردازش می‌کردن. اما Unlimited-OCR اومده این محدودیت رو تا حد زیادی برطرف کنه.

یعنی چی؟

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

حالا چرا جذابه؟

فقط ۳ میلیارد پارامتر داره (3B)
می‌تونه اسناد چندده‌صفحه‌ای رو در یک مرحله پردازش کنه
از زبان‌های مختلف پشتیبانی می‌کنه
پنجره خروجی تا 32K توکن داره
کاملاً اوپن سورس و می‌تونی روی سیستم خودت اجراش کنی
با ابزارهایی مثل Transformers، vLLM، SGLang و Docker قابل استفاده‌ست

قسمت جذاب‌تر ماجرا؟

دیگه برای هر بار OCR گرفتن از اسنادت لزوماً نیازی به سرویس‌های پولی ابری نداری. مدل رو روی سخت‌افزار خودت اجرا می‌کنی و اسنادت هم روی همون سیستم باقی می‌مونن.

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

شرکت Baidu این مدل رو با الهام از DeepSeek-OCR توسعه داده تا پردازش اسناد طولانی رو یه مرحله جلوتر ببره.

به نظرم جذاب‌ترین بخش این پروژه فقط رایگان بودنش نیست؛ اینه که OCR داره از خوندن صفحه‌به‌صفحه به سمت پردازش پیوسته اسناد طولانی حرکت می‌کنه.

GitHub:
https://github.com/baidu/Unlimited-OCR

Hugging Face:
https://huggingface.co/baidu/Unlimited-OCR

@DevTwitter | <Mohsen Rad/>
❤19🔥3👍1
Forwarded from DevTwitter Ads.
دوره جامع پایتون: مقدماتی تا پیشرفته

🗓شروع دوره:2 آبان

🎁 تخفیف ویژه برای دانشجویان، فرصتی بی‌نظیر برای شما!

🔥 آموزشی که شما را به برنامه‌نویس حرفه‌ای تبدیل می‌کند و در بازار کار به شما رقابت‌پذیری بیشتری می‌دهد. همچنین برای اپلای‌های شغلی و تحصیلی شما را برتر می‌کند و به راه‌اندازی استارت‌آپ‌های شگفت‌انگیز کمک می‌کند.

⏰ 140 ساعت آموزش مجازی، با بیش از 25 پروژه و مینی‌پروژه برای تسلط کامل!

🌟 سرفصل‌های دوره شامل:

💻 تسلط بر کدنویسی پایتون
💻 علوم داده با پایتون
💻 محاسبات علمی با پایتون
💻 یادگیری ماشین با پایتون
💻 طراحی بازی و اپلیکیشن با پایتون
💻 ساخت بلاک‌چین و ارز دیجیتال با پایتون
💻 هک و امنیت با پایتون
💻 طراحی سایت با پایتون

🎁 همراه با هدایای ویژه، از جمله پکیج کسب درآمد از پایتون!

همین حالا شروع کنید و بهترین نسخه خود را با ما کشف کنید! 💥🚀🔥

🌟 به دوستان خود نیز اطلاع دهید تا این فرصت را از دست ندهند! 🌟

👨‍🏫برگزارکننده: شرکت آتی پژوهش امیرکبیر
@kargah2018

👩‍🎓جهت ثبت نام و کسب اطلاعات بیشتر
@apa_admin12
🍌4👎2
اگر بین انتخاب مسیر و ارزش یادگیری برنامه‌نویسی در عصر هوش مصنوعی شک دارید، پیشنهاد می‌کنم حتما این مصاحبه کریس پیچ (استاد علوم کامپیوتر استنفورد) را ببینید. چند نکته کلیدی او خیلی راهگشاست:

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

۲. تغییر نقش مهندس جونیور: امروز ساخت محصول ساده‌تر شده، اما هنر اصلی مهندس جوان از «کد زدنِ صرف» به «درک دقیق نیاز انسان‌ها و تبدیل آن به محصول» تغییر کرده است.

۳. بحران انگیزه و آینده شغلی: سردرگمی درباره ۴ سال آینده طبیعی است، اما راه حل، عقب‌نشینی نیست؛ بلکه شروع هر روز با این اصل است که امروز داناتر از دیروز باشیم.

تماشای ویدیوی کامل در یوتیوب:
https://youtube.com/watch?v=g-CD1d0q01I

@DevTwitter | <Mehdi Allahyari/>
👍24❤4👎2
یه API که برای ۱۰۰ کاربر خوب کار می‌کنه، لزوماً برای ۱۰ هزار کاربر آماده نیست.

فرض کن یه API داری که اطلاعات یک محصول رو برمی‌گردونه.

در حالت عادی، همه‌چیز خوبه. اما با افزایش تعداد کاربران، چند مشکل ممکنه ظاهر بشه:

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

راه‌حل چیه؟ لزوماً اضافه کردن سرور یا استفاده از Redis نیست.

اول باید بفهمیم گلوگاه (Bottleneck) دقیقاً کجاست.

برای مثال:

۱. اگر یک Query سنگین داریم، شاید بهینه‌سازی Query یا اضافه کردن Index مؤثرتر باشه.

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

۳. اگر یک سرور به محدودیت منابع رسیده، شاید به Horizontal Scaling نیاز داشته باشیم.

۴. اگر درخواست‌ها کارهای سنگین و زمان‌بر انجام می‌دن، انتقال بخشی از پردازش به یک Queue می‌تونه کمک‌کننده باشه.

نکته مهم اینه که هرکدوم از این راه‌حل‌ها هزینه و پیچیدگی خودشون رو دارن.

گاهی بهترین تصمیم معماری، اضافه نکردن یک تکنولوژی جدیده.

@DevTwitter | <Abolfazl Momenifar/>
👍24❤3🍌2
چرا Update در SQL Server سریع‌تر از Delete + Insert است؟

مدتی پیش در پروژه‌ی "بهای تمام شده" و "ریال انبار"، با چالشی روبرو شدم که باعث شد دوباره به اصول پایه‌ای عملکرد دیتابیس فکر کنم.
ما برای محاسبه مجدد ریالی انبار، نیاز داشتیم حجم زیادی از داده‌ها را بازنویسی کنیم. دو راه پیش رو داشتیم:
1. ردیف‌های قدیمی را DELETE کنیم و ردیف‌های جدید را INSERT کنیم.
2. یا ردیف‌های موجود را با مقادیر جدید UPDATE کنیم.
در نگاه اول شاید فکر کنید این دو عملیات از نظر منطقی یکی هستند؛ اما در عمل، وقتی از روش Delete + Insert استفاده می‌کردیم، سرعت فرآیند بسیار پایین بود و سیستم تحت فشار قرار می‌گرفت. اما به محض اینکه استراتژی را به UPDATE تغییر دادم، شاهد بهبود چشمگیر سرعت بودیم.
اگر فکر می‌کنید UPDATE هم همان DELETE + INSERT است، باید به ساختار زیرین نگاه کنید:

هزینه‌ی ایندکس‌ها (The Index Trap):
در روش حذف و درج، شما مجبورید تمام ایندکس‌های جدول را برای حذف "پاکسازی" و برای درج مجدد "بازسازی" کنید. اما در UPDATE (اگر ستون‌های ایندکس‌شده تغییر نکنند)، SQL Server اصلاً درگیر ساختار ایندکس‌ها نمی‌شود و فقط مقدار را در همان بلوک داده تغییر می‌دهد.

پایداری در صفحات داده (Data Pages):
عملیات حذف و درج مجدد، باعث ایجاد Fragmentation در صفحات داده می‌شود و احتمال Page Split را بالا می‌برد. در حالی که UPDATE سعی می‌کند عملیات را In-place و در همان مکان قبلی انجام دهد.

مدیریت تراکنش (Logging):
مدیریت یک عملیات واحد، همیشه بهینه‌تر از مدیریت دو عملیات مجزای سنگین در Transaction Log است.

@DevTwitter | <seied Mojtaba sajadi/>
👍7🍌5❤4
پروژه dbBackup_manager؛ ابزاری برای بکاپ و بازیابی دیتابیس PostgreSQL

به‌تازگی اولین نسخه از پروژه‌ی dbBackup_manager رو منتشر کردم؛ یک ابزار با رابط کاربری تحت وب برای تهیه‌ی بکاپ و بازیابی دیتابیس‌های PostgreSQL به‌صورت محلی.

امکانات فعلی:
تهیه‌ی بکاپ از دیتابیس‌های PostgreSQL
بازیابی دیتابیس از بکاپ‌های موجود
رابط کاربری تحت وب
ذخیره‌سازی محلی اطلاعات برنامه و فایل‌های بکاپ

تکنولوژی‌ها: Java 21، Spring Boot و React
سورس کد و دانلود نسخه‌ی انتشار

https://github.com/arshiachillguy/dbBackup-manager

@DevTwitter | <Arshia/>
👍5🍌3❤1
داشتم منابع مصاحبه مهندسی داده رو بررسی می‌کردم، گفتم چرا همه مطالبی که پیدا می‌کنم رو یک‌جا جمع نکنم. این شد یه سایت ساده که ۱۹۴ درس داره و ۲۸۰۰ سوال واقعی مصاحبه رو یک‌جا جمع کرده. محتوا دو زبانه (فارسی و انگلیسی) هست.

اوپن‌سورس منتشرش کردم. اگه دوست داشتید می‌تونید استار بدید یا مشارکت کنید.

https://github.com/mohammadmaso/dataeng-interview


به نظر خودم مسیر مطالعاتی خوبی شد، هم برای آماده شدن برای مصاحبه و هم برای یادگیری کلی مهندسی داده.

@DevTwitter | <Mohammad Masoudi/>
❤29🔥6👍2
Forwarded from DevTwitter Ads.
اولین پروژه‌ای که ترافیک واقعی گرفت، یه چیزی فهمیدم:

فرق بین کدی که کار می‌کنه و کدی که scale می‌شه، زمین تا آسمونه.

اینجا از این فرق‌ها زیاد حرف می‌زنیم.

https://t.me/+HgGHhDZPg9tlNTU0
🍌110👎9👍3