Dev Perfects – Telegram
Dev Perfects
41 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Anophel | آنوفل
💙 چرا سرورلس (Serverless) یک کلاه‌برداریه؟
خیلی‌ها این روزها دوباره دارن از سرورلس به سمت سرورهای اختصاصی و VPS برمی‌گردن. چند سال پیش همه دنبال سرورلس بودن، ولی الان؟ دیگه اوضاع فرق کرده! توی این پست می‌خوام چند تا از دلایلی که سرورلس یه انتخاب ضعیفه رو به زبون ساده باهاتون به اشتراک بذارم.

1️⃣ قیمت سرسام‌آور
شرکت‌های بزرگی مثل AWS و Azure دقیقاً می‌دونن چطوری شما رو قفل سیستم خودشون کنن. وقتی واردش می‌شید، بیرون اومدن ازش هزینه‌های وحشتناک داره: 

🔹انتقال دیتا؟ 
🔹تغییر معماری؟

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


2️⃣پیچیدگی غیرضروری
سرورلس به‌شدت پیچیده‌ست. مثال ساده؟  یه کانفیگ اشتباه می‌تونه میلیاردها تومان خسارت بزنه

بودند کسایی که به‌خاطر فراموش کردن تنظیمات S3، هزینه‌های سنگینی دادن!
 
توی VPS، همه‌چی رو می‌تونی ساده و شفاف مدیریت کنی. مثلاً یه آموزش ساده برای قفل کردن سرور با Fail2Ban و غیرفعال کردن رمز ورود برای کاربر Root می‌تونه امنیت رو به‌شدت بالا ببره.

3️⃣آپتایم (Uptime) یا بهتر بگم، قطعی‌های سرورلس
وقتی سیستم ساده‌تر باشه، کمتر قطع می‌شه. از وقتی از سرورلس به VPS مهاجرت کردم، سرویس‌هام هیچ‌وقت خودبه‌خود قطع نشدن. ولی سرورلس؟ 

🔹مثلاFirebase Auth تو سال ۲۰۲۳ چند ساعت کامل از دسترس خارج شد. 
🔹 یا AWS همون سال قطعی داشت. 
🔹حتی Azure هم قربانی یه قطع برق بزرگ شد! 

آپتایم ادعایی این شرکت‌ها معمولاً روی کاغذه. ولی واقعیت؟ یه اشتباه کوچیک، یه کلیک اشتباه و تمام اون ۹۹.۹۹٪ می‌پره.


4️⃣سرورلس و داستان امنیت
با سرورلس، هر سرویس جداگانه باید کانفیگ بشه. برای هر میکروسرویس
باید دستی کانفیگ امنیتی انجام بدی. این یعنی کار چند برابر

ولی روی VPS؟ یه سرور، یه کانفیگ، تمومه!

5️⃣ دی‌داس (DDoS) و راه‌حل‌های بهتر
بعضی‌ها می‌گن سرورلس بهتون محافظت رایگان DDoS
می‌ده. اما یه نکته‌ی جالب: 
شما همون محافظت رو می‌تونید با Cloudflare به‌صورت رایگان بگیرید.  کافیه پروکسی Cloudflare رو فعال کنید و SSL/TLS رو روی حالت Full بذارید. همون یه کلیک، همون امنیت. نیازی به سرورلس نیست.

نتیجه‌گیری: چرا سرورلس دیگه جواب نمی‌ده؟
🔹سرورلس گرونه. 
🔹 پیچیده‌ست. 
🔹 امنیتش دردسره. 
🔹 آپتایمش همیشه اون‌قدر که می‌گن، نیست. 
🔹 و مهم‌تر از همه، امروز ابزارهایی هستن که می‌تونن جایگزینش بشن. از PocketBase و Appwrite گرفته تا Supabase.

سرورلس یه راه‌حل قدیمی برای یه مشکل قدیمی بود. ولی الان؟ تکنولوژی پیشرفته‌تر شده و گزینه‌های بهتری داریم.

