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
کی از قشنگ ترین مطالبی که خوندم، ۷ تکنیک ژاپنی برای مقابله با تنبلی و اهمال کاری بود که می گفت.....

۱) ایکیگای
این تکنیک میگه هرانسانی برای بیدار شدن از خواب نیاز به یه دلیل و‌ هدف داره که به زندگیش معنا بده، بگرد و معنای زندگی خودت رو پیدا کن
به قول دکتر فرانکل در کتاب معروفش"انسانی که چرایی برای زندگی داشته باشه، هر چگونگی رو تحمل میکنه"

۲) کایزن
هر روز روی پیشرفت های کوچک تمرکز کن، سعی کن هر روز ۱٪ فقط بهتر بشی، همین کافیه

۳) شوشین
ذهنت رو متمرکز و خالی نگه‌دار، هرچیزی رو نخون، هرآهنگی رو گوش نده، هر فیلمی رو نبین، روی ورودی های ذهنت حساس باش

+ذهن یه متخصص برخلاف باور همه خالی تر از ذهن یه انسان معمولیه
چون متمرکزه

۴) هارا هاچی بو
وقتی ۸۰ درصد احساس سیری کردی دست از غذا بکش، همونطور که روی ورودی های ذهن حساسی رو جسمت هم حساس باش، بدنی که هرچیزی بخوره خواه نا خواه تنبل میشه

۵) شنیرین یوکو
با طبیعت انس بگیر، ژاپنی ها طبیعت رو منبع الهام بخشی برای انگیزه و انرژی میدونن

۶) وابی سابی
به جای پیدا کردن زیبایی در کمال و کامل بودن، به دنبال زیبایی در نقص باش، یعنی دقیقا نقطه مقابل کمال‌گرایی

۷) گانبارو
صبور باش و استمرار داشته باش، هیچ اتفاقی یهویی رخ نمیده این رو برای خودت مرور کن


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍10🔥2🍾2🎃1
✍️ Massimo Dev
🔧 بهبود مهارت‌های گیت: نکات کلیدی که باید رعایت کنی


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

📍۱. پیام‌های کامیت واضح و مختصر
🔹هر کامیت باید یه تغییر مشخص و قابل فهم رو نشون بده.
🔹 با لحن امری بنویسید و پیام‌ها رو کوتاه و مفید نگه دارید.

🚦مثال:
fix: resolve user login issue

- Correct typo in login function
- Update error handling for failed login attempts


📍۲. نام‌گذاری برنچ‌ها باید با معنی باشد
🔹 اسم برنچ باید مشخص کنه که چه کاری توش انجام می‌شه معمولا با اسم تسکی که در اختیار داری یکسان میشه
🔹 از پیشوندهایی مثل feature/`، `bugfix/`، `chore/ و release/ برای شروع برنچ ها استفاده کنید که به شرح زیره:

📌 feature: اگه داری یه فیچر اضافه می‌کنی
📌 bugfix: اگه داری باگی رو روی محیط استیج فیکس می کنی
📌 chore: اگه داری کارهای دواپسی یا آپدیت پکیج ها که نه فیچر و نه باگ هستن، انجام میدی
📌 release: اگه میخوای ریلیزی بدی
📌 hotfix: اگه داری روی یه باگ روی مستر یا پروداکشن فیکس می‌کنی
📌 pref: اگه داری کارهایی برای ارتقا پرفورمنس انجام میدی
📌 docs: اگه داری داکیومنت یا مستنداتی به کد اضافه می‌کنی
📌 test: اگر داری تستی می‌نویسی یا تستی رو بهبود میدی
📌 refactor: اگر داری ساختار یه کد رو بدون تغییر لاجیکش عوض می‌کنی
📌 ci: اگر داری پروسه CI/CD رو تغییر یا بهبود میدی

🚦مثال:
feature/add-payment-gateway
bugfix/fix-cart-bug
chore/update-dependencies
release/v2.0.0
hotfix/urgent-login-fix
perf/optimize-database-queries
docs/add-api-documentation
test/add-unit-tests
refactor/clean-up-auth-module
ci/add-github-actions


📍۳. درخواست‌های ادغام (PR) کامل و دقیق
🔹 پول ریکوئست یا PRها باید واضح و قابل بررسی باشن.
🔹 توضیحات کامل بدید و مسائل مرتبط رو لینک کنید.

🚦مثال:
### Summary
Implement payment gateway integration.

### Changes
- Add payment processing service
- Create payment UI component
- Update checkout workflow

### Testing
- Manual testing on staging environment
- Unit tests for payment service

### Related Issues
- Resolves #123


📍۴. برچسب‌گذاری برای نسخه‌ها
🔹 از برچسب‌ها برای نشونه‌گذاری نقاط مهم تو تاریخچه پروژه استفاده کن.
🔹 از نسخه‌بندی معنایی استفاده کن.

🚦مثال:
git tag -a v2.0.0 -m "Release version 2.0.0"
git push origin v2.0.0


📍۵. تاریخچه کامیت تمیز
🔹 تاریخچه کامیت‌هاتون باید قابل خوندن و منطقی باشه.
🔹 کامیت‌ها رو ریبیس و اسکواش کنید تا از شلوغی جلوگیری کنید.

