ch
Feedback
Gopher Academy

Gopher Academy

前往频道在 Telegram
3 801
订阅者
-124 小时
+37
+430
吸引订阅者
六月 '26
六月 '26
+27
在0个频道中
五月 '26
+45
在0个频道中
Get PRO
四月 '26
+24
在5个频道中
Get PRO
三月 '26
+10
在0个频道中
Get PRO
二月 '26
+79
在1个频道中
Get PRO
一月 '26
+29
在8个频道中
Get PRO
十二月 '25
+103
在7个频道中
Get PRO
十一月 '25
+72
在0个频道中
Get PRO
十月 '25
+598
在1个频道中
Get PRO
九月 '25
+61
在6个频道中
Get PRO
八月 '25
+84
在9个频道中
Get PRO
七月 '25
+99
在10个频道中
Get PRO
六月 '25
+47
在7个频道中
Get PRO
五月 '25
+45
在1个频道中
Get PRO
四月 '25
+63
在8个频道中
Get PRO
三月 '25
+90
在8个频道中
Get PRO
二月 '25
+91
在3个频道中
Get PRO
一月 '25
+96
在3个频道中
Get PRO
十二月 '24
+113
在7个频道中
Get PRO
十一月 '24
+94
在2个频道中
Get PRO
十月 '24
+116
在4个频道中
Get PRO
九月 '24
+138
在4个频道中
Get PRO
八月 '24
+101
在2个频道中
Get PRO
七月 '24
+187
在5个频道中
Get PRO
六月 '24
+173
在11个频道中
Get PRO
五月 '24
+301
在2个频道中
Get PRO
四月 '24
+185
在3个频道中
Get PRO
三月 '24
+172
在3个频道中
Get PRO
二月 '24
+154
在0个频道中
Get PRO
一月 '24
+207
在0个频道中
Get PRO
十二月 '23
+215
在4个频道中
Get PRO
十一月 '23
+77
在2个频道中
Get PRO
十月 '23
+79
在0个频道中
Get PRO
九月 '23
+70
在0个频道中
Get PRO
八月 '23
+108
在0个频道中
Get PRO
七月 '23
+68
在0个频道中
Get PRO
六月 '23
+106
在0个频道中
Get PRO
五月 '23
+211
在0个频道中
Get PRO
四月 '23
+142
在0个频道中
Get PRO
三月 '23
+56
在0个频道中
Get PRO
二月 '23
+70
在0个频道中
Get PRO
一月 '23
+62
在0个频道中
Get PRO
十二月 '22
+14
在0个频道中
Get PRO
十一月 '22
+24
在0个频道中
Get PRO
十月 '22
+15
在0个频道中
Get PRO
九月 '22
+78
在0个频道中
Get PRO
八月 '22
+47
在0个频道中
Get PRO
七月 '22
+36
在0个频道中
Get PRO
六月 '22
+26
在0个频道中
Get PRO
五月 '22
+27
在0个频道中
Get PRO
四月 '22
+14
在0个频道中
Get PRO
三月 '22
+21
在0个频道中
Get PRO
二月 '22
+13
在0个频道中
Get PRO
一月 '22
+24
在0个频道中
Get PRO
十二月 '21
+51
在0个频道中
Get PRO
十一月 '21
+107
在0个频道中
Get PRO
十月 '21
+13
在0个频道中
Get PRO
九月 '21
+31
在0个频道中
Get PRO
八月 '21
+29
在0个频道中
Get PRO
七月 '21
+41
在0个频道中
Get PRO
六月 '21
+29
在0个频道中
Get PRO
五月 '21
+26
在0个频道中
Get PRO
四月 '21
+49
在0个频道中
Get PRO
三月 '21
+376
在0个频道中
日期
订阅者增长
提及
频道
12 六月+1
11 六月+1
10 六月+3
09 六月+2
08 六月+2
07 六月+1
06 六月+4
05 六月+1
04 六月+3
03 六月0
02 六月+5
01 六月+4
频道帖子
🔵 عنوان مقاله Testing: The Art of Unlearning 🟢 خلاصه مقاله: آزمایش: هنر فراموش کردن یادگیری‌های قبلی فرضیه‌سازی همیشه بخش مهمی از فرآیند کشف و نوآوری بوده است، اما اغلب مانع از دیدن حقیقت‌های جدید می‌شود. من در طول دوران کاری‌ام در حوزه کنترل کیفیت، همواره به این موضوع فکر می‌کردم که چگونه باورهای پیش‌فرض می‌توانند اشتباهات زیادی را رقم بزنند. در مقاله‌ای جذاب و تفکر برانگیز، جف نایمن به موضوع مهمی می‌پردازد و نشان می‌دهد چرا باید آموزش‌های قبلی را کنار بگذاریم و نگاهی نو به آزمایش‌ها داشته باشیم. او با مقایسه تاریخ علم و روند تست‌زنی، به خواننده نشان می‌دهد که در علم و فناوری، انکار فرضیه‌های قدیمی اغلب کلیدی‌ترین مرحله برای پیشرفت‌های بزرگ است. در این مقاله، نایمن بر اهمیت روبه‌رو شدن با فرضیات نادرست تأکید می‌کند و به ما یاد می‌دهد که در مسیر رشد و نوآوری، باید آماده باشیم تا مفروضات قبلی را زیر سوال ببریم و آزمایش‌های جدید را با دیدی باز انجام دهیم. این نگرش، نه تنها در علم بلکه در کیفیت کار و توسعه راهکارهای نوین، نقش حیاتی دارد و می‌تواند منجر به کشف‌های بزرگ و اصلاح روندهای قدیمی شود. در نتیجه، تمرین کنار گذاشتن آموزش‌های قبلی و اشتباهات گذشته، کلید موفقیت در هر حوزه‌ای است که به دنبال نوآوری و پیشرفت است. این تفکر به ما کمک می‌کند تا خطاهای تاریخ را تصحیح کرده و راه‌های جدیدی برای حل مشکلات پیدا کنیم، بدون اینکه تحت تاثیر تفسیر‌های منسوخ قرار بگیریم. #آزمایش #یادگیری_جدید #نوآوری #پیشرفت 🟣لینک مقاله: https://cur.at/wUCZclf?m=web ➖➖➖➖➖➖➖➖ 👑 @software_Labdon