🔺 نظر شما چیه؟ شما سرورلس استفاده می‌کنید یا VPS؟ خوشحال می‌شم تجربه‌هاتون رو بخونم.



#سرورلس #میکروسرویس #serverless #vps
Please open Telegram to view this post
VIEW IN TELEGRAM
ماجرای crash کردن Windows 95 بعد از 49.7 روز!

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

بعد از بررسی متوجه میشن علتش type متغیری هست که زمان روشن بودن سیستم(Uptime) رو نگهداری میکنه. این متغیر زمان روشن بودن سیستم رو به میلی ثانیه نگه میداره و type رو unsigned int 32 انتخاب کرده بودن که این تایپ نهایتا تا عدد 4,294,967,295 رو‌ میتونه توی خودش ذخیره کنه و چون بعد از 49.7 روز مقدار میلی ثانیه های گذشته از روشن بودن سیستم به عدد بالا میرسه، overflow رخ میده و این متغیر دوباره به 0 ریست میشه!

حالا بعضی از قسمت های سیستم عامل دائم در حال بررسی مقدار این متغیر هستن و این فرض رو دارن که این متغیر دائم باید در حال زیاد شدن باشه، وقتی که میبینن یهو ریست شده براشون غیر منتظرس و crash رخ میده.

بعد از اینکه مشکل رو پیدا کردن type رو به unsigned int 64 تغییر دادن و مشکل حل شد

@DevTwitter | <Bassam Nazemi/>
✳️ سایت لیت کد (LeetCode) یک پلتفرم برای کمک به ارتقای مهارت‌ها، گسترش دانش و آمادگی برای مصاحبه‌های فنی
گروهی دیگر برای machine learning نمونه این سایت را ساختند به نام Deep-ML

🔥 این سایت، شامل مفاهیم تمرینی برای یادگیری ماشین و هوش مصنوعی.
برای هر مساله توضیحاتی ارائه شده و میشه به‌صورت آنلاین کدنویسی و نتیجه رو برای چک کردن سابمیت کرد.

🗓 بیشتر تمریناتش مربوط به جبر خطی، یادگیری ماشین و یادگیری عمیق هست.
پروژه عملی مثل شبکه‌های عصبی یا بینایی کامپیوتر (Computer Vision)
ابزارهایی مثل TensorFlow و PyTorch و ...
توضیحاتش ساده و کاربردیه

🗓 سطح‌بندی سوال‌هاش
می‌تونین با مفاهیم پایه‌ای مثل رگرسیون و طبقه‌بندی شروع کنن
سطح متوسط روی موضوعاتی مثل شبکه‌های عصبی و تنظیم مدل‌ها تمرکز داره
حرفه‌ای‌ها هم سوال‌های پیچیده‌تری مثل طراحی مدل‌های پیشرفته یا حل پروژه‌های واقعی پیدا می‌کنن

❤️ ممنون از حمایت هاتون 💐🌺
#AI
🌐 خب خب خب لایه شبکه (Network Layer) در مدل OSI

لایه شبکه، سومین لایه از مدل OSI، مسئول انتقال داده‌ها بین شبکه‌های مختلفه. این لایه کاری می‌کنه که داده‌ها از یه مبدأ به مقصد مشخص (تو هر گوشه دنیا) برسن، بدون این که مسیر و راهش گم بشه. این لایه مثل یه سیستم حمل‌ونقل بزرگ عمل می‌کنه که بسته‌های اطلاعاتی رو از یه نقطه به نقطه دیگه منتقل می‌کنه. بیاین جزئیاتش رو مرحله‌به‌مرحله بررسی کنیم. 🚀

📍 وظایف اصلی لایه شبکه

🧭 آدرس‌دهی منطقی (Logical Addressing):
هر دستگاه تو شبکه یه آدرس منحصربه‌فرد داره که بهش آدرس IP می‌گن. این آدرس مشخص می‌کنه داده‌ها باید دقیقاً به کجا برن.
مثال:
فرض کن می‌خوای یه بسته پستی ارسال کنی. بدون داشتن آدرس خونه مقصد، عملاً ارسال بسته غیرممکنه. تو شبکه هم آدرس IP دقیقاً مثل آدرس خونه عمل می‌کنه.