مثال:
# Rebase feature branch onto main
git rebase main

# Squash multiple commits into one
git rebase -i HEAD~3



👑 @gopher_academy | 💸 Donate | 💋 Boost
👍111🍾1🎃1
✍️ Massimo Dev

🔵⚪️ نسخه‌بندی API یا API Versioning میدونی چیه؟

🚨 نسخه‌بندی API یه راه‌حلیه برای مدیریت تغییرات API در طول زمان بدون اینکه کاربرهای قدیمی دچار مشکل بشن. وقتی که API تغییر می‌کنه و ویژگی‌های جدیدی بهش اضافه می‌شه یا مشکلاتی برطرف می‌شن، نسخه‌بندی کمک می‌کنه تا کاربرهایی که از نسخه‌های قدیمی استفاده می‌کنن همچنان بدون مشکل به کارشون ادامه بدن و در عین حال نسخه‌های جدیدتر هم در دسترس باشن.

✳️ بذار یه مثال ساده بزنم:

فرض کن یه API داری که اطلاعات آب و هوا رو می‌ده. اولین نسخه‌ی API (v1) یه اندپوینت داره به اسم
/weather
که اطلاعات ساده‌ای مثل دما و رطوبت رو برمی‌گردونه.

نسخه 1 (v1):
GET /v1/weather?city=London
Result:
{
"temperature": "15°C",
"humidity": "75%"
}


بعداً تصمیم می‌گیری اطلاعات بیشتری مثل سرعت باد و پیش‌بینی هوا رو اضافه کنی. برای اینکه کاربرهای قدیمی دچار مشکل نشن، یه نسخه جدید از API (v2) معرفی می‌کنی:

نسخه 2 (v2):
GET /v2/weather?city=London
Result:
{
"temperature": "15°C",
"humidity": "75%",
"wind_speed": "10 km/h",
"forecast": [
{"day": "Monday", "temperature": "16°C"},
{"day": "Tuesday", "temperature": "17°C"}
]
}


به این ترتیب، کاربرهایی که از نسخه قدیمی (v1) استفاده می‌کنن همچنان بدون تغییر به کارشون ادامه می‌دن و کاربرهای جدید می‌تونن از ویژگی‌های جدید نسخه 2 (v2) استفاده کنن.

✳️ بهترین روش‌ها برای نسخه‌بندی API

🔹نسخه‌بندی URL:
- شماره نسخه رو توی مسیر URL قرار بده، مثل
/v1/resource
و
/v2/resource
- مثال:
`GET /api/v1/weather`،
GET /api/v2/weather.

🔹نسخه‌بندی با هدرها:
- از هدرهای سفارشی برای مشخص کردن نسخه استفاده کن.
- مثال:
GET /api/weather
با
headers: {"API-Version": "v2"}

🔹نسخه‌بندی با پارامترهای کوئری:
- شماره نسخه رو به عنوان پارامتر کوئری قرار بده.
- مثال:
GET /api/weather?version=2

🔹استراتژی پایان‌دهی به نسخه‌های قدیمی:
- به کاربرها بگو که نسخه قدیمی چه زمانی غیرفعال می‌شه و راهنمایی برای مهاجرت به نسخه‌های جدید بده.
- یه بازه زمانی مشخص و راهنمای مهاجرت ارائه کن.

🔹مستندسازی:
- برای هر نسخه از API مستندات واضح و دقیقی فراهم کن.
- مثال‌ها، موارد استفاده و راهنماهای مهاجرت رو توضیح بده.

🔹سازگاری با نسخه‌های قبلی:
- تا حد ممکن نسخه‌های جدید رو سازگار با نسخه‌های قبلی نگه دار تا کاربرها دچار مشکل نشن.
- از نسخه‌بندی معنایی (مثل major.minor.patch) استفاده کن تا سطح تغییرات رو نشون بدی مثلا نسخه ،29.5.0 شده 29.5.1

🔹سیاست نسخه‌بندی:
- یه سیاست نسخه‌بندی تعریف کن که مشخص کنه کی و چطور نسخه‌های جدید منتشر می‌شن.
- واضح بگو که چه زمانی تغییرات بزرگ نیاز به یه نسخه جدید دارن.


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍10💋2🔥1
هر چند وقت یک بار بد نیست ۵ قانون مهم دنیا را برای درک بهتر موفقیت برای خود مرور کنید:

1. قانون مورفی (Murphy’s Law)

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

2. قانون کیدلین (Kidlin’s Law)

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

3. قانون گیلبرت (Gilbert’s Law)

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

4. قانون والسون (Walson’s Law)

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

5. قانون فالکلند (Falkland’s Law)

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


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍112💯1🍾1💋1💅1
سیستم دیزاین تلگرام🤔👾

👑 @gopher_academy | 💸 Donate | 💋 Boost
🔥13👍3💋1💊1
یه ریپازیتوری باحال توی گیتهاب پیدا کردم که یکی از بچه های ایرانی آماده کرده.

نکات خیلی خوبی برای گرفتن جاب آفر از جمله رزومه نویسی، مصاحبه ، پروسه اپلای و... رو توش نوشته.

حتما چک کنید:

