Gopher Academy
3.33K subscribers
914 photos
40 videos
279 files
1.95K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72

ادمین تبلیغات:
@labdon_ads
Download Telegram
Live stream finished (1 hour)
Media is too big
VIEW IN TELEGRAM
ایونت چطور یک برنامه بنویسیم


🔰 @gopher_academy
7🔥2👍1👏1
📥 دریافت شده از:
Ali Nazari
-------------

یک نمونه واقعی از قانون ۸۰/۲۰ توی صنعت نرم‌افزار

- توی سال ۲۰۰۲ مایکروسافت اعلام کرد که با برطرف کردن ۲۰٪ از باگ‌هایی که بیشتر از همه گزارش شدن، می‌تونستن ۸۰٪ مشکلات و باگ‌های مربوط به ویندوز و آفیس رو برطرف کنن

- بطور کلی این قانون میگه معمولاً چشمگیرترین (تقریباً ۸۰٪) خروجی‌ها، از ۲۰٪ تلاش‌ها ناشی میش. توی دنیای نرم‌افزار هم معمولاً چنین نتیجه‌گیری‌هایی وجود داره:

• ۸۰٪ یک نرم افزار با صرف ۲۰٪ زمان نوشته میشه. همچنین ۲۰٪ از سخت‌ترین قسمت‌های یک برنامه می‌تونه ۸۰٪ زمان رو به خودش اختصاص بده
• ۸۰٪ پیشرفت توسعهٔ یک برنامه مربوط به ۲۰٪ تلاش هست
• ۸۰٪ درآمد یک برنامه مربوط به ۲۰٪ از فیچرهای اون برنامه هست
• ۸۰٪ از خرابی‌ها (یا Crash های) یک برنامه مربوط به ۲۰٪ باگ‌ها هست
• ۸۰٪ استفاده از یک برنامه مربوط به ۲۰٪ از فیچرهای اون برنامه هست


منبع ۱: https://lnkd.in/esnhcrNU
منبع ۲: https://lnkd.in/evZyNNsq

#tips #softwareengineer #softwaredevelopment #microsoft #backend #frontend


🔰 @gopher_academy
👍7
📥 دریافت شده از:
Amin Qurjili
-------------

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

با سلام خدمت همه دوستان عزیز و همراهان همیشگی

به صورت پیشفرض برای یه برنامه نویس، Runtime میتونه به معنی فاز زمانی اجرای یک نرم افزار Program Runtime یا Implementation ی که امکان اجرای نرم افزار رو فراهم میکنه باشه مثل JRE یا .Net Runtime
اما وظیفه Container Runtime در واقع اجرای تمام مراحل  مورد نیاز برای اجرای یک کانتینر هست و هیچ کاری با اجرای خود نرم افزار درون کانتینر نداره.

اما چی شد که Container Runtime معانی مختلفی پیدا کرد؟

داکر سال 2013 با معرفی نرم افزار و پلتفورم خودش خیلی از مشکلاتی رو که برنامه نویسی برای اجرای کانتینر ها و مدیریت چرخه عمر کانتینر ها داشتن رو حل کرد که شامل ویژگی های زیر بود:

✔️فرمت Image مناسب کارنتینر
✔️روش و ابزاری برای ساخت Image ها (Dockerfile, Docker Build)
✔️ابزار و روش مدیریت Image ها (Docker Images, Docker rm, ..)
✔️روش و ابزار مدیریت کانتینرها (Docker ps, Docker rm, …)
✔️روش و ابزار اشتراک گذاری کانتینرها (Docker push, Docker pull)
✔️روش و ابزار مناسب برای اجرای کانتینرها (Docker Run)

سال 2013 داکر یک نرم افزار مونولیث بود ولی در واقع هیچ بخشی وابسته به بخش دیگه ای نبود و محدودیت برای شکستن این نرم افزار مونولیث به تیکه های کوچیک تر وجود نداشت. به همین دلیل توی سال 2015 داکر با همراهی گوگل و Core OS سازمان OCI رو پایه گذاری کرد و یه تیکه از نرم افزارشو به نام runc به صورت یک لایبرری به عنوان مرجع پیاده سازی Container Runtime به OCI اهدا کرد.

اوایل چیزی که داکر به OCI اهدا کرد یه مقدار گیج کننده بود چرا که فقط و فقط یک لایبرری و مرجعی برای اجرای یک کانتینر بود نه چیز دیگه ای در صورتی که برای اجرای کانتینر، شما به یک فرمت استاندارد و ابزاری برای دریافت Image هم نیاز دارین و در واقع زمانی که شما با داکر یه کانتینر رو اجرا میکنید قدم هایی که برداشته میشه شامل  دانلود Image، باز کردن یا همون Unpacking Image و تبدیل اون به یک باندل و اجرای کانتینر از اون باندل رو شامل میشه.

