Gopher Academy
3.33K subscribers
915 photos
40 videos
279 files
1.96K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🎯 ویژگی های جدید گولنگ نسخه 1.25 رو از اینجا بخونید

🔵synctest
🟢https://t.me/gopher_academy/3910
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵 json/v2
🟢https://t.me/gopher_academy/3913
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵 Container-aware GOMAXPROCS
🟢https://t.me/gopher_academy/3922
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵New GC
🟢 https://t.me/gopher_academy/3925
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵Anti-CSRF
🟢https://t.me/gopher_academy/3937
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵WaitGroup.Go
🟢https://t.me/gopher_academy/3943
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵FlightRecorder
🟢https://t.me/gopher_academy/3939
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵os.Root
🟢https://t.me/gopher_academy/3952
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵reflect.TypeAssert
🟢https://t.me/gopher_academy/3947
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵T.Attr
🟢https://t.me/gopher_academy/3956
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵slog.GroupAttrs
🟢https://t.me/gopher_academy/3951
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵hash.Cloner
🟢https://t.me/gopher_academy/3946
▫️▪️▫️▪️▫️▪️▫️▪️▫️
4👍4🔥21
Gopher Academy pinned «🎯 ویژگی های جدید گولنگ نسخه 1.25 رو از اینجا بخونید 🔵synctest 🟢https://t.me/gopher_academy/3910 ▫️▪️▫️▪️▫️▪️▫️▪️▫️ 🔵 json/v2 🟢https://t.me/gopher_academy/3913 ▫️▪️▫️▪️▫️▪️▫️▪️▫️ 🔵 Container-aware GOMAXPROCS 🟢https://t.me/gopher_academy/3922 ▫️▪️▫️▪️▫️▪️▫️▪️▫️»
🔵 عنوان مقاله
Lox: A Lexer and Parser Generator for Go

🟢 خلاصه مقاله:

مقاله‌ به تحلیل و مقایسه دقیق دو ابزار تولید کننده پارسر می‌پردازد، که بر اساس ساختار و چارچوب عملیاتی آن‌ها تمرکز دارد. پارسر مورد بحث در این مقاله از ANTLR الهام گرفته است که در آن ترکیب پارسر و لکسر و جدا سازی کد عملیاتی از دستور زبان مشخص است. با این حال، در مکانیزم‌های عملیاتی اصلی، پارسر بیشتر شبیه به yacc است، که از الگوریتم LR(1) برای پارسینگ استفاده می‌کند و ساختاری بدون وابستگی دارد که نصب و نگهداری آن را آسان‌تر می‌کند.

🟣لینک مقاله:
https://golangweekly.com/link/171565/web


👑 @gopher_academy
🔥1
Forwarded from Bardia & Erfan
پاول دروف : اگه دانش‌آموزی و نمی‌دونی رو چی تمرکز کنی، برو سراغ ریاضی!

▪️ریاضی بهت یاد می‌ده که به مغز خودت تکیه کنی، منطقی فکر کنی، مسئله رو خرد کنی و قدم‌به‌قدم درست پیش بری.

▪️و این دقیقاً همون مهارتیه که برای ساختن شرکت، راه انداختن پروژه و موفقیت تو هر کاری لازمه!
👍9
🔵 عنوان مقاله
🕹️ GORE: A Pure Go Minimal 'Doom' Implementation

🟢 خلاصه مقاله:

چند ماه پیش، پروژه‌ای جالب توجه دوستداران برنامه‌نویسی و بازی‌های کامپیوتری را به خود جلب کرد که شامل تبدیل نسخه اصلی بازی دوم از سال ١٩٩٣ به زبان برنامه‌نویسی گو بود. هدف از این پروژه تنها بازسازی بازی به زبان دیگر نبود، بلکه بهبود ساختار و کارایی کلی آن نیز در نظر گرفته شده بود. این تغییرات باعث شده بازی بدون نیاز به تنظیمات خاص پلتفرمی، روی سیستم‌ها و دستگاه‌های مختلف به خوبی اجرا شود. یکی از جنبه‌های نوآورانه این پروژه، امکان اجرای بازی مستقیماً روی ترمینال است که نشان‌دهنده توانایی زبان گو در ارائه خروجی‌های گرافیکی پیچیده در محیطی ساده است. این پروژه نه تنها زندگی جدیدی به یک اثر تاریخی در فرهنگ بازی‌های ویدئویی می‌بخشد، بلکه امکان بازسازی بازی‌های قدیمی دیگر را در محیط‌های نرم‌افزاری معاصر فراهم می‌کند.

