✅ دورهمی هفته نهم
- موضوع: CQRS with Go
- تاریخ و ساعت: 5 خرداد ساعت ۹ شب
- اسپانسر: GoBridge
- ارائه دهنده: مهندس مبین شاطریان
- محل برگزاری: پلت فرم zoom (دانلود برای همه پلت فرم ها)
ایجاد رویداد در تقویم:
- Add to Calendar
- Add to Google Calendar
- Add to Yahoo Calendar
Meeting ID: 884 0905 5240
Passcode: 157053
🔗 Join Link: https://us02web.zoom.us/j/88409055240?pwd=QVNwd1Z4Q1duMk5KaU9yUEVkQmJYUT09
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
- موضوع: CQRS with Go
- تاریخ و ساعت: 5 خرداد ساعت ۹ شب
- اسپانسر: GoBridge
- ارائه دهنده: مهندس مبین شاطریان
- محل برگزاری: پلت فرم zoom (دانلود برای همه پلت فرم ها)
ایجاد رویداد در تقویم:
- Add to Calendar
- Add to Google Calendar
- Add to Yahoo Calendar
Meeting ID: 884 0905 5240
Passcode: 157053
🔗 Join Link: https://us02web.zoom.us/j/88409055240?pwd=QVNwd1Z4Q1duMk5KaU9yUEVkQmJYUT09
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
❤9👍3🍌1🍓1💊1
اگر دوست دارین #راست یاد بگیرین یا راستتون رو مرور کنین، این دوره خوبیه. دوره سه روزه گوگل برای کارمندانی که قراره به سمت راست برن:
https://google.github.io/comprehensive-rust/
#برنامه_نویسی #معرفی
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
https://google.github.io/comprehensive-rust/
#برنامه_نویسی #معرفی
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🔥9👍2
Forwarded from Gopher Academy (Javad)
✅ دورهمی هفته نهم
- موضوع: CQRS with Go
- تاریخ و ساعت: 5 خرداد ساعت ۹ شب
- اسپانسر: GoBridge
- ارائه دهنده: مهندس مبین شاطریان
- محل برگزاری: پلت فرم zoom (دانلود برای همه پلت فرم ها)
ایجاد رویداد در تقویم:
- Add to Calendar
- Add to Google Calendar
- Add to Yahoo Calendar
Meeting ID: 884 0905 5240
Passcode: 157053
🔗 Join Link: https://us02web.zoom.us/j/88409055240?pwd=QVNwd1Z4Q1duMk5KaU9yUEVkQmJYUT09
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
- موضوع: CQRS with Go
- تاریخ و ساعت: 5 خرداد ساعت ۹ شب
- اسپانسر: GoBridge
- ارائه دهنده: مهندس مبین شاطریان
- محل برگزاری: پلت فرم zoom (دانلود برای همه پلت فرم ها)
ایجاد رویداد در تقویم:
- Add to Calendar
- Add to Google Calendar
- Add to Yahoo Calendar
Meeting ID: 884 0905 5240
Passcode: 157053
🔗 Join Link: https://us02web.zoom.us/j/88409055240?pwd=QVNwd1Z4Q1duMk5KaU9yUEVkQmJYUT09
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🔥3👏1🌭1💊1
کتاب راهنمای زبان Go
آموزش Go برای مبتدی ها از FreeCode Camp
https://www.freecodecamp.org/news/learn-golang-handbook/
#DevTwitter
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
آموزش Go برای مبتدی ها از FreeCode Camp
https://www.freecodecamp.org/news/learn-golang-handbook/
#DevTwitter
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍4
Media is too big
VIEW IN TELEGRAM
دورهمی هفته نهم مهندسین گولنگ
موضوع: CQRS With Go
فایل ها: ویدئو - صوتی
این هفته به موضوع جذاب CQRS پرداختیم و یک مهمان ویژه داشتیم آقای مهندس مبین شاطریان, مبین جان بطور کامل درخصوص چالش ها و usecase های CQRS صحبت کرد و دلیل کافی برای انتخاب CQRS را توضیح داد.
🔗 لینک ویدئو در یوتیوب: https://www.youtube.com/watch?v=xoNewMW3dmQ
🔗 شنیدن پادکست در اسپاتیفای: https://open.spotify.com/show/6aQdgKiOF5tuzI7mpijlfj
🔗 شنیدن پادکست در گوگل پادکست: https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy9kZGY3OWRiNC9wb2RjYXN0L3Jzcw
🔗 شنیدن پادکست در کست باکس: https://castbox.fm/va/5381928
➖➖➖➖➖➖➖➖➖
🔰@gopher_academy
موضوع: CQRS With Go
فایل ها: ویدئو - صوتی
این هفته به موضوع جذاب CQRS پرداختیم و یک مهمان ویژه داشتیم آقای مهندس مبین شاطریان, مبین جان بطور کامل درخصوص چالش ها و usecase های CQRS صحبت کرد و دلیل کافی برای انتخاب CQRS را توضیح داد.
🔗 لینک ویدئو در یوتیوب: https://www.youtube.com/watch?v=xoNewMW3dmQ
🔗 شنیدن پادکست در اسپاتیفای: https://open.spotify.com/show/6aQdgKiOF5tuzI7mpijlfj
🔗 شنیدن پادکست در گوگل پادکست: https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy9kZGY3OWRiNC9wb2RjYXN0L3Jzcw
🔗 شنیدن پادکست در کست باکس: https://castbox.fm/va/5381928
➖➖➖➖➖➖➖➖➖
🔰@gopher_academy
❤3👍2🍌1
Audio
❤5🔥1🍾1
حرفههای شنیدنی مدیرعامل Nvidia در مورد AI گفته که چندتاشو براتون مینویسم
1. ما در آغاز یک دوره فناوری بزرگ هستیم: "مانند رایانه شخصی، اینترنت، موبایل و ابر، اما هوشمصنوعی بسیار اساسیتر است."
2. هوش مصنوعی مشاغل جدیدی ایجاد می کند که قبلاً وجود نداشتند: "مانند prompt engineering، AI Factory ops و AI safety engineers."
3. هوش مصنوعی هر شغلی را تغییر میدهد: «افزایش عملکرد برنامهنویسان، طراحان، هنرمندان، بازاریابان و برنامهریزان تولید»
4. باید یاد بگیرید که از هوشمصنوعی استفاده کنید: "در حالی که برخی نگران هستند که هوش مصنوعی شغل آنها را بگیرد، کسی که در زمینه هوش مصنوعی مهارت دارد این کار را انجام خواهد داد."
5. بهطور کلی هوش مصنوعی فرصتهای چند تریلیون دلاری ایجاد کرده است: "زمانی که من از دانشگاه فارغ التحصیل شدم، دنیا سادهتر بود."
نسخه کامل ویدئوی سخنرانی:
https://youtu.be/_sftvrqIfIU
#DevTwitter | <Soroush Ahmadi/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
1. ما در آغاز یک دوره فناوری بزرگ هستیم: "مانند رایانه شخصی، اینترنت، موبایل و ابر، اما هوشمصنوعی بسیار اساسیتر است."
2. هوش مصنوعی مشاغل جدیدی ایجاد می کند که قبلاً وجود نداشتند: "مانند prompt engineering، AI Factory ops و AI safety engineers."
3. هوش مصنوعی هر شغلی را تغییر میدهد: «افزایش عملکرد برنامهنویسان، طراحان، هنرمندان، بازاریابان و برنامهریزان تولید»
4. باید یاد بگیرید که از هوشمصنوعی استفاده کنید: "در حالی که برخی نگران هستند که هوش مصنوعی شغل آنها را بگیرد، کسی که در زمینه هوش مصنوعی مهارت دارد این کار را انجام خواهد داد."
5. بهطور کلی هوش مصنوعی فرصتهای چند تریلیون دلاری ایجاد کرده است: "زمانی که من از دانشگاه فارغ التحصیل شدم، دنیا سادهتر بود."
نسخه کامل ویدئوی سخنرانی:
https://youtu.be/_sftvrqIfIU
#DevTwitter | <Soroush Ahmadi/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👏11👍7❤1👎1🙏1
ما زمان بیشتری را صرف خواندن و درک کد می کنیم تا نوشتن آن. بنابراین، مقدار بار شناختی که برای درک کد باید در مغز خود ایجاد کنیم، بسیار مهم است. این نوشته سعی داره تا یه سری نکات در همین راستا بگه
https://github.com/zakirullin/cognitive-load
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
https://github.com/zakirullin/cognitive-load
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👏7👍3❤1💯1
🔵Function params involve heavy amount of copying
🟢When a param big in size (more than 80 bytes) is passed to another function, it is better to pass a pointer to the value around, rather than the value itself.
#Performance
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🟢When a param big in size (more than 80 bytes) is passed to another function, it is better to pass a pointer to the value around, rather than the value itself.
#Performance
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍9❤1🔥1
🔵Multiple append can be combined into a single call
🟢Multiple calls for append could be combined into a single call for append.
The append built-in function appends elements to the end of a slice. If it has sufficient capacity, the destination is resliced to accommodate the new elements, but if capacity is not enough, then append will allocate a new underlying array and return the updated slice. Therefore, it is necessary to store the result of append, often in the variable holding the slice itself. Appending calls in a single call of append allocates memory just once to accommodate all the elements to be appended. Whereas multiple calls to append introduce many overheads, most notably being the possibility of more calls for memory allocation because the total number of elements to be appended over multiple calls of append is unknown beforehand, resulting in inaccurate preallocation.
🔴 https://go.dev/blog/slices#TOC_9.
#Performance
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🟢Multiple calls for append could be combined into a single call for append.
The append built-in function appends elements to the end of a slice. If it has sufficient capacity, the destination is resliced to accommodate the new elements, but if capacity is not enough, then append will allocate a new underlying array and return the updated slice. Therefore, it is necessary to store the result of append, often in the variable holding the slice itself. Appending calls in a single call of append allocates memory just once to accommodate all the elements to be appended. Whereas multiple calls to append introduce many overheads, most notably being the possibility of more calls for memory allocation because the total number of elements to be appended over multiple calls of append is unknown beforehand, resulting in inaccurate preallocation.
🔴 https://go.dev/blog/slices#TOC_9.
#Performance
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍9❤1🔥1
با pgTAP میتونید برای کدهای SQL ای تون unit test بنویسید. در واقع یه framework عه برای تست که به زبان PL/PGSQL نوشته شده و از تمامی قابلیتهای Test anything Protocol برای تست استفاده میکنه.
https://pgtap.org
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
https://pgtap.org
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍10
✅ طراحی و توسعه کتابخانه های Modular در زبان گو با استفاده از Plugin
در میان ویژگیهای قابل توجه Go نسخه 1.8، سیستم جدید پلاگینهای Go قرار دارد. این ویژگی به برنامهنویسان اجازه میدهد تا برنامههای ماژولار بدون ارتباط زنجیرهای با هم، با استفاده از بستههایی که به صورت کتابخانههای اشیا شیءگرا کامپایل شدهاند، ساخته شوند و بهصورت پویا در زمان اجرا بارگذاری و بهصورت پیوسته به آنها پیوند داده شوند.
این تغییر بزرگی است! چرا که توسعهدهندگان نرمافزارهای سیستمی بزرگ در Go، بدون شک، نیاز به ماژولارسازی کد خود دارند. ما برای دستیابی به ماژولارسازی کد، از طراحیهای متعدد out-of-process، مانند OS exec calls، سوکت و RPC/gRPC (و غیره) استفاده کردهایم. این روشها ممکن است به خوبی کار کنند، اما در بسیاری از زمینهها بهعنوان پایانهای برای پردازش با قبل نبود یک سیستم پلاگینای ناتیو در Go بکار رفتهاند.
در این بخش از کتاب، من بررسی میکنم که ایجاد نرمافزار ماژولار با استفاده از سیستم پلاگینهای Go (plugin) چه تبعاتی دارد.
https://book.gofarsi.ir/chapter-4/go-plugin/
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
در میان ویژگیهای قابل توجه Go نسخه 1.8، سیستم جدید پلاگینهای Go قرار دارد. این ویژگی به برنامهنویسان اجازه میدهد تا برنامههای ماژولار بدون ارتباط زنجیرهای با هم، با استفاده از بستههایی که به صورت کتابخانههای اشیا شیءگرا کامپایل شدهاند، ساخته شوند و بهصورت پویا در زمان اجرا بارگذاری و بهصورت پیوسته به آنها پیوند داده شوند.
این تغییر بزرگی است! چرا که توسعهدهندگان نرمافزارهای سیستمی بزرگ در Go، بدون شک، نیاز به ماژولارسازی کد خود دارند. ما برای دستیابی به ماژولارسازی کد، از طراحیهای متعدد out-of-process، مانند OS exec calls، سوکت و RPC/gRPC (و غیره) استفاده کردهایم. این روشها ممکن است به خوبی کار کنند، اما در بسیاری از زمینهها بهعنوان پایانهای برای پردازش با قبل نبود یک سیستم پلاگینای ناتیو در Go بکار رفتهاند.
در این بخش از کتاب، من بررسی میکنم که ایجاد نرمافزار ماژولار با استفاده از سیستم پلاگینهای Go (plugin) چه تبعاتی دارد.
https://book.gofarsi.ir/chapter-4/go-plugin/
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🔥7🤔5❤2
✅ دورهمی هفته دهم
- موضوع: Memory Management
- تاریخ و ساعت: ۱۲ خرداد ساعت ۹ شب
- اسپانسر: GoBridge
- مهمان ویژه: آقای امید حکایتی
- محل برگزاری: پلت فرم zoom (دانلود برای همه پلت فرم ها)
Meeting ID: 885 9293 2652
Passcode: 625503
🔗 Join Link: https://us02web.zoom.us/j/88592932652?pwd=QitZWkw5UmF4Z0RvU3M2OXhpZ2RDQT09
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
- موضوع: Memory Management
- تاریخ و ساعت: ۱۲ خرداد ساعت ۹ شب
- اسپانسر: GoBridge
- مهمان ویژه: آقای امید حکایتی
- محل برگزاری: پلت فرم zoom (دانلود برای همه پلت فرم ها)
Meeting ID: 885 9293 2652
Passcode: 625503
🔗 Join Link: https://us02web.zoom.us/j/88592932652?pwd=QitZWkw5UmF4Z0RvU3M2OXhpZ2RDQT09
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🔥8👍5👎3❤1
👍10🌭3❤1
✅ اشاره گر (pointer) چیست؟
فرض کنید یک متغیری به نام tweet دارید مانند زیر:
آدرس حافظه فرضا: 0x0001
این متغیر به همراه مقدارش در خانه ای از حافظه اصلی (RAM) قرار میگیرد.
حال اگر شما با استفاده از & قبل از نام متغیر tweet داخل متغیر p قرار دهید، یعنی دارید به آدرس خانه حافظه tweet اشاره می کنید و مقدار خانه حافظه متغیر p هم 0x0001 خواهد بود که به متغیر tweet اشاره می کند.
اصولاً به اینکار reference می گویند.
حال اگر قبل از متغیر p یک * بزارید می توانید به مقدار اشاره شده داخل متغیر p که همان متغیر tweet هست دسترسی پیدا کنید.
اصولاً به اینکار deference میگویند.
حتی شما می توانید p* را مجدد مقدار دهی کنید و مقدار tweet هم تغییر خواهد کرد.
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
فرض کنید یک متغیری به نام tweet دارید مانند زیر:
tweet := "...content..."
آدرس حافظه فرضا: 0x0001
این متغیر به همراه مقدارش در خانه ای از حافظه اصلی (RAM) قرار میگیرد.
p := &tweet
حال اگر شما با استفاده از & قبل از نام متغیر tweet داخل متغیر p قرار دهید، یعنی دارید به آدرس خانه حافظه tweet اشاره می کنید و مقدار خانه حافظه متغیر p هم 0x0001 خواهد بود که به متغیر tweet اشاره می کند.
اصولاً به اینکار reference می گویند.
*p
حال اگر قبل از متغیر p یک * بزارید می توانید به مقدار اشاره شده داخل متغیر p که همان متغیر tweet هست دسترسی پیدا کنید.
اصولاً به اینکار deference میگویند.
حتی شما می توانید p* را مجدد مقدار دهی کنید و مقدار tweet هم تغییر خواهد کرد.
"...content..."
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍13👎4
✅ When to use what?
Go ↓
Infrastructural programming and servers. Less is more. Simplicity.
Rust ↓
Resource-constrained environments. Every byte and CPU cycle matters. Safety is critical. Can’t say simple.
Pick your poison ☠️ 😂
#Tweet by inanc
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
Go ↓
Infrastructural programming and servers. Less is more. Simplicity.
Rust ↓
Resource-constrained environments. Every byte and CPU cycle matters. Safety is critical. Can’t say simple.
Pick your poison ☠️ 😂
#Tweet by inanc
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍12💊3
The UNIX philosophy is often quoted as “everything is a file”, but that really means “everything is a stream of bytes”.
— Linus Torvalds
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
— Linus Torvalds
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍8💯3💊3