🛣️ مسیریابی (Routing):
وقتی داده‌ها باید از یه شبکه به شبکه دیگه برن، این لایه تصمیم می‌گیره که از چه مسیری برن تا سریع‌تر و مطمئن‌تر به مقصد برسن.

نقش روترها:
دستگاه‌های روتر تو این مرحله خیلی مهمن. روترها با بررسی آدرس‌های IP، بهترین مسیر رو برای انتقال داده پیدا می‌کنن.
مثال:
فرض کن داری از تهران به اصفهان سفر می‌کنی. چند مسیر مختلف هست، ولی تو کوتاه‌ترین و کم‌ترافیک‌ترین جاده رو انتخاب می‌کنی. لایه شبکه همین کارو برای داده‌ها انجام می‌ده

📦 بسته‌بندی داده‌ها (Packetization):
داده‌هایی که از لایه انتقال (Transport Layer) میان، به بخش‌های کوچیک‌تری به اسم پکت (Packet) تقسیم می‌شن. هر پکت شامل اطلاعات زیره:
آدرس مبدأ: دستگاهی که داده رو ارسال کرده.

آدرس مقصد: جایی که داده باید بره.

داده اصلی: همون اطلاعاتی که باید منتقل بشه.

اطلاعات کنترلی: برای اطمینان از انتقال درست داده.


🔍 مثال:
فرض کن می‌خوای یه پیتزای بزرگ رو با دوستات بخوری، ولی ظرفت کوچیکه.
پیتزا رو به برش‌های کوچیک تقسیم می‌کنی و هر برش رو جداگونه می‌فرستی.

🚦 کنترل تراکم (Congestion Control):
اگه یه شبکه شلوغ بشه و داده‌ها نتونن به موقع منتقل بشن، این لایه کمک می‌کنه ترافیک مدیریت بشه.
مثال:
فرض کن تو صف یه سوپرمارکت شلوغی. فروشنده سعی می‌کنه با اضافه کردن صندوق‌دار بیشتر، صف رو کوتاه‌تر کنه. لایه شبکه هم همین طور ترافیک شبکه رو کنترل می‌کنه.

🔧 تکه‌تکه کردن و دوباره‌سازی (Fragmentation and Reassembly):
گاهی وقتا داده‌ها بزرگ‌تر از ظرفیت انتقال یه شبکه هستن. این لایه داده‌ها رو به قطعات کوچیک‌تر تقسیم می‌کنه و وقتی به مقصد رسید، دوباره به هم وصلشون می‌کنه.
مثال:
فرض کن یه مبل بزرگ رو می‌خوای از در کوچیک خونه رد کنی. مبل رو باز می‌کنی، قطعاتش رو یکی‌یکی رد می‌کنی و دوباره اون‌طرف سر هم می‌کنی.

⚙️ پروتکل‌های مهم لایه شبکه
IPv4 (Internet Protocol Version 4):
پرکاربردترین پروتکل برای آدرس‌دهی و مسیریابی.
از آدرس‌های ۳۲ بیتی استفاده می‌کنه (مثلاً: 192.168.1.1).

IPv6 (Internet Protocol Version 6):
نسخه جدیدتر IPv4 که ظرفیت بیشتری برای آدرس‌دهی داره (۱۲۸ بیتی).
مشکل کمبود آدرس‌های IPv4 رو حل کرده.

ICMP (Internet Control Message Protocol):
برای ارسال پیام‌های کنترلی (مثل خطاها) و تست شبکه (مثل ابزار Ping).

ARP (Address Resolution Protocol):
تبدیل آدرس IP به آدرس فیزیکی (MAC Address).