🟣لینک مقاله:
https://golangweekly.com/link/171558/web


👑 @gopher_academy
3
Forwarded from AI Labdon
🔴انتقال 100 میلیون کتاب در 7 دقیقه؟!
یه دانشمند ایرانی داره آینده‌ی اینترنت رو بازنویسی می‌کنه...

▪️تو دنیایی که هوش مصنوعی داره مغز دنیا می‌شه، یه مشکل بزرگ داریم: مصرف وحشتناک انرژی در دیتاسنترها.
اما حالا دکتر علیرضا گراوند از دانشگاه لاوال کانادا، با ساخت یه تراشه نوری فوق‌پیشرفته ورق رو برگردونده.

▪️این تراشه به نازکی یه تار موئه، ولی قدرتش؟ باورنکردنیه:

⚡️ ۱ ترابیت‌ بر ثانیه سرعت انتقال داده
⚡️ ۲۰ برابر سریع‌تر از تکنولوژی‌های رایج
⚡️ مصرف انرژی فوق‌العاده پایین
⚡️ طراحی‌شده مخصوص مراکز هوش مصنوعی

📚 فقط تصور کن: این تراشه می‌تونه حجم ۱۰۰ میلیون کتاب رو در کمتر از ۷ دقیقه جابه‌جا کنه — فقط با نور، بدون جریان برق!
🔥42🕊2🍾1
🔵 عنوان مقاله
What's //go:nosplit For?

🟢 خلاصه مقاله:

زبان برنامه‌نویسی Go ویژگی‌هایی دارد که به توسعه‌دهندگان اجازه می‌دهد با استفاده از دستورالعمل‌های محور به نظر، جنبه‌های مختلفی از اجرای کد خود را تنظیم کنند. یکی از این دستورالعمل‌ها "nosplit" است که از تقسیم پشته در توابع مشخص شده جلوگیری می‌کند و می‌تواند در سناریوهای خاص، عملکرد بهتری ارائه دهد؛ اما ممکن است منجر به خطاهای اجرایی یا قفل شدن زمان‌بندی شود. درک صحیح و استفاده از این دستورالعمل‌ها می‌تواند کنترل قابل توجهی بر عملکرد برنامه‌های Go ارائه دهد.

🟣لینک مقاله:
https://golangweekly.com/link/171543/web


👑 @gopher_academy
🔥2
🔵 عنوان مقاله
Effortless Go Contract Testing: Inferred Automatically From Traffic

🟢 خلاصه مقاله:

مقاله‌ای که مورد بررسی قرار گرفته، به اهمیت به‌روزرسانی و انعطاف‌پذیری قراردادها برای API‌ها در زمینه‌های فناوری می‌پردازد. روش‌های سنتی تنظیم دستی قراردادها اغلب باعث ایجاد توافق‌نامه‌های شکننده‌ای می‌شود که با تغییرات API‌ها سازگار نیست. در این مقاله، روشی نوآورانه معرفی می‌شود که در آن قراردادها می‌توانند از ترافیک واقعی API به‌طور خودکار استنباط و به‌روزرسانی شوند. این روش که با استفاده از داده‌های واقعی ترافیک تولید می‌شود، باعث می‌شود که قراردادها دقیقاً با وضعیت فعلی API‌ها هم‌خوانی داشته باشند و به نیازهای جدید به‌طور موثر پاسخ دهند.

🟣لینک مقاله:
https://golangweekly.com/link/171560/web