https://github.com/coditori/highly-skilled-job-offers

DevTwitter | <Reza/>


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍5🔥2💋1🎃1
هروقت خواستید تصمیم مهمی را در زندگیتان بگیرید و یا عکس العملی بروز دهید از این تکنیک استفاده کنید.
تکنیک 10-10-10-10:

برای استفاده از این تکنیک 4 سوال ساده را باید از خود بپرسید:

اول: پیامد این تصمیمِ من بعد از 10 دقیقه چیست؟
دوم: پیامد این تصمیم بعد از 10 روز چیست؟
سوم: پیامد این تصمیم بعد از 10 ماه چیست؟
چهارم: پیامد این تصمیم بعد از 10 سال چیست؟

گاهی باید زمان تصمیم گیری در اخرین لحظات خودمان را کنترل کنیم...


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍12🎃5💅2
🥶معنای مساوی در ریاضی چیست؟
🤯 پرسشی ظاهرا ساده که پاسخ‌های پیچیده دارد

💜 https://www.zoomit.ir/fundamental-science/422703-what-is-the-meaning-of-equality-in-math/


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍3🍓2🔥1🎃1
✍️ یه سری خطای های رایج در گیت و راه حل های آن

🆘 1. 𝐄𝐫𝐫𝐨𝐫: "𝐟𝐚𝐭𝐚𝐥: 𝐧𝐨𝐭 𝐚 𝐠𝐢𝐭 𝐫𝐞𝐩𝐨𝐬𝐢𝐭𝐨𝐫𝐲"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Check that you are in the correct directory with a Git repository, or initialize a new repository using 𝐠𝐢𝐭 𝐢𝐧𝐢𝐭.

🆘 2. 𝐄𝐫𝐫𝐨𝐫: "𝐘𝐨𝐮𝐫 𝐛𝐫𝐚𝐧𝐜𝐡 𝐢𝐬 𝐚𝐡𝐞𝐚𝐝/𝐛𝐞𝐡𝐢𝐧𝐝 '𝐨𝐫𝐢𝐠𝐢𝐧/𝐦𝐚𝐬𝐭𝐞𝐫' 𝐛𝐲 𝐗 𝐜𝐨𝐦𝐦𝐢𝐭𝐬"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Use 𝐠𝐢𝐭 𝐩𝐮𝐥𝐥 to update your local branch with the remote branch or 𝐠𝐢𝐭 𝐩𝐮𝐬𝐡 to push your changes to the remote branch.

🆘 3. 𝐄𝐫𝐫𝐨𝐫: "𝐌𝐞𝐫𝐠𝐞 𝐜𝐨𝐧𝐟𝐥𝐢𝐜𝐭"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Resolve conflicts manually in the conflicting files, then use 𝐠𝐢𝐭 𝐚𝐝𝐝 to stage the changes, and commit them.

🆘 4. 𝐄𝐫𝐫𝐨𝐫: "𝐂𝐨𝐦𝐦𝐢𝐭 𝐧𝐨𝐭 𝐢𝐧 𝐬𝐲𝐧𝐜 𝐰𝐢𝐭𝐡 𝐭𝐡𝐞 𝐫𝐞𝐦𝐨𝐭𝐞 𝐛𝐫𝐚𝐧𝐜𝐡"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Use  𝐠𝐢𝐭 𝐩𝐮𝐥𝐥 to get the latest changes from the remote branch and then commit your changes.

🆘 5. 𝐄𝐫𝐫𝐨𝐫: "𝐏𝐞𝐫𝐦𝐢𝐬𝐬𝐢𝐨𝐧 𝐝𝐞𝐧𝐢𝐞𝐝 (𝐩𝐮𝐛𝐥𝐢𝐜𝐤𝐞𝐲)"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Ensure your SSH key is added to your SSH agent and associated with your Git account.

🆘 6. 𝐄𝐫𝐫𝐨𝐫: "𝐟𝐚𝐭𝐚𝐥: 𝐫𝐞𝐦𝐨𝐭𝐞 𝐨𝐫𝐢𝐠𝐢𝐧 𝐚𝐥𝐫𝐞𝐚𝐝𝐲 𝐞𝐱𝐢𝐬𝐭𝐬"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Update the remote's URL using 𝐠𝐢𝐭 𝐫𝐞𝐦𝐨𝐭𝐞 𝐬𝐞𝐭-𝐮𝐫𝐥 𝐨𝐫𝐢𝐠𝐢𝐧 <𝐧𝐞𝐰_𝐮𝐫𝐥>.

🆘 7. 𝐄𝐫𝐫𝐨𝐫: "𝐞𝐫𝐫𝐨𝐫: 𝐩𝐚𝐭𝐡𝐬𝐩𝐞𝐜 '𝐟𝐢𝐥𝐞' 𝐝𝐢𝐝 𝐧𝐨𝐭 𝐦𝐚𝐭𝐜𝐡 𝐚𝐧𝐲 𝐟𝐢𝐥𝐞(𝐬) 𝐤𝐧𝐨𝐰𝐧 𝐭𝐨 𝐠𝐢𝐭"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Check the spelling and case of the file name and ensure it's part of the repository.

