🔵 عنوان مقاله
trdsql: Tool to Execute SQL Queries Upon Text-Based Data
🟢 خلاصه مقاله:
مقالهای که بررسی میکند ابزار CLI را توصیف میکند که قادر است کوئریهای SQL را بر روی فایلهای CSV، LTSV، JSON، YAML، و TBLN اجرا کند. این ابزار از دو نوع دستورالعمل SQL یعنی Postgres و MySQL پشتیبانی میکند. علاوهبر این، این ابزار میتواند بهعنوان کتابخانهای در برنامههای نوشته شده با زبان برنامهنویسی Go نیز استفاده شود. این امکان فراهم میکند که توسعهدهندگان بتوانند دادههای موجود در فرمتهای مختلف فایل را به راحتی در برنامههای خود مدیریت و تحلیل کنند. این توانایی به ویژه برای کار با دادهها در مقیاس بزرگ یا برای انجام تجزیه و تحلیلهای دادهای سریع و موثر بسیار مفید است.
🟣لینک مقاله:
https://github.com/noborus/trdsql
➖➖➖➖➖➖➖➖
👑 @gopher_academy
trdsql: Tool to Execute SQL Queries Upon Text-Based Data
🟢 خلاصه مقاله:
مقالهای که بررسی میکند ابزار CLI را توصیف میکند که قادر است کوئریهای SQL را بر روی فایلهای CSV، LTSV، JSON، YAML، و TBLN اجرا کند. این ابزار از دو نوع دستورالعمل SQL یعنی Postgres و MySQL پشتیبانی میکند. علاوهبر این، این ابزار میتواند بهعنوان کتابخانهای در برنامههای نوشته شده با زبان برنامهنویسی Go نیز استفاده شود. این امکان فراهم میکند که توسعهدهندگان بتوانند دادههای موجود در فرمتهای مختلف فایل را به راحتی در برنامههای خود مدیریت و تحلیل کنند. این توانایی به ویژه برای کار با دادهها در مقیاس بزرگ یا برای انجام تجزیه و تحلیلهای دادهای سریع و موثر بسیار مفید است.
🟣لینک مقاله:
https://github.com/noborus/trdsql
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - noborus/trdsql: CLI tool that can execute SQL queries on CSV, LTSV, JSON, YAML and TBLN. Can output to various formats.
CLI tool that can execute SQL queries on CSV, LTSV, JSON, YAML and TBLN. Can output to various formats. - noborus/trdsql
👍3
🔵 عنوان مقاله
Go Performance from Version 1.0 to 1.22
🟢 خلاصه مقاله:
مقالهای که به بررسی تحلیلی عملکرد زبان برنامهنویسی Go از نسخه ۱.۰ تا آخرین نسخه یعنی ۱.۲۲ میپردازد، ادامهای است بر تحلیلهای قبلی نویسنده از نسخههای ۱.۲ تا ۱.۱۸ که دو سال پیش منتشر شده بود. در این مقاله، تحولات و بهینهسازیهای صورت گرفته در عملکرد زبان Go طی این سالها از ابتدای تولید تا به امروز بررسی شده است. نویسنده با استفاده از دادهها و شواهد محکم، تغییرات کلیدی در معماری و عملکرد زبان را به تفصیل تشریح کرده و نشان میدهد که چگونه این تحولات به افزایش کارایی و بهرهوری در برنامهنویسی کمک کردهاند. این مقاله میتواند منبع مفیدی برای توسعهدهندگان و مهندسان نرمافزار باشد که میخواهند دیدگاه عمیقتری نسبت به تکامل زبان Go و عملکرد آن داشته باشند.
🟣لینک مقاله:
https://benhoyt.com/writings/go-version-performance-2024/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go Performance from Version 1.0 to 1.22
🟢 خلاصه مقاله:
مقالهای که به بررسی تحلیلی عملکرد زبان برنامهنویسی Go از نسخه ۱.۰ تا آخرین نسخه یعنی ۱.۲۲ میپردازد، ادامهای است بر تحلیلهای قبلی نویسنده از نسخههای ۱.۲ تا ۱.۱۸ که دو سال پیش منتشر شده بود. در این مقاله، تحولات و بهینهسازیهای صورت گرفته در عملکرد زبان Go طی این سالها از ابتدای تولید تا به امروز بررسی شده است. نویسنده با استفاده از دادهها و شواهد محکم، تغییرات کلیدی در معماری و عملکرد زبان را به تفصیل تشریح کرده و نشان میدهد که چگونه این تحولات به افزایش کارایی و بهرهوری در برنامهنویسی کمک کردهاند. این مقاله میتواند منبع مفیدی برای توسعهدهندگان و مهندسان نرمافزار باشد که میخواهند دیدگاه عمیقتری نسبت به تکامل زبان Go و عملکرد آن داشته باشند.
🟣لینک مقاله:
https://benhoyt.com/writings/go-version-performance-2024/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Benhoyt
Go performance from version 1.0 to 1.22
Shows how much the performance of Go has improved from version 1.0 through to 1.22 (including PGO) -- in its compiler, runtime, and libraries.
🔵 عنوان مقاله
📊 Results of the 2024 H1 Go Developer Survey
🟢 خلاصه مقاله:
مطالعهای که با تمرکز بر هوش مصنوعی انجام شد، نشان داد که سطح اعتماد و رضایت توسعهدهندگان نسبت به زبان برنامهنویسی Go بسیار بالا است. براساس این نظرسنجی، بسیاری از توسعهدهندگان معتقدند که Go زبان مناسبی برای موردهای استفاده جدید در عرصه هوش مصنوعی است. با وجود این، نیاز به ابزارها و کتابخانههای جدید در این زمینه احساس میشود، به ویژه ایجاد نسخههای معادل Go از کتابخانههای محبوب پایتون که به شدت مورد تقاضا است. توسعهدهندگان متقاعد شدهاند که توسعه و پیشرفت در این محیطها میتواند به کاربردیتر شدن Go در آینده کمک کند.
🟣لینک مقاله:
https://go.dev/blog/survey2024-h1-results
➖➖➖➖➖➖➖➖
👑 @gopher_academy
📊 Results of the 2024 H1 Go Developer Survey
🟢 خلاصه مقاله:
مطالعهای که با تمرکز بر هوش مصنوعی انجام شد، نشان داد که سطح اعتماد و رضایت توسعهدهندگان نسبت به زبان برنامهنویسی Go بسیار بالا است. براساس این نظرسنجی، بسیاری از توسعهدهندگان معتقدند که Go زبان مناسبی برای موردهای استفاده جدید در عرصه هوش مصنوعی است. با وجود این، نیاز به ابزارها و کتابخانههای جدید در این زمینه احساس میشود، به ویژه ایجاد نسخههای معادل Go از کتابخانههای محبوب پایتون که به شدت مورد تقاضا است. توسعهدهندگان متقاعد شدهاند که توسعه و پیشرفت در این محیطها میتواند به کاربردیتر شدن Go در آینده کمک کند.
🟣لینک مقاله:
https://go.dev/blog/survey2024-h1-results
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
Go Developer Survey 2024 H1 Results - The Go Programming Language
What we learned from our 2024 H1 developer survey
👍4🔥3
🔵 عنوان مقاله
Go 1.23's New unique Package
🟢 خلاصه مقاله:
مقالهای که مورد بحث قرار گرفته، به بررسی بستهای میپردازد که هدف آن افزایش کارایی در مقایسه مقادیر از طریق استفاده از روش "ددوپلیکیشن" (حذف نسخههای تکراری) است. این روش به گونهای است که به هر مقدار منحصربهفرد یک نمونه قابل استناد اختصاص میدهد، که به این مفهوم "اینترنینگ" گفته میشود. نویسنده، مایکل، در این مقاله توضیح میدهد که این فرآیند چگونه کار میکند و همچنین یک مثال عملی ارائه میدهد تا خواننده بتواند بهتر با کاربرد و مزایای این روش آشنا شود. محتوای ارائه شده نیاز به دانش پیشین دارد، اما مایکل در طول مقاله تمام جوانب لازم را به خواننده آموزش میدهد، به طوری که خوانندگان با آگاهی کامل میتوانند از این تکنیک در کاربردهای خود استفاده نمایند.
🟣لینک مقاله:
https://golangweekly.com/link/159224/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go 1.23's New unique Package
🟢 خلاصه مقاله:
مقالهای که مورد بحث قرار گرفته، به بررسی بستهای میپردازد که هدف آن افزایش کارایی در مقایسه مقادیر از طریق استفاده از روش "ددوپلیکیشن" (حذف نسخههای تکراری) است. این روش به گونهای است که به هر مقدار منحصربهفرد یک نمونه قابل استناد اختصاص میدهد، که به این مفهوم "اینترنینگ" گفته میشود. نویسنده، مایکل، در این مقاله توضیح میدهد که این فرآیند چگونه کار میکند و همچنین یک مثال عملی ارائه میدهد تا خواننده بتواند بهتر با کاربرد و مزایای این روش آشنا شود. محتوای ارائه شده نیاز به دانش پیشین دارد، اما مایکل در طول مقاله تمام جوانب لازم را به خواننده آموزش میدهد، به طوری که خوانندگان با آگاهی کامل میتوانند از این تکنیک در کاربردهای خود استفاده نمایند.
🟣لینک مقاله:
https://golangweekly.com/link/159224/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
New unique package - The Go Programming Language
New package for interning in Go 1.23.
👍7❤1
الگوهای ورژنبندی (Versioning) در نرمافزار به روشهای مختلفی برای شمارهگذاری و پیگیری نسخههای نرمافزار اشاره دارند. در اینجا برخی از رایجترین الگوهای ورژنبندی آورده شده است:
### 1. Semantic Versioning (SemVer)
- فرمت:
- مثال:
- قواعد:
- MAJOR:
تغییرات ناسازگار که معمولاً با API همراه است.
- MINOR:
افزودن قابلیتهای جدید به شکلی که با نسخههای قبلی سازگار است.
- PATCH:
رفع باگها و مشکلات کوچک بدون تغییرات ناسازگار.
### 2. Calendar Versioning (CalVer)
- فرمت:
- مثال:
- قواعد:
- براساس تاریخ انتشار نسخهها شمارهگذاری میشود.
- مناسب برای نرمافزارهایی که بهصورت دورهای و مرتب آپدیت میشوند.
### 3. Sequential Versioning
- فرمت:
- مثال:
- قواعد:
- شمارههای نسخه بهصورت ترتیبی و بدون توجه به نوع تغییرات افزایش مییابند.
- معمولاً برای نسخههای ابتدایی یا محصولات کوچک استفاده میشود.
### 4. Date-based Versioning
- فرمت:
- مثال:
- قواعد:
- نسخهها بر اساس تاریخ و زمان انتشار شمارهگذاری میشوند.
- مناسب برای نرمافزارهایی که بهطور مداوم آپدیت میشوند و تاریخ نسخه مهم است.
### 5. Pseudo-Versioning
- فرمت:
- مثال:
- قواعد:
- معمولاً در سیستمهای کنترل نسخه مثل Git استفاده میشود.
- زمانی که تگ رسمی وجود ندارد یا نیاز است به یک commit خاص اشاره شود، استفاده میشود.
### 6. Alphanumeric Versioning
- فرمت:
- مثال:
- قواعد:
- از حروف برای نشان دادن مراحل توسعه استفاده میشود (a=alpha, b=beta, rc=release candidate).
- این الگو برای مراحل قبل از انتشار نهایی محصول بهکار میرود.
### 7. Combined Versioning
- فرمت: ترکیبی از الگوهای مختلف، مثل
- مثال:
- قواعد:
- ترکیبی از ورژنبندی تقویمی، ترتیبی، و یا الفبایی به منظور مشخص کردن نوع تغییرات و زمان انتشار.
### 8. Dot Notation Versioning
- فرمت:
- مثال:
- قواعد:
- هر قسمت نشاندهنده یک سطح از تغییرات است، که میتواند مشابه Semantic Versioning باشد، اما با عمق کمتر.
- بیشتر برای پروژههای ساده استفاده میشود.
### 9. Major.Minor Schema
- فرمت:
- مثال:
- قواعد:
- به جای استفاده از PATCH، فقط MAJOR و MINOR مشخص میشوند.
- اغلب برای نرمافزارهایی استفاده میشود که نیاز به پیچیدگی زیادی در ورژنبندی ندارند.
هر کدام از این الگوها بسته به نیاز پروژه و نوع نرمافزار میتواند مورد استفاده قرار گیرد. استفاده درست از الگوی ورژنبندی میتواند به شفافیت در مدیریت نسخهها و بهبود فرآیند توسعه و انتشار نرمافزار کمک کند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
### 1. Semantic Versioning (SemVer)
- فرمت:
MAJOR.MINOR.PATCH
- مثال:
1.4.2
- قواعد:
- MAJOR:
تغییرات ناسازگار که معمولاً با API همراه است.
- MINOR:
افزودن قابلیتهای جدید به شکلی که با نسخههای قبلی سازگار است.
- PATCH:
رفع باگها و مشکلات کوچک بدون تغییرات ناسازگار.
### 2. Calendar Versioning (CalVer)
- فرمت:
YYYY.MM.DD
یا YYYY.MM
یا YYYY.MM.MICRO
- مثال:
2024.08.26
, 2024.08
- قواعد:
- براساس تاریخ انتشار نسخهها شمارهگذاری میشود.
- مناسب برای نرمافزارهایی که بهصورت دورهای و مرتب آپدیت میشوند.
### 3. Sequential Versioning
- فرمت:
1, 2, 3, 4, ...
- مثال:
1, 2, 3, 4
- قواعد:
- شمارههای نسخه بهصورت ترتیبی و بدون توجه به نوع تغییرات افزایش مییابند.
- معمولاً برای نسخههای ابتدایی یا محصولات کوچک استفاده میشود.
### 4. Date-based Versioning
- فرمت:
YYYYMMDD
یا YYYYMMDDHHMM
- مثال:
20240826
, 202408261230
- قواعد:
- نسخهها بر اساس تاریخ و زمان انتشار شمارهگذاری میشوند.
- مناسب برای نرمافزارهایی که بهطور مداوم آپدیت میشوند و تاریخ نسخه مهم است.
### 5. Pseudo-Versioning
- فرمت:
vX.Y.Z-TIMESTAMP-COMMITHASH
- مثال:
v1.0.0-202108150915-abcdef123456
- قواعد:
- معمولاً در سیستمهای کنترل نسخه مثل Git استفاده میشود.
- زمانی که تگ رسمی وجود ندارد یا نیاز است به یک commit خاص اشاره شود، استفاده میشود.
### 6. Alphanumeric Versioning
- فرمت:
1.0a
, 2.0beta
, 3.0rc1
- مثال:
1.0a
, 2.0beta
, 3.0rc1
- قواعد:
- از حروف برای نشان دادن مراحل توسعه استفاده میشود (a=alpha, b=beta, rc=release candidate).
- این الگو برای مراحل قبل از انتشار نهایی محصول بهکار میرود.
### 7. Combined Versioning
- فرمت: ترکیبی از الگوهای مختلف، مثل
1.0.0-alpha
, 2024.1.0
- مثال:
1.0.0-alpha
, 2024.1.0
- قواعد:
- ترکیبی از ورژنبندی تقویمی، ترتیبی، و یا الفبایی به منظور مشخص کردن نوع تغییرات و زمان انتشار.
### 8. Dot Notation Versioning
- فرمت:
1.0
, 1.1
, 2.0
- مثال:
1.0
, 2.1
- قواعد:
- هر قسمت نشاندهنده یک سطح از تغییرات است، که میتواند مشابه Semantic Versioning باشد، اما با عمق کمتر.
- بیشتر برای پروژههای ساده استفاده میشود.
### 9. Major.Minor Schema
- فرمت:
MAJOR.MINOR
- مثال:
3.5
- قواعد:
- به جای استفاده از PATCH، فقط MAJOR و MINOR مشخص میشوند.
- اغلب برای نرمافزارهایی استفاده میشود که نیاز به پیچیدگی زیادی در ورژنبندی ندارند.
هر کدام از این الگوها بسته به نیاز پروژه و نوع نرمافزار میتواند مورد استفاده قرار گیرد. استفاده درست از الگوی ورژنبندی میتواند به شفافیت در مدیریت نسخهها و بهبود فرآیند توسعه و انتشار نرمافزار کمک کند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍8🔥2❤1🍾1
🔵 عنوان مقاله
From Zero to Production: Go's Journey at Google
🟢 خلاصه مقاله:
مقالهای که خواندید، خاطرات و تجربیات نویسندهای است که به مدت نه سال به عنوان مهندس SRE در شرکت گوگل فعالیت داشتهاست. او در این مقاله به بیان داستانی میپردازد که چگونه زبان برنامهنویسی Go در طی سالهای اولیهی توسعه و پذیرش آن در گوگل رشد کرده است. نویسنده همچنین به برخی از پیشزمینههای جالب توجهی اشاره میکند که پیشتر در جاهای دیگر ذکر نشدهاند. توسط اشتراکگذاری این داستانها و تجربیات، نویسنده سعی در نمایش تأثیر زبان Go و نحوه تطبیق و پذیرش آن در محیطهای فنی بزرگ مانند گوگل دارد. این مقاله نه تنها به علاقهمندان و توسعهدهندگان Go، بلکه به کسانی که علاقه به فهمیدن فرهنگ و رویههای درون گوگل دارند نیز خطاب میکند.
🟣لینک مقاله:
https://i-admin.cetico.org/posts/early-days-golang-google/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
From Zero to Production: Go's Journey at Google
🟢 خلاصه مقاله:
مقالهای که خواندید، خاطرات و تجربیات نویسندهای است که به مدت نه سال به عنوان مهندس SRE در شرکت گوگل فعالیت داشتهاست. او در این مقاله به بیان داستانی میپردازد که چگونه زبان برنامهنویسی Go در طی سالهای اولیهی توسعه و پذیرش آن در گوگل رشد کرده است. نویسنده همچنین به برخی از پیشزمینههای جالب توجهی اشاره میکند که پیشتر در جاهای دیگر ذکر نشدهاند. توسط اشتراکگذاری این داستانها و تجربیات، نویسنده سعی در نمایش تأثیر زبان Go و نحوه تطبیق و پذیرش آن در محیطهای فنی بزرگ مانند گوگل دارد. این مقاله نه تنها به علاقهمندان و توسعهدهندگان Go، بلکه به کسانی که علاقه به فهمیدن فرهنگ و رویههای درون گوگل دارند نیز خطاب میکند.
🟣لینک مقاله:
https://i-admin.cetico.org/posts/early-days-golang-google/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
i-admin.cetico.org
From Ground Zero to Production: Go's Journey at Google
An exploration of Go's adoption at Google from the perspective of an SRE and early adopter, detailing the challenges and milestones of integrating Go into production systems.
👍6🍾1
🔵 عنوان مقاله
How Render Enforces Access Controls with Go Generics
🟢 خلاصه مقاله:
ا Render یک پلتفرم مجازیسازی مدرن با یک سیستم نقش برای کاربران و مدیران است تا امکانات و مجوزهای مشخص و معینی داشته باشند. مهندسین Render به دنبال این بودند که از طریق استفاده از زبان برنامهنویسی Go، تضمینهایی در زمان کامپایل دریافت کنند تا احتمال بروز نواقص و حفرههای امنیتی خطرناک در سیستم نقش آنها کاهش یابد. این کار باعث میشود که سطح امنیت و دقت در نحوه اختصاص دادن دسترسیها و مجوزها در سیستم بالا رود و از وقوع خطاهای احتمالی به شدت کاهش دهد. در نهایت، این استراتژی کمک میکند تا پلتفرم Render به طور مؤثرتری بتواند خدمات میزبانی و استقرار را با ایمنی و قابلیت اطمینان بیشتری ارائه دهد.
🟣لینک مقاله:
https://render.com/blog/how-render-enforces-access-controls-with-go-generics
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How Render Enforces Access Controls with Go Generics
🟢 خلاصه مقاله:
ا Render یک پلتفرم مجازیسازی مدرن با یک سیستم نقش برای کاربران و مدیران است تا امکانات و مجوزهای مشخص و معینی داشته باشند. مهندسین Render به دنبال این بودند که از طریق استفاده از زبان برنامهنویسی Go، تضمینهایی در زمان کامپایل دریافت کنند تا احتمال بروز نواقص و حفرههای امنیتی خطرناک در سیستم نقش آنها کاهش یابد. این کار باعث میشود که سطح امنیت و دقت در نحوه اختصاص دادن دسترسیها و مجوزها در سیستم بالا رود و از وقوع خطاهای احتمالی به شدت کاهش دهد. در نهایت، این استراتژی کمک میکند تا پلتفرم Render به طور مؤثرتری بتواند خدمات میزبانی و استقرار را با ایمنی و قابلیت اطمینان بیشتری ارائه دهد.
🟣لینک مقاله:
https://render.com/blog/how-render-enforces-access-controls-with-go-generics
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Render
How Render Enforces Access Controls with Go Generics
Learn how Render uses Go Generics to enforce access controls and prevent privilege escalation in project environments. Discover how compile-time guarantees ensure security.
🔵 عنوان مقاله
elem-go: A Type-Safe Way to Create and Manipulate HTML Elements
🟢 خلاصه مقاله:
مقالهی مورد بررسی به معرفی ورژن 0.25.0 یک کتابخانه برنامهنویسی به نام Go اشاره دارد که امکان ساخت المانهای HTML از طریق کد Go را به صورت ایمن نوعبندی شده فراهم میکند. این ویژگی به توسعه دهندگان کمک میکند تا با المانها، خصوصیات و ویژگیها در زبان برنامهنویسی Go بدون نیاز به کد نویسی مستقیم HTML به طور مؤثری کار کنند. همچنین، این ورژن جدید قابلیتی با نام StyleManager اضافه کرده است که امکان مدیریت استایلهای CSS به شکل برنامهای را میدهد. برای درک بهتر، مقاله به نمونهکدهایی اشاره دارد که نحوهی استفاده از این ویژگیهای جدید را نشان میدهند. این ویژگیها امکان پذیر ساختن توسعهی وبسایتها را به شیوهای کارآمد و سریعتر فراهم میکند.
🟣لینک مقاله:
https://github.com/chasefleming/elem-go
➖➖➖➖➖➖➖➖
👑 @gopher_academy
elem-go: A Type-Safe Way to Create and Manipulate HTML Elements
🟢 خلاصه مقاله:
مقالهی مورد بررسی به معرفی ورژن 0.25.0 یک کتابخانه برنامهنویسی به نام Go اشاره دارد که امکان ساخت المانهای HTML از طریق کد Go را به صورت ایمن نوعبندی شده فراهم میکند. این ویژگی به توسعه دهندگان کمک میکند تا با المانها، خصوصیات و ویژگیها در زبان برنامهنویسی Go بدون نیاز به کد نویسی مستقیم HTML به طور مؤثری کار کنند. همچنین، این ورژن جدید قابلیتی با نام StyleManager اضافه کرده است که امکان مدیریت استایلهای CSS به شکل برنامهای را میدهد. برای درک بهتر، مقاله به نمونهکدهایی اشاره دارد که نحوهی استفاده از این ویژگیهای جدید را نشان میدهند. این ویژگیها امکان پذیر ساختن توسعهی وبسایتها را به شیوهای کارآمد و سریعتر فراهم میکند.
🟣لینک مقاله:
https://github.com/chasefleming/elem-go
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - chasefleming/elem-go: Type-safe Go library for creating and manipulating HTML elements (with htmx helpers).
Type-safe Go library for creating and manipulating HTML elements (with htmx helpers). - chasefleming/elem-go
👍3❤1🍾1
🔵 عنوان مقاله
makefile-graph: Turn a Makefile into a Graph
🟢 خلاصه مقاله:
این مقاله به بررسی و توضیح ابزاری پرداخته است که هم به عنوان کتابخانه و هم به عنوان ابزار خط فرمان (CLI) قابل استفاده است. این ابزار، فایلهای makefile را تجزیه کرده و نمودارهایی را تولید میکند که روابط بین هدفهای (targets) مختلف را نشان میدهند. نمودارهای تولید شده توسط ابزار dot متعلق به Graphviz، رندر میشوند. این فرآیند به توسعهدهندگان کمک میکند تا درک بهتری از وابستگیها و تعاملات بین اجزاء مختلف در پروژههای بزرگ نرمافزاری داشته باشند و مدیریت وابستگیهای پروژه را بهبود ببخشند. این ابزار به طور خاص برای کاربرانی طراحی شده که به بهینهسازی و دقت در مدیریت تکالیف و پروژههای خود نیاز دارند.
🟣لینک مقاله:
https://github.com/dnaeon/makefile-graph
➖➖➖➖➖➖➖➖
👑 @gopher_academy
makefile-graph: Turn a Makefile into a Graph
🟢 خلاصه مقاله:
این مقاله به بررسی و توضیح ابزاری پرداخته است که هم به عنوان کتابخانه و هم به عنوان ابزار خط فرمان (CLI) قابل استفاده است. این ابزار، فایلهای makefile را تجزیه کرده و نمودارهایی را تولید میکند که روابط بین هدفهای (targets) مختلف را نشان میدهند. نمودارهای تولید شده توسط ابزار dot متعلق به Graphviz، رندر میشوند. این فرآیند به توسعهدهندگان کمک میکند تا درک بهتری از وابستگیها و تعاملات بین اجزاء مختلف در پروژههای بزرگ نرمافزاری داشته باشند و مدیریت وابستگیهای پروژه را بهبود ببخشند. این ابزار به طور خاص برای کاربرانی طراحی شده که به بهینهسازی و دقت در مدیریت تکالیف و پروژههای خود نیاز دارند.
🟣لینک مقاله:
https://github.com/dnaeon/makefile-graph
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - dnaeon/makefile-graph: Turn your Makefile into a graph
Turn your Makefile into a graph. Contribute to dnaeon/makefile-graph development by creating an account on GitHub.
👍4🔥2🍾1
🔵 عنوان مقاله
Go Event-Driven: Your Unfair Advantage to Tame Chaos
🟢 خلاصه مقاله:
مقاله مورد نظر به بحث در مورد چالشهایی که با پیادهسازی معماری میکروسرویسها به وجود آمده است پرداخته و راهکارهایی را برای مقابله با این مشکلات ارائه میدهد. با وعدههای اولیهی سادگی که میکروسرویسها داده بودند، در عمل شاهد پیچیدگیهای بیشتری در سیستمها شدیم، مانند خرابیهای زنجیرهای و گلوگاههای عملکردی. مقاله توضیح میدهد که چگونه الگوهای آزموده شده و صحیح میتوانند به ایجاد سرویسهایی کاملاً مستقل و قابل مقیاس کمک کنند. این رویکردها شامل استراتژیهای طراحی و توسعهی مؤثرتری است که به مدیریت بهتر تعاملات بین سرویسها و بهبود عملکرد کلی سیستم کمک میکنند. در نهایت، این مقاله به خوانندگان توصیه میکند تا از پس افتادگی جلوگیری کنند و با یادگیری و اجرای این الگوها، به جلو حرکت کنند.
🟣لینک مقاله:
https://threedots.tech/event-driven/?utm_source=golang-weekly
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go Event-Driven: Your Unfair Advantage to Tame Chaos
🟢 خلاصه مقاله:
مقاله مورد نظر به بحث در مورد چالشهایی که با پیادهسازی معماری میکروسرویسها به وجود آمده است پرداخته و راهکارهایی را برای مقابله با این مشکلات ارائه میدهد. با وعدههای اولیهی سادگی که میکروسرویسها داده بودند، در عمل شاهد پیچیدگیهای بیشتری در سیستمها شدیم، مانند خرابیهای زنجیرهای و گلوگاههای عملکردی. مقاله توضیح میدهد که چگونه الگوهای آزموده شده و صحیح میتوانند به ایجاد سرویسهایی کاملاً مستقل و قابل مقیاس کمک کنند. این رویکردها شامل استراتژیهای طراحی و توسعهی مؤثرتری است که به مدیریت بهتر تعاملات بین سرویسها و بهبود عملکرد کلی سیستم کمک میکنند. در نهایت، این مقاله به خوانندگان توصیه میکند تا از پس افتادگی جلوگیری کنند و با یادگیری و اجرای این الگوها، به جلو حرکت کنند.
🟣لینک مقاله:
https://threedots.tech/event-driven/?utm_source=golang-weekly
➖➖➖➖➖➖➖➖
👑 @gopher_academy
threedots.tech
Go Event-Driven Training
Learn to build extremely scalable and resilient event-driven backend systems in Go. Go Event-Driven provides hands-on training with real-world projects to master asynchronous processing, message brokers, CQRS, sagas and more. Level up your Go skills with…
👍5
22 شهریور روز جهانی برنامه نویسه
مبارک همه ی برنامه نویس های گذشته، حال و آینده
➖➖➖➖➖➖➖➖
👑 @gopher_academy
مبارک همه ی برنامه نویس های گذشته، حال و آینده
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🍾10❤6
🔵 عنوان مقاله
Streamline Your Product Delivery with monday dev
🟢 خلاصه مقاله:
مقاله در مورد ابزاری به نام "monday dev" صحبت میکند که فرایند تولید و عرضه محصولات را سریعتر و سادهتر میکند. این ابزار، که در یک محیط یکپارچه کار میکند، از مرحله ایدهپردازی تا راهاندازی محصول، تمامی جنبههای مورد نیاز را پوشش میدهد. "monday dev" به کاربران اجازه میدهد تا تمامی مراحل توسعه محصول را در یک مکان کنترل و مدیریت کنند، که منجر به بهبود چشمگیر در بهرهوری و کاهش زمان عرضه محصول به بازار میشود. این سیستم بر پایه فراهم آوردن ابزارهای همهجانبه و ادغام شده برای توسعهدهندگان و تیمهای محصول است تا بتوانند با کارآیی بیشتری به اهداف خود برسند.
🟣لینک مقاله:
https://golangweekly.com/link/159561/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Streamline Your Product Delivery with monday dev
🟢 خلاصه مقاله:
مقاله در مورد ابزاری به نام "monday dev" صحبت میکند که فرایند تولید و عرضه محصولات را سریعتر و سادهتر میکند. این ابزار، که در یک محیط یکپارچه کار میکند، از مرحله ایدهپردازی تا راهاندازی محصول، تمامی جنبههای مورد نیاز را پوشش میدهد. "monday dev" به کاربران اجازه میدهد تا تمامی مراحل توسعه محصول را در یک مکان کنترل و مدیریت کنند، که منجر به بهبود چشمگیر در بهرهوری و کاهش زمان عرضه محصول به بازار میشود. این سیستم بر پایه فراهم آوردن ابزارهای همهجانبه و ادغام شده برای توسعهدهندگان و تیمهای محصول است تا بتوانند با کارآیی بیشتری به اهداف خود برسند.
🟣لینک مقاله:
https://golangweekly.com/link/159561/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
monday.com
monday dev | Develop with precision and speed
Plan roadmaps, manage sprints, and release products fast - on one flexible platform
👍4
🔵 عنوان مقاله
Ergo 3.0: An Actor-Based Framework for Go
🟢 خلاصه مقاله:
این مقاله به بررسی و پیادهسازی ایدهها و الگوهای طراحی موجود در دنیای برنامهنویسی Erlang به زبان Go میپردازد. Erlang برای مدیریت برنامههای کنار هم و همزمان با قابلیت اطمینان بالا شهرت دارد، و این مقاله تلاش میکند تا برخی از این ویژگیها را به زبان Go منتقل کند. از جمله الگوهای مورد بررسی، مدل ارسال پیام و نظارت بر فرآیندها است. Go که یک زبان برنامهنویسی توسط Google توسعه دادهشده است، به دلیل اجرای موثر همزمانی و سهولت استفاده، انتخاب مناسبی برای این تطبیق است. مقاله همچنین جزئیات مورد نیاز برای پیادهسازی موثر این الگوها در Go را ارائه میدهد و موانع احتمالی و راهحلهای مربوط به عملکرد و توزیع را مورد بحث قرار میدهد. این تحلیل نشان میدهد که چگونه میتوان از قدرت هر دو زبان برای ساخت برنامههای بهتر و قابل اعتمادتر استفاده کرد.
🟣لینک مقاله:
https://golangweekly.com/link/159566/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Ergo 3.0: An Actor-Based Framework for Go
🟢 خلاصه مقاله:
این مقاله به بررسی و پیادهسازی ایدهها و الگوهای طراحی موجود در دنیای برنامهنویسی Erlang به زبان Go میپردازد. Erlang برای مدیریت برنامههای کنار هم و همزمان با قابلیت اطمینان بالا شهرت دارد، و این مقاله تلاش میکند تا برخی از این ویژگیها را به زبان Go منتقل کند. از جمله الگوهای مورد بررسی، مدل ارسال پیام و نظارت بر فرآیندها است. Go که یک زبان برنامهنویسی توسط Google توسعه دادهشده است، به دلیل اجرای موثر همزمانی و سهولت استفاده، انتخاب مناسبی برای این تطبیق است. مقاله همچنین جزئیات مورد نیاز برای پیادهسازی موثر این الگوها در Go را ارائه میدهد و موانع احتمالی و راهحلهای مربوط به عملکرد و توزیع را مورد بحث قرار میدهد. این تحلیل نشان میدهد که چگونه میتوان از قدرت هر دو زبان برای ساخت برنامههای بهتر و قابل اعتمادتر استفاده کرد.
🟣لینک مقاله:
https://golangweekly.com/link/159566/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - ergo-services/ergo: An actor-based Framework with network transparency for creating event-driven architecture in Golang.…
An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies. - GitHub - ergo-services/ergo: An actor-based Framework ...
👍5
چجوری کامیت های تمیز و مفهومی بنویسم؟!
کامیت به عنوان اجزای سازنده, کار یک برنامه نویس عمل می کنند. آنها اگر که به درستی نوشته شوند، ارزش قابل توجهی دارند. یک پیام commit به خوبی نوشته شده ضروری است زیرا آنها زمینه را فراهم می کنند، در غیر این صورت یک پیام commit در وهله اول مورد نیاز نخواهد بود.
آقای پیتر هاترر میگه:
یک کامیت خوب نشان می دهد که آیا یک توسعه دهنده یک همکار خوب است .
خب، کامیت های شما باید تمیز و قابل درک باشه:
به عنوان مثال اگر میخواید در UI تغییراتی اعمال کنید، کامیت رو به صورت زیر بنویسید:
git commit -m "Enhance UI: Header and sidebar Improvements"
یا
git commit -m " fix: prevent racing of requests"
مورد بعدی سابجکت لاین نباید از ۵۰ کاراکتر بیشتر باشد.
فقط کلمه اول رو capital بنویسید.
نیازی به قرار دادن نقطه در اخر پیام نیست.
پیام کامیت رو به صورت امری بنویسد نه به صورت گذشته.
توضیح دهید چرا و چی، نه چطور.
DevTwitter | <Mohammad Abdorrahmani/>
➖➖➖➖➖➖➖➖
👑 @gopher_academy
کامیت به عنوان اجزای سازنده, کار یک برنامه نویس عمل می کنند. آنها اگر که به درستی نوشته شوند، ارزش قابل توجهی دارند. یک پیام commit به خوبی نوشته شده ضروری است زیرا آنها زمینه را فراهم می کنند، در غیر این صورت یک پیام commit در وهله اول مورد نیاز نخواهد بود.
آقای پیتر هاترر میگه:
یک کامیت خوب نشان می دهد که آیا یک توسعه دهنده یک همکار خوب است .
خب، کامیت های شما باید تمیز و قابل درک باشه:
به عنوان مثال اگر میخواید در UI تغییراتی اعمال کنید، کامیت رو به صورت زیر بنویسید:
git commit -m "Enhance UI: Header and sidebar Improvements"
یا
git commit -m " fix: prevent racing of requests"
مورد بعدی سابجکت لاین نباید از ۵۰ کاراکتر بیشتر باشد.
فقط کلمه اول رو capital بنویسید.
نیازی به قرار دادن نقطه در اخر پیام نیست.
پیام کامیت رو به صورت امری بنویسد نه به صورت گذشته.
توضیح دهید چرا و چی، نه چطور.
DevTwitter | <Mohammad Abdorrahmani/>
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍7
🔵 عنوان مقاله
A Small Mandelbrot Set Renderer in Go
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته است به صورت مجزا و گام به گام به بررسی چگونگی ایجاد یک موتور رندر کردن فرکتال ساده با استفاده از زبان برنامهنویسی Go پرداخته است. این موتور قابلیت انطباق و اجرا شدن تحت وب از طریق WebAssembly را دارا است که این امکان را به کاربران میدهد تا برنامههای بهینهتر و سریعتری را در محیط وب اجرا کنند. کد مرتبط با این پروژه در یک مخزن GitHub قابل دسترسی است. این مقاله ممکن است به عنوان یک راهنمای مفید برای توسعهدهندگانی که به دنبال یادگیری ترکیب این فناوریها و ایجاد برنامههای کاربردی تعاملی تر و پویاتر هستند، عمل کند.
🟣لینک مقاله:
https://golangweekly.com/link/159579/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
A Small Mandelbrot Set Renderer in Go
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته است به صورت مجزا و گام به گام به بررسی چگونگی ایجاد یک موتور رندر کردن فرکتال ساده با استفاده از زبان برنامهنویسی Go پرداخته است. این موتور قابلیت انطباق و اجرا شدن تحت وب از طریق WebAssembly را دارا است که این امکان را به کاربران میدهد تا برنامههای بهینهتر و سریعتری را در محیط وب اجرا کنند. کد مرتبط با این پروژه در یک مخزن GitHub قابل دسترسی است. این مقاله ممکن است به عنوان یک راهنمای مفید برای توسعهدهندگانی که به دنبال یادگیری ترکیب این فناوریها و ایجاد برنامههای کاربردی تعاملی تر و پویاتر هستند، عمل کند.
🟣لینک مقاله:
https://golangweekly.com/link/159579/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍4
🔵 عنوان مقاله
go-astiav: ffmpeg and libav Bindings for Go
🟢 خلاصه مقاله:
مقالهی مورد بحث تلاش دارد تا با ارائه رابط برنامهنویسی (API) بومی و معطوف به زبان برنامهنویسی Go، امکان استفاده آسانتر و کارآمدتر از قابلیتهای مختلف FFmpeg در زمینه کار با مالتیمدیا را فراهم آورد. این API فقط با نسخه 7 FFmpeg سازگار است و هدف از آن، بهبود تعامل میان برنامهنویسان Go و این ابزار قدرتمند پردازش مدیا است. با استفاده از این API، برنامهنویسان میتوانند به روشی مؤثرتر و با دستوراتی که متناسب با ساختار و فرهنگ زبان Go طراحی شدهاند، از قابلیتهای FFmpeg بهره ببرند. این امکان باعث میشود که کار با مالتیمدیا در محیط Go به شکلی شفاف و منسجم تر انجام پذیرد، ضمن آنکه سرعت و کارایی برنامههای مرتبط با پردازش مدیا را نیز افزایش دهد.
🟣لینک مقاله:
https://golangweekly.com/link/159571/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go-astiav: ffmpeg and libav Bindings for Go
🟢 خلاصه مقاله:
مقالهی مورد بحث تلاش دارد تا با ارائه رابط برنامهنویسی (API) بومی و معطوف به زبان برنامهنویسی Go، امکان استفاده آسانتر و کارآمدتر از قابلیتهای مختلف FFmpeg در زمینه کار با مالتیمدیا را فراهم آورد. این API فقط با نسخه 7 FFmpeg سازگار است و هدف از آن، بهبود تعامل میان برنامهنویسان Go و این ابزار قدرتمند پردازش مدیا است. با استفاده از این API، برنامهنویسان میتوانند به روشی مؤثرتر و با دستوراتی که متناسب با ساختار و فرهنگ زبان Go طراحی شدهاند، از قابلیتهای FFmpeg بهره ببرند. این امکان باعث میشود که کار با مالتیمدیا در محیط Go به شکلی شفاف و منسجم تر انجام پذیرد، ضمن آنکه سرعت و کارایی برنامههای مرتبط با پردازش مدیا را نیز افزایش دهد.
🟣لینک مقاله:
https://golangweekly.com/link/159571/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - asticode/go-astiav: Golang ffmpeg and libav C bindings
Golang ffmpeg and libav C bindings. Contribute to asticode/go-astiav development by creating an account on GitHub.
کامپایلر Go (گولنگ) با استفاده از زبان Go توسعه داده شده است. در واقع، نسخههای ابتدایی کامپایلر Go ابتدا به زبان C نوشته شده بود، اما پس از آن نسخههای بعدی کامپایلر به زبان Go بازنویسی شدند تا پروژه بهطور کامل خود-میزبان (self-hosted) باشد.
self-hosting به این معنی است که کامپایلر یک زبان برنامهنویسی با همان زبان برنامهنویسی نوشته شده است، و این موضوع برای بسیاری از زبانهای برنامهنویسی مانند Go یک دستاورد مهم محسوب میشود.
در حال حاضر، کامپایلر Go از یک ابزار به نام
➖➖➖➖➖➖➖➖
👑 @gopher_academy
self-hosting به این معنی است که کامپایلر یک زبان برنامهنویسی با همان زبان برنامهنویسی نوشته شده است، و این موضوع برای بسیاری از زبانهای برنامهنویسی مانند Go یک دستاورد مهم محسوب میشود.
در حال حاضر، کامپایلر Go از یک ابزار به نام
gc
استفاده میکند که با Go نوشته شده است و در پروژه رسمی Go موجود است.➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔥13👍6
🔴 مدیریت حافظه در زبان های برنامه نویسی مدرن
🟢Introduction to Memory management
🟡 https://t.iss.one/gopher_academy/778
🟢What is it?
🟡 https://t.iss.one/gopher_academy/779
🟢Stack
🟡 https://t.iss.one/gopher_academy/780
🟢Stack & Heap visualized
🟡 https://t.iss.one/gopher_academy/781
🟢Heap
🟡 https://t.iss.one/gopher_academy/782
🟢Why is it important?
🟡 https://t.iss.one/gopher_academy/783
🟢Different approaches?
🟡 https://t.iss.one/gopher_academy/784
🟢Manual memory management
🟡 https://t.iss.one/gopher_academy/787
🟢Garbage collection(GC)
🟡 https://t.iss.one/gopher_academy/788
🟢Garbage collection visualized
🟡 https://t.iss.one/gopher_academy/789
🟢Resource Acquisition is Initialization (RAII)
🟡 https://t.iss.one/gopher_academy/791
🟢Automatic Reference Counting(ARC)
🟡 https://t.iss.one/gopher_academy/792
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟢Introduction to Memory management
🟡 https://t.iss.one/gopher_academy/778
🟢What is it?
🟡 https://t.iss.one/gopher_academy/779
🟢Stack
🟡 https://t.iss.one/gopher_academy/780
🟢Stack & Heap visualized
🟡 https://t.iss.one/gopher_academy/781
🟢Heap
🟡 https://t.iss.one/gopher_academy/782
🟢Why is it important?
🟡 https://t.iss.one/gopher_academy/783
🟢Different approaches?
🟡 https://t.iss.one/gopher_academy/784
🟢Manual memory management
🟡 https://t.iss.one/gopher_academy/787
🟢Garbage collection(GC)
🟡 https://t.iss.one/gopher_academy/788
🟢Garbage collection visualized
🟡 https://t.iss.one/gopher_academy/789
🟢Resource Acquisition is Initialization (RAII)
🟡 https://t.iss.one/gopher_academy/791
🟢Automatic Reference Counting(ARC)
🟡 https://t.iss.one/gopher_academy/792
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍10
❤3
🍾3