ارتباط یا هسته اصلی برنامه جهت برقرار با مانگو و یه سرویس ابری(البته دلخواه ) و بعد ش استفاده از repository و service ها
👇👇👇👇👇
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇👇👇👇👇
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯وقتی شما یه کانال از نوع بافر شده میسازید دقیقا پشته صحنه این اتقاقات بالا می افته🎯
🔺هربخش رو توی ادامه توضیح میدم
🔹ch := make(chan int, 3)
.
🔰 @gopher_academy
🔺هربخش رو توی ادامه توضیح میدم
🔹ch := make(chan int, 3)
.
🔰 @gopher_academy
🔸استخدام Golang Back-end Developer (Go) در شرکت اندیشه فرتاک امیرکبیر #تهران
🔹حقوق تا ۱۲ میلیون تومان
🔗 https://quera.ir/r/Rvl5HE
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹حقوق تا ۱۲ میلیون تومان
🔗 https://quera.ir/r/Rvl5HE
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯سروریس های موجود برای کار با aws که در واقع بلد بودن awsیک مزیت بزرگ برای هر موقعیت شغلی گولنگ حساب میاد چرا که توی اکثر موقعیت های شغلی از این Iaas استفاده میکنند🎯
🔹AWS API Gateway
🔹AWS Application Load Balancer (ALB)
🔹AWS Athena
🔹AWS Aurora
🔹AWS Certificate Manager (ACM)
🔹AWS CloudFront
🔹AWS CloudWatch
🔹AWS DynamoDB
🔹AWS EC2 Auto Scaling
🔹AWS Elastic Beanstalk
🔹AWS Elastic Block Store (EBS)
🔹AWS Elastic Compute Cloud (EC2)
🔹AWS Elastic Container Service (ECS)
🔹AWS Elastic Kubernetes Service (EKS)
🔹AWS Elastic Load Balancer (ELB)
🔹AWS ElastiCache
🔹AWS Elasticsearch
🔹AWS Fargate
🔹AWS IoT
🔹AWS Kinesis
🔹AWS Lambda
🔹AWS Network Load Balancer (NLB)
🔹AWS Relational Database Service (RDS)
🔹AWS Route53
🔹AWS Simple Email Service (SES)
🔹AWS Simple Notification Service (SNS)
🔹AWS Simple Queue Service (SQS)
🔹AWS Simple Storage Service (S3)
🔹AWS Virtual Private Cloud (VPC)
.
🔰 @gopher_academy
🔹AWS API Gateway
🔹AWS Application Load Balancer (ALB)
🔹AWS Athena
🔹AWS Aurora
🔹AWS Certificate Manager (ACM)
🔹AWS CloudFront
🔹AWS CloudWatch
🔹AWS DynamoDB
🔹AWS EC2 Auto Scaling
🔹AWS Elastic Beanstalk
🔹AWS Elastic Block Store (EBS)
🔹AWS Elastic Compute Cloud (EC2)
🔹AWS Elastic Container Service (ECS)
🔹AWS Elastic Kubernetes Service (EKS)
🔹AWS Elastic Load Balancer (ELB)
🔹AWS ElastiCache
🔹AWS Elasticsearch
🔹AWS Fargate
🔹AWS IoT
🔹AWS Kinesis
🔹AWS Lambda
🔹AWS Network Load Balancer (NLB)
🔹AWS Relational Database Service (RDS)
🔹AWS Route53
🔹AWS Simple Email Service (SES)
🔹AWS Simple Notification Service (SNS)
🔹AWS Simple Queue Service (SQS)
🔹AWS Simple Storage Service (S3)
🔹AWS Virtual Private Cloud (VPC)
.
🔰 @gopher_academy
Gopher Academy
🎯وقتی شما یه کانال از نوع بافر شده میسازید دقیقا پشته صحنه این اتقاقات بالا می افته🎯 🔺هربخش رو توی ادامه توضیح میدم 🔹ch := make(chan int, 3) . 🔰 @gopher_academy
🎯آموزش سفر به اعماق channel ها در گولنگ🎯
🔹Channel?
🔹What it takes to be a Channel.
🔹Channel Structure
🔹hchan and waitq structs
🔹Important Field of sudog struct for channel
🔹Chan Struct at the runtime
🔹Recvq structure
➖➖➖➖
🔹Send Opertaion Steps c <- x
🔸sending on nil channel
🔸sending on the closed channel.
🔸A goroutine is blocked on the channel
🔸Buffered Channel if there is currently space available for hchan.buf
🔸The hchan.buf is full
🔸Send operation Summary
➖➖➖➖
🔷Receive Opertaion Steps <- ch
🔸select channel Example
🔸scase structure
🔸poll order
🔸park goroutine in select case
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹Channel?
🔹What it takes to be a Channel.
🔹Channel Structure
🔹hchan and waitq structs
🔹Important Field of sudog struct for channel
🔹Chan Struct at the runtime
🔹Recvq structure
➖➖➖➖
🔹Send Opertaion Steps c <- x
🔸sending on nil channel
🔸sending on the closed channel.
🔸A goroutine is blocked on the channel
🔸Buffered Channel if there is currently space available for hchan.buf
🔸The hchan.buf is full
🔸Send operation Summary
➖➖➖➖
🔷Receive Opertaion Steps <- ch
🔸select channel Example
🔸scase structure
🔸poll order
🔸park goroutine in select case
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش سفر به اعماق channel ها در گولنگ🎯 🔹Channel? 🔹What it takes to be a Channel. 🔹Channel Structure 🔹hchan and waitq structs 🔹Important Field of sudog struct for channel 🔹Chan Struct at the runtime 🔹Recvq structure ➖➖➖➖ 🔹Send Opertaion Steps c <- x 🔸sending…
🎯Channel?🎯
🔹یک الگوی هست برای کارهای که نیاز به همزمانی دارد را همگام سازی می کند. در واقع گولنگ برای همزمانی به یک مدلی به نام CSP متکی هست که فلسفه اصلی ابن مدل همزمانی می باشد. که الگوی همگام سازی ار طریق کانال را فراهم می کند.
🔸CSP= Communicating Sequential Processes
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹یک الگوی هست برای کارهای که نیاز به همزمانی دارد را همگام سازی می کند. در واقع گولنگ برای همزمانی به یک مدلی به نام CSP متکی هست که فلسفه اصلی ابن مدل همزمانی می باشد. که الگوی همگام سازی ار طریق کانال را فراهم می کند.
🔸CSP= Communicating Sequential Processes
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش سفر به اعماق channel ها در گولنگ🎯 🔹Channel? 🔹What it takes to be a Channel. 🔹Channel Structure 🔹hchan and waitq structs 🔹Important Field of sudog struct for channel 🔹Chan Struct at the runtime 🔹Recvq structure ➖➖➖➖ 🔹Send Opertaion Steps c <- x 🔸sending…
🎯What it takes to be a Channel.🎯
🔹اینم یه نمونه کد خیلی ساده واسه تعریف کانال
func goRoutineA(a <-chan int) {
val := <-a
fmt.Println("goRoutineA received the data", val)
}
func main() {
ch := make(chan int) //
go goRoutineA(ch)
time.Sleep(time.Second * 1)
}
🔹اینم یه نمونه کد خیلی ساده واسه تعریف کانال
func goRoutineA(a <-chan int) {
val := <-a
fmt.Println("goRoutineA received the data", val)
}
func main() {
ch := make(chan int) //
go goRoutineA(ch)
time.Sleep(time.Second * 1)
}
Forwarded from Gopher Academy
🎯وقتی شما یه کانال از نوع بافر شده میسازید دقیقا پشته صحنه این اتقاقات بالا می افته🎯
🔺هربخش رو توی ادامه توضیح میدم
🔹ch := make(chan int, 3)
.
🔰 @gopher_academy
🔺هربخش رو توی ادامه توضیح میدم
🔹ch := make(chan int, 3)
.
🔰 @gopher_academy
Gopher Academy
🎯آموزش سفر به اعماق channel ها در گولنگ🎯 🔹Channel? 🔹What it takes to be a Channel. 🔹Channel Structure 🔹hchan and waitq structs 🔹Important Field of sudog struct for channel 🔹Chan Struct at the runtime 🔹Recvq structure ➖➖➖➖ 🔹Send Opertaion Steps c <- x 🔸sending…
🎯hchan and waitq structs🎯
🎯وقتی شما یه کانال به صورت زیر تعریف می کنید (به عنوان مثال)دقیقا پشته صحنه ساختاری به نام hchan ایجاد میشه براش(ساختار بالا)🎯
🔹ch := make(chan int, 2)
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯وقتی شما یه کانال به صورت زیر تعریف می کنید (به عنوان مثال)دقیقا پشته صحنه ساختاری به نام hchan ایجاد میشه براش(ساختار بالا)🎯
🔹ch := make(chan int, 2)
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯ما برای تکمیل تیم برنامه نیاز به برنامه نویس بک اند گولنگ داریم در صورتی که واجد شرایط زیر هستید از طریق ایمیلebrahimiteam@gmail.com با ما در ارتباط باشید.
🎯برنامه نویس زبان گولنگ( Backend Golang developer)
Middle Golang Developer
الزامات:
🔹6+ ماه تجربه با Golang ،
🔹مبانی قوی علوم کامپیوتر: ساختار داده ها ، الگوریتم ها ، همزمانی و موازی سازی.
🔹دانش اولیه در مورد چگونگی نوشتن آزمونهای واحدی ؛
🔹تجربه خوبی با PostgreSQL.
🔹گیت
🔹ویندوز ، لینوکس یک امتیاز مثبت خواهد بود.
🔹انگلیسی متوسط.
یک امتیاز مثبت خواهد بود:
🔹داکر ، کوبرنتس ؛
🔹جین ، معماری تمیز ؛
🔹دانش استانداردهای JSON / XML ؛
🔹درک اصول REST.
مسئولیت ها:
🔹توسعه و پشتیبانی از یک یا چند سرویس سیستم عامل ؛
🔹نوشتن کد کارآمد ، خواندنی و قابل استفاده مجدد ؛
🔹رفع اشکالات.
https://dewzilla.com
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯برنامه نویس زبان گولنگ( Backend Golang developer)
Middle Golang Developer
الزامات:
🔹6+ ماه تجربه با Golang ،
🔹مبانی قوی علوم کامپیوتر: ساختار داده ها ، الگوریتم ها ، همزمانی و موازی سازی.
🔹دانش اولیه در مورد چگونگی نوشتن آزمونهای واحدی ؛
🔹تجربه خوبی با PostgreSQL.
🔹گیت
🔹ویندوز ، لینوکس یک امتیاز مثبت خواهد بود.
🔹انگلیسی متوسط.
یک امتیاز مثبت خواهد بود:
🔹داکر ، کوبرنتس ؛
🔹جین ، معماری تمیز ؛
🔹دانش استانداردهای JSON / XML ؛
🔹درک اصول REST.
مسئولیت ها:
🔹توسعه و پشتیبانی از یک یا چند سرویس سیستم عامل ؛
🔹نوشتن کد کارآمد ، خواندنی و قابل استفاده مجدد ؛
🔹رفع اشکالات.
https://dewzilla.com
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯hchan and waitq structs🎯 🎯وقتی شما یه کانال به صورت زیر تعریف می کنید (به عنوان مثال)دقیقا پشته صحنه ساختاری به نام hchan ایجاد میشه براش(ساختار بالا)🎯 🔹ch := make(chan int, 2) ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯توضیحاتی درباره فیلد های این ساختار🎯
🔹qcount
کل دادهای که در صف قرار دارند
🔹dataqsize
اندازه بافر رو مشخص می کند make(chan T, N)
🔹elemsize
اندازه کانال مربوط به یک عنصر است.
🔹buf
یک نوع مدل صف دایره ای است که داده های ما در آن ذخیره می شود. (فقط برای کانال بافر استفاده می شود)
🔹closed
وضعیت بسته بودن یا باز بودن کانال فعلی رو نشون میده اگر صفر باشد یعنی باز و اگر یک باشد یعنی بسته هست کانال ما
🔹sendx and recvx
فیلد حالت بافر به صورت حلقه ای است ، یعنی شاخص فعلی بافر را نشان می دهد که از آنجا می تواند داده ارسال کند و داده دریافت کند.()
🔹recvq and sendq
صف های انتظار recvq و sendq ، که برای ذخیره goroutines مسدود شده هنگام تلاش برای خواندن داده ها در کانال یا هنگام ارسال داده ها از کانال استفاده می شود.
🔹lock
برای قفل کردن کانال برای هر یک از عملیات خواندن و نوشتن ، ارسال و دریافت که این عملیات کاملاً متفاوتی باشد.
https://golang.org/src/runtime/chan.go
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹qcount
کل دادهای که در صف قرار دارند
🔹dataqsize
اندازه بافر رو مشخص می کند make(chan T, N)
🔹elemsize
اندازه کانال مربوط به یک عنصر است.
🔹buf
یک نوع مدل صف دایره ای است که داده های ما در آن ذخیره می شود. (فقط برای کانال بافر استفاده می شود)
🔹closed
وضعیت بسته بودن یا باز بودن کانال فعلی رو نشون میده اگر صفر باشد یعنی باز و اگر یک باشد یعنی بسته هست کانال ما
🔹sendx and recvx
فیلد حالت بافر به صورت حلقه ای است ، یعنی شاخص فعلی بافر را نشان می دهد که از آنجا می تواند داده ارسال کند و داده دریافت کند.()
🔹recvq and sendq
صف های انتظار recvq و sendq ، که برای ذخیره goroutines مسدود شده هنگام تلاش برای خواندن داده ها در کانال یا هنگام ارسال داده ها از کانال استفاده می شود.
🔹lock
برای قفل کردن کانال برای هر یک از عملیات خواندن و نوشتن ، ارسال و دریافت که این عملیات کاملاً متفاوتی باشد.
https://golang.org/src/runtime/chan.go
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش سفر به اعماق channel ها در گولنگ🎯 🔹Channel? 🔹What it takes to be a Channel. 🔹Channel Structure 🔹hchan and waitq structs 🔹Important Field of sudog struct for channel 🔹Chan Struct at the runtime 🔹Recvq structure ➖➖➖➖ 🔹Send Opertaion Steps c <- x 🔸sending…
🎯Important Field of sudog struct for channel🎯
شمای یک گورتین را می دهد
sudog represent the goroutine.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
شمای یک گورتین را می دهد
sudog represent the goroutine.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯Important Field of sudog struct for channel🎯 شمای یک گورتین را می دهد sudog represent the goroutine. ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
خوب توی این کد میخوایم بررسی کنیم که خط شماره ۲۲ چه روندی روی توی ساختار برامون ایجاد می کند(بررسی این خط کد روی ساختار)
👇🏻👇🏻👇🏻👇🏻👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇🏻👇🏻👇🏻👇🏻👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯Chan Struct at the runtime🎯
این نما رو برای کد بالا درنشر بگیرید
توضیحات در زیر این پست
👇🏻👇🏻👇🏻👇🏻👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
این نما رو برای کد بالا درنشر بگیرید
توضیحات در زیر این پست
👇🏻👇🏻👇🏻👇🏻👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯Chan Struct at the runtime🎯 این نما رو برای کد بالا درنشر بگیرید توضیحات در زیر این پست 👇🏻👇🏻👇🏻👇🏻👇🏻 ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
👆🏻توضیحات این شمای و کدهای بالاش👆🏻
به خط هاب شماره 47 و 48 بالا توجه کنید. در شکل بالا
به یاد داشته باشید توضیحات recvq از بالا برای ذخیره گورتین های مسدود شده ای که سعی در خواندن داده ها از کانال دارند استفاده می شود.
در کد مثال ما قبل از خط 22 دو goroutine (goroutineA و goroutineB) وجود دارد که سعی می کنند داده ها را از کانال ch بخوانند
از آنجا که قبل از خط 22 روی کانال ، هیچ داده ای در کانال قرار نداده ایم ، بنابراین هر دو goroutine مسدود شده برای عملیات دریافت هستند و در داخل ساختار sudog و در recvq وجود خواهند داشت مشخصاتشان.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
به خط هاب شماره 47 و 48 بالا توجه کنید. در شکل بالا
به یاد داشته باشید توضیحات recvq از بالا برای ذخیره گورتین های مسدود شده ای که سعی در خواندن داده ها از کانال دارند استفاده می شود.
در کد مثال ما قبل از خط 22 دو goroutine (goroutineA و goroutineB) وجود دارد که سعی می کنند داده ها را از کانال ch بخوانند
از آنجا که قبل از خط 22 روی کانال ، هیچ داده ای در کانال قرار نداده ایم ، بنابراین هر دو goroutine مسدود شده برای عملیات دریافت هستند و در داخل ساختار sudog و در recvq وجود خواهند داشت مشخصاتشان.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش سفر به اعماق channel ها در گولنگ🎯 🔹Channel? 🔹What it takes to be a Channel. 🔹Channel Structure 🔹hchan and waitq structs 🔹Important Field of sudog struct for channel 🔹Chan Struct at the runtime 🔹Recvq structure ➖➖➖➖ 🔹Send Opertaion Steps c <- x 🔸sending…
🎯Send Opertaion Steps c <- x🎯
🔹انواع اصلی عملیات ارسال در کانال
🔸sending on nil channel
🔸sending on the closed channel.
🔸A goroutine is blocked on the channel
🔸Buffered Channel if there is currently space available for hchan.buf
🔸The hchan.buf is full
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹انواع اصلی عملیات ارسال در کانال
🔸sending on nil channel
🔸sending on the closed channel.
🔸A goroutine is blocked on the channel
🔸Buffered Channel if there is currently space available for hchan.buf
🔸The hchan.buf is full
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy