Gopher Academy
3.34K subscribers
920 photos
40 videos
280 files
2.02K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
اسم ها در زبان go به چه صورت هستند؟
🔹در زبان go نیز مانند دیگر زبان ها، اسم ها دارای اهمیت هستند.

🔹در اسامی پکیج ها هیچگاه نباید از علامت هایی مانند (: _ -) استفاده کنیم. و اینکه پکیج شما دارای اسم کوتاه، مختصر و مفیدی باشد از اهمیت بسیار بالایی برخوردار است. (بقول وب سایت گولنگ، اسمی که برای پکیج استفاده می کنید تحریک آمیز باشد)

🔹اسمی که برای پکیج استفاده می کنیم سعی کنیم lower case و single-word باشد. یعنی اینکه یک لغت یا یک اسم داشته باشد و با حروف کوچک نوشته شود.

🔹همچنین سعی کنید function name هم طولانی نباشد. طولانی نوشتن اسم ها همیشه باعث سردرگمی میشود.

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

🔰 @gopher_academy
استخدام Golang Developer
🔴 https://jobinja.ir/617746
🔴 https://jobinja.ir/621696


🔰 @gopher_academy
This media is not supported in your browser
VIEW IN TELEGRAM
🎯DevOps Roadmap🎯
🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion 🔰 @gopher_academy
Inheritance
در شیئ‌گرایی مواقعی پیش می‌آید که آبجکت‌ها برخی خصوصیات‌شان مشابه یکدیگر است اما در عین حال یک سری تفاوت‌ها هم با همدیگر دارند و اینجا است که به منظور جلوگیری از دوباره‌کاری و نوشتن کدهای تکراری، می‌توانیم از مفهومی تحت عنوان Inheritance به معنای «وراثت» بهره بگیریم. به کلام ساده‌تر، می‌توان سازوکاری اندیشید تا یک کلاس برخی خصوصیاتش را از کلاس دیگری به ارث ببرد اما در عین حال ویژگی‌های خاص خود را هم داشته باشد که در چنین فضایی، تا حد ممکن از دوباره‌کاری جلوگیری به عمل خواهد آمد.

🔰 @gopher_academy
Gopher Academy
Inheritance در شیئ‌گرایی مواقعی پیش می‌آید که آبجکت‌ها برخی خصوصیات‌شان مشابه یکدیگر است اما در عین حال یک سری تفاوت‌ها هم با همدیگر دارند و اینجا است که به منظور جلوگیری از دوباره‌کاری و نوشتن کدهای تکراری، می‌توانیم از مفهومی تحت عنوان Inheritance به معنای…
👆🏻👆🏻👆🏻توضیحات بیشتر در این زمینه👆🏻👆🏻👆🏻
🔹ایدهٔ وراثت به نوعی برگرفته از دنیای واقعی است. در واقع، همان‌طور که فرزند برخی خصوصیات خود را از والد به ارث می‌برد، یک کلاس زیرشاخه که معمولاً تحت عنوان Child Class شناخته می‌شود نیز می‌تواند برخی خصوصیاتش را از کلاس اصلی ارث‌بری کند که اصطلاحاً Parent Class نام دارد. به طور کلی، انواع مختلفی از وراثت در شیئ‌گرایی داریم که عبارتند از:

- Single Inheritance:
🔹به عبارتی، یک کلاس فرزند داریم که کلیهٔ خصوصیاتش را از کلاس والد به ارث می‌برد.

- Multi-level Inheritance:
🔹در این مدل از وراثت، خود کلاس والد نیز می‌تواند کلاس والد دیگری داشته باشد. به بیانی بهتر، کلاس فرزند خصوصیات خود را از کلاس پدر به ارث می‌برد و کلاس پدر نیز خصوصیاتش را از کلاس پدربزرگ به ارث خواهد برد تا جایی که می‌توان گفت کلیهٔ خصوصیات پدربزرگ در کلاس فرزند نیز موجود هستند.

- Multiple Inheritance:
🔹 وراثت چندگانه در خیلی از زبان‌ها مثل پی‌اچ‌پی ساپورت نمی‌شود و حاکی از آن است که یک کلاس فرزند خصوصیاتش را از بیش از یک کلاس والد به ارث ببرد.

- Hierarchical Inheritance:
🔹 اساساً چنانچه بیش از یک کلاس (فرزند) از کلاس والد ارث‌بری کنند، گفته می‌شود که مدل وراثت Hierarchical است. به طور مثال، در اپ WhatsApp یک پیام می‌تواند در قالب متن، صوت و یا تصویر ارسال گردد؛ مثلاً فرض کنیم که یک کلاس Message داریم که کلاس‌های فرزندی همچون AudioMessage ،TextMessage و PhotoMessage از آن ارث‌بری می‌کنند.

🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion 🔰 @gopher_academy
Polymorphism
واژهٔ Poly در زبان یونانی به معنی «چند» است و Morph نیز به معنای «شکل» است که روی هم رفته می‌توان معادلی همچون «چندشکلی/چندریختی» برایش در نظر گرفت. برای درک بهتر Polymorphism، نیاز است تا با مفهومی در شیئ‌گرایی آشنا گردیم به نام اینترفیس که این امکان را برای‌مان فراهم می‌آورد تا یک ساختار کلی طراحی نموده سپس کلاس‌های مد نظرمان را موظف به تبعیت از آن ساختار کنیم اما در عین حال هر کلاس می‌تواند پیاده‌سازی خاص خود را از آن ساختار داشته باشد؛ به عبارتی، آن ساختار کلی می‌تواند به اَشکال مختلفی پیاده‌سازی شود و این همان مفهوم چندشکلی است.

🔰 @gopher_academy
اموزش در مورد Regular Expressions بزاریم؟
Final Results
84%
اره
23%
نه
برای اینکه یک تابع anonymous بتونه خودشو به صورت بازگشتی فراخوانی کنه , باید ابتدا یک متغیر تعریف کنیم و سپس تابع anonymous رو بهش نسبت بدیم. در غیر اینصورت تابع تعریف شده قابل فراخوانی به صورت بازگشتی نخواهد بود.


🔰 @gopher_academy
🎯 ریپازیتوری چیست و چرا باید ازش استفاده کنیم ؟🎯

ریپازیتوری یک استراتژی برای دسترسی به داده ها است.
ریپازیتوری در حقیقت مانع تکرار در نوشتن Logic پروژه و Query های شما خواهد شد
به حداقل رساندن وابستگی لایه دیتا به تکنولوژی ها
از موضوع‌های مهم دیگر میتوان به تست واحد پروژه اشاره کرد که قطعا با استفاده از Repository Pattern بسیار ساده‌تر و قابل اطمینان‌تر است.
یکی دیگر از دلایل استفاده از ریپوزیتوری این است که سوئیچ کردن از یک دیتابیس به دیتابیس دیگر بسیار مشکلات کمتری را خواهد داشت. که این موضوع به دلیل جدا بودن پروژه شما از کوئری‌های مختلف در کلاس‌های متفاوت است.

🔰 @gopher_academy
2048.zip
10.3 KB
بازی 2048 نوشته شده با زبان go

🔰 @gopher_academy
🎯 درود دوستان بنده قصد دارم توی ریپوی زیر از تجربیاتی که دیگران توی مصاحبه گولنگ داشتن رو جمع آوری کنم.🎯
🎯 پس دوستانی که مصاحبه گولنگ داشتن برامون توی ریپوی زیر pull request بزنن تا به اشتراک بزاریم برای سایر افراد ی که وارد این حوزه میشن🎯

🙏🏿❤️🙏🏿


🔗 https://github.com/mrbardia72/Go-Interview-Questions-And-Answers


🔰 @gopher_academy
This media is not supported in your browser
VIEW IN TELEGRAM
DevOps Roadmap 😱

🔰 @gopher_academy
Gopher Academy
اموزش در مورد Regular Expressions بزاریم؟
🎯آموزش Regular Expressions در گولنگ🎯

Understanding Regular Expressions
🔴 https://t.me/gopher_academy/593