👑 @gopher_academy
Forwarded from Software Engineer Labdon
4
چجوری یه فریمورک ماژولار برای بالا آوردن سرویس‌های بک‌اند طراحی کردم؟
من توی پست‌ قبلیم اشاره کردم که یه فریمورکی برای زبان Golang نوشتم که به توسعه‌دهنده‌ها کمک می‌کنه که سرویس‌های بک‌اندشون رو توی چند ثانیه بالا بیارن.
خواستم بیشتر درباره معماریش و طراحی این فریمورک صحبت کنم.
خب اول از همه مشکلی که می‌خواستم با ساخت این فریمورک حل کنم این بود که تقریبا هر سری پروژه‌هایی که می‌ساختم یه سری کارهای تکراری داشت مثل:
راه‌اندازی HTTP Server
ساخت connection‌های دیتابیس
نوشتن دستی route‌ها
پیاده‌سازی CRUD برای هر entity
پیاده‌سازی Pagination و filter و sort
چون به نظرم میومد که این مراحل اکثراً ثابت هستن، خواستم یه جورایی این مراحل رو حذف کنم. با توجه به این مسئله، سعی کردم که یه طراحی ماژولار واسه این فریمورک در نظر بگیرم.
اولین بخش core :
همونطور که از اسمش معلومه، هسته مرکزی برنامه‌ست و عملاً لایف‌سایکل برنامه رو مدیریت می‌کنه.
توابعی که برای رجیستر کردن HTTP Server و دیتابیس‌ و entity‌ها هستن، در واقع توی این بخش قرار دارن.
بعد از اون ماژول crud:
ماژولیه که handlerها و route‌هامون رو داخلش تعریف شده. handlerها، همون handlerهای ثابتی هستن که برای هر entity داره تعریف میشه.
موارد مختلفی مثل اینکه چجوری باید با query parameterها رفتار بشه و hook های قبل و بعد از عملیات CRUD هم اینجا تعریف شدن.
رجیستر شدن route‌ها هم داخل routes داره اتفاق می‌افته.
سومین بخش ماژول HTTP هستش که دو تا اینترفیس اصلی داره:
یکی برای مدیریت کردن context‌ها
یکی برای مدیریت کردن خود HTTP Server (initialize کردن، رجیستر کردن routeها، استفاده از middlewareها، و در نهایت start کردن HTTP Server) که اگه بخوایم از HTTP Server استفاده کنیم، باید این اینترفیس‌ها پیاده‌سازی شده باشن.
مورد چهارم database :
این بخش هم یه اینترفیس اصلی داره برای انجام عملیات CRUD.
هر دیتابیسی بخوایم استفاده کنیم، باید این اینترفیس رو پیاده‌سازی کرده باشه حتماً.
ماژول آخر هم hooks در نظر گرفتم.
شامل اینترفیس‌هایی میشه که قبل و بعد یه عملیات رو تعریف می‌کنن.
برای مثال:
اگه می‌خواید یه ولیدیشن روی یکی از فیلد‌هاتون قبل از ایجاد شدنش توی دیتابیس داشته باشید، برای همون entity‌تون اینترفیس BeforeCreate رو پیاده‌سازی می‌کنید و این ولیدیشن قبل از insert شدن انجام می‌شه.
سعی کردم خیلی خلاصه توضیح بدم. خوشحال می‌شم نظرتون رو درباره این معماری بدونم و اگر دوست داشتید یه سر به گیت‌هاب پروژه بزنید:

https://github.com/Lumicrate/gompose

<Iman Asgari/>
👍41🔥1🍾11
🔵 عنوان مقاله
Generic Interfaces

🟢 خلاصه مقاله:

در این مقاله، اکسل ایده‌ای که رابط‌ها مانند سایر انواع، می‌توانند پارامترهای نوع داشته باشند را مطرح می‌کند. او نشان می‌دهد که چگونه این امر به نوشتن یک پیاده‌سازی اصلی درخت جستجوی دودویی کمک می‌کند که می‌تواند مقایسه‌های داخلی، مبتنی بر کال‌بک یا متد را پشتیبانی کند. اکسل در ادامه به مفاهیم عمیق‌تری می‌پردازد و نشان می‌دهد که چگونه این رویکرد می‌تواند توسعه نرم‌افزار را بهبود بخشد.