🆘 8. 𝐄𝐫𝐫𝐨𝐫: "𝐂𝐨𝐦𝐦𝐢𝐭 𝐦𝐞𝐬𝐬𝐚𝐠𝐞 𝐦𝐢𝐬𝐬𝐢𝐧𝐠"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Provide a commit message using  𝐠𝐢𝐭 𝐜𝐨𝐦𝐦𝐢𝐭 -𝐦 "Your message here".

🆘 9. 𝐄𝐫𝐫𝐨𝐫: "𝐰𝐚𝐫𝐧𝐢𝐧𝐠: 𝐋𝐅 𝐰𝐢𝐥𝐥 𝐛𝐞 𝐫𝐞𝐩𝐥𝐚𝐜𝐞𝐝 𝐛𝐲 𝐂𝐑𝐋𝐅"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Configure line endings using .𝐠𝐢𝐭𝐚𝐭𝐭𝐫𝐢𝐛𝐮𝐭𝐞𝐬 or global Git configuration.

🆘 10. 𝐄𝐫𝐫𝐨𝐫: "𝐞𝐫𝐫𝐨𝐫: 𝐘𝐨𝐮𝐫 𝐥𝐨𝐜𝐚𝐥 𝐜𝐡𝐚𝐧𝐠𝐞𝐬 𝐭𝐨 𝐭𝐡𝐞 𝐟𝐨𝐥𝐥𝐨𝐰𝐢𝐧𝐠 𝐟𝐢𝐥𝐞𝐬 𝐰𝐨𝐮𝐥𝐝 𝐛𝐞 𝐨𝐯𝐞𝐫𝐰𝐫𝐢𝐭𝐭𝐞𝐧 𝐛𝐲 𝐦𝐞𝐫𝐠𝐞"
  - 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Stash your local changes with 𝐠𝐢𝐭 𝐬𝐭𝐚𝐬𝐡, then perform the merge, and finally apply your changes back with 𝐠𝐢𝐭 𝐬𝐭𝐚𝐬𝐡 𝐚𝐩𝐩𝐥𝐲.


👑 @gopher_academy | 💸 Donate | 💋 Boost
🏆3👍1
• با قانون 8+8+8 به زندگیت نظم بده:

1- 8 ساعت سخت کار کن.
2- 8 ساعت خواب آروم و راحت داشته باش.
3- 8 ساعت هر کاری که دوست داری بکن.
ما قدر زمانی که داریم رو نمیدونیم، براش برنامه ریزی نمی‌کنیم برای همینه که هیچوقت تایم برای کارامون نداریم، یا تایم خوابمون درست نیست یا کسلیم، یا کل روز ول میچرخیم و نمیدونیم چیکار کنیم. این قانون به زندگیت نظم میده و تایمتو تنظیم می‌کنه.

👑 @gopher_academy | 💸 Donate | 💋 Boost
👍175🔥2🏆1💋1🎃1💊1
✍️یه سری کامندهای عمومی و ضروری که هر برنامه نویسی در کار با لینوکس باید بلد باشه

📂 𝟭. 𝗙𝗶𝗹𝗲 𝗮𝗻𝗱 𝗗𝗶𝗿𝗲𝗰𝘁𝗼𝗿𝘆 𝗠𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁 🗂
- 𝚕𝚜: List files and directories in the current location
- 𝚙𝚠𝚍: Display the current working directory path
- 𝚌𝚍: Navigate between directories
- 𝚖𝚔𝚍𝚒𝚛: Create new directories
- 𝚛𝚖𝚍𝚒𝚛: Remove empty directories
- 𝚝𝚘𝚞𝚌𝚑: Create new files
- 𝚌𝚙: Duplicate files or directories
- 𝚖𝚟: Move or rename files and directories
- 𝚛𝚖: Delete files or directories

🔧 𝟮. 𝗣𝗿𝗼𝗰𝗲𝘀𝘀 𝗠𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁
- 𝚙𝚜: View running processes
- 𝚝𝚘𝚙: Monitor active processes in real-time
- 𝚑𝚝𝚘𝚙: Interact with processes using a user-friendly interface
- 𝚔𝚒𝚕𝚕: Stop a specific process
- 𝚔𝚒𝚕𝚕𝚊𝚕𝚕: Terminate all occurrences of a process
- 𝚙𝚜𝚝𝚛𝚎𝚎: Visualize processes in a hierarchical tree structure 🌲

👥 𝟯. 𝗨𝘀𝗲𝗿 𝗮𝗻𝗱 𝗚𝗿𝗼𝘂𝗽 𝗠𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁
- 𝚙𝚊𝚜𝚜𝚠𝚍: Update user passwords
- 𝚞𝚜𝚎𝚛𝚊𝚍𝚍: Create new users
- 𝚞𝚜𝚎𝚛𝚍𝚎𝚕: Remove users
- 𝚐𝚛𝚘𝚞𝚙𝚜: List groups a user belongs to
- 𝚞𝚜𝚎𝚛𝚖𝚘𝚍: Modify user account details
- 𝚒𝚍: Show user and group information
- 𝚐𝚛𝚘𝚞𝚙𝚊𝚍𝚍: Create new groups
- 𝚐𝚛𝚘𝚞𝚙𝚍𝚎𝚕: Remove groups