Dealing With Special Characters
🔴 https://t.me/gopher_academy/599

Using Boundaries
🔴 https://t.me/gopher_academy/606

Using Classes
🔴 https://t.me/gopher_academy/608
🔴 https://t.me/gopher_academy/609
🔴 https://t.me/gopher_academy/610

Using Alternatives
🔴 https://t.me/gopher_academy/611

Compiling Your Regex
🔴 https://t.me/gopher_academy/612

Finding
🔴 https://t.me/gopher_academy/617

Replacing
🔴 https://t.me/gopher_academy/618



🔰 @gopher_academy
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 Using Boundaries 🔴 https://t.me/gopher_academy/606 Using Classes 🔴 https:/…
مقدمه

درواقع Regex مخفف Regular Expression بوده و به معنی عبارات با قاعده است. عبارات با قاعده برای رشته های متنی مورد استفاده قرار میگیرد؛ جستجو در رشته های متنی، جابجایی در رشته های متنی و واکشی عبارتی خاص در یک رشته متنی.
عبارات با قاعده به شما کمک میکنه متن مورد نظر خودتون رو با الگوی دلخواه خودتون داخل یک رشته متنی مثل ورودی های کاربر جستجو کنید.

به عنوان مثال یک اینپوت شماره تلفن دارید و میخواهید کاربر شماره تلفن خود را داخل این اینپوت وارد کند. ممکن است کاربری شماره تلفن خود را با 09 وارد کند، ممکن است کاربر دیگری شماره تلفن خود را با 98+ وارد کند یا کاربری با 9 وارد کند.

برای همچین مواقعی حتی نمیتونین از length استفاده کنید؛ چون اگر با 9 شروع کند طول شماره 10 کاراکتر میشود، اگر با 09 شروع کند طول شماره 11 کاراکتر شده و اگر با 98+ شروع کند طول شماره 12 کاراکتر می شود! آیا روشی سراغ دارید که در همچین مواقعی درست یا غلط بودن شماره تلفن کاربر رو تشخیص دهد؟ اینجاست که عبارات با قاعده به شما کمک می کند.

ممکن است در اولین بار که با RegEx روبرو بشوید سینتکس آن برای شما پیچیده باشد. اما وقتی شروع به یادگیری آن می کنید متوجه می شوید که چقدر راحت و آسان و جذاب است.

شما به کمک عبارت با قاعده می توانید یک پترن(الگو) تعریف کنید و ورودی های کاربر را با پترن نوشته شده بررسی کنید. اگر ورودی کاربر با پترن شما مطابقت داشته باشد روند اصلی برنامه ادامه پیدا کرده و در صورت مغایرت ورودی کاربر با پترن نوشته شده، پیغام خطا به کاربر نمایش داده شود.

این از کل مفهوم و کاربرد regex یا همان عبارات با قاعده.

درواقع regex در اکثر زبان های برنامه نویسی مورد استفاده قرار میگیرد.


🔰 @gopher_academy
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 Using Boundaries 🔴 https://t.me/gopher_academy/606 Using Classes 🔴 https:/…
Understanding Regular Expressions
توی این مثال برای روشن شدن موضوع ما اومدیم صحت دورستی ایمیل ها رو چک کردیم
برای استفاده از ریجیکس در گو باید از کتابخونه regexp استفاده کنیم
توی این مثال ما یه الگو تعریف کردیم به صورت زیر
pattern := ^\w+@\w+\.\w+$
این الگو میگه در گام اول هرکارکتری مجاز هست و بعدش حتما باید @ باشه و بعدش دوباره باید هرکارکتری باشه و بعد اون دات و بعدش دوباره هرکارکتری
این الگو یعنی ما دتبال ابمبل هستیم


🔰 @gopher_academy
اگه دنبال یه سری نمونه sample هستید در مورد Regular Expressions به ریپوی زیر برید

https://github.com/StefanSchroeder/Golang-Regex-Tutorial


🔰 @gopher_academy
یه برگه تقلب خوب Golang Regex
https://gist.github.com/harrietty/d737a350827e100712c5b62168358c88


🔰 @gopher_academy