با 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
👍5❤4🎉1
📕 Strategic Monoliths and Microservices
Driving Innovation Using Purposeful Architecture
➖Edited by: Vaughn Vernon, Tomasz Jaskuła
➖Paperback : 348 pages (B5)
➖Edition : 1
➖Year : 2022
➖Publisher : Addison-Wesley
➖Code:
🛒 🌐 https://skybooks.ir
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
Driving Innovation Using Purposeful Architecture
➖Edited by: Vaughn Vernon, Tomasz Jaskuła
➖Paperback : 348 pages (B5)
➖Edition : 1
➖Year : 2022
➖Publisher : Addison-Wesley
➖Code:
A2783
➖ See in Amazon🛒 🌐 https://skybooks.ir
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍7
🤔5👍2
🔥 Go is unconventional yet versatile.
🔥 Go isn't just OOP, functional, or procedural.
🚀 It's a unique blend of all and beyond.
✅ If you aim for idiomatic code, don't confine it to any one style.
#Tweet by inanc
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🔥 Go isn't just OOP, functional, or procedural.
🚀 It's a unique blend of all and beyond.
✅ If you aim for idiomatic code, don't confine it to any one style.
#Tweet by inanc
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍4👎1🍌1💊1
اولین آمارها از اخراج افراد به خاطر هوش مصنوعی منتشر شد
طبق گزارش ماه May چلنجر در آمریکا حدود ۸۰ هزار نفر از کار اخراج شدن که ۴ هزار نفرشون به خاطر هوش مصنوعی بوده
در کنار این گفتن تازه خیلی از شرکتها نمیگن دلیل اصلیشون برای اخراج AI بوده که میتونه عدد بیشتر از اینها باشه
#DevTwitter | <Soroush Ahmadi/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
طبق گزارش ماه May چلنجر در آمریکا حدود ۸۰ هزار نفر از کار اخراج شدن که ۴ هزار نفرشون به خاطر هوش مصنوعی بوده
در کنار این گفتن تازه خیلی از شرکتها نمیگن دلیل اصلیشون برای اخراج AI بوده که میتونه عدد بیشتر از اینها باشه
#DevTwitter | <Soroush Ahmadi/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👀9👎3🔥1🌭1🍓1👨💻1
In golang, we "expect" errors, but we don't "expect" panics.
😊 Errors are our sane behavior
😱 Panics are our manic behavior
#Tweet by inanc
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
😊 Errors are our sane behavior
😱 Panics are our manic behavior
#Tweet by inanc
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍3🌭2🍾1💊1
🔵Logging in Go: Choosing a System and Using it
🔴https://www.honeybadger.io/blog/golang-logging/
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🔴https://www.honeybadger.io/blog/golang-logging/
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍3🔥1🐳1
👍3🕊1🏆1
👍6🍓1
A few golang tips for writing effective Go code:
1. Make it easy to read from top to bottom
2. Do not hide the cost of doing something
3. Do not prematurely abstract
These are not rules, just advice.
#Tweet by inanc
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
1. Make it easy to read from top to bottom
2. Do not hide the cost of doing something
3. Do not prematurely abstract
These are not rules, just advice.
#Tweet by inanc
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🍌2👍1🕊1
🔵Finding The Best Go Project Structure - Part 1
🔻Structuring Approach
🔻Single Package Approach
🔻Coupled Packages Approach
🔻Independent Packages Approach
🔻Retrospective Analysis
🔻Reusability Issues
🔻Undeclared Dependencies
🟢https://avivcarmi.com/finding-the-best-go-project-structure-part-1/
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🔻Structuring Approach
🔻Single Package Approach
🔻Coupled Packages Approach
🔻Independent Packages Approach
🔻Retrospective Analysis
🔻Reusability Issues
🔻Undeclared Dependencies
🟢https://avivcarmi.com/finding-the-best-go-project-structure-part-1/
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍3🍾2👎1👏1