🟣لینک مقاله:
https://golangweekly.com/link/171544/web


👑 @gopher_academy
1
🔵 عنوان مقاله
Serving 200 Million Requests Per Day with cgi-bin

🟢 خلاصه مقاله:

در ابتدای تاریخچه وب، روش CGI به عنوان یکی از روش‌های اصلی برای ایجاد محتوای پویا استفاده می‌شد که در آن، درخواست‌های HTTP یک فرایند در پشت‌صحنه سرور را فعال می‌کردند و نتیجه را برمی‌گرداندند. با پیشرفت وب، جایگاه CGI توسط برنامه‌های دائمی‌الاجرا که بدون قطع و وصل شدن به فرایندها پاسخ به درخواست‌ها را مدیریت می‌کنند، تغییر کرد. با این حال، با توجه به افزایش سرعت زبان‌های برنامه‌نویسی مانند Go، مطرح می‌شود که آیا CGI می‌تواند دوباره مورد استفاده قرار گیرد. به رغم بهبود سرعت در اجرای فرایندها، استفاده مجدد از CGI در عصر فناوری‌های پیشرفته‌تر ممکن است کاربردی نباشد زیرا نیازهای نوین وب‌اپلیکیشن‌ها با تکنولوژی‌های جدید بهتر پاسخ داده می‌شوند.

🟣لینک مقاله:
https://golangweekly.com/link/171549/web


👑 @gopher_academy
🔥1🕊1
Forwarded from Software Engineer Labdon
جی آی تی JIT یعنی چی؟

در اصل JIT مخفف Just-In-Time compilation هست، یعنی کامپایل هم‌زمان با اجرا. این تکنیک باعث می‌شه که کدهایی که به صورت معمول تفسیر (interpret) می‌شن (مثل PHP یا JavaScript)، در زمان اجرا به کد ماشین تبدیل بشن، و این یعنی اجراشون خیلی سریع‌تر بشه.

مزایای JIT
- سرعت اجرای بهتر
- کاهش مصرف منابع در برخی سناریوها
- عملکرد نزدیک‌تر به زبان‌های کامپایل‌شده (مثل C)

کار JIT در PHP چیه؟
در PHP 8 به بعد، Zend Engine دارای یک JIT Compiler شد. قبل از اون، PHP فقط تفسیر می‌کرد.
کار JIT باعث می‌شه:
بخش‌هایی از کد که زیاد استفاده می‌شن (مثلاً حلقه‌ها یا توابع پرتکرار)، به کد ماشین واقعی تبدیل بشن.
این باعث افزایش سرعت اجرای برنامه‌ها می‌شه، مخصوصاً در کارهای محاسباتی سنگین مثل:
- پردازش تصویر
- بازی‌سازی
- پروژه‌های علمی
- کدهایی که زیاد اجرا می‌شن مثل فریم‌ورک‌ها یا CMSها

<Milwad Khosravi/>
3
Forwarded from AI Labdon
پایان کدنویسی سنتی؛ ۲ ابزار هوش مصنوعی که توسعه را از چند روز به چند ساعت می‌رسانند

شرکت *پرپلکسیتی* استفاده از ابزارهای کدنویسی هوش مصنوعی مانند *گیت‌هاب کوپایلت* و *Cursor* را برای تمام مهندسانش اجباری کرد. آراویند سرینیواسان، مدیرعامل این شرکت، اعلام کرد که این ابزارها زمان توسعه و نمونه‌سازی را از چند روز به کمتر از یک ساعت کاهش داده‌اند.

این تحول تنها به پرپلکسیتی محدود نیست؛ شرکت‌های بزرگی مانند ویزا و ردیت نیز اکنون در آگهی‌های استخدامی خود، آشنایی با این ابزارها را الزامی می‌دانند. نظرسنجی‌ها نشان می‌دهد ۹۰ درصد تیم‌های توسعه از هوش مصنوعی استفاده می‌کنند که نسبت به سال گذشته افزایش چشمگیری داشته است.

