یه مثال واقعی از Plan 9 Assembly در Go
فرض کن میخوای یه تابع بنویسی که دو عدد
📁 ساختار فایلها:
🧠
⚙️ فایل
🚀 فایل
✅نحوه اجرای این کد:
کامپایلر Go خودش Plan 9 assembly رو میفهمه (نیازی به nasm یا gcc نیست).
👉 https://xn--r1a.website/addlist/AJ7rh2IzIh02NTI0
فرض کن میخوای یه تابع بنویسی که دو عدد
int64 رو جمع کنه اما قسمت جمع رو با اسمبلی Plan 9 انجام بدی.📁 ساختار فایلها:
add.go
add.s
main.go🧠
add.gopackage main
// Add اضافه کردن دو عدد به زبان اسمبلی
func Add(a, b int64) int64
⚙️ فایل
add.s (با اسمبلی Plan 9)// +build amd64
TEXT ·Add(SB), NOSPLIT, $0
MOVQ a+0(FP), AX // مقدار آرگومان a در رجیستر AX
ADDQ b+8(FP), AX // مقدار b را به AX اضافه کن
MOVQ AX, ret+16(FP) // نتیجه را در مقدار بازگشتی بریز
RET
🚀 فایل
main.gopackage main
import "fmt"
func main() {
fmt.Println(Add(5, 7))
// خروجی: 12
}
✅نحوه اجرای این کد:
go run .
کامپایلر Go خودش Plan 9 assembly رو میفهمه (نیازی به nasm یا gcc نیست).
👉 https://xn--r1a.website/addlist/AJ7rh2IzIh02NTI0
Telegram
Labdon
Bardia invites you to add the folder “Labdon”, which includes 8 chats.
👍4
Forwarded from Future Pulse Persian
وضعیت اینترنت ایران طبق رادار های کلود فلیر
احتمال قطع دسترسی اینترنت با این وضعیت خیلی زیاده...
👉 https://xn--r1a.website/addlist/AJ7rh2IzIh02NTI0
احتمال قطع دسترسی اینترنت با این وضعیت خیلی زیاده...
👉 https://xn--r1a.website/addlist/AJ7rh2IzIh02NTI0
🕊5
🎙️ عنوان پادکست:
🎣 Conference roundup, http3, DataDog and Turso do optimizations
خلاصه پادکست:
Jon's gone fishing, Shay's gone camping, so the community took the time to optimize all the things :)https://cupogo.dev/ for all the links and details! This show is supported by you, and there are many ways to support the show (directly and indirectly). Thanks for listening!Meetup roundupJamie Tanna - Hands on dependency workshop @ FatsomaFyne Conf 2025 exclusive CFPGo South AfricaGopherCon UKGopherConGopherCon IndiaGolab (Florence, Italy)GoWest, as previously mentioned on the showGophercon Afri...
🎣 Conference roundup, http3, DataDog and Turso do optimizations
خلاصه پادکست:
Jon's gone fishing, Shay's gone camping, so the community took the time to optimize all the things :)https://cupogo.dev/ for all the links and details! This show is supported by you, and there are many ways to support the show (directly and indirectly). Thanks for listening!Meetup roundupJamie Tanna - Hands on dependency workshop @ FatsomaFyne Conf 2025 exclusive CFPGo South AfricaGopherCon UKGopherConGopherCon IndiaGolab (Florence, Italy)GoWest, as previously mentioned on the showGophercon Afri...
بریم داشته باشیم یه توضیح کامل، منظم و کاربردی از تفاوتهای
💙Plan 9 Assembly (مورد استفاده Go)
💙NASM (Intel syntax)
💙AT&T syntax
با مثالهای واقعی تا تفاوتها کاملاً جا بیفتد.
🧠 تصویر کلی
💙Plan 9
داخل toolchain زبان Go
💙NASM (Intel)
برنامهنویسی سیستم، بوتلودر، reverse engineering
💙AT&T
و برایUnix / Linux (gcc, gas)
1️⃣ ترتیب operandها (مهمترین تفاوت)
🤍Plan 9
🤍NASM (Intel)
🤍AT&T
2️⃣ نام رجیسترها
🤍Plan 9
🤍NASM
🤍AT&T
📌 در Plan 9:
* حروف بزرگ استفاده میشود و
3️⃣ مشخص کردن سایز داده
| type | Plan 9 | NASM | AT&T
| 8-bit |
| 16-bit |
| 32-bit |
| 64-bit |
📌 در Plan 9 سایز همیشه در نام دستور میآید.
4️⃣ مقدار ثابت (Immediate values)
| Syntax | example
| Plan 9 |
| NASM |
| AT&T |
📌ا
5️⃣ دسترسی به حافظه
| Assembly | example
| Plan 9 |
| NASM |
| AT&T |
📌ا Plan 9 سادهتر و تمیزتر است.
6️⃣ متغیرهای Go در Assembly
این بخش فقط مخصوص Plan 9 است 👇
*
*
*
در NASM و AT&T چنین مفهومی وجود ندارد.
7️⃣ تعریف تابع
💙Plan 9 (Go)
💙NASM
🤍 AT&T
📌 اینجا
8️⃣ کامنتنویسی
| Assembly | comment
| Plan 9 |
| NASM |
| AT&T |
📌نکته خیلی مهم اینه که Go از ABI خودش استفاده میکند.
🔍 مثال یکسان در هر سه
جمع دو عدد
🤍 Plan 9 (Go)
🤍 NASM
🤍 AT&T
✅ جمعبندی سریع ویژگی های کلیدی Plan 9
| ساده و خوانا ✅
| مخصوص Go ✅
| ا cross-platform ✅
| مناسب kernel / OS ❌
| مناسب reverse engineering ❌
👉 https://xn--r1a.website/addlist/AJ7rh2IzIh02NTI0
💙Plan 9 Assembly (مورد استفاده Go)
💙NASM (Intel syntax)
💙AT&T syntax
با مثالهای واقعی تا تفاوتها کاملاً جا بیفتد.
🧠 تصویر کلی
💙Plan 9
داخل toolchain زبان Go
💙NASM (Intel)
برنامهنویسی سیستم، بوتلودر، reverse engineering
💙AT&T
و برایUnix / Linux (gcc, gas)
1️⃣ ترتیب operandها (مهمترین تفاوت)
🤍Plan 9
MOVQ AX, BX → BX = AX 🤍NASM (Intel)
mov rbx, rax → rbx = rax 🤍AT&T
movq %rax, %rbx → rbx = rax 2️⃣ نام رجیسترها
🤍Plan 9
AX, BX, CX, SP, FP 🤍NASM
rax, rbx, rcx, rsp, rbp 🤍AT&T
%rax, %rbx, %rcx 📌 در Plan 9:
* حروف بزرگ استفاده میشود و
% وجود ندارد3️⃣ مشخص کردن سایز داده
| type | Plan 9 | NASM | AT&T
| 8-bit |
MOVB | mov al, bl | movb | 16-bit |
MOVW | mov ax, bx | movw | 32-bit |
MOVL | mov eax, ebx | movl | 64-bit |
MOVQ | mov rax, rbx | movq 📌 در Plan 9 سایز همیشه در نام دستور میآید.
4️⃣ مقدار ثابت (Immediate values)
| Syntax | example
| Plan 9 |
MOVQ $10, AX | NASM |
mov rax, 10 | AT&T |
movq $10, %rax 📌ا
$ در Plan 9 و AT&T یعنی immediate5️⃣ دسترسی به حافظه
| Assembly | example
| Plan 9 |
8(SP) | NASM |
[rsp+8] | AT&T |
8(%rsp) 📌ا Plan 9 سادهتر و تمیزتر است.
6️⃣ متغیرهای Go در Assembly
این بخش فقط مخصوص Plan 9 است 👇
MOVQ arr+0(FP), AX
*
arr → name parameter *
0 → offset*
FP → Frame Pointerدر NASM و AT&T چنین مفهومی وجود ندارد.
7️⃣ تعریف تابع
💙Plan 9 (Go)
TEXT ·Add(SB), NOSPLIT, $0
💙NASM
global Add
Add:
🤍 AT&T
.globl Add
Add:
📌 اینجا
SB فقط در Go وجود دارد (Static Base)8️⃣ کامنتنویسی
| Assembly | comment
| Plan 9 |
// comment | NASM |
; comment | AT&T |
# comment 📌نکته خیلی مهم اینه که Go از ABI خودش استفاده میکند.
🔍 مثال یکسان در هر سه
جمع دو عدد
🤍 Plan 9 (Go)
MOVQ a+0(FP), AX
ADDQ b+8(FP), AX
MOVQ AX, ret+16(FP)
🤍 NASM
mov rax, rdi
add rax, rsi
🤍 AT&T
movq %rdi, %rax
addq %rsi, %rax
✅ جمعبندی سریع ویژگی های کلیدی Plan 9
| ساده و خوانا ✅
| مخصوص Go ✅
| ا cross-platform ✅
| مناسب kernel / OS ❌
| مناسب reverse engineering ❌
👉 https://xn--r1a.website/addlist/AJ7rh2IzIh02NTI0
Telegram
Labdon
Bardia invites you to add the folder “Labdon”, which includes 8 chats.
🕊2
🔵 عنوان مقاله
Does Go Actually Implement the IEEE-754 Floating Point Spec?
🟢 خلاصه مقاله:
در دنیای برنامهنویسی، یکی از مهمترین مواردی که توسعهدهندگان در هنگام کار با عملیاتهای عددی با آن روبهرو هستند، نحوه پیادهسازی اعداد اعشاری در زبانهای مختلف است. به طور خاص، بسیار پیش میآید که سوال شود زبان برنامهنویسی Go چگونه اعداد اعشاری را مدیریت میکند و آیا این پیادهسازی با استاندارد IEEE-754، که در بسیاری از زبانها و سیستمها به عنوان مرجع برای محاسبات اعشاری شناخته میشود، مطابقت دارد یا خیر. این موضوع به ویژه برای برنامههایی مهم است که نیاز به دقت و سازگاری بالا دارند، مانند برنامههای مالی یا علمی.
در پاسخ به این سوال، باید گفت که بله، زبان Go در واقع همان استاندارد IEEE-754 را برای محاسبات Floating Point پیادهسازی میکند. این بدان معناست که عملیاتهایی مانند جمع، تفریق، ضرب و تقسیم اعداد اعشاری در زبان Go رفتار بسیار نزدیک به همان چیزی را دارند که در سایر زبانها بر اساس این استاندارد انتظار میرود. توجه داشته باشید، هرچند این استاندارد به معنای امکان مقایسه سازگاری قطعی نیست، اما در کلیت، گویای سازگاری قابل توجه است.
با این حال، مهم است بدانید که پیادهسازی استاندارد IEEE-754 در زبان Go، به تنهایی تضمینکننده پایداری و درستی نتایج در تمامی موارد نیست. تفاوتهای معماری سختافزار و همچنین نحوه پردازش داخلی میتواند در بعضی موارد منجر به اختلافاتی جزئی در نتایج محاسبات فلوت تغییر کند. بنابراین، هرچند که Go از این استاندارد بهرهمند است، اما برای برنامههایی که نیازمند دقت بسیار زیاد و حملپذیری نتایج هستند، باید با دقت بیشتری مورد ارزیابی و تست قرار گیرند.
در نهایت، باید گفت که اگر به دنبال یک زبان برنامهنویسی هستید که عملیات اعشاری را مطابق با استاندارد معتبر IEEE-754 پیادهسازی کند، Go یکی از گزینههای مناسب است. با این حال، به خاطر داشته باشید که رعایت کامل سازگاری و حملپذیری در پروژههای حساس نیازمند رعایت نکات و ملاحظات بیشتری است تا نتایج نهایی کاملاً قابل اعتماد و قابل انتقال باشد.
#برنامهنویسی #عمليات_اعشاری #IEEE754 #Go
🟣لینک مقاله:
https://golangweekly.com/link/179083/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Does Go Actually Implement the IEEE-754 Floating Point Spec?
🟢 خلاصه مقاله:
در دنیای برنامهنویسی، یکی از مهمترین مواردی که توسعهدهندگان در هنگام کار با عملیاتهای عددی با آن روبهرو هستند، نحوه پیادهسازی اعداد اعشاری در زبانهای مختلف است. به طور خاص، بسیار پیش میآید که سوال شود زبان برنامهنویسی Go چگونه اعداد اعشاری را مدیریت میکند و آیا این پیادهسازی با استاندارد IEEE-754، که در بسیاری از زبانها و سیستمها به عنوان مرجع برای محاسبات اعشاری شناخته میشود، مطابقت دارد یا خیر. این موضوع به ویژه برای برنامههایی مهم است که نیاز به دقت و سازگاری بالا دارند، مانند برنامههای مالی یا علمی.
در پاسخ به این سوال، باید گفت که بله، زبان Go در واقع همان استاندارد IEEE-754 را برای محاسبات Floating Point پیادهسازی میکند. این بدان معناست که عملیاتهایی مانند جمع، تفریق، ضرب و تقسیم اعداد اعشاری در زبان Go رفتار بسیار نزدیک به همان چیزی را دارند که در سایر زبانها بر اساس این استاندارد انتظار میرود. توجه داشته باشید، هرچند این استاندارد به معنای امکان مقایسه سازگاری قطعی نیست، اما در کلیت، گویای سازگاری قابل توجه است.
با این حال، مهم است بدانید که پیادهسازی استاندارد IEEE-754 در زبان Go، به تنهایی تضمینکننده پایداری و درستی نتایج در تمامی موارد نیست. تفاوتهای معماری سختافزار و همچنین نحوه پردازش داخلی میتواند در بعضی موارد منجر به اختلافاتی جزئی در نتایج محاسبات فلوت تغییر کند. بنابراین، هرچند که Go از این استاندارد بهرهمند است، اما برای برنامههایی که نیازمند دقت بسیار زیاد و حملپذیری نتایج هستند، باید با دقت بیشتری مورد ارزیابی و تست قرار گیرند.
در نهایت، باید گفت که اگر به دنبال یک زبان برنامهنویسی هستید که عملیات اعشاری را مطابق با استاندارد معتبر IEEE-754 پیادهسازی کند، Go یکی از گزینههای مناسب است. با این حال، به خاطر داشته باشید که رعایت کامل سازگاری و حملپذیری در پروژههای حساس نیازمند رعایت نکات و ملاحظات بیشتری است تا نتایج نهایی کاملاً قابل اعتماد و قابل انتقال باشد.
#برنامهنویسی #عمليات_اعشاری #IEEE754 #Go
🟣لینک مقاله:
https://golangweekly.com/link/179083/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Does Golang Actually Implement the IEEE-754 Floating Point Spec? The Answer Might Surprise You!
Does IEEE-754 compliance guarentee consistency across platforms?
🐳1🏆1
🔵 عنوان مقاله
▶️ this 4-hour interview
🟢 خلاصه مقاله:
در این مصاحبه طولانی چهار ساعته، به طور جامع و کامل به بررسی تمام مسیر حرفهایکن میپردازند. این گفتوگو فرصتی استثنایی است برای شناخت بهتر از زندگی، چالشها و دستاوردهای او، که به تفصیل در مورد تجربیات مختلف و نکات کلیدی موفقیت صحبت میشود. شرکت در چنین مصاحبهای نه تنها برای طرفداران و هواداران او جذاب است، بلکه برای هر کسی که به دنبال درک عمیقتری از مسیر حرفهای در صنعت مورد علاقهاش است، بسیار ارزشمند است.
این محتوای اختصاصی، به شکلی جذاب و معتبر روایت میشود و نشان میدهد چگونه او توانسته است بر موانع غلبه کند و در حوزه خود به جایگاهی برجسته برسد. در طول این چهار ساعت، جزئیات مهمی درباره چالشها، موفقیتها و درسهایی که از تجربیاتش گرفته، بیان میشود تا الهامبخش و راهنمایی برای دیگران باشد.
در نهایت، این مصاحبه فرصتی منحصر به فرد است برای کسانی که میخواهند درک عمیقتری از مسیر پیشرفت و توسعه حرفهای فردی به دست آورند و از تجربیات شخصی یک فرد موفق بهرهمند شوند.
#مصاحبه #موفقیت #الهامبخش #تجربه
🟣لینک مقاله:
https://golangweekly.com/link/179077/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
▶️ this 4-hour interview
🟢 خلاصه مقاله:
در این مصاحبه طولانی چهار ساعته، به طور جامع و کامل به بررسی تمام مسیر حرفهایکن میپردازند. این گفتوگو فرصتی استثنایی است برای شناخت بهتر از زندگی، چالشها و دستاوردهای او، که به تفصیل در مورد تجربیات مختلف و نکات کلیدی موفقیت صحبت میشود. شرکت در چنین مصاحبهای نه تنها برای طرفداران و هواداران او جذاب است، بلکه برای هر کسی که به دنبال درک عمیقتری از مسیر حرفهای در صنعت مورد علاقهاش است، بسیار ارزشمند است.
این محتوای اختصاصی، به شکلی جذاب و معتبر روایت میشود و نشان میدهد چگونه او توانسته است بر موانع غلبه کند و در حوزه خود به جایگاهی برجسته برسد. در طول این چهار ساعت، جزئیات مهمی درباره چالشها، موفقیتها و درسهایی که از تجربیاتش گرفته، بیان میشود تا الهامبخش و راهنمایی برای دیگران باشد.
در نهایت، این مصاحبه فرصتی منحصر به فرد است برای کسانی که میخواهند درک عمیقتری از مسیر پیشرفت و توسعه حرفهای فردی به دست آورند و از تجربیات شخصی یک فرد موفق بهرهمند شوند.
#مصاحبه #موفقیت #الهامبخش #تجربه
🟣لینک مقاله:
https://golangweekly.com/link/179077/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
Kenneth Lane Thompson, 1983 ACM Turing Award Recipient
This is an oral history interview with Kenneth L. Thompson created in partnership by the Association for Computing Machinery and the Computer History Museum, in connection with his A.M. Turing Award in 1983. See https://amturing.acm.org/award_winners/la…
🔵 عنوان مقاله
What is sync.Pool and How to Use It Properly
🟢 خلاصه مقاله:
در برنامهنویسی، بسیاری از عملیاتها نیازمند ساخت و آزادسازی مکرر اشیاء موقت هستند، که این روند میتواند منجر به کاهش کارایی و افزایش فشار بر سیستم جمعآوری زباله (GC) شود. حال، ابزار `sync.Pool` در زبان برنامهنویسی Go به توسعهدهندگان کمک میکند تا این اشیاء موقت را به صورت بهینه مدیریت و مجدداً استفاده کنند، به طوری که هزینههای ساخت و آزادسازی موارد تکراری کاهش یابد و عملکرد برنامه بهتر شود.
این قابلیت زمانی بسیار مفید است که اشیاء از نظر زمانی محدود به طول عمر تابع یا بخش خاصی از برنامه باشند و نیاز نباشد که در سطوح بلندمدت نگهداری شوند. با استفاده از `sync.Pool` میتوان چندین بار از یک شیء مشابه در زمانهای مختلف بهره برد، بدون اینکه به صورت مستقیم و مکرر آنها را در حافظه ایجاد و حذف کنیم. این کار سبب کاهش عملیات مربوط به جمعآوری زباله میشود و در نتیجه، برنامه سریعتر و بهینهتر اجرا میشود.
در نهایت، بهرهگیری صحیح از `sync.Pool` به توسعهدهندگان فرصت میدهد تا منابع سیستم خود را بهتر مدیریت کنند و کارایی برنامههای خود را بهبود بخشند. مهم است که هنگام استفاده از این ابزار، به نکات مربوط به عمر مفید اشیاء و نحوه اشتراکگذاری آنها در میان بخشهای مختلف توجه داشته باشند تا بهرهمندی کامل از مزایای آن حاصل شود.
#برنامهنویسی_گو #بهینهسازی #مدیریت_حافظه #کارایی
🟣لینک مقاله:
https://golangweekly.com/link/179107/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
What is sync.Pool and How to Use It Properly
🟢 خلاصه مقاله:
در برنامهنویسی، بسیاری از عملیاتها نیازمند ساخت و آزادسازی مکرر اشیاء موقت هستند، که این روند میتواند منجر به کاهش کارایی و افزایش فشار بر سیستم جمعآوری زباله (GC) شود. حال، ابزار `sync.Pool` در زبان برنامهنویسی Go به توسعهدهندگان کمک میکند تا این اشیاء موقت را به صورت بهینه مدیریت و مجدداً استفاده کنند، به طوری که هزینههای ساخت و آزادسازی موارد تکراری کاهش یابد و عملکرد برنامه بهتر شود.
این قابلیت زمانی بسیار مفید است که اشیاء از نظر زمانی محدود به طول عمر تابع یا بخش خاصی از برنامه باشند و نیاز نباشد که در سطوح بلندمدت نگهداری شوند. با استفاده از `sync.Pool` میتوان چندین بار از یک شیء مشابه در زمانهای مختلف بهره برد، بدون اینکه به صورت مستقیم و مکرر آنها را در حافظه ایجاد و حذف کنیم. این کار سبب کاهش عملیات مربوط به جمعآوری زباله میشود و در نتیجه، برنامه سریعتر و بهینهتر اجرا میشود.
در نهایت، بهرهگیری صحیح از `sync.Pool` به توسعهدهندگان فرصت میدهد تا منابع سیستم خود را بهتر مدیریت کنند و کارایی برنامههای خود را بهبود بخشند. مهم است که هنگام استفاده از این ابزار، به نکات مربوط به عمر مفید اشیاء و نحوه اشتراکگذاری آنها در میان بخشهای مختلف توجه داشته باشند تا بهرهمندی کامل از مزایای آن حاصل شود.
#برنامهنویسی_گو #بهینهسازی #مدیریت_حافظه #کارایی
🟣لینک مقاله:
https://golangweekly.com/link/179107/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
sync.Pool in Go Explained & Avoid The Heap Allocation Mistake
We'll not only talk about what sync.Pool is, but also look into how empty interfaces and slices behave under the hood, so we can understand how to use sync.Pool correctly in real situations.
Keep in mind this video is for learning purposes, so NOT every…
Keep in mind this video is for learning purposes, so NOT every…
🔵 عنوان مقاله
Using eBPF to Load-Balance Traffic Across UDP Sockets with Go
🟢 خلاصه مقاله:
در دنیای شبکههای کامپیوتری، مدیریت ترافیک و توزیع آن به شکلی کارآمد از اهمیت بالایی برخوردار است. یکی از ابزارهای قدرتمند در این حوزه، eBPF (Extended Berkeley Packet Filter) است که امکان اجرای برنامههای مبتنی بر هسته سیستمعامل را فراهم میکند. در این مقاله، به نحوه استفاده از eBPF برای توزیع ترافیک بین سوکتهای UDP در زبان برنامهنویسی Go میپردازیم. این روش جدید، مزیتی است که توسعهدهندگان را قادر میسازد تا بار ترافیک را به صورت هوشمندانه و بهینه مدیریت کرده و عملکرد سیستمهای شبکه خود را提升 دهند.
در ادامه، نحوه پیادهسازی این فناوری را به صورت گامبهگام بررسی میکنیم، از توسعه برنامههای eBPF گرفته تا ادغام آن با برنامههای نوشته شده در زبان Go. استفاده از این روش نه تنها باعث بهبود کارایی شبکه میشود، بلکه ساختار برنامههای شبکه را نیز سادهتر و پویاتر میکند. این راهکار را میتوان برای برنامههای مختلف در زیرساختهای متفاوت به کار برد و مزایای آن را در مدیریت ترافیک و افزایش مقیاسپذیری مشاهده کرد.
در خاتمه، آموزشهای کاربردی و نمونه کدهای عملی در اختیار توسعهدهندگان قرار میگیرد تا بتوانند از این فناوری در پروژههای خود بهرهمند شوند. با مطالعه این مطالب، قادر خواهید بود ترافیک UDP را به صورت هوشمندانه و مؤثر توزیع کنید و سطح عملکرد شبکههای خود را به شکل قابل توجهی ارتقاء دهید.
#شبکه #eBPF #UDP #برنامه_نویسی
🟣لینک مقاله:
https://golangweekly.com/link/179084/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Using eBPF to Load-Balance Traffic Across UDP Sockets with Go
🟢 خلاصه مقاله:
در دنیای شبکههای کامپیوتری، مدیریت ترافیک و توزیع آن به شکلی کارآمد از اهمیت بالایی برخوردار است. یکی از ابزارهای قدرتمند در این حوزه، eBPF (Extended Berkeley Packet Filter) است که امکان اجرای برنامههای مبتنی بر هسته سیستمعامل را فراهم میکند. در این مقاله، به نحوه استفاده از eBPF برای توزیع ترافیک بین سوکتهای UDP در زبان برنامهنویسی Go میپردازیم. این روش جدید، مزیتی است که توسعهدهندگان را قادر میسازد تا بار ترافیک را به صورت هوشمندانه و بهینه مدیریت کرده و عملکرد سیستمهای شبکه خود را提升 دهند.
در ادامه، نحوه پیادهسازی این فناوری را به صورت گامبهگام بررسی میکنیم، از توسعه برنامههای eBPF گرفته تا ادغام آن با برنامههای نوشته شده در زبان Go. استفاده از این روش نه تنها باعث بهبود کارایی شبکه میشود، بلکه ساختار برنامههای شبکه را نیز سادهتر و پویاتر میکند. این راهکار را میتوان برای برنامههای مختلف در زیرساختهای متفاوت به کار برد و مزایای آن را در مدیریت ترافیک و افزایش مقیاسپذیری مشاهده کرد.
در خاتمه، آموزشهای کاربردی و نمونه کدهای عملی در اختیار توسعهدهندگان قرار میگیرد تا بتوانند از این فناوری در پروژههای خود بهرهمند شوند. با مطالعه این مطالب، قادر خواهید بود ترافیک UDP را به صورت هوشمندانه و مؤثر توزیع کنید و سطح عملکرد شبکههای خود را به شکل قابل توجهی ارتقاء دهید.
#شبکه #eBPF #UDP #برنامه_نویسی
🟣لینک مقاله:
https://golangweekly.com/link/179084/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
vincent.bernat.ch
Using eBPF to load-balance traffic across UDP sockets with Go
Learn how to implement eBPF-based load balancing for UDP sockets in Go. The article also covers graceful restarts.
🔵 عنوان مقاله
working on porting Charm's popular Go TUI libraries to Ruby
🟢 خلاصه مقاله:
در حال حاضر، تیم توسعه در حال انتقال و پورت کردن کتابخانههای محبوب رابط کاربری متنی (TUI) زبان برنامهنویسی Go، که توسط Charm ساخته شده است، به زبان برنامهنویسی Ruby هستند. این کار شامل بازنویسی و سازگار کردن این ابزارها برای محیط Ruby است تا توسعهدهندگان بتوانند از امکانات قدرتمند آنان در پروژههای Ruby خود بهرهمند شوند.
در واقع، برخی از این کتابخانهها در اصل، پیوندها یا رابطهایی برای استفاده از کتابخانههای اصلی Go به شمار میروند. این یعنی، عدهای از توسعهدهندگان با استفاده از این پیوندها و لایبرریهای واسط، میتوانند در زبان Ruby، همان امکانات و قابلیتهایی که در نسخههای اصلی Go وجود دارد، دسترسی پیدا کنند و آنها را در پروژههای متنوع خود به کار بگیرند. این روند، باعث میشود که همکاری و انتقال تکنولوژی بین زبانهای برنامهنویسی مختلف تسهیل شود و امکانات بیشتری در اختیار توسعهدهندگان قرار گیرد.
در نتیجه، این پروژه نشاندهندهی تلاش مداوم برای گسترش و بهبود ابزارهای متنباز است که قصد دارد با ارائه نسخههای سازگارتر، به توسعهدهندگان امکانات بیشتری بدهد و بهرهوری را افزایش دهد. بهطور خلاصه، این انتقال، پلی است برای بهرهگیری بهتر از قدرت و امکانات لایبرریهای TUI در فضای زبان روبی، که میتواند در بهبود و تسریع فرایندهای توسعه نقش مؤثری ایفا کند.
#برنامه_نویسی #کتابخانه_متن_باز #توسعه_نرمافزار #ruby
🟣لینک مقاله:
https://golangweekly.com/link/179078/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
working on porting Charm's popular Go TUI libraries to Ruby
🟢 خلاصه مقاله:
در حال حاضر، تیم توسعه در حال انتقال و پورت کردن کتابخانههای محبوب رابط کاربری متنی (TUI) زبان برنامهنویسی Go، که توسط Charm ساخته شده است، به زبان برنامهنویسی Ruby هستند. این کار شامل بازنویسی و سازگار کردن این ابزارها برای محیط Ruby است تا توسعهدهندگان بتوانند از امکانات قدرتمند آنان در پروژههای Ruby خود بهرهمند شوند.
در واقع، برخی از این کتابخانهها در اصل، پیوندها یا رابطهایی برای استفاده از کتابخانههای اصلی Go به شمار میروند. این یعنی، عدهای از توسعهدهندگان با استفاده از این پیوندها و لایبرریهای واسط، میتوانند در زبان Ruby، همان امکانات و قابلیتهایی که در نسخههای اصلی Go وجود دارد، دسترسی پیدا کنند و آنها را در پروژههای متنوع خود به کار بگیرند. این روند، باعث میشود که همکاری و انتقال تکنولوژی بین زبانهای برنامهنویسی مختلف تسهیل شود و امکانات بیشتری در اختیار توسعهدهندگان قرار گیرد.
در نتیجه، این پروژه نشاندهندهی تلاش مداوم برای گسترش و بهبود ابزارهای متنباز است که قصد دارد با ارائه نسخههای سازگارتر، به توسعهدهندگان امکانات بیشتری بدهد و بهرهوری را افزایش دهد. بهطور خلاصه، این انتقال، پلی است برای بهرهگیری بهتر از قدرت و امکانات لایبرریهای TUI در فضای زبان روبی، که میتواند در بهبود و تسریع فرایندهای توسعه نقش مؤثری ایفا کند.
#برنامه_نویسی #کتابخانه_متن_باز #توسعه_نرمافزار #ruby
🟣لینک مقاله:
https://golangweekly.com/link/179078/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Marco Roth
Glamorous Christmas: Bringing Charm to Ruby
marcoroth.dev - website and blog
🔵 عنوان مقاله
Advancing Go Garbage Collection with Green Tea
🟢 خلاصه مقاله:
در توسعه سیستمهای برنامهنویسی مدرن، مدیریت حافظه یکی از چالشهای اصلی است که کیفیت و کارایی برنامهها را تحت تأثیر قرار میدهد. یکی از زبانهای محبوب و کارآمد در این زمینه، زبان Go است که به خاطر سادگی، کارآمدی و قابلیت اطمینانش شناخته میشود. یکی از قابلیتهای مهم این زبان، سیستم جمعآوری زباله یا همان «garbage collection» است که وظیفه حذف خودکار اشیاء غیرقابل استفاده را بر عهده دارد تا توسعهدهندگان از نگرانیهای مربوط به مدیریت دستی حافظه راحت شوند.
در جدیدترین نسخههای این زبان، تیم توسعهی Go تغییراتی در سیستم جمعآوری زباله اعمال کرده است که با نام «چای سبز» یا همان «green tea» شناخته میشود. مایکل، از اعضای تیم توسعهی Go، بهطور ماهرانهای توضیح میدهد که سیستم جمعآوری زباله در این زبان چطور کار میکند و چگونه این رویکرد جدید، آن را بهبود میبخشد. این رویکرد قرار است به صورت پیشفرض در نسخهی آیندهی Go 1.26 فعال شود و در حال حاضر نیز در نسخهی آزمایشی Go 1. به عنوان گزینهای قابل فعالسازی در دسترس است. هدف اصلی این تغییر، بهبود کارایی و کاهش تأثیر منفی جمعآوری زباله بر عملکرد برنامهها است.
با معرفی این رویکرد «چای سبز»، تیم توسعهی Go قصد دارد فرآیند جمعآوری زباله را به گونهای بهبود بخشد که در عین حال مصرف منابع را به حداقل برساند و تأخیر در اجرای برنامهها را کاهش دهد. این تغییرات نه تنها باعث افزایش سرعت اجرای برنامههای نوشته شده در این زبان میشود، بلکه باعث میشود توسعهدهندگان راحتتر بتوانند برنامههای با کارایی بالا و مصرف منابع بهینه بسازند. با توجه به این پیشرفتها، آیندهی زبان Go در زمینه توسعهی نرمافزارهای مقاوم و سریع بسیار نویدبخشتر از قبل است.
#گروه_برنامهنویسی #جمعآوری_زباله #توسعه_نرمافزار #گو
🟣لینک مقاله:
https://golangweekly.com/link/179105/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Advancing Go Garbage Collection with Green Tea
🟢 خلاصه مقاله:
در توسعه سیستمهای برنامهنویسی مدرن، مدیریت حافظه یکی از چالشهای اصلی است که کیفیت و کارایی برنامهها را تحت تأثیر قرار میدهد. یکی از زبانهای محبوب و کارآمد در این زمینه، زبان Go است که به خاطر سادگی، کارآمدی و قابلیت اطمینانش شناخته میشود. یکی از قابلیتهای مهم این زبان، سیستم جمعآوری زباله یا همان «garbage collection» است که وظیفه حذف خودکار اشیاء غیرقابل استفاده را بر عهده دارد تا توسعهدهندگان از نگرانیهای مربوط به مدیریت دستی حافظه راحت شوند.
در جدیدترین نسخههای این زبان، تیم توسعهی Go تغییراتی در سیستم جمعآوری زباله اعمال کرده است که با نام «چای سبز» یا همان «green tea» شناخته میشود. مایکل، از اعضای تیم توسعهی Go، بهطور ماهرانهای توضیح میدهد که سیستم جمعآوری زباله در این زبان چطور کار میکند و چگونه این رویکرد جدید، آن را بهبود میبخشد. این رویکرد قرار است به صورت پیشفرض در نسخهی آیندهی Go 1.26 فعال شود و در حال حاضر نیز در نسخهی آزمایشی Go 1. به عنوان گزینهای قابل فعالسازی در دسترس است. هدف اصلی این تغییر، بهبود کارایی و کاهش تأثیر منفی جمعآوری زباله بر عملکرد برنامهها است.
با معرفی این رویکرد «چای سبز»، تیم توسعهی Go قصد دارد فرآیند جمعآوری زباله را به گونهای بهبود بخشد که در عین حال مصرف منابع را به حداقل برساند و تأخیر در اجرای برنامهها را کاهش دهد. این تغییرات نه تنها باعث افزایش سرعت اجرای برنامههای نوشته شده در این زبان میشود، بلکه باعث میشود توسعهدهندگان راحتتر بتوانند برنامههای با کارایی بالا و مصرف منابع بهینه بسازند. با توجه به این پیشرفتها، آیندهی زبان Go در زمینه توسعهی نرمافزارهای مقاوم و سریع بسیار نویدبخشتر از قبل است.
#گروه_برنامهنویسی #جمعآوری_زباله #توسعه_نرمافزار #گو
🟣لینک مقاله:
https://golangweekly.com/link/179105/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
GopherCon 2025: Advancing Go Garbage Collection with Green Tea - Michael Knyszek
Memory latency and bandwidth are becoming increasingly constrained, and these trends are at odds with most of today's garbage collection algorithms, including Go's. In this talk, Michael will dive deep into Green Tea, a new parallel mark algorithm to accelerate…
🔵 عنوان مقاله
▶️ A 5-minute clip of Ken Thompson
🟢 خلاصه مقاله:
در این ویدیوی پنج دقیقهای، کن تامپسون درباره نقش خود در خلق زبان برنامهنویسی Go صحبت میکند. این کلیپ بخشی از مصاحبهای چهار ساعته است که تمامی مسیر حرفهای کن را در بر میگیرد و او در آن از تجربهها و مشارکتهایش در تاریخچه توسعه فناوریهای مهم صحبت میکند. او با جزئیات به چالشها و دستاوردهای این پروژه اشاره کرده و نکات جالبی درباره فرآیند ایجاد این زبان برنامهنویسی ارائه میدهد که برای علاقمندان به توسعه نرمافزار بسیار آموزنده است.
این مصاحبه فرصتی بینظیر است تا نگاهی عمیقتر به دنیای فناوری و نقش افراد تاثیرگذار در توسعه این حوزه بیندازیم. کن تامپسون با بیان جزئیات، فرآیند فکری و فنی خود را به اشتراک گذاشته و نشان میدهد که چگونه پروژههایی مانند زبان "گو" میتوانند تحولات بزرگی در صنعت نرمافزار ایجاد کنند. این صحبتها برای هر توسعهدهنده و علاقهمند به فناوری، منبع الهام و آموزه است.
#برنامه_نویسی #کن_تامپسون #زبان_گو #تکنولوژی
🟣لینک مقاله:
https://golangweekly.com/link/179076/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
▶️ A 5-minute clip of Ken Thompson
🟢 خلاصه مقاله:
در این ویدیوی پنج دقیقهای، کن تامپسون درباره نقش خود در خلق زبان برنامهنویسی Go صحبت میکند. این کلیپ بخشی از مصاحبهای چهار ساعته است که تمامی مسیر حرفهای کن را در بر میگیرد و او در آن از تجربهها و مشارکتهایش در تاریخچه توسعه فناوریهای مهم صحبت میکند. او با جزئیات به چالشها و دستاوردهای این پروژه اشاره کرده و نکات جالبی درباره فرآیند ایجاد این زبان برنامهنویسی ارائه میدهد که برای علاقمندان به توسعه نرمافزار بسیار آموزنده است.
این مصاحبه فرصتی بینظیر است تا نگاهی عمیقتر به دنیای فناوری و نقش افراد تاثیرگذار در توسعه این حوزه بیندازیم. کن تامپسون با بیان جزئیات، فرآیند فکری و فنی خود را به اشتراک گذاشته و نشان میدهد که چگونه پروژههایی مانند زبان "گو" میتوانند تحولات بزرگی در صنعت نرمافزار ایجاد کنند. این صحبتها برای هر توسعهدهنده و علاقهمند به فناوری، منبع الهام و آموزه است.
#برنامه_نویسی #کن_تامپسون #زبان_گو #تکنولوژی
🟣لینک مقاله:
https://golangweekly.com/link/179076/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
Thompson tells how he developed the Go language at Google.
Kenneth Lane Thompson, winner of the Association for Computing Machinery's A.M. Turing Award, discusses development of the Go programming language at Google in the early 2000s, its relationship the company’s cloud computing platform, and its eventual success…
🔵 عنوان مقاله
Developing a Terminal App in Go with Bubble Tea
🟢 خلاصه مقاله:
با شروع توسعه یک برنامه ترمینالی در زبان Go، منطقهای جدید از برنامهنویسی تعاملی و قدرتمند را کاوش میکنیم. در این مسیر، از ابزارهای پیشرفتهای مانند Bubble Tea و Lip Gloss شرکت Charm بهره میگیریم که به ما کمک میکنند تا رابط کاربری جذاب، ساختار منسجم و استایلهای جذاب برای برنامه خود ایجاد کنیم.
در این دوره، یک فیلم آموزشی ۵۰ دقیقهای به صورت کامل مراحل ساخت یک ابزار یادداشتبرداری خط فرمان عملی را توضیح میدهد. این ابزار، نمونهای عالی از نحوه استفاده موثر از زبان Go و فریمورکهای قدرتمند آن برای توسعه برنامههای تعاملی و کاربرپسند است. در حین آموزش، به مباحث مرتبط با طراحی رابط کاربری، مدیریت وضعیت برنامه و ساختاردهی کد پرداخته میشود تا توسعهدهندگان بتوانند در پروژههای خود بیشترین بهرهبرداری را از این فناوریها ببرند.
این دوره به صورت گام به گام مراحل ایجاد یک برنامه کاربردی در قالب خط فرمان را شرح میدهد و نشان میدهد که چگونه میتوان با استفاده از ابزارهای مدرن، برنامههایی بسازیم که هم کاربری ساده و جذاب دارند و هم امکانات پیشرفته و کارآمد را فراهم میکنند. در نتیجه، این آموزش برای توسعهدهندگان علاقمند به کار در محیطهای ترمینال، فرصت ارزشمندی برای یادگیری و توسعه مهارتهای جدید است.
#برنامه_نویسی #مرورگر_ترمینال #طراحی_رابط_کاربری #Go
🟣لینک مقاله:
https://golangweekly.com/link/179099/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Developing a Terminal App in Go with Bubble Tea
🟢 خلاصه مقاله:
با شروع توسعه یک برنامه ترمینالی در زبان Go، منطقهای جدید از برنامهنویسی تعاملی و قدرتمند را کاوش میکنیم. در این مسیر، از ابزارهای پیشرفتهای مانند Bubble Tea و Lip Gloss شرکت Charm بهره میگیریم که به ما کمک میکنند تا رابط کاربری جذاب، ساختار منسجم و استایلهای جذاب برای برنامه خود ایجاد کنیم.
در این دوره، یک فیلم آموزشی ۵۰ دقیقهای به صورت کامل مراحل ساخت یک ابزار یادداشتبرداری خط فرمان عملی را توضیح میدهد. این ابزار، نمونهای عالی از نحوه استفاده موثر از زبان Go و فریمورکهای قدرتمند آن برای توسعه برنامههای تعاملی و کاربرپسند است. در حین آموزش، به مباحث مرتبط با طراحی رابط کاربری، مدیریت وضعیت برنامه و ساختاردهی کد پرداخته میشود تا توسعهدهندگان بتوانند در پروژههای خود بیشترین بهرهبرداری را از این فناوریها ببرند.
این دوره به صورت گام به گام مراحل ایجاد یک برنامه کاربردی در قالب خط فرمان را شرح میدهد و نشان میدهد که چگونه میتوان با استفاده از ابزارهای مدرن، برنامههایی بسازیم که هم کاربری ساده و جذاب دارند و هم امکانات پیشرفته و کارآمد را فراهم میکنند. در نتیجه، این آموزش برای توسعهدهندگان علاقمند به کار در محیطهای ترمینال، فرصت ارزشمندی برای یادگیری و توسعه مهارتهای جدید است.
#برنامه_نویسی #مرورگر_ترمینال #طراحی_رابط_کاربری #Go
🟣لینک مقاله:
https://golangweekly.com/link/179099/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
Developing a Terminal App in Go with Bubble Tea
Developing CLIs and TUIs in Go is fun, and there are really good packages out there to make it so. And when it comes to terminal apps, there is an amazing library called Bubble Tea to build beautiful interactive TUIs.
In this video we build a terminal-based…
In this video we build a terminal-based…
🔵 عنوان مقاله
Reverse Engineering Doesn't Have to Be Hard
🟢 خلاصه مقاله:
بازسازی معکوس یک فرایند پیچیده و ترسناک نباید باشد. در این مقاله، نگاهی اولیه به فرآیند مهندسی معکوس یک نمونه از بدافزارهای ساخته شده با زبان برنامهنویسی Go میاندازیم. این مطلب بر توسعهدهندگان زبان Go تمرکز ندارد و در حقیقت، هیچ برنامهنویسی با زبان Go در آن صورت نمیگیرد. اما اگر تا کنون تجربهای در حوزه مهندسی معکوس نداشتهاید، با استفاده از این مقاله، برخی تکنیکهای پایهای این حوزه را خواهید آموخت.
مهندسی معکوس، یک مهارت حیاتی در تحلیل بدافزارها و شناسایی آسیبپذیریهای نرمافزاری است که میتواند به محققان و متخصصان امنیت کمک کند تا رفتار مخرب فایلهای مشکوک را بهتر درک کنند و راهکارهای مقابله با تهدیدات را توسعه دهند. در این مقاله به صورت ساده و قابل فهم، نکاتی کلیدی را مورد بررسی قرار میدهیم که میتواند نقطه شروع خوبی برای افراد تازهکار در این حوزه باشد.
با فهم بهتر این تکنیکها، دانش شما در زمینه امنیت سایبری تقویت میشود و فرصتهای جدیدی برای تحلیلهای امنیتی و توسعه ابزارهای پیشرفته پیدا خواهید کرد.
#تحلیل_امنیتی #مهندسی_معکوس #امنیت_سایبری #بدافزار
🟣لینک مقاله:
https://golangweekly.com/link/179104/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Reverse Engineering Doesn't Have to Be Hard
🟢 خلاصه مقاله:
بازسازی معکوس یک فرایند پیچیده و ترسناک نباید باشد. در این مقاله، نگاهی اولیه به فرآیند مهندسی معکوس یک نمونه از بدافزارهای ساخته شده با زبان برنامهنویسی Go میاندازیم. این مطلب بر توسعهدهندگان زبان Go تمرکز ندارد و در حقیقت، هیچ برنامهنویسی با زبان Go در آن صورت نمیگیرد. اما اگر تا کنون تجربهای در حوزه مهندسی معکوس نداشتهاید، با استفاده از این مقاله، برخی تکنیکهای پایهای این حوزه را خواهید آموخت.
مهندسی معکوس، یک مهارت حیاتی در تحلیل بدافزارها و شناسایی آسیبپذیریهای نرمافزاری است که میتواند به محققان و متخصصان امنیت کمک کند تا رفتار مخرب فایلهای مشکوک را بهتر درک کنند و راهکارهای مقابله با تهدیدات را توسعه دهند. در این مقاله به صورت ساده و قابل فهم، نکاتی کلیدی را مورد بررسی قرار میدهیم که میتواند نقطه شروع خوبی برای افراد تازهکار در این حوزه باشد.
با فهم بهتر این تکنیکها، دانش شما در زمینه امنیت سایبری تقویت میشود و فرصتهای جدیدی برای تحلیلهای امنیتی و توسعه ابزارهای پیشرفته پیدا خواهید کرد.
#تحلیل_امنیتی #مهندسی_معکوس #امنیت_سایبری #بدافزار
🟣لینک مقاله:
https://golangweekly.com/link/179104/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
reverse engineering doesn't have to be hard
https://jh.live/hex-rays || Disassemble, decompile and debug with IDA Pro! Use promo code HAMMOND50 for 50% off any IDA Pro product (license discount is only applicable to individuals for any product, not corporations https://hex-rays.com/pricing) and code…
🔵 عنوان مقاله
The Go 1.26 Interactive Tour
🟢 خلاصه مقاله:
نسخه جدید زبان برنامهنویسی گو، یعنی نسخه ۱.۲۶، در آستانه انتشار نهایی قرار دارد و تنها حدود یک ماه دیگر، این نسخه در اختیار توسعهدهندگان قرار خواهد گرفت. تیم توسعهدهنده پس از مدتها کار، چشمانتظار ارائه ویژگیها و بهبودهای قابل توجهی است که موجب ارتقاء سطح و کارایی زبان گو خواهند شد.
در این راستا، آنتون بار دیگر با مجموعهای جامع و کامل از جدیدترین امکانات و تغییرات این نسخه، بهروزرسانیهای لازم را برای علاقهمندان و توسعهدهندگان ارائه میدهد. او در این گزارش، نمونههای زنده و قابل اجرا را بر اساس پلتفورم Codapi به نمایش میگذارد، تا کاربران بتوانند به راحتی عملکرد و امکانات جدید را تجربه کنند و درک بهتری از تغییرات داشته باشند.
این رویداد، فرصت خوبی است برای آشنایی با قابلیتهای جدید، نکات بهبود یافته و نحوه بهرهگیری بهتر از نسخه ۱.۲۶، که میتواند تاثیر قابل توجهی در توسعه برنامههای حرفهای و پروژههای بزرگ داشته باشد. بهکارگیری این امکانات نوین، به توسعهدهندگان کمک میکند تا برنامههایی سریعتر، امنتر و مقیاسپذیرتر بنویسند و در نتیجه، کیفیت نهایی محصولات خود را بالا ببرند.
در مجموع، این جلسه معرفی، نقطهی عطفی برای جامعه برنامهنویسان زبان گو محسوب میشود و فرصتی است تا با درک بهتر از تغییرات، آمادهی بهرهبرداری از نسخه نهایی باشیم. بیصبرانه منتظر انتشار رسمی این نسخه و شنیدن بازخوردهای فعالان حوزه توسعه هستیم.
#گو #برنامه_نویسی #نسخه_جدید #توسعه_نرمافزار
🟣لینک مقاله:
https://golangweekly.com/link/179072/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The Go 1.26 Interactive Tour
🟢 خلاصه مقاله:
نسخه جدید زبان برنامهنویسی گو، یعنی نسخه ۱.۲۶، در آستانه انتشار نهایی قرار دارد و تنها حدود یک ماه دیگر، این نسخه در اختیار توسعهدهندگان قرار خواهد گرفت. تیم توسعهدهنده پس از مدتها کار، چشمانتظار ارائه ویژگیها و بهبودهای قابل توجهی است که موجب ارتقاء سطح و کارایی زبان گو خواهند شد.
در این راستا، آنتون بار دیگر با مجموعهای جامع و کامل از جدیدترین امکانات و تغییرات این نسخه، بهروزرسانیهای لازم را برای علاقهمندان و توسعهدهندگان ارائه میدهد. او در این گزارش، نمونههای زنده و قابل اجرا را بر اساس پلتفورم Codapi به نمایش میگذارد، تا کاربران بتوانند به راحتی عملکرد و امکانات جدید را تجربه کنند و درک بهتری از تغییرات داشته باشند.
این رویداد، فرصت خوبی است برای آشنایی با قابلیتهای جدید، نکات بهبود یافته و نحوه بهرهگیری بهتر از نسخه ۱.۲۶، که میتواند تاثیر قابل توجهی در توسعه برنامههای حرفهای و پروژههای بزرگ داشته باشد. بهکارگیری این امکانات نوین، به توسعهدهندگان کمک میکند تا برنامههایی سریعتر، امنتر و مقیاسپذیرتر بنویسند و در نتیجه، کیفیت نهایی محصولات خود را بالا ببرند.
در مجموع، این جلسه معرفی، نقطهی عطفی برای جامعه برنامهنویسان زبان گو محسوب میشود و فرصتی است تا با درک بهتر از تغییرات، آمادهی بهرهبرداری از نسخه نهایی باشیم. بیصبرانه منتظر انتشار رسمی این نسخه و شنیدن بازخوردهای فعالان حوزه توسعه هستیم.
#گو #برنامه_نویسی #نسخه_جدید #توسعه_نرمافزار
🟣لینک مقاله:
https://golangweekly.com/link/179072/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
antonz.org
Go 1.26 interactive tour
New with expressions, type-safe error checking, and faster everything.
🔵 عنوان مقاله
The Creator of Ghostty on Zig Over Go
🟢 خلاصه مقاله:
سازنده Ghostty در مورد انتخاب زبان برنامهنویسی Zig در مقابل Go توضیح میدهد. در ابتدا، این ویدئو جنجالی تنها به عنوان یک بخش کوتاه در مجموعه مطالب قرار گرفته بود، اما به سرعت مورد توجه زیادی قرار گرفت و محبوبیت بالایی کسب کرد. میشل هاشیموتو، موسس شرکت هاشیکُرپ، در طول چند سال گذشته بر روی توسعه Ghostty کار کرده است؛ یک ترمینال امولاتور سریع و پیشرفته که با زبان برنامهنویسی Zig ساخته شده است. اما سوال اینجاست که چرا او به جای زبان محبوب و معروف Go، سراغ Zig رفته است؟ در ادامه، دلایل و مزایای این انتخاب و تاثیر آن بر عملکرد و نوآوری در توسعه نرمافزار مورد بررسی قرار میگیرد.
برای توسعه یک برنامه ترمینال امولاتور با سرعت بالا و کارایی بهینه، نیاز به زبان برنامهنویسی داشت که امکان کنترل دقیق روی منابع سیستم و بهینهسازی عملکرد را فراهم کند. Zig بهعنوان زبان نوظهور و قدرتمند، قابلیتهای بسیار خوبی برای این نوع پروژهها دارد؛ همچنین، از نظر سهولت در مدیریت حافظه و افزایش سرعت اجرا، مزایای قابل توجهی نسبت به Go ارائه میدهد. هاشیموتو معتقد است که زیگ بهترین ابزار برای پیادهسازی این نوع اپلیکیشنهای کاربرپسند و کارآمد است.
در نتیجه، انتخاب Zig نشان میدهد که توسعهدهندگان حرفهای به دنبال بهرهمندی از قابلیتهای پیشرفتهتری هستند که ممکن است در زبانهای دیگر یافت نشود. Ghostty در حال حاضر نمادی از نوآوری و تکنولوژی بر پایه زبانهای مدرن است و نشان میدهد که آینده برنامهنویسی ترمینالها میتواند به سمت زبانهایی مانند Zig حرکت کند. این پروژه، بیانگر تغییر نگاهها و جدیت توسعهدهندگان در استفاده از ابزارهای جدید و قدرتمند برای ارائه نرمافزارهای بهتر است.
#توسعه_نرمافزار #برنامهنویسی #زیک #ترمینال
🟣لینک مقاله:
https://golangweekly.com/link/179102/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The Creator of Ghostty on Zig Over Go
🟢 خلاصه مقاله:
سازنده Ghostty در مورد انتخاب زبان برنامهنویسی Zig در مقابل Go توضیح میدهد. در ابتدا، این ویدئو جنجالی تنها به عنوان یک بخش کوتاه در مجموعه مطالب قرار گرفته بود، اما به سرعت مورد توجه زیادی قرار گرفت و محبوبیت بالایی کسب کرد. میشل هاشیموتو، موسس شرکت هاشیکُرپ، در طول چند سال گذشته بر روی توسعه Ghostty کار کرده است؛ یک ترمینال امولاتور سریع و پیشرفته که با زبان برنامهنویسی Zig ساخته شده است. اما سوال اینجاست که چرا او به جای زبان محبوب و معروف Go، سراغ Zig رفته است؟ در ادامه، دلایل و مزایای این انتخاب و تاثیر آن بر عملکرد و نوآوری در توسعه نرمافزار مورد بررسی قرار میگیرد.
برای توسعه یک برنامه ترمینال امولاتور با سرعت بالا و کارایی بهینه، نیاز به زبان برنامهنویسی داشت که امکان کنترل دقیق روی منابع سیستم و بهینهسازی عملکرد را فراهم کند. Zig بهعنوان زبان نوظهور و قدرتمند، قابلیتهای بسیار خوبی برای این نوع پروژهها دارد؛ همچنین، از نظر سهولت در مدیریت حافظه و افزایش سرعت اجرا، مزایای قابل توجهی نسبت به Go ارائه میدهد. هاشیموتو معتقد است که زیگ بهترین ابزار برای پیادهسازی این نوع اپلیکیشنهای کاربرپسند و کارآمد است.
در نتیجه، انتخاب Zig نشان میدهد که توسعهدهندگان حرفهای به دنبال بهرهمندی از قابلیتهای پیشرفتهتری هستند که ممکن است در زبانهای دیگر یافت نشود. Ghostty در حال حاضر نمادی از نوآوری و تکنولوژی بر پایه زبانهای مدرن است و نشان میدهد که آینده برنامهنویسی ترمینالها میتواند به سمت زبانهایی مانند Zig حرکت کند. این پروژه، بیانگر تغییر نگاهها و جدیت توسعهدهندگان در استفاده از ابزارهای جدید و قدرتمند برای ارائه نرمافزارهای بهتر است.
#توسعه_نرمافزار #برنامهنویسی #زیک #ترمینال
🟣لینک مقاله:
https://golangweekly.com/link/179102/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
Creator of Ghostty talks Zig over Go
Thanks to the sponsor for today's video - Graphite!
Check out stacked PRs, code review tools and more: http://gt.dev/topshelf
0:00 - Intro
0:52 - CTO to Open Source
7:00 - Graphite Ad
8:10 - Future Of Ghostty
21:30 - How It Started
25:29 - Zig vs Rust
29:53…
Check out stacked PRs, code review tools and more: http://gt.dev/topshelf
0:00 - Intro
0:52 - CTO to Open Source
7:00 - Graphite Ad
8:10 - Future Of Ghostty
21:30 - How It Started
25:29 - Zig vs Rust
29:53…
🔵 عنوان مقاله
The Most Popular Go Dependency Is...
🟢 خلاصه مقاله:
مهمترین وابستگی در زبان برنامهنویسی گول، یقیناً چیزی نیست که خیلی هم غیرمنتظره باشد، اما وقتی بر روی این موضوع تمرکز میکنید، یک انقلاب در ذهن ایجاد میکند. در واقع، شناختن اینکه کدام وابستگی بیشترین تأثیر را دارد، نشان میدهد که چرا این ابزار اهمیت زیادی در جامعه توسعهدهندگان پیدا کرده است. ولی ماجرا فقط به شناخت این وابستگی ختم نمیشود؛ بلکه فرآیندی که تیموت و تیموبت برای کشف این حقیقت طی کردند، بسیار جذاب و آموزنده است. آنها با تحقیقات و آزمونهای مختلف، به چگونگی تأثیر این وابستگی بر پروژهها پی بردند و از این طریق درک عمیقتری نسبت به اکوسیستم گول پیدا کردند. این روند نه تنها به درک بهتر آنها کمک کرد، بلکه نشان داد که چقدر مطالعه و پیروی از روندهای جاری میتواند راهگشا باشد.
به طور خلاصه، وابستگی مورد بحث، چیزی است که به طور طبیعی در کنار دیگر ابزارهای گول نقش مهمی ایفا میکند و درک آن، برای هر توسعهدهندهای ضروری است. این شناخت، نه تنها به بهبود کارایی پروژهها کمک میکند، بلکه امنیت و پایداری سیستمها را نیز تضمین مینماید. در نهایت، ما شاهد این هستیم که چگونه کنجکاوی و تلاش مستمر میتواند راه را برای دستیابی به دانشهای کاربردی و ارزشمند هموار کند و این رویداد، نمونهای است از اهمیت پژوهش و پیروی از روندهای توسعه در دنیای فناوری.
#گول #وابستگی_مهم #توسعه_نرمافزار #تکنولوژی
🟣لینک مقاله:
https://golangweekly.com/link/179075/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The Most Popular Go Dependency Is...
🟢 خلاصه مقاله:
مهمترین وابستگی در زبان برنامهنویسی گول، یقیناً چیزی نیست که خیلی هم غیرمنتظره باشد، اما وقتی بر روی این موضوع تمرکز میکنید، یک انقلاب در ذهن ایجاد میکند. در واقع، شناختن اینکه کدام وابستگی بیشترین تأثیر را دارد، نشان میدهد که چرا این ابزار اهمیت زیادی در جامعه توسعهدهندگان پیدا کرده است. ولی ماجرا فقط به شناخت این وابستگی ختم نمیشود؛ بلکه فرآیندی که تیموت و تیموبت برای کشف این حقیقت طی کردند، بسیار جذاب و آموزنده است. آنها با تحقیقات و آزمونهای مختلف، به چگونگی تأثیر این وابستگی بر پروژهها پی بردند و از این طریق درک عمیقتری نسبت به اکوسیستم گول پیدا کردند. این روند نه تنها به درک بهتر آنها کمک کرد، بلکه نشان داد که چقدر مطالعه و پیروی از روندهای جاری میتواند راهگشا باشد.
به طور خلاصه، وابستگی مورد بحث، چیزی است که به طور طبیعی در کنار دیگر ابزارهای گول نقش مهمی ایفا میکند و درک آن، برای هر توسعهدهندهای ضروری است. این شناخت، نه تنها به بهبود کارایی پروژهها کمک میکند، بلکه امنیت و پایداری سیستمها را نیز تضمین مینماید. در نهایت، ما شاهد این هستیم که چگونه کنجکاوی و تلاش مستمر میتواند راه را برای دستیابی به دانشهای کاربردی و ارزشمند هموار کند و این رویداد، نمونهای است از اهمیت پژوهش و پیروی از روندهای توسعه در دنیای فناوری.
#گول #وابستگی_مهم #توسعه_نرمافزار #تکنولوژی
🟣لینک مقاله:
https://golangweekly.com/link/179075/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Thibaut Rousseau's Blog
The most popular Go dependency is…
(I bet it's testify)
🔵 عنوان مقاله
Two Concurrency Patterns Which Avoid Goroutine Leaks
🟢 خلاصه مقاله:
در برنامهنویسی به زبان گو، مدیریت همزمانی و استفاده بهینه از منابع نقش بسیار مهمی در توسعه برنامههای کارآمد و پایدار دارد. در این راستا، یکی از چالشهای اصلی، جلوگیری از نشت کردن ویژگیهای 'گوروتین' (goroutine) است که ممکن است باعث کاهش کارایی و مصرف بیرویه منابع سیستم شود. در مقالهای جامع، دو الگوی همزمانی معرفی میشود که به طور خاص برای جلوگیری از نشت کردن گوروتینها طراحی شدهاند. این الگوها با طراحی هوشمندانه و رعایت نکات کلیدی، امکان مدیریت بهتر اجرای همزمان برنامه را فراهم میکنند و از بروز خطاهای ناشی از نشت منابع جلوگیری مینمایند.
در ادامه، هر الگو به تفصیل مورد بررسی قرار میگیرد و نحوه پیادهسازی آنها در پروژههای عملی توضیح داده میشود. تمرکز بر روی ساختارهای قابل اعتماد و اجرای همزمان است تا توسعهدهندگان بتوانند راهکاری کارآمد برای مانیتورینگ و کنترل گوروتینهای خود داشته باشند. با بهرهگیری از این الگوها، میتوان به شکل موثرتری منابع سیستم را مدیریت کرده و استرسهای ناشی از برنامههای همزمان را کاهش داد.
در نهایت، اهمیت فهم صحیح این الگوها و پیادهسازی صحیح آنها در پروژههای واقعی، مانع از بروز مشکلات جدی میشود و به بهبود کیفیت و پایداری نرمافزارهای توسعه یافته کمک میکند. این راهکارها، ابزارهای موثری برای توسعهدهندگان هستند که با آنها میتوان کنترل کاملتر بر چرخه عمر گوروتینها داشت و از نشت کردن آنها جلوگیری کرد.
#برنامه_نویسی #گو #همزمانی #بهبود_کارایی
🟣لینک مقاله:
https://golangweekly.com/link/179082/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Two Concurrency Patterns Which Avoid Goroutine Leaks
🟢 خلاصه مقاله:
در برنامهنویسی به زبان گو، مدیریت همزمانی و استفاده بهینه از منابع نقش بسیار مهمی در توسعه برنامههای کارآمد و پایدار دارد. در این راستا، یکی از چالشهای اصلی، جلوگیری از نشت کردن ویژگیهای 'گوروتین' (goroutine) است که ممکن است باعث کاهش کارایی و مصرف بیرویه منابع سیستم شود. در مقالهای جامع، دو الگوی همزمانی معرفی میشود که به طور خاص برای جلوگیری از نشت کردن گوروتینها طراحی شدهاند. این الگوها با طراحی هوشمندانه و رعایت نکات کلیدی، امکان مدیریت بهتر اجرای همزمان برنامه را فراهم میکنند و از بروز خطاهای ناشی از نشت منابع جلوگیری مینمایند.
در ادامه، هر الگو به تفصیل مورد بررسی قرار میگیرد و نحوه پیادهسازی آنها در پروژههای عملی توضیح داده میشود. تمرکز بر روی ساختارهای قابل اعتماد و اجرای همزمان است تا توسعهدهندگان بتوانند راهکاری کارآمد برای مانیتورینگ و کنترل گوروتینهای خود داشته باشند. با بهرهگیری از این الگوها، میتوان به شکل موثرتری منابع سیستم را مدیریت کرده و استرسهای ناشی از برنامههای همزمان را کاهش داد.
در نهایت، اهمیت فهم صحیح این الگوها و پیادهسازی صحیح آنها در پروژههای واقعی، مانع از بروز مشکلات جدی میشود و به بهبود کیفیت و پایداری نرمافزارهای توسعه یافته کمک میکند. این راهکارها، ابزارهای موثری برای توسعهدهندگان هستند که با آنها میتوان کنترل کاملتر بر چرخه عمر گوروتینها داشت و از نشت کردن آنها جلوگیری کرد.
#برنامه_نویسی #گو #همزمانی #بهبود_کارایی
🟣لینک مقاله:
https://golangweekly.com/link/179082/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔵 عنوان مقاله
Turning a Go Program into a Script with One Magic Line
🟢 خلاصه مقاله:
در دنیای برنامهنویسی، یکی از چالشهای همیشگی، چگونگی تبدیل برنامههای معمولی به اسکریپتهای قابل اجرا است که بتوان آنها را به سادگی و با یک خط فرمان اجرا کرد. این موضوع به ویژه زمانی اهمیت پیدا میکند که میخواهید فرآیندهای توسعه و اجرا را سادهتر و سریعتر انجام دهید، بدون اینکه نیاز داشته باشید هر بار برنامه را کامپایل و اجرا کنید.
یکی از روشهای جذاب و کارآمد برای انجام این کار، استفاده از یک خط جادویی و ساده است که به شما اجازه میدهد به راحتی کدهای Go را به صورت اسکریپت اجرا کنید. این تکنیک نه تنها زمان توسعه را کاهش میدهد، بلکه امکان آزمایش و اجرای سریعتر برنامههای کوچک و آزمایشی را نیز فراهم میکند. در واقع، با افزودن این یک خط، میتوانید برنامهی خود را به یک اسکریپت قابل اجرا تبدیل کنید، بدون نیاز به مراحل پیچیده یا ابزارهای خاص.
در ادامه، نحوه انجام این کار و نکات کلیدی مربوط به آن را بررسی خواهیم کرد تا بتوانید سریعاً از این روش بهرهبرید و برنامههای خود را به سرعت به اسکریپتهای قابل اجرا تبدیل کنید. این روش به خصوص برای پروژههای کوچک، آزمایشهای سریع و کارهایی که نیاز به اجرای سریع دارند، بسیار مناسب است و به شما آزادی عمل بیشتری میدهد تا کدهای خود را به شیوهای ساده و مؤثر مدیریت کنید.
---
با استفاده از این خط جادویی، میتوانید برنامههای Go خود را به راحتی و در کمترین زمان ممکن به اسکریپتهایی قابل اجرا تبدیل کنید و فرآیند توسعه و اجرا را هموارتر سازید.
#برنامه_نویسی #GoLang #اسکریپت #توسعه_سریع
🟣لینک مقاله:
https://golangweekly.com/link/179079/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Turning a Go Program into a Script with One Magic Line
🟢 خلاصه مقاله:
در دنیای برنامهنویسی، یکی از چالشهای همیشگی، چگونگی تبدیل برنامههای معمولی به اسکریپتهای قابل اجرا است که بتوان آنها را به سادگی و با یک خط فرمان اجرا کرد. این موضوع به ویژه زمانی اهمیت پیدا میکند که میخواهید فرآیندهای توسعه و اجرا را سادهتر و سریعتر انجام دهید، بدون اینکه نیاز داشته باشید هر بار برنامه را کامپایل و اجرا کنید.
یکی از روشهای جذاب و کارآمد برای انجام این کار، استفاده از یک خط جادویی و ساده است که به شما اجازه میدهد به راحتی کدهای Go را به صورت اسکریپت اجرا کنید. این تکنیک نه تنها زمان توسعه را کاهش میدهد، بلکه امکان آزمایش و اجرای سریعتر برنامههای کوچک و آزمایشی را نیز فراهم میکند. در واقع، با افزودن این یک خط، میتوانید برنامهی خود را به یک اسکریپت قابل اجرا تبدیل کنید، بدون نیاز به مراحل پیچیده یا ابزارهای خاص.
در ادامه، نحوه انجام این کار و نکات کلیدی مربوط به آن را بررسی خواهیم کرد تا بتوانید سریعاً از این روش بهرهبرید و برنامههای خود را به سرعت به اسکریپتهای قابل اجرا تبدیل کنید. این روش به خصوص برای پروژههای کوچک، آزمایشهای سریع و کارهایی که نیاز به اجرای سریع دارند، بسیار مناسب است و به شما آزادی عمل بیشتری میدهد تا کدهای خود را به شیوهای ساده و مؤثر مدیریت کنید.
---
با استفاده از این خط جادویی، میتوانید برنامههای Go خود را به راحتی و در کمترین زمان ممکن به اسکریپتهایی قابل اجرا تبدیل کنید و فرآیند توسعه و اجرا را هموارتر سازید.
#برنامه_نویسی #GoLang #اسکریپت #توسعه_سریع
🟣لینک مقاله:
https://golangweekly.com/link/179079/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
lorentz.app
lorentz app
The personal website of Lorentz Kinde, a Cloud Engineer.
🔵 عنوان مقاله
go.sum is Not a Lockfile
🟢 خلاصه مقاله:
در اغلب زبانهای برنامهنویسی، فایلهایی مانند منیفست و قفلفایل برای مدیریت نسخهها و وابستگیها وجود دارند که به توسعهدهندگان کمک میکنند محیط برنامهنویسی ثابتی داشته باشند و از بروز مشکلات ناشی از تغییرات ناخواسته جلوگیری کنند. اما زبان گو، رویکرد متفاوتی در این زمینه اتخاذ کرده است. به جای استفاده از فایل قفلفایل، گو از فایل نیازمندیها یا همان go.mod استفاده میکند که مجموعی از نسخهها و وابستگیهای پروژه را مشخص مینماید، و در کنار آن، از یک پایگاه داده هش برای نگهداری و تأیید صحت این وابستگیها بهره میبرد.
در واقع، فایل go.sum که به عنوان یک کش برای پایگاه دادههای هش شناخته میشود، نقش مهمی در تضمین یکپارچگی و صحت محیط توسعه دارد، اما اصلاً به عنوان یک قفلفایل یا فایل مدیریت نسخههای سختگیرانه در نظر گرفته نمیشود. برخلاف سیستمهایی که نسخههای دقیقی را قفل میکنند، go در اصل بر روی این مبنا استوار است که نیازمندیها به روز و قابل اعتماد باقی بمانند، و در عین حال اجازه تغییرات انعطافپذیر را بدهد تا توسعهدهندگان بتوانند به راحتی بر روی پروژههای خود کار کنند و در عین حال امنیت آنها حفظ شود.
پس میتوان نتیجه گرفت که go.sum، نه یک فایل قفل واقعی بلکه یک ابزار کمکی است که با تأیید صحت وابستگیها، امنیت و کارایی پروژههای گو را تضمین میکند و همین موضوع باعث تفاوت آن با سایر زبانها میشود. این رویکرد منحصر به فرد، انعطاف و امنیت لازم را در مدیریت وابستگیها فراهم میکند، بدون اینکه توسعهدهندگان را محدود کند.
#نکات_یادگیری #برنامه_نویسی #گو #مدیریت_وابستگیها
🟣لینک مقاله:
https://golangweekly.com/link/179081/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.sum is Not a Lockfile
🟢 خلاصه مقاله:
در اغلب زبانهای برنامهنویسی، فایلهایی مانند منیفست و قفلفایل برای مدیریت نسخهها و وابستگیها وجود دارند که به توسعهدهندگان کمک میکنند محیط برنامهنویسی ثابتی داشته باشند و از بروز مشکلات ناشی از تغییرات ناخواسته جلوگیری کنند. اما زبان گو، رویکرد متفاوتی در این زمینه اتخاذ کرده است. به جای استفاده از فایل قفلفایل، گو از فایل نیازمندیها یا همان go.mod استفاده میکند که مجموعی از نسخهها و وابستگیهای پروژه را مشخص مینماید، و در کنار آن، از یک پایگاه داده هش برای نگهداری و تأیید صحت این وابستگیها بهره میبرد.
در واقع، فایل go.sum که به عنوان یک کش برای پایگاه دادههای هش شناخته میشود، نقش مهمی در تضمین یکپارچگی و صحت محیط توسعه دارد، اما اصلاً به عنوان یک قفلفایل یا فایل مدیریت نسخههای سختگیرانه در نظر گرفته نمیشود. برخلاف سیستمهایی که نسخههای دقیقی را قفل میکنند، go در اصل بر روی این مبنا استوار است که نیازمندیها به روز و قابل اعتماد باقی بمانند، و در عین حال اجازه تغییرات انعطافپذیر را بدهد تا توسعهدهندگان بتوانند به راحتی بر روی پروژههای خود کار کنند و در عین حال امنیت آنها حفظ شود.
پس میتوان نتیجه گرفت که go.sum، نه یک فایل قفل واقعی بلکه یک ابزار کمکی است که با تأیید صحت وابستگیها، امنیت و کارایی پروژههای گو را تضمین میکند و همین موضوع باعث تفاوت آن با سایر زبانها میشود. این رویکرد منحصر به فرد، انعطاف و امنیت لازم را در مدیریت وابستگیها فراهم میکند، بدون اینکه توسعهدهندگان را محدود کند.
#نکات_یادگیری #برنامه_نویسی #گو #مدیریت_وابستگیها
🟣لینک مقاله:
https://golangweekly.com/link/179081/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
words.filippo.io
go.sum Is Not a Lockfile
In Go, go.mod acts as both manifest and lockfile. There is never a reason to look at go.sum.
🔵 عنوان مقاله
Porting MiniJinja to Go with an Agent
🟢 خلاصه مقاله:
در خبر امروز، به معرفی MiniJinja، یک موتور قالبسازی مبتنی بر زبان Rust که الهامگرفته از Jinja2 است، پرداختهایم. این ابزار قدرتمند، توسط آرمن رونیچر توسعه یافته و با بهرهگیری از قابلیتهای زبان برنامهنویسی Rust، توانسته است جایگزینی کارآمد و امن برای موتورهای قالبسازی دیگر باشد، بهخصوص در پروژههایی که نیازمند کارایی و امنیت بالا هستند. MiniJinja به دلیل سبکی، سرعت و هماهنگی با زبان Rust، گزینهای جذاب برای برنامهنویسان است که قصد دارند نرمافزارهای سریع و با امنیت بالا توسعه دهند.
در این مقاله، تمرکز بر روی فرآیند انتقال و پیادهسازی MiniJinja در زبان برنامهنویسی Go است. با توجه به شباهتها و تفاوتهای بین این دو زبان، چالشهایی در این مسیر وجود دارد، اما با طراحی صحیح و بهرهگیری از قابلیتهای هر زبان، میتوان عملکردی موثر و بهینه در توسعه قالبها ایجاد کرد. هدف اصلی، ایجاد یک نسخه قابلحمل و کارآمد از MiniJinja است که بتواند در بسترهای متنوع و سیستمهای مختلف اجرا شود و توسعهدهندگان را در ساخت برنامههای سریع و امن یاری دهد.
در نهایت، این انتقال نشان میدهد که چگونه میتوان ابزارهای قدرتمند مبتنی بر Rust را در زبانهایی مانند Go پیادهسازی و بهرهبرداری کرد، و این انتقال چه تاثیراتی در افزایش انعطافپذیری و توانمندی پروژههای نرمافزاری دارد. چنین ابتکاراتی، گامی مهم در توسعه فناوریهای متنباز و همکاریهای بین زبانهای برنامهنویسی محسوب میشود.
#برنامهنویسی #توسعه_وب #فناوری #کدباز
🟣لینک مقاله:
https://golangweekly.com/link/179364/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Porting MiniJinja to Go with an Agent
🟢 خلاصه مقاله:
در خبر امروز، به معرفی MiniJinja، یک موتور قالبسازی مبتنی بر زبان Rust که الهامگرفته از Jinja2 است، پرداختهایم. این ابزار قدرتمند، توسط آرمن رونیچر توسعه یافته و با بهرهگیری از قابلیتهای زبان برنامهنویسی Rust، توانسته است جایگزینی کارآمد و امن برای موتورهای قالبسازی دیگر باشد، بهخصوص در پروژههایی که نیازمند کارایی و امنیت بالا هستند. MiniJinja به دلیل سبکی، سرعت و هماهنگی با زبان Rust، گزینهای جذاب برای برنامهنویسان است که قصد دارند نرمافزارهای سریع و با امنیت بالا توسعه دهند.
در این مقاله، تمرکز بر روی فرآیند انتقال و پیادهسازی MiniJinja در زبان برنامهنویسی Go است. با توجه به شباهتها و تفاوتهای بین این دو زبان، چالشهایی در این مسیر وجود دارد، اما با طراحی صحیح و بهرهگیری از قابلیتهای هر زبان، میتوان عملکردی موثر و بهینه در توسعه قالبها ایجاد کرد. هدف اصلی، ایجاد یک نسخه قابلحمل و کارآمد از MiniJinja است که بتواند در بسترهای متنوع و سیستمهای مختلف اجرا شود و توسعهدهندگان را در ساخت برنامههای سریع و امن یاری دهد.
در نهایت، این انتقال نشان میدهد که چگونه میتوان ابزارهای قدرتمند مبتنی بر Rust را در زبانهایی مانند Go پیادهسازی و بهرهبرداری کرد، و این انتقال چه تاثیراتی در افزایش انعطافپذیری و توانمندی پروژههای نرمافزاری دارد. چنین ابتکاراتی، گامی مهم در توسعه فناوریهای متنباز و همکاریهای بین زبانهای برنامهنویسی محسوب میشود.
#برنامهنویسی #توسعه_وب #فناوری #کدباز
🟣لینک مقاله:
https://golangweekly.com/link/179364/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Armin Ronacher's Thoughts and Writings
Porting MiniJinja to Go With an Agent
Agents can now port code bases much better than before.