2
🚀 دنبال یک VPN سریع، پایدار و امن هستید؟ این فرصت را از دست ندهید! ❤️ با کد تخفیف اختصاصی Labdon، ۲۰٪ تخفیف دریافت کنید. ❤️
🚀 دنبال یک VPN سریع، پایدار و امن هستید؟ این فرصت را از دست ندهید! ❤️ با کد تخفیف اختصاصی Labdon، ۲۰٪ تخفیف دریافت کنید. ❤️ ✅ مناسب برای برنامه‌نویسان و توسعه‌دهندگان ✅ عالی برای وب‌گردی و شبکه‌های اجتماعی ✅ سرعت بالا و پینگ مناسب ✅ امنیت و پایداری فوق‌العاده ✅ سازگار با انواع دستگاه‌ها 🎁 همین حالا سرویس خود را با تخفیف ویژه تهیه کنید. 👇🐝👇🐝👇🐝👇 https://t.me/SiftalNetBot
177
3
https://www.zoomit.ir/ai-articles/461080-microsoft-ai-mustafa-suleyman-claude-consciousness/?utm_source=Telegram
262
4
🍎 اگر به دنیای Apple علاقه‌مندی، این کانال رو از دست نده! آخرین و مهم‌ترین اخبار و رویدادهای اپل: 📱 iPhone و iOS 💻 MacBook و macOS ⌚ Apple Watch 🎧 AirPods و سرویس‌های اپل 🚀 تحلیل رویدادها، محصولات و آپدیت‌های جدید 📰 خلاصه روزانه مهم‌ترین اخبار دنیای Apple 👇👇👇👇 @mac_labdon ━━━━━━━━━━━━━━ 🔥 اگر اخبار Google و Android رو دنبال می‌کنی، این کانال برای توئه! جدیدترین و داغ‌ترین خبرها از: 📱 گوشی‌های سامسونگ، شیائومی و Google Pixel 🤖 Android و جدیدترین آپدیت‌ها 🏠 Google Home و گجت‌های هوشمند 🧩 اپلیکیشن‌ها و سرویس‌های گوگل 💻 Chromebook و اکوسیستم Google 🚀 معرفی محصولات، تحلیل‌ها و اخبار روز همه‌چیز درباره دنیای گوگل و اندروید در یک کانال: 👇👇👇👇 @google_labdon
317
5
🚀 بهترین‌های دنیای Front-End در یک کانال! اگر توسعه‌دهنده فرانت‌اند هستی یا به دنیای وب علاقه داری، این کانال رو از دست نده. 🔥 به‌روزترین اخبار، آموزش‌ها و مقالات تخصصی: ⚡ JavaScript (JS) 🔷 TypeScript (TS) ⚛️ React 🅰️ Angular 💚 Vue.js 🎨 CSS3 📚 معرفی ابزارهای جدید 🚀 بررسی ترندهای روز Front-End 💡 نکات حرفه‌ای و Best Practiceها 📰 مهم‌ترین اخبار اکوسیستم وب همه‌چیز برای به‌روز ماندن در دنیای Front-End، در یک جا! 👇👇👇👇 @frontend_labdon
276
6
🥇 اگر عاشق تکنولوژی‌های روز دنیا هستی، اینجا هر روز تازه‌ترین و مهم‌ترین مطالب درباره:👇 🛰 فضا و اکتشافات فضایی و تکنولوژی های مرتبط فضای ⚡️ برق و انرژی‌های نو 🔌 دنیای الکترونیک و گجت‌های هوشمند و انواع پهپاد ها 🚗 خودروهای برقی و آینده حمل‌ونقل همه چیز به‌صورت کوتاه، خلاصه و کاملاً قابل‌فهم👇👇 🥈 @futurepulse_persian
254
7
🔵 عنوان مقاله Validate 1.6: A Generic Data Validation and Filtering Library 🟢 خلاصه مقاله: در دنیای برنامه‌نویسی، صحت و اعتبارسنجی داده‌ها از اهمیت بالایی برخوردار است. کتابخانه Validate 1.6 ابزاری قدرتمند و چندمنظوره برای انجام این وظیفه فراهم کرده است. این کتابخانه قابلیت اعتبارسنجی نقشه‌ها، ساختارها و درخواست‌های HTTP را دارد و می‌تواند پیام‌های خطای سفارشی نیز به آنها افزود. علاوه بر این، با بیش از صدvalidator و filter داخلی، کاربران می‌توانند عملیات‌هایی مانند تغییر حالت حروف، تبدیل نوع داده، و فرار دادن متن را به آسانی انجام دهند. مستندات این کتابخانه پر از نمونه‌های عملی است که فرآیند استفاده از آن را بسیار ساده و قابل فهم می‌کند، بنابراین برای توسعه‌دهندگان ابزار مناسبی است که نیازهای اعتبارسنجی داده‌های مختلف را برآورده سازند. در مجموع، Validate 1.6 یک گزینه عالی برای هر توسعه‌دهنده‌ای است که به دنبال راه حلی گسترده و قابل اعتماد برای تایید و فیلتر کردن داده‌ها است، و از قابلیت‌های متنوع آن بهره‌مند شود. #اعتبارسنجی #برنامه‌ن نویسی #کتابخانه #توسعه‌‌دهندگان 🟣لینک مقاله: https://github.com/gookit/validate ➖➖➖➖➖➖➖➖ 👑 @gopher_academy
273
8
🔵 عنوان مقاله go-pretty: Pretty Print Tables, Lists and Text on the Terminal 🟢 خلاصه مقاله: در دنیای امروز، زیباسازی ظاهر خروجی‌های کنسولی اهمیت زیادی پیدا کرده است، به خصوص زمانی که به کار با جداول، لیست‌ها، نوارهای پیشرفت و متن‌ها می‌رسد. ابزارهای مفیدی وجود دارند که به کاربران کمک می‌کنند تا خروجی‌های ترمینال خود را به شکل جذاب‌تر و قابل فهم‌تری نمایش دهند. یکی از این ابزارها، go-pretty است، که به طور خاص برای زیباتر کردن این نوع نمایش‌ها طراحی شده است. در نسخه‌های اخیر، این ابزار امکانات بسیار متنوعی را به آن افزوده است. اکنون می‌تواند جداول را به صورت مرتبه‌بندی شده نمایش دهد، از رنگ‌های ۲۵۶ رنگ پشتیبانی می‌کند و ویژگی‌های دیگری نیز به مجموعه قابلیت‌های خود افزوده است. این به کاربران اجازه می‌دهد تا تجربه کاربری بهتری داشته باشند و اطلاعات را به شیوه‌ای سازمان یافته و دیدنی ارائه دهند، که حتی در محیط‌های توسعه و کنسول‌های مربوط به سیستم‌های بزرگ هم قابل استفاده است. در نتیجه، go-pretty تبدیل به ابزاری قدرتمند برای توسعه‌دهندگان و کاربران حرفه‌ای شده است که می‌خواهند خروجی‌های کنسولی خود را به شکل حرفه‌ای و جذاب تنظیم کنند، بدون نیاز به نرم‌افزارهای گرافیکی پیچیده. با افزودن این امکانات، این ابزار توانسته است جایگاه ویژه‌ای در میان ابزارهای توسعه متن‌باز پیدا کند و به یکی از محبوب‌ترین گزینه‌ها برای زیباسازی خروجی‌های کنسولی تبدیل شود. #نوشته_زیبا #ابزارهای_برتر #نمایش_کنسول #توسعه‌دهندگان 🟣لینک مقاله: https://github.com/jedib0t/go-pretty ➖➖➖➖➖➖➖➖ 👑 @gopher_academy
265
9
لینک تلگرام بوست: https://t.me/boost/gopher_academy
278
10
🔵 عنوان مقاله Heimdall 7.2: An Enhanced HTTP Client for Go 🟢 خلاصه مقاله: هایمدال ۷.۲: کلاینت جدید و پیشرفته برای HTTP در زبان Go در دنیای برنامه‌نویسی، ارتباط با سرورها و ارسال حجم زیادی از درخواست‌ها یکی از چالش‌های مهم است. نسخه جدید کتابخانه Heimdal در زبان Go، با امکاناتی نوآورانه و بهبودهای قابل توجه، پاسخگوی این نیازها است. این ابزار طراحی شده است تا برنامه‌نویسان بتوانند به راحتی و با کارایی بالا، تعداد زیادی درخواست HTTP را مدیریت کنند، بدون آن که نگران مشکلات ناشی از درخواست‌های ناموفق یا کاهش کارایی باشند. یکی از ویژگی‌های ویژه Heimdal ۷.۲، وجود سیستم قطع‌کننده یا همان «Circuit Breaker» است که به طور هوشمند، درخواست‌هایی که با شکست مواجه می‌شوند را کنترل می‌کند. این قابلیت از سرایت خطاهای شبکه یا سروری، به سایر قسمت‌های برنامه جلوگیری می‌کند و عملکرد کلی سیستم را حفظ می‌نماید. علاوه بر این، این کتابخانه چندین استراتژی بازآرزویی یا «Retry» را پشتیبانی می‌کند، یعنی در صورت شکست در ارسال درخواست، می‌توان بر اساس نیاز، درخواست‌ها را چندباره و با سیاست‌های متفاوت، تکرار کرد. علاوه بر این‌ها، Heimdal ۷.۲ دارای یک رابط کاربری بسیار قابل‌فهم، روان و منعطف است که ضمن سادگی در استفاده، امکانات قدرتمندی برای سفارشی‌سازی و کنترل فرآیندهای درخواست و دریافت داده‌ها فراهم می‌کند. این ویژگی‌ها، آن را به ابزاری کارآمد و مطمئن برای توسعه‌دهندگان تبدیل می‌کند که می‌خواهند در پروژه‌های بزرگ و نیازمند به درخواست‌های زیاد، عملکرد بهینه و پایداری بالا داشته باشند. با به‌روزرسانی‌های مداوم و توسعه‌های جدید، Heimdal ۷.۲ توجه برنامه‌نویسان حرفه‌ای را جلب کرده و جای خود را در میان ابزارهای قدرتمند مدیریت درخواست‌ها در زبان Go تثبیت کرده است. #برنامه_نویسی #Go #کلاینت_HTTP #توسعه‌دهندگان 🟣لینک مقاله: https://github.com/gojek/heimdall ➖➖➖➖➖➖➖➖ 👑 @gopher_academy
303
11
🔵 عنوان مقاله Go Experiments Explained 🟢 خلاصه مقاله: در دنیای توسعه نرم‌افزار، ویژگی‌های آزمایشی یا «ایکسپریمنتال» نقش مهمی در آزمایش و ارزیابی امکانات جدید دارند. این ویژگی‌ها در نسخه‌های اولیهٔ محصول عرضه می‌شوند تا توسعه‌دهندگان و کاربرانی که علاقه‌مند به آزمایش امکانات نوین هستند، بتوانند آنها را تجربه کنند. هدف از ارائهٔ این قابلیت‌ها، جمع‌آوری بازخورد و اصلاح مشکلات پیش از نسخه نهایی است. در این فرآیند، این ویژگی‌ها به صورت موقت و قابل تغییر عرضه می‌شوند تا از تضمین عملکرد و هماهنگی آن‌ها اطمینان حاصل شود. در سیستم Go، ویژگی‌های آزمایشی به صورت خاص طراحی شده‌اند تا کاربران بتوانند قبل از اعلام رسمی و عمومی، امکانات جدید را امتحان کنند. برای دسترسی به این ویژگی‌ها، ابتدا باید آن‌ها را فعال کنید. این کار معمولاً از طریق تنظیمات و یا با وارد کردن دستورات خاص انجام می‌شود. پس از فعال‌سازی، توسعه‌دهندگان ممکن است نیاز داشته باشند تا نوع و نحوهٔ عملکرد ویژگی‌های آزمایشی را بررسی و آزمایش کنند. در طول این دوره، بازخورد کاربران نقش حیاتی دارد؛ چرا که تیم توسعه می‌تواند بر اساس آن، اصلاحات لازم را انجام دهند و برتری‌های ویژگی‌های جدید را ارزیابی کند. وقتی که یک ویژگی آزمایشی به میزان کافی مورد آزمایش و بررسی قرار گرفت و عملکرد مطلوب را نشان داد، ممکن است وارد مرحله «GA» یا نسخه عمومی شود. این روند، یعنی تبدیل یک قابلیت از نسخه آزمایشی به نسخه نهایی، معمولاً شامل اصلاحات و بهبودهای نهایی، بر اساس بازخوردهای اولیه است. هدف نهایی این فرآیند، ارائهٔ امکاناتی پایدار و بدون خطا به کاربران نهایی است که بتوانند از آن بهره‌مند شوند. در نتیجه، درک نحوهٔ یافتن، فعال‌سازی و مراحل توسعهٔ ویژگی‌های آزمایشی، کلید موفقیت در بهره‌برداری از فناوری‌های نوین است. به طور کلی، بنیان سیستم‌های آزمایشی در گو، امکان کنترل و توسعهٔ هوشمندانهٔ امکانات جدید را فراهم می‌آورد، و کمک می‌کند تا نوآوری‌ها با کمترین ریسک به دنیای واقعی راه یابند. #توسعه_نرم‌افزار #ویژگی‌های_آزمایشی #توسعه_پایدار #فن‌آوری 🟣لینک مقاله: https://www.alexedwards.net/blog/go-experiments-explained ➖➖➖➖➖➖➖➖ 👑 @gopher_academy
238
12
🔵 عنوان مقاله Finding a Needle in a 4 GB Haystack: From 0.75 GB/s to 49 GB/s 🟢 خلاصه مقاله: وقتی صحبت از جستجو در حجم داده‌های بزرگ می‌شود، درک درست روش‌های بهینه‌سازی اهمیت زیادی پیدا می‌کند. یکی از چالش‌های رایج در پردازش فایل‌های حجیم، پیدا کردن یک پیدا کردن سوزن در میان کاه است؛ یعنی چطور می‌توان اطلاعات مورد نیاز را در میان حجم عظیمی از داده‌ها سریع‌تر و کارآمدتر یافت. در این مسیر، فناوری‌ها و روش‌های مختلفی آزموده شده‌اند تا سرعت و کارایی روند بررسی فایل‌ها بهبود یابد. در طول این سفر، یکی از راه‌حل‌های معمول، استفاده از حافظه منطقه‌ای (mmap) است که مزایای قابل توجهی در خواندن پرونده‌ها دارد. با این حال، تجربیات نشان می‌دهد که در برخی سناریوها، روش‌هایی مانند خواندن موازی با استفاده از ReadAt یا pread can در مقایسه با mmap عملکرد بهتری دارند. وقتی فرآیند پردازش محدود به حافظه می‌شود، یعنی سرعت عمل برنامه به محدودیت‌های حافظه و سخت‌افزار بستگی پیدا می‌کند؛ در این حالت، اندازه‌گیری صرفا عملکرد حافظه پنهان (page cache) و رم کامپیوتر، نقش مهمی در ارزیابی عملکرد کلی دارد. در نتیجه، این فناوری‌ها و تکنیک‌ها باید برای هر پروژه به دقت بررسی شوند تا بهترین توازن ممکن بین سرعت و مصرف منابع حاصل شود. تجربه نشان داده است که گاهی بهره‌گیری از مسیرهای مختلف، نتایج بسیار متفاوتی دارد و موفقیت در این زمینه نیازمند آزمایش و ارزیابی مداوم است. بنابراین، درک عمیق‌تر از نحوه کارکرد حافظه و فناوری‌های مربوطه، کلید موفقیت در مواجهه با حجم بالای داده است. #هاکینگ_پایگاه #بهینه‌سازی_داده #پروژه_حافظه #کاهش_زمان 🟣لینک مقاله: https://segflow.github.io/post/fast-file-search-go/ ➖➖➖➖➖➖➖➖ 👑 @gopher_academy
232
13
🔵 عنوان مقاله How Go Builds Stack Traces 🟢 خلاصه مقاله: در قسمت نهایی سری مقالات عالی «درک زمان اجرا در زبان Go»، خاویر شرح می‌دهد که چه اتفاقی در پس‌زمینه هنگام وقوع خطا توسط تابع panic() رخ می‌دهد و چگونه زبان برنامه‌نویسی Go اطلاعات مربوط به خطای رخ داده را جمع‌آوری و نمایش می‌دهد. او توضیح می‌دهد که چگونه این فرایند منجر به ساختن ساختارهای Stack Trace می‌شود، یعنی همان لیستی از توابع و خطوط کدی که در مدت اجرا فراخوانی شده‌اند و می‌تواند برای عیب‌یابی مشکلات و خطاهای برنامه بسیار مفید باشد. در واقع، زمانی که برنامه در حال اجرا با خطایی ناگهانی مواجه می‌شود و تابع panic() فراخوانی می‌شود، سیستم زمان اجرا (runtime) به سرعت شروع به جمع‌آوری اطلاعات مربوط به وضعیت کنونی می‌کند. این فرآیند شامل ثبت جزئیات جزئیات فراخوانی‌های تابع، محل وقوع خطا و وضعیت حافظه است تا توسعه‌دهنده بتواند در مرحله عیب‌یابی به راحتی منشأ مشکل را تشخیص دهد. خاویر نقش این ساختارهای اطلاعاتی را در فرآیند خطایابی برنامه‌های نوشته شده به زبان Go توضیح می‌دهد و نحوه تفسیر آن‌ها را برای توسعه‌دهندگان روشن می‌کند. این مجموعه مقالات، نگاهی دقیق و کاربردی است که به برنامه‌نویسان کمک می‌کند تا بهتر درک کنند چگونه رفتاری در سطح سیستم عامل و زمان اجرا باعث می‌شود تا خطاها به شکل قابل فهم و مفیدی نمایش داده شوند و در نهایت، توسعه‌دهندگان بتوانند مشکلات برنامه خود را سریع‌تر برطرف کنند. #برنامه‌نویسی #زبان_گو #دیباگینگ #اشکال‌زدایی 🟣لینک مقاله: https://internals-for-interns.com/posts/go-runtime-stacktraces/ ➖➖➖➖➖➖➖➖ 👑 @gopher_academy
315
14
هشدار گوگل: اکانتت ۳ ماه غیرفعال بماند، برای همیشه حذف می‌شود! @google_labdon
462
15
چند روش برای نمایش لیست توابع (functions) یک فایل یا پکیج Go 1. استفاده از grep اگر فقط می‌خواهید توابع تعریف‌شده در یک فایل را ببینید: grep "^func " main.go خروجی: func main() { func GetUser() { func (s *Server) Start() { برای همه فایل‌های Go در پروژه: grep -R "^func " . 2. استفاده از go doc برای مشاهده توابع Export شده یک پکیج: go doc . یا: go doc mypackage 3. استفاده از godoc اگر godoc نصب باشد: godoc mypackage یا وب سرور مستندات: godoc -http=:6060 4. استفاده از go list برای استخراج اطلاعات ساختاری پکیج: go list -json . اما این مستقیماً توابع را نمایش نمی‌دهد و بیشتر برای متادیتای پکیج است. 5. استفاده از gopls (بهترین گزینه برای تحلیل کد) اگر gopls نصب باشد: gopls symbols main.go یا: gopls workspace_symbol . این متدها، توابع، structها و interfaceها را نمایش می‌دهند. 6. با استفاده از AST در Go اگر بخواهی دقیقاً همه توابع یک فایل را استخراج کنی (حتی methodها)، می‌توانی از پکیج‌های زیر استفاده کنی: go/parser go/ast مثال: go package main import ( "go/ast" "go/parser" "go/token" "log" ) func main() { fset := token.NewFileSet() node, err := parser.ParseFile(fset, "main.go", nil, 0) if err != nil {   log.Fatal(err) } for _, decl := range node.Decls {   if fn, ok := decl.(*ast.FuncDecl); ok {    println(fn.Name.Name)   } } } خروجی: main GetUser Start DeleteUser
484
16
چند روش برای نمایش لیست توابع (functions) یک فایل یا پکیج Go 1. استفاده از grep اگر فقط می‌خواهید توابع تعریف‌شده در یک فایل را ببینید: grep "^func " main.go خروجی: func main() { func GetUser() { func (s *Server) Start() { برای همه فایل‌های Go در پروژه: grep -R "^func " . 2. استفاده از go doc برای مشاهده توابع Export شده یک پکیج: go doc . یا: go doc mypackage 3. استفاده از godoc اگر godoc نصب باشد: godoc mypackage یا وب سرور مستندات: godoc -http=:6060 4. استفاده از go list برای استخراج اطلاعات ساختاری پکیج: go list -json . اما این مستقیماً توابع را نمایش نمی‌دهد و بیشتر برای متادیتای پکیج است. 5. استفاده از gopls (بهترین گزینه برای تحلیل کد) اگر gopls نصب باشد: gopls symbols main.go یا: gopls workspace_symbol . این متدها، توابع، structها و interfaceها را نمایش می‌دهند. 6. با استفاده از AST در Go اگر بخواهی دقیقاً همه توابع یک فایل را استخراج کنی (حتی methodها)، می‌توانی از پکیج‌های زیر استفاده کنی: go/parser go/ast مثال: go package main import ( "go/ast" "go/parser" "go/token" "log" ) func main() { fset := token.NewFileSet() node, err := parser.ParseFile(fset, "main.go", nil, 0) if err != nil { log.Fatal(err) } for _, decl := range node.Decls { if fn, ok := decl.(*ast.FuncDecl); ok { println(fn.Name.Name) } } } خروجی: main GetUser Start DeleteUser
1
17
پاول دوروف در کانال روسی خود نوشت: فیلترینگ و محدودیت‌های اینترنتی، روسیه را به «حاکمیت دیجیتال» نزدیک‌تر نکرده، بلکه از آن دورتر کرده است. به گفته دوروف، متخصصانی که می‌توانستند در روسیه سیستم‌عامل موبایل بسازند، به‌دلیل وضعیت خراب اینترنت، در حال ترک کشور هستند. او تأکید کرد تا زمانی که گوشی‌ها بر پایه سیستم‌عامل‌های آمریکایی مثل iOS و Android کار می‌کنند، حتی اپلیکیشن‌های «ملی» هم در برابر نظارت و سانسور از طریق بک‌دورها و فروشگاه‌های اپلیکیشن آسیب‌پذیر می‌مانند. دوروف این سیاست را «تغییر بسته‌بندی بدون تغییر اصل ماجرا» توصیف کرد و کنایه زد: مسئولی که به نام حاکمیت دیجیتال، اینترنت روسیه را خراب کرده و کشور را دهه‌ها عقب برده، شایسته دریافت مدال امنیت ملی از آمریکاست.
651
18
‏🔷 آیا بعد از زبان برنامه‌نویسی C، زبان D آمد؟ چرا هیچ اثری از A و B نیست؟ ‏🔻برای بسیاری از دانشجویان علوم رایانه یا افرادی که به نوعی می‌خواهند زبان برنامه‌نویسی یاد بگیرند، زبان C یک شروع است؛ زبانی که با قدرت مثال‌زنی خود کمک می‌کند درحالیکه به صورت پایه‌ای، برنامه‌نویسی را یاد بگیرید، بتوانید با آن برنامه‌های کاربردی و حتی حرفه‌ای نیز بنویسید. ‏🔻اما آیا تا به حال به این فکر کرده‌اید که چرا نام این زبان، «C» است؟ به عنوان نقطه شروع به شما می‌گوییم، زمانی که زبان برنامه نویسی C پا به میدان گذاشت، انقلابی را در دنیای ما و زندگی انسان‌ها به وجود آورد. اما ریشه این نامگذاری کجاست و چرا زبانی به این قدرت، نامی تا این حد ساده دارد؟ ‏🔻اما ریشه این نامگذاری کجاست و چرا زبانی به این قدرت، نامی تا این حد ساده دارد؟ داستان زبان‌های B، D و حتی A چیست؟ 🌐 پاسخ به این سوال‌ها را اینجا بخوانید https://www.shahrsakhtafzar.com/fa/articles-guides/60719-the-story-of-a-b-c-d-programming-languages
587
19
چرا گولنگ رو ترجیح میدم؟ برای مقایسه جاوا رو انتخاب کردم چون خودم بیشتر باهاش کد زدم و البته برای زبان‌های دیگه هم قابل تعمیم هست. فرض کن می‌خوای یه وب اپ یا API بنویسی. تو گولنگ، به جز درایور دیتابیس، هیچ وابستگی خارج از کتابخونه استاندارد لازم نداری. برای بیلد، تست و مدیریت وابستگی ابزار لازم همراه با کامپایلر هست. تو جاوا برای یه وب اپ باید از Maven یا Gradle استفاده کنی چون نیاز به دیپندنسی داری حتی برای ساده ترین کارها و باید فایل pom.xml یا build.gradle بنویسی. برای اجرا کردن پروژه باید اپلیکیشن سرور نصب کنی. خلاصه قبل از اینکه حتی یه خط کد بزنی، باید یه اکوسیستم رو راه بندازی. دیپلوی پروژه گولنگی خیلی راحترهست. بعد از `go build`، یه فایل باینری مستقل می‌گیری که می‌تونی روی هر سرور بدون اینکه گو نصب باشه، اجرا کنی. تو جاوا باید JRE یا JDK و اپلیکیشن سرور نصب باشه، باید حواست به مدیریت وابستگی‌های native، نسخه JVM و تنظیمات GC باشه. تو گو این دردسرها رو نداری. نبود وابستگی‌های خارجی برای گولنگ یعنی کمتر شدن دردسرهای نگهداری، آپدیت کردن (بکوارد کامپتیبل بودن و منسوخ نشدن و ...) و باگ‌های امنیتی هزار تا پکیج جانبی تو جاوا، پروژه‌ میانگین ده‌ها وابستگی (مثلاً Spring, Hibernate, Log4j, Guava, Apache Commons) داره. که مثلا Log4j با یه باگ امنیتی کل دنیا رو بهم ریخت. تو گولنگ تقریباً هیچ وابستگی خارجی برای کارهای روزمره ندار و استاندارد لایبرری اکثر نیازها رو جواب میده: HTTP/2 client & server, JSON, HTML templates, encryption, SQL, compression, testing, benchmarking, profiling تو جاوا استاندارد لایبرری خوبه ولی خیلی از چیزها رو نداره مثل JSON و HTTP client که قبلاً خیلی ضعیف بود (نسخه ۱۱ به بعد بهتر شد ولی هنوز برای کارهای حرفه‌ای از Apache HttpClient استفاده می‌شه)، و باید از لایبرری خارجی استفاده کنی. تو گو با go func() می‌تونی هزاران کار همزمان با حافظه کم (چند کیلوبایت هر گوروتین) راه بندازی و ارتباط بینشون با channel ساده و امنه. تو جاوا اما قدیم هر Thread چند مگابایت حافظه می‌خواست، پس نمی‌تونستی تعداد زیاد داشته باشی. باید از ExecutorService یا CompletableFuture استفاده می‌کردی که کلی کد اضافی داشت. الان virtual threadها اومدن بهتر شده، ولی هنوز مدیریتش سخت‌تر از گوروتین گولنگ است. سینتکس گولنگ واقعا ساده‌ست، تو چند روز می‌تونی کامل یاد بگیری. ارور هندلینگ صریح (با `if err != nil`) شاید اولش عجیب باشه ولی باعث میشه خطاها رو فراموش نکنی. جاوا ولی پر از جزئیاته: try-catch-finally, type erasure، anonymous classes، try-with-resources, Reflection و کلی نکته ریز. کد گولنگ به اسمبلی کامپایل می‌شه، سرعتش نزدیک C++ هست و مصرف حافظه‌ش کمه (سرویس ساده با چند مگ راه می‌افته). جاوا روی JVM اجرا می‌شه که حتی برای Hello World حداقل ۵۰-۱۰۰ مگ حافظه می‌گیره. البته با تنظیمات حافظه‌ و GC یا Native Image می‌شه حافظه رو به سطح گولنگ رسوند، ولی نیاز به دانش و کار بیشتری داره. خلاصه با گولنگ هزینه نگهداری، راه‌اندازی و دیپلوی سرویس کمتر از جاوا یا زبان‌های معروف دیگه‌ست. مخصوصاً اگر توی یه استارتاپ یا تیم کوچیک هستی که نمی‌خوای وقتت رو صرف مدیریت Maven, Tomcat, JVM flags و این حرفا کنی. گو بهت اجازه میده سریع بنویسی، سریع اجرا کنی، و بدون دردسر دیپلوی کنی. <Yousef Rostami/>
576
20
🚀 بهترین‌های دنیای Front-End در یک کانال! اگر توسعه‌دهنده فرانت‌اند هستی یا به دنیای وب علاقه داری، این کانال رو از دست نده. 🔥 به‌روزترین اخبار، آموزش‌ها و مقالات تخصصی: ⚡ JavaScript (JS) 🔷 TypeScript (TS) ⚛️ React 🅰️ Angular 💚 Vue.js 🎨 CSS3 📚 معرفی ابزارهای جدید 🚀 بررسی ترندهای روز Front-End 💡 نکات حرفه‌ای و Best Practiceها 📰 مهم‌ترین اخبار اکوسیستم وب همه‌چیز برای به‌روز ماندن در دنیای Front-End، در یک جا! 👇👇👇👇 @frontend_labdon
515