LearnByLearn📖
577 subscribers
44 photos
9 videos
5 files
69 links
Download Telegram
LearnByLearn📖
سلام دوستان، میخوام یه مقاله پر پیمون راجع به message broker ها بنویسم(مفهاهیمش و چطور کار میکنه) ولی قبلش برای اینکه چقدر توش دیپ بشم لطف کنید بگید چقدر با مبحث بروکر ها آشنایی دارید
مسیج چه بروکری ؟!🤓

⭐️ توی این مقاله چیا یادمیگیریم 👇🏻:

👈🏻 مسیج بروکرها چی هستن؟
👈🏻 گریزی به معماری میکروسرویس و مونولیت؟
👈🏻 اومدن چه مشکلی رو حل کنن؟
👈🏻 ا exchange ها و انواع شون چیا هستن؟
👈🏻 دو الگوی مهم pub/sub و point to point در مسیج بروکرها ؟

⭐️ قسمتی از مقاله 👇🏻
دو نوع ارتباط میان میکروسرویس ها:
ما به دو روش میتونیم میون این سرویس ها ارتباط برقرار کنیم یکی sync و یکی async

توی روش sync از Rest API و HTTP استفاده میکنیم. دقیقا عین همون درخواست هایی که به سایت میزنیم ولی اینجا فرقش اینه دوتا سرویس دارن به هم درخواست میزنن پس یعنی توی این روش از زمانی که request ارسال میشه تا زمانی که response اون دریافت میشه سیستم در حالت انتظار میمونه.
حالا توی روش async ما میتونیم درخواست خودمون رو برای سرویس موردنظر ارسال کنیم و برعکس sync دیگه منتظر پاسخ اون نمونیم. حالا که مستقیم سرویس ها برای هم پیام ارسال نمیکنن پس چطوری اینا باهم حرف میزنن ؟؟ و این جا همون قسمتی هستش که message broker ها وارد داستان میشن .......


🔗 لینک مقاله

@LearnByLearn

#message_broker
#microservice
#exchange
#rabbitmq
👍10
Audio
در رادیوی ۱۸۶ خیلی خبرها از هوش مصنوعی هستن. از پول‌های عظیمی که دراومده و خرج می‌شه تا جایگزینی انسان‌ها. چین ساخت باتری برای جهان رو سختتر کرده و اروپا شارژ باتری رو آسونتر. با ما باشین که جهان هکرهای بیشتری می‌خواد حتی اگر دوربینشون جای اشتباهی باشه.


00:00 - رادیوجادی ۱۸۶ خوش اومدی پاپای
01:20 - ربات هایی که از فیلم جراحی یاد گرفتن
07:20 - بازمتن شدن ران:ای آی توسط انویدیا
13:31 - حمایت ساپورت از ویزاهای اچ ۱ب آمریکا
15:30 - محدودیت‌های بیشتر چین بر روی فلزات مرتبط با باتری
18:30 - سرمایه‌گذاری ۸۰ میلیارد دلاری مایکروسافت در دیتاسنترهای هوش مصنوعی
24:16 - روز پابلک دامین ۲۰۲۵ و پایان یکسری کپی رایت‌ها
25:24 - قانون اجبار شارژ از طریق یو اس بی سی در اروپا عملیاتی شد
28:34 - بخش آخر
35:12 - تشکر از حامیان

https://youtu.be/JK9MNhlv6aA

#پادکست #صوتی
👍1
Forwarded from Go Casts 🚀
گزارش نظرسنجی JetBrains برای سال ۲۰۲۴ منتشر شده که نتایج جالبی داره.

زبان Go و Rust دو تا زبانی هست که بیشترین adoption را داشتند.

همچنین گولنگ بیشتر از هر زبان دیگه ای برای توسعه web service و cloud service داره استفاده میشه.

گولنگ در لیست زبان های top-paid دوم هست بعد از scala.

گزارش کامل رو اینجا میتونید بخونید
https://www.jetbrains.com/lp/devecosystem-2024/


@gocasts
داشتم ی خرده توی گولنگ عمیق تر میشدم به کد زیر برخورد کردم و به نظرم جالب بود

به نظرتون خروجی کد زیر چیه؟🤔
لطفا توی IDE کپی نکنید بعد جواب بدین 😅

package main

import "fmt"

func main() {

const x = '1'

var y = x + 1

fmt.Println(y)
}


توی پست بعد جواب رو مینویسم و توضیح میدم 🙃