💾 𝟰. 𝗦𝘆𝘀𝘁𝗲𝗺 𝗜𝗻𝗳𝗼𝗿𝗺𝗮𝘁𝗶𝗼𝗻 🖥
- 𝚞𝚗𝚊𝚖𝚎: Display system details
- 𝚍𝚏: Check disk space usage
- 𝚍𝚞: Estimate file and directory sizes
- 𝚏𝚛𝚎𝚎: Show available memory
- 𝚕𝚜𝚌𝚙𝚞: Provide CPU architecture information
- 𝚕𝚜𝚑𝚠: List hardware components
- 𝚕𝚜𝚋𝚕𝚔: Display block devices

🌐 𝟱. 𝗡𝗲𝘁𝘄𝗼𝗿𝗸 𝗖𝗼𝗻𝗳𝗶𝗴𝘂𝗿𝗮𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗠𝗼𝗻𝗶𝘁𝗼𝗿𝗶𝗻𝗴 🕸
- 𝚒𝚏𝚌𝚘𝚗𝚏𝚒𝚐: Manage network interfaces
- 𝚒𝚙: Control routing, devices, and tunnels
- 𝚙𝚒𝚗𝚐: Verify network connectivity
- 𝚗𝚎𝚝𝚜𝚝𝚊𝚝: Analyze network statistics
- 𝚜𝚜: Investigate socket connections
- 𝚝𝚛𝚊𝚌𝚎𝚛𝚘𝚞𝚝𝚎: Track packet routes and delays
- 𝚜𝚜𝚑: Establish secure remote connections
- 𝚗𝚌: Swiss army knife for TCP/IP networking

📦 𝟲. 𝗣𝗮𝗰𝗸𝗮𝗴𝗲 𝗠𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁 📥
- 𝚊𝚙𝚝-𝚐𝚎𝚝, 𝚊𝚙𝚝: Manage packages on Debian-based systems
- 𝚢𝚞𝚖, 𝚍𝚗𝚏: Handle packages on RPM-based systems
- 𝚛𝚙𝚖: Manage RPM packages
- 𝚍𝚙𝚔𝚐: Manage Debian packages
- 𝚜𝚗𝚊𝚙: Work with the universal Linux package system
- 𝚣𝚢𝚙𝚙𝚎𝚛: Manage packages on openSUSE

📜 𝟳. 𝗙𝗶𝗹𝗲 𝗩𝗶𝗲𝘄𝗶𝗻𝗴 𝗮𝗻𝗱 𝗘𝗱𝗶𝘁𝗶𝗻𝗴 📝
- 𝚌𝚊𝚝: Display file contents
- 𝚕𝚎𝚜𝚜: View files with navigation controls
- 𝚖𝚘𝚛𝚎: Another file viewing tool
- 𝚟𝚒𝚖: Use the powerful Vim text editor
- 𝚐𝚎𝚍𝚒𝚝: Edit files using the GNOME text editor
- 𝚗𝚊𝚗𝚘: Edit files with the user-friendly Nano editor



👑 @gopher_academy | 💸 Donate | 💋 Boost
👍8🍾2🔥1🏆1💋1🎃1
🔴 درود به همگی اگر دوست داشتید ریپو زیر نمونه سوالات مصاحبه ای گولنگ و یه سری نکات توش هست رو یه نگاهی کنید
🔵و اگر چیزی به ذهنتون اومد که کمه و باید اضافه شه issue کنید
⭐️ استار یادتون نره😘

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


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍5🕊1🏆1
چرا نبود مهندسین بیشتر در تلگرام موجب مشکلات امنیتی می‌شود؟

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

https://digiato.com/security/telegrams-30-engineers-team-is-a-security-red-flag


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍5🍓2💅2🎃1
✍️استراتژی های اسکیل کردن در کوبر


1️⃣. Horizontal Pod Autoscaling (HPA):
Automatically scales the number of pods in a deployment or replica set based on observed CPU utilization or other select metrics.

2️⃣. Vertical Pod Autoscaling (VPA):
Automatically adjusts the CPU and memory resources allocated to pods in a deployment or replica set.

3️⃣. Cluster Autoscaling:
Dynamically adjusts the number of nodes in a Kubernetes cluster based on the demands of the workloads and resource availability.

4️⃣. Manual Scaling:
Involves manually setting the number of replicas in a deployment or replica set, using a command like
kubectl scale --replicas=desired_replica_count object_type/object_name


5️⃣. Predictive Scaling:
Uses advanced algorithms and AI, like in PredictKube, to forecast future demand and proactively scale resources before they are needed.



👑 @gopher_academy | 💸 Donate | 💋 Boost
👍3
💜بن بست چیه اصلن توی این قسمت در مورد انواع حالت بن بست صحبت میشه
.
.
A deadlock occurs when two or more transactions are waiting for each other to release locks on resources they need to continue processing. This results in a situation where neither transaction can proceed, and they end up waiting indefinitely.

🔹 Coffman Conditions
The Coffman conditions, named after Edward G. Coffman, Jr., who first outlined them in 1971, describe four necessary conditions that must be present simultaneously for a deadlock to occur:

