ijiel-2qaaa-aaaad-qepoa-cai.icp0.io
Open in
urlscan Pro
2a00:fb01:400:200:5000:5aff:fef2:9428
Public Scan
URL:
https://ijiel-2qaaa-aaaad-qepoa-cai.icp0.io/chapter-9/concurrency-patterns/go-concurrency-pattern-brdige-channel/index.html
Submission: On December 20 via api from US — Scanned from CH
Submission: On December 20 via api from US — Scanned from CH
Form analysis
0 forms found in the DOMText Content
زبان گو فارسی * اسپانسرهای کتاب * پیشگفتار * تاریخچه * آموزش نصب * ابزارها, دستورات گو و معرفی IDE * نقشه یادگیری زبان گو * تغییرات نسخه های زبان گو * سوالات مصاحبه * فصل اول: آشنایی با مفاهیم گو * 1.1 ساختار کد گو * 1.2 کلید واژه و شناسهها * 1.3 تایپهای پایه * 1.4 عملگرها * 1.5 متغیرها و constant * 1.6 مقادیر صفر تایپها (zero values) * 1.7 تابع (function) * 1.8 آرایه و slice * 1.9 حلقهها (for) * 1.10 نقشه map * 1.11 شرط (if, switch) * 1.12 اضافه کردن پکیج در کد (package) * 1.13 defer, panic, recovery * 1.14 لیست تایپها و توابع Builtin * 1.15 قالب بندی رشتهها * فصل دوم: مکانیزم های زبان * 2.1 اشاره گر (Pointer) * 2.2 ساختار (struct) * 2.3 متد (Method) * 2.4 اینترفیس (Interface) * 2.5 جاسازی تایپ (type embedding) * 2.6 مدیریت خطاها * 2.7 فرق casting با conversion * فصل سوم: همزمانی (concurrency) * 3.1 آشنایی با همزمانی * 3.2 گوروتین (goroutine) * 3.3 پکیج sync * 3.4 پکیج atomic * 3.5 آموزش مقابله با data race * 3.6 کانال (channel) * 3.7 آموزش استفاده از select * 3.8 پکیج context * 3.9 تکنیک های همزمانی * 3.10 الگو های همزمانی * فصل چهارم: مباحث پیشرفته * 4.1 آموزش Build پروژه * 4.2 آموزش کار با Debugging * 4.3 آموزش کار با go mod * 4.4 آموزش کار با workspace * 4.5 آموزش کار با Vendor * 4.6 آموزش نوشتن برنامه command line * 4.7 آموزش کار با فایل * 4.8 آموزش کار با json * 4.9 آموزش کار با toml * 4.10 آموزش کار با yaml * 4.11 آموزش کار با csv * 4.12 آموزش کار با ini * 4.13 آموزش کار با environment variable * 4.14 آموزش کار با regexp * 4.15 آموزش reflection * 4.16 آموزش generator * 4.17 آموزش stringer * 4.18 تکنیک های کدنویسی زبان گو * 4.19 اصول کامنت نویسی * 4.20 قوانین کدنویسی در گو * 4.21 زباله جمع کن (garbage collector) * 4.22 کتابخانه Plugin * 4.23 شی گرایی در زبان گو * 4.23.1 کپسوله سازی (Encapsulation) * 4.22.2 ارث بری * 4.23.3 پلی مورفیسم (Polymorphism) * 4.23.4 overriding * 4.23.5 abstraction * 4.24 Tracing * فصل پنجم: برنامه نویسی شبکه با گو * 5.1 شبکه چیست * 5.2 سرور tcp مقدماتی * 5.3 سرور tcp پیشرفته * 5.4 سرور udp مقدماتی * 5.5 سرور udp پیشرفته * 5.6 کتابخانه http سمت سرور مقدماتی * 5.7 کتابخانه http سمت سرور پیشرفته * 5.8 کتابخانه http سمت کلاینت مقدماتی * 5.9 کتابخانه http سمت کلاینت پیشرفته * 5.10 پروتکل quic * فصل ششم: جنریک (Generics) * 6.1 جنریک مقدماتی * فصل هفتم: تست نویسی * 7.1 پکیج testify * فصل هشتم: پکیج های استاندارد * فصل نهم: الگوهای طراحی * 9.1 الگوهای طراحی سازنده * 9.1.1 الگو Singleton * 9.1.2 الگو Factory Method * 9.1.3 الگو Prototype * 9.1.4 الگو Abstract Factory * 9.1.6 الگو Builder * 9.1.7 الگو Object Pool * 9.2 الگوهای طراحی ساختاری * 9.2.1 الگو Adaptor * 9.2.2 الگو Bridge * 9.2.3 الگو Composite * 9.2.1 الگو Decorator * 9.2.5 الگو Facade * 9.2.6 الگو Flyweight * 9.2.7 الگو Proxy * 9.3 الگوهای طراحی رفتاری * 9.3.1 الگو Chain Of Responsibility * 9.3.2 الگو Command * 9.3.3 الگو Iterator * 9.3.4 الگو Mediator * 9.3.5 الگو Memento * 9.3.6 الگو Observer * 9.3.7 الگو State * 9.3.8 الگو Strategy * 9.3.9 الگو Template Method * 9.3.10 الگو Visitor * 9.4 الگوهای همزمانی * 9.4.1 الگو Wait For Result * 9.4.2 الگو Fan Out/In * 9.4.3 الگو Wait For Task * 9.4.4 الگو Pooling * 9.4.5 الگو Drop * 9.4.6 الگو Cancellation * 9.4.7 الگو Semaphore * 9.4.8 الگو Bounded Work Pooling * 9.4.9 الگو Retry Timeout * 9.4.10 الگو Channel Cancellation * 9.4.11 الگو Producer-Consumer * 9.4.12 الگو Monitor * 9.4.13 الگو Future * 9.4.14 الگو Pipeline * 9.4.15 الگو Subscription * 9.4.16 الگو Bridge Channel * 9.4.17 الگو Queuing * 9.5 الگوهای Cloud Native * 9.5.1 الگو Circuit Breaker * 9.5.2 الگو Debounce * 9.5.3 الگو Retry * 9.5.4 الگو Throttle * 9.5.5 الگو Timeout * 9.6 ضد الگوها (Anti-Patterns) * 9.6.1 ضد الگو سینتکسی * فصل دهم: الگوریتم و ساختار داده * 10.1 Data Structures (Queue Stack Lists) * فصل یازدهم: معماری های نرم افزار مخزن کتاب مشارکت در کتاب زبان گو 9.4.16 الگو Bridge Channel گروه تلگرامی مهندسین گولنگ لینکدین نویسنده توییتر نویسنده * * 9.4.16.1 توضیحات * 9.4.16.2 دیاگرام * 9.4.17.3 نمونه کد * 9.4.18.4 کاربردها 9.4.16 الگو BRIDGE CHANNEL 9.4.16.1 توضیحات # با استفاده از الگو Bridge Channel می توانید بین ۲ کانال داده ای را منتقل کنید فرض کنید یک داده را به کانال input میفرستید و از دریافت داده آن را می توانید به کانال دیگری منتقل کنید و عملا شما یک پل برای انتقال داده ایجاد کردید. 9.4.16.2 دیاگرام # 9.4.17.3 نمونه کد # 1package main 2 3import "fmt" 4 5func main() { 6 // Declare input and output channels 7 input := make(chan int) 8 output := make(chan int) 9 10 // Launch goroutine to act as bridge between channels 11 go func() { 12 for { 13 // Wait for value on input channel 14 value := <-input 15 16 // Forward value to output channel 17 output <- value 18 } 19 }() 20 21 // Send a value to the input channel 22 input <- 1 23 24 // Receive the value from the output channel 25 fmt.Println(<-output) // prints "1" 26} 1$ go run main.go 21 در کد فوق ما ۲ کانال input و output ایجاد کردیم سپس داخل یک گوروتین داده را از کانال input دریافت کردیم و داخل متغیر value قرار دادیم سپس value را به کانال output فرستادیم و در نهایت داده دریافت شده از کانال output را چاپ کردیم. 9.4.18.4 کاربردها # * فیلتر داده ها: یک گوروتین می تواند به عنوان پلی بین یک کانال ورودی و یک کانال خروجی عمل کند، داده ناخواسته را فیلتر کرده و فقط آنهایی را که معیارهای خاصی را برآورده می کنند، ارسال می کند. * تبدیل مقادیر: یک گوروتین می تواند به عنوان پلی بین یک کانال ورودی و یک کانال خروجی عمل کند و مقادیر دریافت شده در کانال ورودی را قبل از ارسال به کانال خروجی تبدیل کند. * Fan-out: یک گوروتین می تواند به عنوان پلی بین یک کانال ورودی و چندین کانال خروجی عمل کند و مقدار یکسان را به طور همزمان به چندین کانال ارسال کند. * Fan-in: یک گوروتین می تواند به عنوان پلی بین چندین کانال ورودی و یک کانال خروجی واحد عمل کند و مقادیر را از چندین کانال به یک کانال به روشی کنترل شده ارسال کند. * ترکیب چند کانال: یک گوروتین می تواند به عنوان پلی بین چندین کانال ورودی و یک کانال خروجی واحد عمل کند و مقادیر از چندین کانال را در یک کانال واحد ترکیب کند تا توسط یک گوروتین consume شود. این صفحه را ویرایش کنید 9.4.17 الگو Queuing ◀︎ گروه تلگرامی مهندسین گولنگ لینکدین نویسنده توییتر نویسنده * * 9.4.16.1 توضیحات * 9.4.16.2 دیاگرام * 9.4.17.3 نمونه کد * 9.4.18.4 کاربردها