البته این فناوری بی‌نقص نیست و گاهی باعث ایجاد باگ‌های جدید می‌شود، اما مزیت سرعت همچنان بر این چالش‌ها برتری دارد.

#هوش_مصنوعی #برنامه_نویسی

💡 تحول دنیای برنامه‌نویسی را در زومیت بخوانید
5
بیشترین سوالات مصاحبه String + Array

String-Based Questions
1. Reverse a string — without using built-ins.
2. Is it a palindrome? Let's find out.
3. Remove duplicates from a string — efficiently.
4. First non-repeating character — who stands alone?
5. Count how many times each character appears.
6. Flip the words in a sentence, not the letters.
7. Are two strings anagrams? Prove it.
8. Longest substring without repeats — sliding window style.
9. Build your own atoi — string to integer.
10. Compress strings with run-length encoding.
11. Most frequent character — who dominates?
12. List all possible substrings of a string.
13. Is one string a rotation of another?
14. Strip all white spaces from a string.
15. Is this a valid shuffle of two strings?
16. Convert text to Title Case — properly.
17. Find the longest common prefix among words.
18. Break a string into a char array — without confusion.
19. Replace spaces with %20 — classic URL trick.
20. Turn full sentences into acronyms.
21. Check if the string is all digits — no alphabets allowed.
22. Count how many words are in the string.
23. Remove a specific character — cleanly.
24. Find the shortest word in a sentence.
25. Longest palindromic substring — two-pointer style.

Array-Based Questions
26. Reverse an array in-place.
27. Find the largest and smallest element.
28. Check for duplicates in an array.
29. Remove duplicates — return only unique values.
30. Find the missing number from 1 to N.
31. Move all zeros to the end — keep order.
32. Rotate the array left/right by K positions.
33. Find the Kth largest/smallest element.
34. Merge two sorted arrays — without using extra space.
35. Find the intersection of two arrays.
36. Sort 0s, 1s, and 2s without using sort().
37. Find subarrays with a given sum.
38. Detect if a subarray sums to 0.
39. Find the longest increasing subsequence.
40. Kadane’s Algorithm — maximum subarray sum.
41. Check if array is sorted and rotated.
42. Rearrange array in max-min order alternately.
43. Find leaders in an array (no greater element to the right).
44. Calculate frequency of all elements in O(n).
45. Product of all elements except self.

#تجربه
webinar_farsi
6
Forwarded from Database Labdon
🔵 عنوان مقاله
1. Life Altering Postgres Patterns

🟢 خلاصه مقاله:
مقاله‌ای که بررسی شده حاوی دوازده نکته و بینش کلیدی است که نویسنده از تجربیات واقعی خود در زمینه برنامه‌نویسی و مدیریت پایگاه داده به دست آورده است. این نکات شامل استفاده از UUID به عنوان کلیدهای اصلی، نحوه نام‌گذاری جداول، استفاده از اسکیماها و دیدگاه‌ها (views) می‌باشد. نویسنده تاکید دارد که این توصیه‌ها بر پایه تجربیات سخت و عملی او شکل گرفته‌اند و می‌توانند به عنوان راهنمایی مفید برای توسعه‌دهندگان نرم‌افزار عمل کنند. این مقاله نه تنها نکات تخصصی و فنی مرتبط با مسائل فناوری اطلاعات را پوشش می‌دهد، بلکه به چگونگی بهینه‌سازی کار با پایگاه داده‌ها و افزایش کارایی در زمینه برنامه‌نویسی نیز می‌پردازد. این راهنمایی‌ها برای هر توسعه‌دهنده‌ای که به دنبال بهبود مهارت‌های خود در این زمینه است، ارزشمند است.

🟣لینک مقاله:
https://postgresweekly.com/link/171599/web


👑 @Database_Academy
2
Forwarded from Linux Labdon
#کدنمک

مکانیسم ماشه:
$ rm -rf /
🍾13👍2🕊21🔥1
Forwarded from omid trade 360
🔵 عنوان مقاله
Aave TVL 50% greater than Revolut's (1 minute read)

