Forwarded from Gopher Academy
🔵 عنوان مقاله
sturdyc: Caching Library with Advanced Concurrency Features
🟢 خلاصه مقاله:
مقاله "A sturdy gopher shielding data sources from rapidly incoming requests" به بررسی یک راهکار مؤثر برای جلوگیری از بارگذاری بیش از حد و حملات اصطلاحاً cache stampede در سیستمهای با حجم ترافیک بالا میپردازد. رویکرد مورد بحث در این مقاله، استفاده از خواندنهای غیربلاککننده و نوشتنهای شارد شده است که کمینه کردن تداخل قفلها را هدف قرار داده و در نتیجه، افزایش کارایی و پایداری سیستم هنگام مواجهه با درخواستهای متعدد و سریع را به دنبال دارد. با استفاده از این روش، سیستمها میتوانند دادهها را مدیریت و در برابر بارهای ناگهانی وزیاد محافظت نمایند. این روش برای زیرساختهایی که نیازمند حجم بالایی از تراکنشهای داده هستند، ایدهآل است.
🟣لینک مقاله:
https://golangweekly.com/link/165666/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
sturdyc: Caching Library with Advanced Concurrency Features
🟢 خلاصه مقاله:
مقاله "A sturdy gopher shielding data sources from rapidly incoming requests" به بررسی یک راهکار مؤثر برای جلوگیری از بارگذاری بیش از حد و حملات اصطلاحاً cache stampede در سیستمهای با حجم ترافیک بالا میپردازد. رویکرد مورد بحث در این مقاله، استفاده از خواندنهای غیربلاککننده و نوشتنهای شارد شده است که کمینه کردن تداخل قفلها را هدف قرار داده و در نتیجه، افزایش کارایی و پایداری سیستم هنگام مواجهه با درخواستهای متعدد و سریع را به دنبال دارد. با استفاده از این روش، سیستمها میتوانند دادهها را مدیریت و در برابر بارهای ناگهانی وزیاد محافظت نمایند. این روش برای زیرساختهایی که نیازمند حجم بالایی از تراکنشهای داده هستند، ایدهآل است.
🟣لینک مقاله:
https://golangweekly.com/link/165666/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - viccon/sturdyc: A caching library with advanced concurrency features designed to make I/O heavy applications robust and…
A caching library with advanced concurrency features designed to make I/O heavy applications robust and highly performant - viccon/sturdyc
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
روش درست برنامه نویسی Node.js
۱. برنامه نویسی رویداد محور و asynchronous
در برنامه نویسی node خیلی مهمه که به event loop توجه داشته باشیم و از callback ها و promise ها و async/await موثر استفاده کنیم.
نیازه که از callback hell دوری کنیم و جریان async رو مدیریت کنیم.
۲. استفاده از stream ها و پردازش داده real time
یکی از امکانات استفاده از stream ها هست که کمک داده ها را به صورت بهینه پردازش کنیم و مشکلات حافظه نداشته باشیم.
برای کار کردن با dataset های بزرگ استفاده از stream api خیلی کمک کننده است.
۳. مایکروسرویس ها و معماری Modular
به عنوان برنامه نویس بک اند خیلی خوبه که با modular monolith پروژمون رو شروع کنیم و کم کم تبدیل به microservice های مختلف بکنیم.
برای اینکار نیازه که به معماری های مایکروسرویس ها و همینطور الگو های data در آنها تسلط داشته باشیم.
۴. کار با دیتابیس ها
خیلی مهمه که بدونیم کجا از query استفاده کنیم، کجا query builder و کجا ORM
چطور data model رو برای query هایی که داریم بهینه کنیم و همینطور مطمئن بشیم که در query های زمانبر سیستم از index ها استفاده میشه.
مهمه که روش های مختلف کار با دیتابیس به صورت async رو بدونیم
۵. برنامه نویسی شبکه و TCP/UDP
برنامه نویسی فقط REST و WEB نیست و گاهی برای کاربرد های خاص از سوکت های خام TCP و UDP استفاده می کنیم تا پرفورمنس بالاتری داشته باشیم.
همینطور مهمه که بتونیم از WebSocket ها یا grpc یا http 2 برای پیاده سازی real time استفاده کنیم.
۶. تست نویسی و دیباگ کردن
شناخت ابزار تست نویسی یه بحثه، اینکه چه تست کیس هایی بنویسیم یه مهارته که طی زمان رشد پیدا می کنه.
علاوه بر این مهمه که بتونیم کد node رو دیباگ کنیم برای اینکار میتونیم از node inspector استفاده کنیم.
۷. دیپلوی و scale کردن
در نهایت نیازه که بتونیم کد های node رو به صورت scalable دیپلوی کنیم.
برای scalable بودن می توانیم از استراتژی هایی مانند clustering و load balancing استفاده کنیم.
۸. امنیت
همینطور مهمه که در پیاده سازی authentication از ایجاد آسیب پذیری ها امنیتی جلوگیری کنیم.
مهمه که حملات رایج مانند XSS و CSRF و نحوه جلوگیری را در عمل آنها را بشناسیم.
@DevTwitter | <Pouria Jahandideh/>
۱. برنامه نویسی رویداد محور و asynchronous
در برنامه نویسی node خیلی مهمه که به event loop توجه داشته باشیم و از callback ها و promise ها و async/await موثر استفاده کنیم.
نیازه که از callback hell دوری کنیم و جریان async رو مدیریت کنیم.
۲. استفاده از stream ها و پردازش داده real time
یکی از امکانات استفاده از stream ها هست که کمک داده ها را به صورت بهینه پردازش کنیم و مشکلات حافظه نداشته باشیم.
برای کار کردن با dataset های بزرگ استفاده از stream api خیلی کمک کننده است.
۳. مایکروسرویس ها و معماری Modular
به عنوان برنامه نویس بک اند خیلی خوبه که با modular monolith پروژمون رو شروع کنیم و کم کم تبدیل به microservice های مختلف بکنیم.
برای اینکار نیازه که به معماری های مایکروسرویس ها و همینطور الگو های data در آنها تسلط داشته باشیم.
۴. کار با دیتابیس ها
خیلی مهمه که بدونیم کجا از query استفاده کنیم، کجا query builder و کجا ORM
چطور data model رو برای query هایی که داریم بهینه کنیم و همینطور مطمئن بشیم که در query های زمانبر سیستم از index ها استفاده میشه.
مهمه که روش های مختلف کار با دیتابیس به صورت async رو بدونیم
۵. برنامه نویسی شبکه و TCP/UDP
برنامه نویسی فقط REST و WEB نیست و گاهی برای کاربرد های خاص از سوکت های خام TCP و UDP استفاده می کنیم تا پرفورمنس بالاتری داشته باشیم.
همینطور مهمه که بتونیم از WebSocket ها یا grpc یا http 2 برای پیاده سازی real time استفاده کنیم.
۶. تست نویسی و دیباگ کردن
شناخت ابزار تست نویسی یه بحثه، اینکه چه تست کیس هایی بنویسیم یه مهارته که طی زمان رشد پیدا می کنه.
علاوه بر این مهمه که بتونیم کد node رو دیباگ کنیم برای اینکار میتونیم از node inspector استفاده کنیم.
۷. دیپلوی و scale کردن
در نهایت نیازه که بتونیم کد های node رو به صورت scalable دیپلوی کنیم.
برای scalable بودن می توانیم از استراتژی هایی مانند clustering و load balancing استفاده کنیم.
۸. امنیت
همینطور مهمه که در پیاده سازی authentication از ایجاد آسیب پذیری ها امنیتی جلوگیری کنیم.
مهمه که حملات رایج مانند XSS و CSRF و نحوه جلوگیری را در عمل آنها را بشناسیم.
@DevTwitter | <Pouria Jahandideh/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
#کوته_نیوز
شبکه پرداخت
@DevTwitter
شبکه پرداخت
pay.ir تعطیل شد. مدیرعاملش گفته دهنمونو سرویس کردن سر اینترنت و بانک مرکزی هم سرورهامونو برد که روش سالاد درست کنه.@DevTwitter
🔥1
Forwarded from Linuxor ?
اگه میخوای یه CTO بشی یا بدونی CTO دقیقاً چیکار میکنه، این ریپو رو از دست نده، CTO یا همون مدیر ارشد فناوری، مسئول تصمیمات فنی و معماری یه استارتاپه. از مدیریت تیم و استخدام گرفته تا انتخاب تکنولوژیهای مناسب.
این ریپو از پوزیشن CTO تا روند استخدام و معماری و تکنولوژي و کتاب هایی ک برای CTO مفیده رو ریز به ریز توی یه جا جمع کرده :
https://github.com/kuchin/awesome-cto
@Linuxor
این ریپو از پوزیشن CTO تا روند استخدام و معماری و تکنولوژي و کتاب هایی ک برای CTO مفیده رو ریز به ریز توی یه جا جمع کرده :
https://github.com/kuchin/awesome-cto
@Linuxor
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
بیا با یه ترفند خفن توی پی اچ پی آشنات کنم؟
خیلی جاها پیش میاد که میخوایم اعضای یک آرایه رو داخل متغیر قرار بدیم. توی تصویر زیر، به دو روش این کار انجام شده و نتیجه یکسان هست.
البته آرایه نباید indexed باشه.
@DevTwitter | <Pouya Farshidnia/>
خیلی جاها پیش میاد که میخوایم اعضای یک آرایه رو داخل متغیر قرار بدیم. توی تصویر زیر، به دو روش این کار انجام شده و نتیجه یکسان هست.
البته آرایه نباید indexed باشه.
@DevTwitter | <Pouya Farshidnia/>
Forwarded from CleverDevs (Mammad)
🔥 با تحلیل داده یک تخصص پردرآمد یاد بگیر!
بوتکمپ دیتا آنالیز، 6 ماهه ازت یک متخصص میسازه.
🖥 آموزش پروژه محور
📠 معرفی برای استخدام
آموزش و استخدامت، هر دو با ماست👇👇
https://dnkr.ir/6NAXa
https://dnkr.ir/6NAXa
بوتکمپ دیتا آنالیز، 6 ماهه ازت یک متخصص میسازه.
🖥 آموزش پروژه محور
📠 معرفی برای استخدام
آموزش و استخدامت، هر دو با ماست👇👇
https://dnkr.ir/6NAXa
https://dnkr.ir/6NAXa
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
اگه تا حالا API زدی، حتماً به این فکر کردی که GraphQL بهتره یا REST؟ هرکدوم یه سری مزایا و معایب دارن،
پس بیاید یه مقایسه ساده کنیم :
RESTful API :
- هر چیزی یه Endpoint داره، مثلاً /users یا /products.
- اگه اطلاعات مختلف بخوای، باید چند تا درخواست بزنی. (گاهی داده اضافی میگیری، گاهی کمتر از چیزی که لازم داری!)
- کشینگش راحتتره، چون روی HTTP سوار شده.
GraphQL :
- فقط یه Endpoint داری، ولی میتونی دقیقاً همون دادهای که لازم داری رو درخواست بدی.
- یه درخواست، چندین جواب! یعنی بهینهتر، مخصوصاً برای اپهای موبایل.
- کشینگش سختتره، ولی Apollo Client کمک میکنه.
- برای کشینگش و ارور های خاص نیاز به تنظیمات داره
پس کدومو انتخاب کنیم ؟
+ اگه API ساده میخوای که سریع بالا بیاد و کشینگ برات مهمه → REST!
+ اگه یه سرویس پیچیده داری که قراره چندین نوع کلاینت (موبایل، وب و ...) بهش وصل شن → GraphQL عالیه!
+ گاهی ترکیبشون هم جواب میده! REST برای بخشهای عمومی، GraphQL برای بخشهای خاص.
در نهایت، انتخاب بین GraphQL و REST به نیازهای پروژه بستگی داره! مهم اینه که بدونیم هر کدوم کجا بهتر عمل میکنن.
@DevTwitter | <Mohsen Abbasi/>
پس بیاید یه مقایسه ساده کنیم :
RESTful API :
- هر چیزی یه Endpoint داره، مثلاً /users یا /products.
- اگه اطلاعات مختلف بخوای، باید چند تا درخواست بزنی. (گاهی داده اضافی میگیری، گاهی کمتر از چیزی که لازم داری!)
- کشینگش راحتتره، چون روی HTTP سوار شده.
GraphQL :
- فقط یه Endpoint داری، ولی میتونی دقیقاً همون دادهای که لازم داری رو درخواست بدی.
- یه درخواست، چندین جواب! یعنی بهینهتر، مخصوصاً برای اپهای موبایل.
- کشینگش سختتره، ولی Apollo Client کمک میکنه.
- برای کشینگش و ارور های خاص نیاز به تنظیمات داره
پس کدومو انتخاب کنیم ؟
+ اگه API ساده میخوای که سریع بالا بیاد و کشینگ برات مهمه → REST!
+ اگه یه سرویس پیچیده داری که قراره چندین نوع کلاینت (موبایل، وب و ...) بهش وصل شن → GraphQL عالیه!
+ گاهی ترکیبشون هم جواب میده! REST برای بخشهای عمومی، GraphQL برای بخشهای خاص.
در نهایت، انتخاب بین GraphQL و REST به نیازهای پروژه بستگی داره! مهم اینه که بدونیم هر کدوم کجا بهتر عمل میکنن.
@DevTwitter | <Mohsen Abbasi/>
Forwarded from Ninja Learn | نینجا لرن
خب سلام دوستان رسیدیم به ساختمان داده ها؛ ساختار هایی که برای مدیریت داده ها خیلی کاربردی ان💡
همونطور که میدونید، داخل برنامه هامون نیاز داریم داده ها را به صورتی ذخیره و مدیریت کنیم که پردازش سریعتر و مصرف حافظه بهینه تر بشه.
🧱 چند نوع ساختمان داده داریم؟
به طور کلی به دو دسته تقسیم میشه:
1️⃣ ساختارهای اولیه (Primitive Data Types)
🔸پایه ای ترین نوع ذخیره داده ها مثل int ، float ، char و boolean
2️⃣ ساختارهای غیراولیه (Non-Primitive)
🔸برای مدیریت مجموعه های بزرگ و پیچیده داده ها استفاده میشن و عمدتا به دو گروه تقسیم میشن:
1️⃣ ساختارهای خطی (Linear):
🔸داده ها به صورت ترتیبی چیده میشن مثل: آرایه (Array)، پشته (Stack)، صف (Queue)، لیست پیوندی (Linked List).
2️⃣ ساختارهای غیرخطی (Non-Linear):
🔸داده ها به صورت سلسله مراتبی یا شبکه ای ذخیره میشن و از نمونه هاشون میشه به درخت (Tree)، گراف (Graph)، جدول هش (Hash Table) اشاره کرد
در پستهای آینده، هر یک از این ساختارها رو
ببیشتر بررسی میکنیم 🚀
اگر سوالی یا پیشنهادی دارید خوشحال میشم کامنت بگذارید! 💬
➖➖➖➖➖➖➖➖➖
همونطور که میدونید، داخل برنامه هامون نیاز داریم داده ها را به صورتی ذخیره و مدیریت کنیم که پردازش سریعتر و مصرف حافظه بهینه تر بشه.
به طور مثال میخوایم کاربران یک اپلیکیشن را مدیریت کنیم یا مسیرهای کوتاه تر بین دو شهر را در نقشه پیدا کنیم!🔍 ساختمان داده چه کاربردی داره؟
🔸اینجا ساختار مناسب خیلی میتونه مفید باشه! ✨
🔸کاهش زمان عملیات ها (مثل جستجو، افزودن یا حذف داده)
🔸بهینه سازی مصرف حافظه (ذخیره هوشمندانه داده ها بدون اتلاف فضا)
🧱 چند نوع ساختمان داده داریم؟
به طور کلی به دو دسته تقسیم میشه:
1️⃣ ساختارهای اولیه (Primitive Data Types)
🔸پایه ای ترین نوع ذخیره داده ها مثل int ، float ، char و boolean
این تایپ ها تشکیل دهنده پایه ساختمان داده های پیچیده تر هستن!
2️⃣ ساختارهای غیراولیه (Non-Primitive)
🔸برای مدیریت مجموعه های بزرگ و پیچیده داده ها استفاده میشن و عمدتا به دو گروه تقسیم میشن:
1️⃣ ساختارهای خطی (Linear):
🔸داده ها به صورت ترتیبی چیده میشن مثل: آرایه (Array)، پشته (Stack)، صف (Queue)، لیست پیوندی (Linked List).
و از کاربرد هاشون میشه به مدیریت صف پیامها، ذخیره اطلاعات کاربران به ترتیب ثبتنام اشاره کرد.
2️⃣ ساختارهای غیرخطی (Non-Linear):
🔸داده ها به صورت سلسله مراتبی یا شبکه ای ذخیره میشن و از نمونه هاشون میشه به درخت (Tree)، گراف (Graph)، جدول هش (Hash Table) اشاره کرد
و نمونه کاربرد هاشون هم پیدا کردن کوتاه ترین مسیر در نقشه (با گراف)، جستجوی سریع در دیکشنری (با درخت دودویی) هست.
در پستهای آینده، هر یک از این ساختارها رو
ببیشتر بررسی میکنیم 🚀
اگر سوالی یا پیشنهادی دارید خوشحال میشم کامنت بگذارید! 💬
#️⃣ #data_structure #programming
➖➖➖➖➖➖➖➖➖
🥷 CHANNEL | GROUP
Forwarded from Gopher Academy
👇توصیههای کلی و کوتاه و مختصر برای زبان برنامهنویسی Go که یادگیری خالی از لطف نیست
https://go-proverbs.github.io
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
https://go-proverbs.github.io
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
بوتکمپ ساخت اپ اندروید با کاتلین یا قیمت 90$ که تا پس فردا رایگانه
از یودمی
Android App Development Bootcamp with Kotlin - Masterclass
https://www.udemy.com/course/android-app-development-bootcamp-with-kotlin-masterclass/?source=onlinecouponcourses.com&couponCode=FREELEARNKOTLIN
@DevTwitter
از یودمی
Android App Development Bootcamp with Kotlin - Masterclass
https://www.udemy.com/course/android-app-development-bootcamp-with-kotlin-masterclass/?source=onlinecouponcourses.com&couponCode=FREELEARNKOTLIN
@DevTwitter
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
دوره هایی که تا سه روز آینده رایگان هستن از سایت دانشجویار:
- آموزش جنگو از صفر
- پایتون به زبان ساده
- نرم افزار حسابداری و انبار داری با سی شارپ
- اپلیکیشن سایت خبری اندروید با جاوا
- سایت خرید بلیط با ASP. NET
- معماری MVP در کاتلین
- ساخت تلگرام تحت ویندوز با سی شارپ
- افزایش عملکرد ویژه برنامه نویس ها
- متریال دیزاین در زامارین
- سیستم قرعه کشی و کار با پیامک در PHP
- آموزش EntityFrameWork در سی شارپ
https://www.daneshjooyar.com/landing/nazri/
@DevTwitter
*فوروارد کنید تو گروه هاتون
- آموزش جنگو از صفر
- پایتون به زبان ساده
- نرم افزار حسابداری و انبار داری با سی شارپ
- اپلیکیشن سایت خبری اندروید با جاوا
- سایت خرید بلیط با ASP. NET
- معماری MVP در کاتلین
- ساخت تلگرام تحت ویندوز با سی شارپ
- افزایش عملکرد ویژه برنامه نویس ها
- متریال دیزاین در زامارین
- سیستم قرعه کشی و کار با پیامک در PHP
- آموزش EntityFrameWork در سی شارپ
https://www.daneshjooyar.com/landing/nazri/
@DevTwitter
*فوروارد کنید تو گروه هاتون
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
آگهیای استخدامو اصلا درک نمیکنم
یعنی چی
تسلط کامل به جاوا،کاتلین،پایتون و...
خود گاسلینگم جرات نمیکنه بگه من تسلط کامل رو جاوا دارم
بعد شرکتهای در پیت ایرانی با حقوق سه تومن به شخصی با تسلط کامل به جاوا نیازمندن
@DevTwitter | <برنادوت/>
یعنی چی
تسلط کامل به جاوا،کاتلین،پایتون و...
خود گاسلینگم جرات نمیکنه بگه من تسلط کامل رو جاوا دارم
بعد شرکتهای در پیت ایرانی با حقوق سه تومن به شخصی با تسلط کامل به جاوا نیازمندن
@DevTwitter | <برنادوت/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
کاتلین یه جوری شده که اگه بخوای تو کامیونیتیش کانتریبیوت کنی احساس میکنی جزو یک گنگ روسی شدی :))
@DevTwitter | <Amin/>
@DevTwitter | <Amin/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
#Kotlin
می دونستید اسم زبان برنامه نویسی کاتلین اول قرار بوده جت باشه که معلوم شه محصول Jetbrains ، ولی بعد از ایده Ceylon که مثل جاوا نام یک جزیره هستند تقلید شده و اسم کاتلین که نام یک جزیره هست انتخاب شده.
@DevTwitter | <Saeed Zarinfam/>
می دونستید اسم زبان برنامه نویسی کاتلین اول قرار بوده جت باشه که معلوم شه محصول Jetbrains ، ولی بعد از ایده Ceylon که مثل جاوا نام یک جزیره هستند تقلید شده و اسم کاتلین که نام یک جزیره هست انتخاب شده.
@DevTwitter | <Saeed Zarinfam/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
از این به بعد دیگه پلاگین کاتلین برای intellj درست نمیشه و قراره که با هر نسخه استیبل intellj کاتلین هم تغییر کنه :// اینجا پاک شدن یک میلیون خط رو در این رابطه میبینید:
https://github.com/JetBrains/kotlin/commit/39fa2b0baf89b246348b1e9c33cfebfc3068c014
@DevTwitter | <Mohammad Moein Abdi/>
https://github.com/JetBrains/kotlin/commit/39fa2b0baf89b246348b1e9c33cfebfc3068c014
@DevTwitter | <Mohammad Moein Abdi/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
آیا میدانستید به این :? عملگر توی زبان کاتلین میگن:
Elvis Presley operator
چون شبیه مدل موی الویس پرسلیه!
تا اکتشافات بعدی خدانگهدار :)
@DevTwitter | <Amir Hussein/>
* توی نسخه جدید زبان آقای هاشمی هم اسمشو میذارن مدل موی حسام نواب صفوی
Elvis Presley operator
چون شبیه مدل موی الویس پرسلیه!
تا اکتشافات بعدی خدانگهدار :)
@DevTwitter | <Amir Hussein/>
* توی نسخه جدید زبان آقای هاشمی هم اسمشو میذارن مدل موی حسام نواب صفوی
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
اومدم یک کد اندروید کاتلین را تست کنم، حدود ۱۰ گیگ اندروید استودیو و ... دانلود و نصب کردم حدود ۱۰ دقیقهام داره Build میشه خلاصه حدود ۱ ساعته هنوز به خروجی نرسیدم
توسعهدهندگان اندروید خدا بهتون صبر بده :')
@DevTwitter | <Ali Rajabi/>
توسعهدهندگان اندروید خدا بهتون صبر بده :')
@DevTwitter | <Ali Rajabi/>