چیزی که داکر استاندارد سازی کرده بود فقط مرحله سوم یعنی اجرای کانتینر با استفاده از باندل Unpack شده بود.

.....

برای مطالعه ادامه مطلب به خاطر طولانی شدن لطفا وارد این لینک بشید.
https://lnkd.in/evxjDzmW

امیدوارم براتون مفید واقع بشه.
#containers #containerd #docker #runc #containerruntime 


🔰 @gopher_academy
👍7
📥 دریافت شده از:
Kaaveh Mohamedi
-------------

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

آدرسش:
https://lnkd.in/edTfBbVz

🔰 @gopher_academy
👍7
Instagram technical engineering medium blog.
بلاگ فنی تیم اینستاگرام در مدیوم که در مورد مسائل فنی مختلف و جالبی توش صحبت میشه.

https://instagram-engineering.com


🔰 @gopher_academy
👍6
🔸استخدام برنامه‌نویس GoLang در شرکت هوشمند سازان هستی تهران
🔹حقوق ۱۲,۰۰۰,۰۰۰ تا ۱۶,۰۰۰,۰۰۰

🔹تمام‌وقت

🔹ارشد (Senior)

🔗 https://quera.org/r/DdYP2a

@gopher_academy
🤔4👍1
👇👇👇👇👇
https://t.me/gopher_academy/1408

🔰 @gopher_academy
👍4
How do we design a permission system? The diagram below lists 5 common ways. 👇

1. ACL (Access Control List)
ACL is a list of rules that specifies which users are granted or denied access to a particular resource.

Pros - Easy to understand.
Cons - error-prone, maintenance cost is high

2. DAC (Discretionary Access Control)
This is based on ACL. It grants or restricts object access via an access policy determined by an object's owner group.

Pros - Easy and flexible. Linux file system supports DAC.
Cons - Scattered permission control, too much power for the object’s owner group.

3. MAC (Mandatory Access Control)
Both resource owners and resources have classification labels. Different labels are granted with different permissions.
Pros - strict and straightforward.
Cons - not flexible.

4. ABAC (Attribute-based access control)
Evaluate permissions based on attributes of the Resource owner, Action, Resource, and Environment.
Pros - flexible 
Cons - the rules can be complicated, and the implementation is hard. It is not commonly used.

5. RBAC (Role-based Access Control)
Evaluate permissions based on roles
Pros - flexible in assigning roles.

🔰 @gopher_academy
👍8
An awesome collection of content for developers trying to bootstrap their SaaS business.
مجموعه ای عالی از محتوا برای توسعه‌دهندگانی که سعی در راه اندازی کسب و کار SaaS خود دارند.

#SAAS #PAAS #awesome #collection #opensource #github #business #free #book #material

https://saas4devs.tech


🔰 @gopher_academy
👍3🥰2
var x = []int{2: 5, 6, 0: 7}

fmt.Println(x)
Anonymous Quiz
46%
[7 0 5 6]
54%
[7 6 5]
👍10🔥31
What does the following program print?
package main

func f() bool {
return false
}

func main() {
switch f()
{
case true:
println(1)
case false:
println(0)
}
}
🔥6👍2
const
⁉️What does the following program print?

package main

const X = 3

func main() {
const (
X = X + X
Y
)

println(X, Y)
}


⁉️Choices:

1️⃣ 6 6
2️⃣ 6 12


🔰 @gopher_academy
👍5🤔4
function call
⁉️ What is the behavior of the following program?

package main

func f(vs ...interface{}) {
print(len(vs))
}

func main() {
f()
f(nil)
f(nil...)
}


⁉️Choices:

1️⃣ 0 0 0
2️⃣0 1 0
3️⃣ 0 1 1


🔰 @gopher_academy
👍4
📥 دریافت شده از:
Hamidreza Hosseinkhani
-------------

بیشتر ما از Redis به عنوان یک data store برای نگه‌داشت داده‌ها در حافظه رم مثلا به عنوان cache استفاده کردیم و از سرعت و پرفورمنسش به وجد اومدیم.

اما خیلی از قابلیت‌های دیگه که به کمک ماژول ها به این ابزار قدرتمند اضافه میشن رو دست کم گرفتیم.

ویژگی‌هایی مثل

▶️full text search
▶️secondary indexing
▶️aggregation
▶️geo filtering
▶️fuzzy search
▶️time series analysis

▶️deep learning model serving

▶️bloom filter و gaph analysis

▶️vector similarity searches
...

پیشنهاد میکنم به جای خود Redis همین الان Redis Stack (شامل ردیس و چند ماژول کاربردی) رو نصب کنید و قابلیت های مختلفش رو امتحان کنید.

🔰 @gopher_academy
13👍1
💚🤍❤️
#مهسا_امينی
💚🤍❤️
29🤯2🕊2🤔1