🟢 خلاصه مقاله:
مقاله حاضر، به بررسی و مقایسه Aave و Revolut می‌پردازد که دو سازمان مالی در عرصه‌های متفاوت هستند. Aave، یک پلتفرم وام دهی غیرمتمرکز است که بر بستر بلاک‌چین فعالیت می‌کند، در حالی که Revolut یک شرکت فناوری مالی است که خدمات بانکی و تبدیل ارز را ارائه می‌دهد. بر اساس این مقاله، میزان کل ارزش قفل‌شده (TVL) در Aave، تقریباً 50 درصد بیشتر از دارایی‌های تحت مدیریت (AUM) در Revolut است. این تفاوت عمده ارزش نشان‌دهنده پذیرش گسترده‌تر و اعتماد بیشتر به پلتفرم‌های مالی بلاک‌چین مانند Aave در مقابل روش‌های سنتی‌تر مدیریت دارایی است که توسط شرکت‌هایی مانند Revolut انجام می‌شود. این خلاصه برجسته‌ کردن این تفاوت اساسی میان دو مدل تجاری و نقش تکنولوژی‌های نوین در تحول عرصه مالی را در بر دارد.

🟣لینک مقاله:
https://threadreaderapp.com/thread/1931735079098921341.html?utm_source=tldrcrypto


👑 @omidtrade360
Forwarded from Linux Labdon
من از ابزارهایی که ساده هستند، بیشتر استقبال می‌کنم. ابزارهایی مثل insomnia و Postman گاهی اوقات برای استفاده من که اغلب امنیتی هست overkill است. گاهی حتی با curl کارم راه می‌افتد.
ابزار http://voiden.md را امروز دیدم و سبک متفاوتی دارد.
شاید آزمایش آن ایده بدی نباشد.


<VAHID NAMENI/>
👍32🍾1
Forwarded from AI Labdon
👤 در سرور آزمایشی تلگرام، یک بات رسمی شناسایی شده که سن کاربران را از طریق اسکن چهره و بدون نیاز به مدارک بررسی می‌کند.

احتمال دارد این روش در آینده برای دسترسی به برخی قابلیت‌های خاص تلگرام مورد استفاده قرار گیرد.

🔞 جزئیات بیشتر درباره قابلیت «تأیید سن از طریق چهره» در تلگرام:

— تلگرام در حال راه‌اندازی سیستمی برای تأیید سن از طریق چهره است تا دسترسی به محتوای ۱۸+ در کانال‌ها و گروه‌ها را کنترل کند.
— این قابلیت ابتدا در انگلستان فعال می‌شود، زیرا طبق قانون جدید، سایت‌ها و اپلیکیشن‌هایی که محتوای محدودشده منتشر می‌کنند، موظف به تأیید سن کاربران هستند. احتمال دارد این ویژگی به‌زودی برای سایر کشورها نیز اعمال شود.

— محدوده سنی قابل تشخیص بین ۱۸ تا ۹۰ سال است.
— فقط چهره واقعی شما قابل قبول است — عکس یا تصویر از فرد، قابل شناسایی و مردود خواهد شد.
— نیازی به ارائه هیچ مدرکی نیست.
— دستگاه شما لازم نیست قابلیت Face ID داشته باشد.
— عکس چهره‌ی شما در تلگرام ذخیره نمی‌شود و این سیستم فقط با ایدی کد هر شخص کار می‌کند.

قابلیت تأیید سن با چهره در تلگرام فعلاً برای جلوگیری از دسترسی نوجوانان به محتوای +18 فعال شده، تا ذهن آن‌ها در سنین حساس رشد، گرفتار تحریک زودهنگام و اعتیاد به دپامین کاذب نشود.

هدف این است که نوجوانان با ذهنی آزاد، سالم و توانمند وارد مسیر یادگیری و جامعه شوند، نه با ذهنی فرسوده و محدودشده به لذت‌های زودگذر.

در آینده ممکن است این سیستم به مدیران اجازه دهد تا افراد زیر ۱۸ سال را از ارسال پیام‌های توهین‌آمیز یا شرکت در بحث‌های حساس مثل سیاست محدود کنند.
3🕊2