🔵 عنوان مقاله
Red, Green, Refactor: Writing Perfect Go, with TDD
🟢 خلاصه مقاله:
** این مطلب سه دیدگاه مکمل برای بهبود کدنویسی در Go ارائه میکند: بهکارگیری چرخه Red–Green–Refactor در TDD برای ساخت پکیجهای کوچک و APIهای شفاف و ریفکتور امن با تکیه بر تستهای سریع؛ مرور کاربردی John Arundel از sync.Pool برای کاهش فشار تخصیص در مسیرهای داغ، با تأکید بر اینکه این سازوکار «کش» نیست و اقلام آن ممکن است هر لحظه حذف شوند، و استفاده از آن فقط با اندازهگیری و پروفایل توجیهپذیر است؛ و توضیح Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go و نحوه تبدیل کد منبع به توکنها، که منشأ برخی خطاها و رفتار ابزارها را روشن میکند. جمعبندی: با TDD کیفیت و قابلیت نگهداری را بالا ببرید، sync.Pool را صرفاً وقتی به کار بگیرید که دادهها گلوگاه تخصیص را نشان میدهند، و با شناخت روند اسکن، ابزار بهتر و کد خواناتر بسازید.
#Go #Golang #TDD #syncPool #Refactoring #GoCompiler #Performance #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/176903/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Red, Green, Refactor: Writing Perfect Go, with TDD
🟢 خلاصه مقاله:
** این مطلب سه دیدگاه مکمل برای بهبود کدنویسی در Go ارائه میکند: بهکارگیری چرخه Red–Green–Refactor در TDD برای ساخت پکیجهای کوچک و APIهای شفاف و ریفکتور امن با تکیه بر تستهای سریع؛ مرور کاربردی John Arundel از sync.Pool برای کاهش فشار تخصیص در مسیرهای داغ، با تأکید بر اینکه این سازوکار «کش» نیست و اقلام آن ممکن است هر لحظه حذف شوند، و استفاده از آن فقط با اندازهگیری و پروفایل توجیهپذیر است؛ و توضیح Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go و نحوه تبدیل کد منبع به توکنها، که منشأ برخی خطاها و رفتار ابزارها را روشن میکند. جمعبندی: با TDD کیفیت و قابلیت نگهداری را بالا ببرید، sync.Pool را صرفاً وقتی به کار بگیرید که دادهها گلوگاه تخصیص را نشان میدهند، و با شناخت روند اسکن، ابزار بهتر و کد خواناتر بسازید.
#Go #Golang #TDD #syncPool #Refactoring #GoCompiler #Performance #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/176903/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Bitfield Consulting
Red, green, refactor: writing perfect Go, with TDD — Bitfield Consulting
Make it work, then make it right: the “red, green, refactor” technique helps us craft Go code that’s correct and beautiful. It’s easy! Shall we play a game?
🔵 عنوان مقاله
Understanding the Go Compiler: The Scanner
🟢 خلاصه مقاله:
این مقاله، با معرفی نقش Scanner در Go Compiler، توضیح میدهد که چگونه متن خام به توکنهای دقیق و موقعیتدار تبدیل میشود تا مراحل بعدی مانند parser و type checker بتوانند روی آن کار کنند. تمرکز مقاله بر سادگی قواعد واژگانی Go، نبود preprocessor و سازوکار semicolon insertion است که باعث میشود کد خواناتر و ابزارها قابلاعتمادتر باشند.
نویسنده انواع توکنها را مرور میکند: شناسهها با پشتیبانی Unicode، اعداد صحیح و اعشاری و imaginary با امکان استفاده از underscore، رشتههای interpreted و raw، و rune literals. همچنین به نحوهی تشخیص و نادیدهگیری یا نگهداری کامنتها بر حسب نیاز ابزار اشاره میکند. بخشی هم به گزارش خطا و ادامهی اسکن در مواجهه با ورودیهای نامعتبر میپردازد و اهمیت go/token برای نگهداری دقیق موقعیتها را توضیح میدهد.
در پایان، با معرفی بستههای go/scanner و go/token، مسیر ساخت ابزارهایی مثل linter و formatter نشان داده میشود و تفاوت آنها با پیادهسازی داخلی کامپایلر بیان میگردد. نتیجه اینکه طراحی خطی و سادهی Scanner، سرعت ابزار Go و کیفیت پیامهای خطا و تحلیلهای ایستا را ممکن کرده است.
#Go #Golang #GoCompiler #Scanner #Lexer #Parsing #StaticAnalysis #ProgrammingLanguages
🟣لینک مقاله:
https://golangweekly.com/link/176905/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Understanding the Go Compiler: The Scanner
🟢 خلاصه مقاله:
این مقاله، با معرفی نقش Scanner در Go Compiler، توضیح میدهد که چگونه متن خام به توکنهای دقیق و موقعیتدار تبدیل میشود تا مراحل بعدی مانند parser و type checker بتوانند روی آن کار کنند. تمرکز مقاله بر سادگی قواعد واژگانی Go، نبود preprocessor و سازوکار semicolon insertion است که باعث میشود کد خواناتر و ابزارها قابلاعتمادتر باشند.
نویسنده انواع توکنها را مرور میکند: شناسهها با پشتیبانی Unicode، اعداد صحیح و اعشاری و imaginary با امکان استفاده از underscore، رشتههای interpreted و raw، و rune literals. همچنین به نحوهی تشخیص و نادیدهگیری یا نگهداری کامنتها بر حسب نیاز ابزار اشاره میکند. بخشی هم به گزارش خطا و ادامهی اسکن در مواجهه با ورودیهای نامعتبر میپردازد و اهمیت go/token برای نگهداری دقیق موقعیتها را توضیح میدهد.
در پایان، با معرفی بستههای go/scanner و go/token، مسیر ساخت ابزارهایی مثل linter و formatter نشان داده میشود و تفاوت آنها با پیادهسازی داخلی کامپایلر بیان میگردد. نتیجه اینکه طراحی خطی و سادهی Scanner، سرعت ابزار Go و کیفیت پیامهای خطا و تحلیلهای ایستا را ممکن کرده است.
#Go #Golang #GoCompiler #Scanner #Lexer #Parsing #StaticAnalysis #ProgrammingLanguages
🟣لینک مقاله:
https://golangweekly.com/link/176905/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Internals for interns
Understanding the Go compiler: The Scanner | Internals for interns
This is part of a series where I’ll walk you through the entire Go compiler, covering each phase from source code to executable. If you’ve ever wondered what happens when you run go build, you’re in the right place.
Note: This article is based on Go 1.25.3.…
Note: This article is based on Go 1.25.3.…