🔄 انواع ارتباطات تو لایه شبکه
تک‌پخشی (Unicast):
ارسال پکت فقط به یه مقصد خاص.
مثال: ارسال ایمیل به مدحج.

چندپخشی (Multicast):
ارسال پکت به گروهی از دستگاه‌ها.
مثال: استریم زنده یه بازی برای چند کاربر خاص.

همگانی (Broadcast):
ارسال پکت به همه دستگاه‌های یه شبکه.
مثال: اعلام عمومی پیام تو یه گروه چت.

🎯 جمع بندی
لایه شبکه یه پل حیاتی بین دستگاه‌ها تو شبکه‌های مختلفه. این لایه مطمئن می‌شه که هر پکت به موقع و بدون اشتباه به مقصدش برسه. با وظایفی مثل مسیریابی، آدرس‌دهی، و کنترل ترافیک، این لایه ستون فقرات اینترنت و شبکه‌های مدرنه. بدون لایه شبکه، ارتباطات جهانی غیرممکن بودن 🌍

#⃣ #network




🥷 CHANNEL | GROUP
Media is too big
VIEW IN TELEGRAM
لطفا این ۵ دقیقه رو توی هر سن و سالی که هستید ببینید و به خانواده هاتونم نشون بدید !

پی‌نوشت
آقای علی عبدالعالی ۴، ۵ سال همسایه ما بودن، یکی از افرادی که خیلی تلاش کردن توی ایران برای تغییر و تحول توی سیستم آموزشی، و تا جایی که تونستن در مدارسی که دسترسی داشتن این سیستم رو تا حد خیلی خوبی عملی کردن و همچنان هم در حال تلاش برای تغییر این سیستم اموزشی در کل کشور هستن و واقعا کارشون با ارزشه سعی کنید به اشتراک بزارید ❤️


🚀 @coolycode
تجربه نشون داده کسایی که با اسکریپت آرچ‌اینستال آرچ رو نصب می‌کنن، در انتها با برخورد به اولین مشکل نمیتونن رفعش کنن😁 بخصوص مشکلاتی که نیازمند chroot زدن به سیستم هستش.



بنابراین، اگر نمیدونید چیکار دارید می‌کنید، از آرچ اینستال استفاده نکنید.


@SohrabContents
Forwarded from Gopher Academy
🔵 عنوان مقاله
Build Go Apps using Project IDX and the Gemini API

🟢 خلاصه مقاله:
IDX یک فضای کاری آنلاین مجهز به هوش مصنوعی است که توسط گوگل توسعه یافته و برای توسعه اپلیکیشن‌های فول‌استک طراحی شده است. این پلتفرم به توسعه‌دهندگان امکان می‌دهد تا بر روی توسعه کاربردی در زبان برنامه‌نویسی Go تمرکز کنند. IDX با ارائه ابزارها و خدمات مختلف، فرایند توسعه نرم‌افزار را ساده‌تر و سریعتر می‌کند. بهره‌گیری از IDX برای کار با Go نیازمند دانستن اصول اولیه استفاده از این پلتفرم می‌باشد، که شامل نحوه راه‌اندازی پروژه‌ها، تنظیم محیط توسعه و استفاده از امکانات مختلف IDX برای بهینه‌سازی فرآیند توسعه است. این مقاله به عنوان راهنمایی برای شروع به کار با IDX در پروژه‌های مبتنی بر زبان Go عمل می‌کند و نکات کلیدی برای استفاده موثر از این ابزار را ارائه می‌دهد.

🟣لینک مقاله:
https://golangweekly.com/link/163977/web