- Mutual Exclusion
- Hold and Wait
- No Preemption
- Circular Wait

🔹 Deadlock Prevention
- Resource ordering: impose a total ordering of all resource types, and require that each process requests resources in a strictly increasing order.

- Timeouts: A process that holds resources for too long can be rolled back.

- Banker’s Algorithm: A deadlock avoidance algorithm that simulates the allocation of resources to processes and helps in deciding whether it is safe to grant a resource request based on the future availability of resources, thus avoiding unsafe states.

🔹 Deadlock Recovery
- Selecting a victim: Most modern Database Management Systems (DBMS) and Operating Systems implement sophisticated algorithms for detecting deadlocks and selecting victims, often allowing customization of the victim selection criteria via configuration settings. The selection can be based on resource utilization, transaction priority, cost of rollback etc.

- Rollback: The database may roll back the entire transaction or just enough of it to break the deadlock. Rolled-back transactions can be restarted automatically by the database management system.


👑 @gopher_academy | 💸 Donate | 💋 Boost
1👍1🕊1
با افتخار ما ایرانی‌ها در رده بندی آی‌کیو در جهان سومیم، امیدوارم یه روزی بیاد که لااقل حس کنیم ما از این پتانسیل استفاده کردیم برای ایران
حیف این هوش که هدر بره. این بزرگترین سرمایه‌ی ماست

👑 @gopher_academy
🔥15🎃144💊2
✍️یه سری نمونه سوال مصاحبه ای در لینوکس

𝟏. 𝐈𝐟 𝐲𝐨𝐮 𝐰𝐚𝐧𝐭 𝐭𝐨 𝐫𝐮𝐧 𝐚 𝐭𝐚𝐬𝐤/𝐬𝐜𝐫𝐢𝐩𝐭 𝐢𝐧 𝐛𝐚𝐜𝐤𝐠𝐫𝐨𝐮𝐧𝐝 𝐞𝐯𝐞𝐧 𝐢𝐟 𝐲𝐨𝐮 𝐜𝐥𝐨𝐬𝐞 𝐲𝐨𝐮𝐫 𝐭𝐞𝐫𝐦𝐢𝐧𝐚𝐥, 𝐰𝐡𝐚𝐭 𝐢𝐬 𝐭𝐡𝐞 𝐰𝐚𝐲?
Ans: Using nohup command

𝟐. 𝐖𝐡𝐢𝐜𝐡 𝐜𝐨𝐦𝐦𝐚𝐧𝐝 𝐝𝐢𝐬𝐩𝐥𝐚𝐲𝐬 𝐢𝐧𝐟𝐨𝐫𝐦𝐚𝐭𝐢𝐨𝐧 𝐚𝐛𝐨𝐮𝐭 𝐤𝐞𝐫𝐧𝐞𝐥-𝐫𝐞𝐥𝐚𝐭𝐞𝐝 𝐦𝐞𝐬𝐬𝐚𝐠𝐞𝐬 𝐚𝐥𝐨𝐧𝐠 𝐰𝐢𝐭𝐡 𝐡𝐚𝐫𝐝𝐰𝐚𝐫𝐞 𝐚𝐧𝐝 𝐬𝐲𝐬𝐭𝐞𝐦 𝐬𝐭𝐚𝐫𝐭𝐮𝐩 𝐦𝐞𝐬𝐬𝐚𝐠𝐞𝐬 𝐬𝐭𝐨𝐫𝐞𝐝 𝐢𝐧 𝐤𝐞𝐫𝐧𝐞𝐥 𝐫𝐢𝐧𝐠 𝐛𝐮𝐟𝐟𝐞𝐫?
Ans: dmesg command

𝟑. 𝐖𝐡𝐢𝐜𝐡 𝐜𝐨𝐦𝐦𝐚𝐧𝐝 𝐜𝐚𝐧 𝐲𝐨𝐮 𝐮𝐬𝐞 𝐭𝐨 𝐝𝐢𝐬𝐩𝐥𝐚𝐲 𝐚 𝐥𝐢𝐬𝐭 𝐨𝐟 𝐜𝐮𝐫𝐫𝐞𝐧𝐭𝐥𝐲 𝐜𝐨𝐧𝐟𝐢𝐠𝐮𝐫𝐞𝐝 𝐏𝐡𝐲𝐬𝐢𝐜𝐚𝐥 𝐕𝐨𝐥𝐮𝐦𝐞𝐬?
Ans: lvs command

𝟒. 𝐖𝐡𝐢𝐜𝐡 𝐜𝐨𝐦𝐦𝐚𝐧𝐝 𝐝𝐢𝐬𝐩𝐥𝐚𝐲𝐬 𝐦𝐞𝐦𝐨𝐫𝐲 𝐮𝐬𝐚𝐠𝐞, 𝐢𝐧𝐜𝐥𝐮𝐝𝐢𝐧𝐠 𝐭𝐡𝐞 𝐚𝐦𝐨𝐮𝐧𝐭
𝐨𝐟 𝐬𝐰𝐚𝐩 𝐬𝐩𝐚𝐜𝐞 𝐛𝐞𝐢𝐧𝐠 𝐮𝐬𝐞𝐝?
Ans: free command