@LearnByLearn
👍3
LearnByLearn📖
داشتم ی خرده توی گولنگ عمیق تر میشدم به کد زیر برخورد کردم و به نظرم جالب بود به نظرتون خروجی کد زیر چیه؟🤔 لطفا توی IDE کپی نکنید بعد جواب بدین 😅 package main import "fmt" func main() { const x = '1' var y = x + 1 fmt.Println(y) } توی پست…
کانستند(const) ها توی زبان Go یه خرده با بقیه زبون ها فرق میکنه

توی گولنگ ما دو نوع const داریم:

1️⃣ نوع اول Typed Constant ها هستن
این کانستنت‌ها موقع تعریف، یک نوع مشخصی دارن و ما صراحتا به تایپ رو می نویسیم
مثال زیر رو ببینید ما به گولنگ گفتیم این کانست ما int هست و همونجا درجا تایپ int رو گرفته
const z int = 10

// correct
var x int = z

// incorrect
var y float64 = z
fmt.Println(x)


2️⃣ نوع دوم UnTyped Constant ها هستن

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

مثال زیر رو ببینیم وقتی به const تایپ ندادیم اگه موس رو ببرید روی اون IDE میزنه untyped یعنی موقعی که استفادش کردی تایپ مورد نظر رو میگیره

const z  = 10

// convert to int
var x int = z

// convert to float64
var y float64 = z

// convert to complex128
var g complex128 = z

fmt.Println(x, y, g)


حالا توی مثال بالا ما x امون یک untyped constand هست و مقدار پیشفرض rune(int32) رو میگیره و خب rune هم همونطور که میدونید یک یونیکده(یعنی یک عدد) رو خروجی میده و یونیکد '1' هم 49 هست که با 1 میشه 50 و اگه دقت کنید y اینجا تایپ نداره پس خود به خود تایپ y هم rune میشه
var y = x + 1


@LearnByLearn
#golang
👍2
اگه دارید از یوتیوب استفاده میکنید و روی ثانیه 59 ویدیو ها استاپ میشن به خاطر AD بلاکر ها هستش
البته یه دور هم کش مرورگرتون هم پاک کنید خوبه

این لینک دقیق تر گفته

https://support.google.com/youtube/thread/312970626/issue-with-video-playback-stopping-at-59-seconds-on-desktop?hl=en



@LearnByLearn
👍4
یک سایت مشتی و cheat sheet طور که هر زبون و تکنولوژی رو بخوایین توش داره
برای مرور و رفع مشکل سریع عالیه

https://quickref.me/


@LearnByLearn
🔥7
Forwarded from Go Casts 🚀
مصاحبه رو لطفا با آرایش تهاجمی شروع کنید دوستان، این از نظر من خیلی خیلی مهمه! اگه دفاعی کار کنید احتمالا هم soft skill تون رو درست بروز نمیدید و هم hard skill رو.

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

آرایش تهاجمی گرفتن به این معنی نیست که بری سر مصاحبه کننده داد بزنی یا دعواش کنی 🙂 به این معنیه که باید مهارت های فنی و مهارت های نرم خودت رو قبل از جلسه بسنجی، بارها پروسه مصاحبه رو تو ذهنت تصویرسازی کنی و با ادبیات فنی درست و ادبیات محترمانه، مسلط و با اعتماد به نفس سعی کنی مهارت های خودت رو بروز بدی. معمولا هم جز اولین سوالاتی که از شما میپرسن اینه که «از خودت بگو»، این از خودت بگو یکی از بهترین فرصت هایی هست که میتونی حمله کنی. من فکر میکنم اگه قسمت حمله رو درست انجام بدی به اندازه ای روی مصاحبه کننده تاثیر میذاری که حتی اگه بعدش چند تا سوال رو هم اشتباه جواب بدی به شما و توانایی هات اعتماد کنن. ولی وقتی خیلی ساکت میری تو لاک دفاعی صرفا منتظری ازت سوال بپرسن خب احتمال رد شدنت خیلی بیشتر میشه.

پست قبلی در همین رابطه رو هم اینجا میتونید بخونید
https://t.iss.one/gocasts/547

@gocasts
👍5🔥1
تو این عکس و PDF زیر به طور خلاصه یاد میگیرم ربیت چطور کار میکنه و پترن هاش کدوماس
بیشتر دیاگرام کشیدم براتون و کمتر حرف زدم😬

لینک همین پست توی لینکیدن 👈🏻 لینک