👑 @gopher_academy
همزمانی (Concurrency) در لاراول 11 را بیشتر بشناسیم
همزمانی یا Concurrency در Laravel نقش مهمی در بهبود عملکرد و مدیریت بار دارد. با استفاده از مکانیزم Queue و قابلیت Task Scheduling، می‌توان وظایف را به‌صورت همزمان اجرا کرد. برای جلوگیری از Race Condition، اغلب از Lock و Transaction در سطح دیتابیس بهره می‌بریم. هنگامی که تعداد درخواست‌ها بالا می‌رود، توزیع بار توسط سرورهای متعدد در کنار مدیریت صحیح Session و Cache، Concurrency را کارآمدتر می‌کند. همچنین نظارت بر Performance و پیاده‌سازی الگوی Event-driven رویکردی کلیدی برای ساخت اپلیکیشن‌های مقیاس‌پذیر است. همچنین به‌کارگیری ابزارهایی مثل Horizon جهت مانیتورینگ Queue و Jobها، در تضمین سلامت Concurrency کمک میکند.

@DevTwitter | <Alireza Javadi/>
Forwarded from DevAcademy
استخدام برنامه نویس Nest.js

Required Skills:
Strong proficiency in Nest.js and Node.js
Experience with TypeScript
Familiarity with GraphQL and RESTful APIs
Hands-on experience with MongoDB or PostgreSQL
Knowledge of Microservices Architecture and Message Brokers (RabbitMQ, Kafka)
Experience with Docker and Kubernetes is a plus
Understanding of CI/CD Pipelines

Responsibilities:
🔹 Develop and maintain backend services using Nest.js
🔹 Optimize system performance and scalability
🔹 Collaborate with frontend and DevOps teams
🔹 Write unit and integration tests to ensure code quality

First month test
payment 10 $ per hour
Cv: Zoobin@predipie.com
working time from
12pm dubai time to 8pm dubai time
project: Game

💻@DevAcaademy
💬
@DevAcademyGroup
چرا بعضی Unit Testها به هیچ دردی نمی خورن؟

تا حالا براتون پیش اومده که بعد از کلی وقت گذاشتن روی نوشتن تست های واحد، بازم سیستم با یه باگ ناجور منفجر بشه؟ اون حس ناامیدی که انگار همه اون تست ها فقط وقت تلف کردن...

خب، چرا این اتفاق می افته؟
یه سری اشتباهات رایج باعث می شه تست ها بی اثر بشن. مثلا:

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

عدم استفاده از Mocking:
وقتی همه وابستگی های کد واقعی باشن، دارین کل سیستم رو تست می کنید، نه فقط یه بخش خاص رو. این دیگه Unit Test نیست! استفاده از Mock باعث می شه به جای اینکه به API واقعی یا دیتابیس وصل بشید، شبیه ساز اون ها رو تست کنید.

نوشتن تست های زیاد ولی بدون هدف مشخص:
یه زمانی فکر می کردم هرچی تعداد تست ها بیشتر باشه بهتره. بعد فهمیدم تستی که هدفمند نباشه، فقط کد رو شلوغ می کنه و باعث می شه موقع تغییرات کلی مشکل زا بشه.

حالا راه حل چیه؟
۱. وابستگی ها رو Mock کنید. با ابزارهایی مثل Mockito می تونید رفتار وابستگی ها رو شبیه سازی کنید.
۲. از داده های ثابت و ساختگی (Fake Data) استفاده کنید که تغییر نمی کنن.
۳. روی سناریوهای کلیدی تمرکز کنید. مثلا یه تابع مهم چطوری ورودی های خاص رو هندل می کنه؟ این مهم تر از اینه که صد تا تست بنویسید که همشون بی هدف باشن.

@DevTwitter | <Hamed Farzanefar/>
Forwarded from Go Casts 🚀
ویکی postgresql یه لیستی از anti-patternهارو لیست کرده و در موردشون توضیح داده، خوبه که لیست رو ببینید، احتمالش زیاده همین الان، در لحظه چند تا از این anti-patternهارو در حال استفاده باشید که بهتره جایگزین کنید.
مثلا NOT IN یا BETWEEN شاید استفاده ش کم نباشه تو کوئری ها.

https://wiki.postgresql.org/wiki/Don%27t_Do_This


@gocasts
Forwarded from Code Module | کد ماژول (genix)
چند تا کامند کاربردی و کمتر شناخته شده از گیت 🦦