𝟓. 𝐓𝐡𝐞 /𝐡𝐨𝐦𝐞 𝐩𝐚𝐫𝐭𝐢𝐭𝐢𝐨𝐧 𝐢𝐬 𝐫𝐮𝐧𝐧𝐢𝐧𝐠 𝐨𝐮𝐭 𝐨𝐟 𝐝𝐢𝐬𝐤 𝐬𝐩𝐚𝐜𝐞. 𝐖𝐡𝐢𝐜𝐡 𝐜𝐨𝐦𝐦𝐚𝐧𝐝 𝐜𝐚𝐧 𝐲𝐨𝐮 𝐮𝐬𝐞 𝐭𝐨 𝐝𝐞𝐭𝐞𝐫𝐦𝐢𝐧𝐞 𝐰𝐡𝐢𝐜𝐡 𝐮𝐬𝐞𝐫'𝐬 𝐡𝐨𝐦𝐞 𝐝𝐢𝐫𝐞𝐜𝐭𝐨𝐫𝐲 𝐢𝐬 𝐮𝐬𝐢𝐧𝐠 𝐭𝐡𝐞 𝐦𝐨𝐬𝐭 𝐬𝐩𝐚𝐜𝐞?
Ans: we can use du command

𝟔. 𝐇𝐨𝐰 𝐭𝐨 𝐜𝐡𝐞𝐜𝐤 𝐲𝐨𝐮𝐫 𝐋𝐢𝐧𝐮𝐱 𝐅𝐢𝐥𝐞𝐒𝐲𝐬𝐭𝐞𝐦?
Ans: lsblk -f

𝟕. 𝐇𝐨𝐰 𝐭𝐨 𝐒𝐎𝐑𝐓 𝐭𝐡𝐞 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐟𝐫𝐨𝐦 𝐚 𝐟𝐢𝐥𝐞 𝐢𝐧 𝐋𝐢𝐧𝐮𝐱?
Ans: sort -r file

𝟖. 𝐇𝐨𝐰 𝐭𝐨 𝐝𝐢𝐬𝐩𝐥𝐚𝐲 𝐔𝐍𝐈𝐐𝐔𝐄 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐟𝐫𝐨𝐦 𝐚 𝐟𝐢𝐥𝐞 𝐢𝐧 𝐋𝐢𝐧𝐮𝐱?
Ans: sort file | uniq

𝟗. 𝐇𝐨𝐰 𝐭𝐨 𝐬𝐞𝐚𝐫𝐜𝐡 𝐦𝐮𝐥𝐭𝐢𝐩𝐥𝐞 𝐰𝐨𝐫𝐝𝐬 𝐚𝐧𝐝 𝐝𝐢𝐬𝐩𝐥𝐚𝐲 𝐦𝐚𝐭𝐜𝐡𝐢𝐧𝐠 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐟𝐫𝐨𝐦 𝐚 𝐟𝐢𝐥𝐞 𝐢𝐧 𝐋𝐢𝐧𝐮𝐱?
Ans: egrep "word1|word2" file

𝟏𝟎. 𝐇𝐨𝐰 𝐭𝐨 𝐂𝐎𝐔𝐍𝐓 𝐧𝐨. 𝐨𝐟 𝐥𝐢𝐧𝐞𝐬 𝐢𝐧 𝐚 𝐟𝐢𝐥𝐞 𝐢𝐧 𝐋𝐢𝐧𝐮𝐱?
Ans: wc -l file

𝟏𝟏. 𝐇𝐨𝐰 𝐭𝐨 𝐜𝐡𝐞𝐜𝐤 𝐢𝐟 𝐭𝐰𝐨 𝐟𝐢𝐥𝐞𝐬 𝐚𝐫𝐞 𝐢𝐝𝐞𝐧𝐭𝐢𝐜𝐚𝐥 𝐨𝐫 𝐧𝐨𝐭 𝐢𝐧 𝐋𝐢𝐧𝐮𝐱?
Ans: cmp fileA fileB

𝟏𝟐. 𝐇𝐨𝐰 𝐭𝐨 𝐜𝐨𝐦𝐩𝐚𝐫𝐞 𝐚𝐧𝐝 𝐝𝐢𝐬𝐩𝐥𝐚𝐲 𝐝𝐢𝐟𝐟𝐞𝐫𝐞𝐧𝐜𝐞 𝐛𝐞𝐭𝐰𝐞𝐞𝐧 𝐟𝐢𝐥𝐞𝐬 𝐢𝐧 𝐋𝐢𝐧𝐮𝐱?
Ans: diff -u fileA fileB

𝟏𝟑. 𝐇𝐨𝐰 𝐭𝐨 𝐫𝐞𝐜𝐨𝐫𝐝 𝐲𝐨𝐮𝐫 𝐚𝐜𝐭𝐢𝐯𝐢𝐭𝐲 𝐨𝐧 𝐭𝐞𝐫𝐦𝐢𝐧𝐚𝐥 𝐢𝐧 𝐚 𝐟𝐢𝐥𝐞?
Ans: script

𝟏𝟒. 𝐇𝐨𝐰 𝐭𝐨 𝐝𝐢𝐬𝐩𝐥𝐚𝐲 𝐬𝐭𝐚𝐫𝐭𝐢𝐧𝐠 𝐭𝐰𝐨 𝐜𝐡𝐚𝐫𝐚𝐜𝐭𝐞𝐫𝐬 𝐨𝐟 𝐚𝐥𝐥 𝐥𝐢𝐧𝐞?
Ans: cut -c1-2 file.txt

𝟏𝟓. 𝐇𝐨𝐰 𝐭𝐨 𝐝𝐢𝐬𝐩𝐥𝐚𝐲 𝐚 𝐬𝐩𝐞𝐜𝐢𝐟𝐢𝐜 𝐥𝐢𝐧𝐞 𝐟𝐫𝐨𝐦 𝐚 𝐟𝐢𝐥𝐞?
Ans: sed -n '5p' file.txt

𝟏𝟔. 𝐇𝐨𝐰 𝐭𝐨 𝐫𝐞𝐩𝐥𝐚𝐜𝐞 𝐚 𝐬𝐩𝐞𝐜𝐢𝐟𝐢𝐜 𝐰𝐨𝐫𝐝 𝐰𝐢𝐭𝐡𝐢𝐧 𝐚 𝐟𝐢𝐥𝐞?
Ans: sed -n 's/from/to/g' file.txt

𝟏𝟕. 𝐇𝐨𝐰 𝐭𝐨 𝐞𝐱𝐭𝐞𝐧𝐝 𝐬𝐢𝐳𝐞 𝐨𝐟 𝐚 𝐟𝐢𝐥𝐞 𝐰𝐢𝐭𝐡𝐨𝐮𝐭 𝐚𝐝𝐝𝐢𝐧𝐠 𝐚𝐧𝐲 𝐝𝐚𝐭𝐚?
Ans: truncate -s 100M file.txt

𝟏𝟖. 𝐇𝐨𝐰 𝐭𝐨 𝐜𝐡𝐞𝐜𝐤 𝐜𝐩𝐮/𝐜𝐨𝐫𝐞/𝐭𝐡𝐫𝐞𝐚𝐝 𝐢𝐧𝐟𝐨 𝐨𝐟 𝐲𝐨𝐮𝐫 𝐥𝐢𝐧𝐮𝐱 𝐬𝐞𝐫𝐯𝐞𝐫?
Ans: lscpu



👑 @gopher_academy | 💸 Donate | 💋 Boost
👍8💋1
سلسله مراتب رفتار برنامه نویس ها براساس سطح
🍻A beginner developer:
- Writes simple code
- Works slowly
- Makes mistakes in their code

🍻An experienced developer:
- Writes complex code
- Works quickly
- Makes fewer mistakes in their code

🚬A senior developer:
- Writes simple code
- Thinks fast and moves slowly
- Makes mistakes in their head and corrects them before writing code.


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍43💋2🕊1🍾1💊1
🚀 فرق بین 𝐃𝐨𝐜𝐤𝐞𝐫 𝐯𝐬. 𝐏𝐨𝐝𝐦𝐚𝐧 𝐯𝐬. 𝐂𝐨𝐧𝐭𝐚𝐢𝐧𝐞𝐫𝐝 𝐯𝐬. 𝐂𝐑𝐈-𝐎 🌟


🐳 𝑫𝒐𝒄𝒌𝒆𝒓 : A robust platform empowering developers to build, share, and run containers effortlessly. With its intuitive CLI and daemon-based architecture, Docker remains a top choice for containerization.

🔹 𝑷𝒐𝒅𝒎𝒂𝒏: A daemonless container engine offering similar functionalities to Docker but without the need for a central daemon. Perfect for developing and managing OCI containers directly on your Linux system.

🚀 𝑪𝒐𝒏𝒕𝒂𝒊𝒏𝒆𝒓𝒅 : This industry-standard core container runtime focuses on simplicity and reliability. It provides essential functionalities to run containers and manage images efficiently on any system.

⚙️ 𝑪𝑹𝑰-𝑶 : Tailored specifically for Kubernetes, CRI-O is a lightweight container runtime implementing the Kubernetes Container Runtime Interface (CRI). It seamlessly integrates OCI-compatible runtimes into Kubernetes clusters.

Whether you're a developer, DevOps enthusiast, or Kubernetes aficionado, understanding these container runtimes can streamline your deployment workflows.


👑 @gopher_academy | 💸 Donate | 💋 Boost
👍7🕊1
6 مورد از استفاده الستیک سرچ

👑 @gopher_academy | 💸 Donate | 💋 Boost
👍131
🔔 100خطای رایج در کوبر به همراه راه حل


𝑓𝑜𝑟 𝑚𝑜𝑟𝑒 𝑖𝑛𝑓𝑜, 𝑦𝑜𝑢 𝑐𝑎𝑛 𝑐ℎ𝑒𝑐𝑘 𝑡ℎ𝑖𝑠 𝑙𝑖𝑛𝑘:

https://prodevopsguy.site/100-Kubernetes-Errors-With-Solution

#DevOps #Cloud #Kubernetes #Troubleshooting


👑 @gopher_academy | 💸 Donate | 💋 Boost
🔥6🍾1💋1