#rabbitmq
@LearnByLearn
👍4
دوستان کدوم ریکرد بیشتر مورد پسندتون بوده ؟؟؟
Anonymous Poll
26%
عین قبل مقاله طوری و مفصل
11%
مثل پست قبلی PDF ایی و دیاگرامی و کوتاه
64%
ترکیب هردو
سلطان بیل کندی(Bill Kennedy) که معرف حضور کامیونیتی گولنگی ها هستش امروز یه لایو گذاشت و مهندسی نرم افزار و طراحی سیستم با گولنگ رو یاد داد
اگه اشتباه نکنم(خودم کامل ندیدمش) میاد یه دونه برنامه chat رو دیزاین میکنه و کدشو میزنه

https://www.youtube.com/watch?v=vzoaBfxbrdo

جلسه بعدیشم فکر کنم فرداس

@LearnByLearn
👍1
میخوام توی این پست یه خرده راجع به اینکه میگن همه چیز توی مهندسی نرم افزار ترید آفه صحبت کنم و یه کوچولو هم گریزی بزنیم Big O

بیایین اینطوری شروعش کنیم که به نظرتون کد خوب چه کدی هست ؟
شاید بشه گفت کدی که دوتا ویژگی رو داشته باشه، میشه اسمش رو گذاشت یه کد خوب و مشتی
یکی اینکه Readable یا خوانا باشه و یکی دیگه اینکه Scalable باشه

خوانایی کد که خب معلومه دیگه نیاز به توضیح نداره، کتاب clean code ماشالله تا دلتون بخواد راجبش گفته
اما Scalable بودن چطور ؟

قبلش بیاین بفهمیم Big O چیه ؟
من طبق چیزایی که خوندم و دانش کمی که دارم دوتا تعریف به ذهنم میرسه:
1. درواقع Big O چیزیه که به ما این اجازه رو میده میزان scalebility کد رو بسنجیم
2. یا Big O چیزی که به ما میگه یه الگوریتم چقدر طول میکشه تا اجرا بشه

نتیجه اینکه هرچقدر ما کد بهینه تر یعنی با Big O بهتر بزنیم، کدمون اسکیل بیشتری رو پوشش میده دیگه
خب الان یعنی دیگه همیشه بیایم کدی بزنیم که از نظر بهینگی سرعت (1)O یا (log n)O باشه؟ سعی ما اینه که کدمون به این دوتا نزدیک تر باشه ولی همیشه به این سادگی نیست

باید یه نکته رو در نظر بگیریم، به نظرم هیچوقت نمیتونیم سرعت و حافظه رو باهم داشته باشیم همیشه یکی رو باید یه خرده بیشتر قربانی کنیم.

فرض کنیم میخواییم از نقطه A بریم به نقطه B :
دوحالت وجود داره یا باید یه تاکسی بگیری و از جیب مبارک هزینه کنی تا سریع تر به نقطه B برسی یا بخوایی اقتصادی فکر کنی پیاده بری پولتو بزاری جیبت و به جاش تایم بیشتری صرف کنی تا به مقصد B برسی
میبینی، تو هیچوقت نمیتونی هم هزینه نکنی و هم سریعتر برسی، بالاخره یکی رو باید از دست بدی(مگر یه آشنا پیدا بشه با ماشین رایگان ببرتت😁)

به نظرم مهندسی نرم افزارم همینه، یعنی ترید آفه بعضی وقتا تو حافظه برات مهمه بعضی وقتا سرعت، باید دید اون پروژه خاص، فیچر مورد نظر، انتخاب زبان، فریمورک یا هرچییی اصلا، توی او موقعیت چی میطلبه ازت

توماس سوول یه جمله داره که میگه :
There are no solutions. There are only trade-off
یعنی هروقت به یک چیزی تو بله میگی در واقع داری به یه چیز دیگه نه میگی

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

مخلصیم ❤️

#concept
@LearnByLearn
👌12👍3
یه مدته دارم و داششتم در رابطه با distributed transaction ها میخوندم و مطلب جمع اوری میکردم(کلا تو فاز سیستم دیزاین رفتم😀)
قصد دارم اون چیزی که ازشون فهمیدم رو یه سری مجموعه ازشون بسازم

فعلا ایده ای ندارم مقاله محور(سایت ویرگول) باشه یا به صورت post توی لینکدین

حالا بازم نظری، پیشنهادی چیزی داشتین بگید ممنون میشم

مخلصیم❤️

@LearnByLearn
👍91