میدونستی به جز push و pull گیت کامند های دیگه ای هم داره؟ در این پست من چند کامند کمتر شناخته شده و کاربردی رو بهتون معرفی میکنم.

💎 ‏git stash

زمانی که شما در برنچ A هستید و یهویی مجبورید به برنچ B سوییچ کنید و نمی‌خواید این تغییرات نیمه‌کاره رو کامیت کنید، git stash به دادتون میرسه. تغییراتتون رو جمع می‌کنه و میتونید بدون کامیت کردن به یک برنچ دیگه برید.

💎 ‏conditional config

اینجوری بگم که با این قابلیت می‌تونید تعیین کنید یه تنظیم خاص تو گیت فقط تحت شرایط خاصی اعمال بشه. مثلا اگه در یک پروژه خاص بودید، یا برای یه ایمیل خاص، تنظیمات متفاوتی داشته باشی.

💎 ‏git blame

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

💎 ‏git reflog

این کامند برای زمانی خوبه که یک خرابکاری کردی، مثلا یک کامیت پاک کردی و این کامند بهت نشون میده چه تغییراتی صورت گرفته. این کامند به طور پیش‌فرض فعال هست و تغییرات محلی رو ثبت می‌کنه. (مثلا زمانی که ما از کامند git log استفاده میکنیم)

💎 ‏git diff —word —diff

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

💎 ‏git push —force-with-lease


این یه جور فورس پوش هست، ولی با احتیاط! به جای اینکه فورس بزنی و تغییرات دیگران رو overwrite کنی، این تضمین می‌کنه که اگه کسی دیگه چیزی تو ریپازیتوری تغییر داده، پوش تو انجام نشه.

به صورت خلاصه این کامند ها قطعا یه روز به کارتون میاد و به نوبه خودشون کاربردی هستن. دقت کنید تعداد کامند های گیت حدودا بیشتر از ۱۵۰ تا هست و اگه علاقه مند به کشف باقی موارد هستید، میتونید از YouTube اقای Scott Chacon اطلاعات خوبی به دست بیارید. ایشون نویسنده کتاب معروف Git Pro، و یکی از بنیانگذاران گیت هاب هستن.

#git
@CodeModule
Forwarded from Gopher Academy
هفته نامه Golang Nugget رو اگه دوست داشتید دنبال کنید.
منابع خوبی رو معرفی میکنه
این یه نمونه ش هست

https://golangnugget.com/p/go-concurrency-upgrade-strategies-memory-management-january-6-2024

این خبرنامه رو آقا لیام عزیز مدیریت میکنه
https://x.com/liammanesh


<Hossein Nazari/>


https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from Gopher Academy
دیزاین پترن Facade در Golang
یکی از دیزاین پترن های جذاب و کاربردی، پترن Facade! شاید اسمش یه کم شیک به نظر بیاد، ولی قول میدم که خیلی کاربردیه و کارمون رو راحت‌تر می‌کنه.

حالا Facade چیه؟
فرض کن جلوی یه ساختمون خیلی شیک و بزرگ وایسادی، ولی لازم نیست بری داخلش و همه اتاقاشو ببینی. فقط کافیه از بیرون، نمای ساده و مرتبش رو ببینی و کارتو راه بندازی. پترن Facade دقیقاً همینه! یه رابط کاربری ساده می‌ده که دیگه لازم نباشه با پیچیدگی‌های سیستم درگیر بشی.

چرا باید ازش استفاده کنیم؟
دو تا اصل مهم دنیای کدنویسی اینجا برامون روشن‌تر می‌شه:
1- همه چی ساده باشه KISS
  2- تکرار نکن DRY

وقتی از Facade استفاده می‌کنی، پیچیدگی‌های پشت پرده سیستم رو قایم می‌کنی و فقط چیزی که کاربر (یا حتی خودت!) نیاز داری رو نشون می‌دی. کدت مرتب‌تر، قابل نگهداری‌تر و قابل‌فهم‌تر می‌شه.

ی مثال ساده: اتصال به دیتابیس
فرض کن می‌خوای به دیتابیس وصل بشی، کوئری بزنی و قطع کنی. بدون Facade و با Facade داخل تصویر هست.

کاربردهای دیگه:
کار با فایل‌ها
ارتباط با API
راه‌اندازی وب‌سرور
مدیریت سفارش‌های فروشگاه آنلاین
و...

این Facade مثل یه شمشیر دولبه‌ست. اگه زیادی ساده‌سازی کنی یا بخوای همه کارها رو تو یه struct و متدهاش بذاری، ممکنه یه ساختار پیچیده (God Object) بسازی که خودش یه مشکل جدیده.

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


<Mohammad Abdorrahmani/>

https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
اگر درس ساختمان داده داشتید و میخواستید بفهمید Linkedlist چطوریه این پروژه مثال خوبی ازشه ...

https://github.com/Mahdi-Rashidiyan/data-structure-study/blob/main/Liblinkedlist.py

@DevTwitter | <Mehdi Rashidiyan/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 درآمد بیشتر پورن هاب از یوتیوب

بالاخره فهمیدم 😂

@TheRaymondDev
Forwarded from Mahi in Tech
یکی از مواردی که می‌تونه دید خیلی خوبی نسبت به سناریوهای مختلف توی پروژه‌های کوچیک و بزرگ بهتون بده و شما رو به مهندس بهتری تبدیل کنه نه صرفا کدنویس، مطالعه‌ی tech blog شرکت‌های بزرگ هست؛ حالا چه ایرانی و چه خارجی. معمولا تجربیات و مقالات ارزشمندی بین‌شون پیدا می‌شه.
در ادامه لیستی از مقالات تخصصی و فرانت‌اندی شرکت PayPal رو که توسط Soheib Kiani معرفی شده بود قرار دادم:

🔻چطور PayPal Checkout اپلیکیشن frontend خودش رو مقیاس‌پذیر کرد؟ 
 https://bluepnume.medium.com/sane-scalable-angular-apps-are-tricky-but-not-impossible-lessons-learned-from-paypal-checkout-c5320558d4ef

🔻‏PayPal درباره Dependency injection چه نظری داره؟ 
 https://bluepnume.medium.com/dependency-injection-in-angular-isn-t-worth-it-more-lessons-learned-from-scaling-paypal-checkout-2189ec9c21a0

🔻 کاهش 1000 دکمه PayPal به iFrame 
https://bluepnume.medium.com/less-is-more-reducing-thousands-of-paypal-buttons-into-a-single-iframe-using-xcomponent-d902d71d8875

🔻 درخواست‌های cross-origin بدون CORS 
https://bluepnume.medium.com/reinventing-cross-origin-requests-without-cors-b9c4cb645376

🔻 چرا اپلیکیشن وب جدید در PayPal از Typenoscript استفاده می‌کنه؟ 
 https://medium.com/@kentcdodds/why-every-new-web-app-at-paypal-starts-with-typenoscript-9d1acc07c839

🔻 مقیاس‌پذیری GraphQL در PayPal 
 https://medium.com/paypal-tech/scaling-graphql-at-paypal-b5b5ac098810

🔻 کامپوننت‌های UI قابل اشتراک‌گذاری PayPal در سطح Enterprise
 https://medium.com/paypal-tech/reusing-ui-components-at-enterprise-level-a7df1ea1f8dd

🔻 اپلیکیشن‌های PayPal معماری Microfrontend رو دنبال می‌کنند  
 https://medium.com/paypal-tech/how-micro-frontend-has-changed-our-team-dynamic-ba2f01597f48

🔻 توضیح PayPal درباره پذیرش GraphQL 
https://medium.com/paypal-tech/graphql-at-paypal-an-adoption-story-b7e01175f2b7

🔻 داستان موفقیت PayPal Checkout 
https://medium.com/paypal-tech/graphql-a-success-story-for-paypal-checkout-3482f724fb53

#PayPal #FrontEnd
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM