Syntax | سینتکس
Open in Telegram
Focus: Web Lan: Python & Go Website: https://syntaxfa.ir Quick connect: https://quick-connect.syntaxfa.ir Github: https://github.com/syntaxfa Group: https://t.me/Syntax_fa_group
Show more2 992
Subscribers
+724 hours
+217 days
+4030 days
Posts Archive
2 992
جستجوی دودویی
الگوریتم جستجوی دودویی تکنیکی است برای یافتن یک مقدار عددی از میان مجموعهای از اعداد مرتب. این متد محدودهٔ جستجو را در هر مرحله به نصف کاهش میدهد، بنابراین هدف مورد نظر یا به زودی پیدا میشود یا مشخص میشود که مقدار مورد جستجو در فهرست وجود ندارد.
جستجوی دودویی فقط در آرایههای مرتب استفاده میشود. در این روش عنصر مورد نظر با خانه وسط آرایه مقایسه میشود اگر با این خانه برابر بود جستجو تمام میشود اگر عنصر مورد جستجو از خانه وسط بزرگتر بود جستجو در بخش بالایی آرایه و در غیر این صورت جستجو در بخش پایینی آرایه انجام میشود (فرض کردهایم آرایه به صورت صعودی مرتب شدهاست) این رویه تا یافتن عنصر مورد نظر یا بررسی کل خانههای آرایه ادامه مییابد.
مثال:
package main
import (
"errors"
"fmt"
)
func main() {
list := []int{1, 2, 3, 6, 7, 8, 10, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 29, 33}
index, err := binary_search(list, 10)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Printf("index: %d", index)
}
func binary_search(list []int, item int) (int, error) {
low := 0
hight := len(list) - 1
for low <= hight {
mid := (low + hight) / 2
guess := list[mid]
if guess == item {
return mid, nil
} else if guess < item {
low = hight - mid
} else {
hight = mid + 1
}
}
return 0, errors.New("number not found")
}
#binary_search
@Syntax_fa2 992
آموزش پکیج django-debug-toolbar
پکیج django-debug-toolbar یک ابزار قدرتمند برای دیباگ کردن وباپلیکیشنهای Django است. این ابزار اطلاعات مفصلی در مورد درخواستها، پاسخها، قالبها، پرسوجوهای SQL و موارد دیگر ارائه میدهد که میتواند به شما در یافتن و رفع اشکالات در کد Django شما کمک کند.
نصب django-debug-toolbar
برای نصب django-debug-toolbar، باید مراحل زیر را انجام دهید:
پکیج را با pip نصب کنید:
pip install django-debug-toolbar
پکیج را در فایل settings.py خود اضافه کنید:
INSTALLED_APPS = [
# ...
'debug_toolbar',
]
MIDDLEWARE = [
# ...
'debug_toolbar.middleware.DebugToolbarMiddleware',
]
INTERNAL_IPS = [
# ...
"127.0.0.1",
# ...
]
سرور وب خود را مجدداً راهاندازی کنید.
استفاده از django-debug-toolbar
پس از نصب django-debug-toolbar، یک نوار ابزار در بالای صفحه نمایش شما ظاهر می شود. این نوار ابزار شامل تعدادی پنل است که اطلاعات مختلفی در مورد درخواست فعلی را نشان می دهد.
برای مشاهده اطلاعات بیشتر در مورد یک پنل، می توانید روی آن کلیک کنید. به عنوان مثال، اگر روی پنل "SQL Queries" کلیک کنید، لیستی از تمام پرس و جوهای SQL که برای پردازش درخواست اجرا شده اند را مشاهده خواهید کرد.
پکیج django-debug-toolbar همچنین شامل تعدادی ابزار مفید دیگر است، مانند:
خطایاب قالب: این ابزار به شما امکان می دهد کد قالب Django خود را گام به گام اشکال زدایی کنید.
پروفیلر: این ابزار به شما امکان می دهد عملکرد کد Django خود را پروفایل کنید.
کنسول: این ابزار به شما امکان می دهد کد Python را در محیط تعاملی اجرا کنید.
نکته:
تنطیماتشو جوری انجام بدید که تو حالت Debug == false میدلور و کلا پکیجه کانفیگ نشه چون نیاز ندارید بهش
[@Awmirsn]
#django
@Syntax_fa2 992
جدیدا فیلترینگ نسبت به قبل شدید تر شده
دیگه چه از نظرتون خوب باشه چه بد ممکنه برای دسترسی به اینترنت آزاد به خرید وی پی ان رو بیارید.
اگه خواستید اشتراک بخرید حداقل از یکی بخرید که کارتون راه بیوفته
خودم از این کانال تهیه کردم(پرداخت با ارز دیجیتال هم قبول میکنه):
https://t.me/fateh_network
(تو کامنت بگید خودتون این روزا چیکار میکنید. اگه پیشنهاد و روشی دارید حتما بگید)
2 992
ترب واچر
بریم سراغ معرفیه یه ابزار باحال
تو این وب سایت میتونید برید لینک محصولی که توی تروب هستش رو بدید و مشخص کنید که اگه به فلان قیمت رسید بهتون از طریق نوتیف اطلاع بده:
https://watcher.falconhub.ir/
از این ایده های باحال پیاده کردید، بدید بذارم تو کانال 😁
حمید حسینی:
https://t.me/h4mid_hosseini
@Syntax_fa
2 992
فرض کنید ما یک شبکه اجتماعی به اسم سینتکس گرام داریم
اپلیکیشن ما، کاربران میتونن فایل هاشونو با بقیه کاربر ها به اشتراک بذارن
چالش:
اگه یکی از کاربر ها یک فایلی رو آپلود کرد و یک یا چند کاربر دیگم همون فایل رو آپلود کنن، برای جلوگیری از ذخیره یک فایل تکراری، چه راه حلی دارید؟
بنظرتون اصلا نیازه راه حلی برای این شرایط داشته باشیم یا اینکه فایل های تکراری رو هم ذخیرش کنیم؟
#challenge
@Syntax_fa
2 992
خب
طبق نظر اکثر دوستان
بیشتر محتواهامونو میبریم سمت:
تجربیات
تو یه پروژه واقعی چی میگذره؟
چیزهایی که تو آموزش ها بهش کمتر توجه شده
خیلی خوشحال میشم شما دوستان باسواد تر و یا حتی تازه کار، چالش ها و مسائلی که داشتید رو تو پیوی بنده یا گروه بگید تا توی کانال قرارش بدم و باهمدیگه چالشو حل کنیم
@Syntax_fa
2 992
بنظرتون محتوای خوب برنامه نویسی، توی تلگرام باید چجوری باشه؟ (کامنت کنید)
مثلا یچیزی که با سرچ کردم توی گوگل پیدا میشه رو بیایم بازگو کنیم خوبه؟
یا نکات و تجربیاتمونو انتقال بدیم بهتره؟
2 992
نکته:
میدونستید جنگو translation بر اساس زبان دیفالت مروگر کاربر، زبانی که باید نشون بده رو انتخاب می کنه؟
اگه زبان دیفالت مرورگرش توی لیست زبان های برناممون نبود میره سراغ دومین زبانی که تو مرورگرش ست کرده
#Note #Django
2 992
اگر نیاز داشتید که پر سرعت ترین میرور رجیستری داکر رو برای دانلود امیج های تحریمی به راحتی و سرعت پیدا کنید
یه اسکریپت دولوپ کردم میتونید ازش استفاده کنین
https://github.com/ArmanTaheriGhaleTaki/fastDocker403unlocker
[Armon taheri]
@Syntax_fa
2 992
Single Sign-On (SSO)
فرایندی است که به کاربران امکان میدهد با استفاده از یک حساب کاربری واحد، به چندین برنامه و سرویس دسترسی داشته باشند. این روش به جای اینکه کاربران برای هر برنامه ای که استفاده میکنند، باید حساب کاربری جداگانه ای ایجاد کنند، به آنها امکان میدهد با تنها یک بار ورود به سیستم، به همه برنامه های مورد نیازشان دسترسی داشته باشند.
برای مثال، در مورد سرویس های گوگل، اگر SSO وجود نداشت، هر بار که کاربر میخواست به برنامه های مختلف گوگل مانند Gmail، Google Drive، Google Calendar و غیره دسترسی پیدا کند، میبایست مجددا نام کاربری و رمز عبور خود را وارد میکرد. اما با استفاده از SSO، یک بار که کاربر وارد حساب کاربری گوگل خود میشود، میتواند به تمام سرویس های مرتبط با این حساب دسترسی پیدا کند، بدون نیاز به ورود مجدد.
این روش علاوه بر افزایش راحتی و بهبود تجربه کاربری، باعث افزایش امنیت نیز میشود. زیرا کاربران دیگر نیاز ندارند اطلاعات حساب های متعدد را به خاطر بسپارند و مدیریت کنند، که این امر خطر افشای این اطلاعات را کاهش میدهد. همچنین سازمانها میتوانند کنترل بیشتری بر روی حسابهای کاربری و سیاستهای دسترسی داشته باشند.
پیادهسازی سرویسهای تکورودی (Single Sign-On) بر اساس پروتکل OIDC
یکی از پرکاربردترین پروتکلهای مورد استفاده در سیستمهای SSO، پروتکل OIDC (OpenID Connect) است. این پروتکل بر پایه OAuth2 ساخته شده و دارای ویژگیهای پیشرفتهتری نسبت به آن میباشد.
در حالی که OAuth2 به مدیریت دسترسیها و اعطای مجوز به برنامهها برای دسترسی به منابع متمرکز است، OIDC علاوه بر این موارد، بر مدیریت هویت کاربر نیز تمرکز دارد. به عبارت دیگر، OIDC نه تنها به برنامهها اجازه میدهد به منابع و اطلاعات دسترسی داشته باشند، بلکه به آنها امکان میدهد تا هویت کاربر را نیز تأیید کنند.
برای مثال، فرض کنید برنامهای قصد دارد به گوگل درایو کاربر متصل شود تا بتواند در آنجا چیزی را ذخیره کند. در این حالت، با استفاده از OAuth2، کاربر دسترسی مورد نیاز برنامه را به آن اعطا میکند و در مقابل، برنامه یک توکن دسترسی (Access Token) دریافت میکند که فقط محدود به آن سطح دسترسی است، بدون اینکه اطلاعات هویتی کاربر را دریافت نماید.
اما در صورت استفاده از OIDC، علاوه بر اعطای سطح دسترسی مورد نیاز به برنامه، اطلاعات هویتی کاربر مانند نام، ایمیل و عکس پروفایل نیز در اختیار آن قرار میگیرد. این ویژگی اضافی OIDC را به انتخاب مناسبتری برای پیادهسازی سیستمهای SSO تبدیل میکند، زیرا به برنامهها امکان میدهد تا هویت کاربر را نیز تأیید کنند.
در مجموع، OIDC با بهرهگیری از مفهوم ID Token (در مقابل Access Token در OAuth2)، ضمن مدیریت دسترسیها، امکان احراز هویت کاربر و دریافت اطلاعات هویتی را نیز فراهم میآورد، و از این طریق تجربه کاربری بهتری را در سیستمهای SSO ایجاد میکند.
#SSO #OAUTH2 #OIDC
@Syntax_fa
2 992
Keycloak
یک ابزار احراز هویت و مدیریت دسترسی بسیار کاربردی و محبوب است. به زبان ساده میشه گفت Keycloak یک برنامه ای هست که به شما این امکانو میده که یک سیستم احراز هویت و کنترل دسترسی برای برنامه هاتون راه اندازی کنید(همونطور که میدونید این بخش پروژه پیاده سازیش خیلی حساسه).
اصلی ترین کاربرد Keycloak اینه که به شما کمک میکنه تا کاربران رو به راحتی مدیریت کنید و به برنامه هاتون متصل کنید. با استفاده از Keycloak میتونید:
- یک سیستم ورود به سیستم یکپارچه (SSO) برای کاربران خودتون راه اندازی کنید
- به راحتی حساب های کاربری رو ایجاد، مدیریت و پشتیبانی کنید
- دسترسی های کاربران رو به برنامه ها و منابع مختلف کنترل و مدیریت کنید
- احراز هویت چند مرحله ای رو برای افزایش امنیت پیاده سازی کنید
- امکانات پیشرفته مثل اعمال سیاست های امنیتی، گزارش گیری و تجزیه و تحلیل رو داشته باشید
استفاده از این ابزار باعث میشه که دیگه نگران مدیریت حساب های کاربری نباشید و روی توسعه برنامه های اصلیتون تمرکز کنید.
(تو پستای بعدی نحوه کار کردن باهاشو میذارم)
#SSO #Keycloak
@Syntax_fa
2 992
اگه میخواید یه سری مقالات خوب در خصوص پروتکل های احراز هویت، مدیریت احراز هویت و ... بخونید، حتما یه سر به وبلاگ آتین بزنید:
https://authin.ir/authin-blog/
@Syntax_fa
2 992
تجربه مصاحبه جدیدم:
اولش تماس گرفتن که از فلان شرکت هستیم و حدود بیست دقیقه ای صحبت کردیم
بعدش به یکباره گفتن مصاحبه فنی رو ده دقیقه دیگه اوکیه بریم؟
منم گفتم بریم بریم
حدود یکونیم ساعت صحبت کردیم که نسبتا سوالات چالش بر انگیز و سختی بود اما شخص مصاحبه گر خیلی با تجربه بود و کلی چیز ازش یاد گرفتم.
چه سوالاتی پرسیده شد؟
سوالات pure python
نمونه ای از سوال:
اگه ما یه لیست بزرگ داشته باشیم و بخوایم دونه دونه عناصرشون رو بگیریم و یه عملیاتی انجام بدیم چیکار کنم بهتره؟
اگه مشکل منابع نداشته باشیم، از چه روشی استفاده کنیم بهتره؟
قسمت بعدی سوالات درباره شی گرایی، دیزاین پترن ها بود
اصول solid رو تقریبا هرچهارتاشو پرسید.
یک سوال درباره الگوی طراحی Circuit breaker پرسید که متاسفانه یادم نبود
قسمت بعدی درباره دیتابیس و django orm بود
سوالات زیادی پرسید
یک سری حالت رو توضیح داد و گفت توی raw sql و orm چجوری کوئری بزنیم.
درباره مایگریشن ها سوالات عمیقی پرسید که نحوه کارکردنش دقیقا تو جنگو چجوریه
یه قسمت دیگم در خصوص چالش های معماری میکروسرویس بود
در کل مصاحبه یهوییه خیلی خوبی بود👌
#interview
@Syntax_fa
Available now! Telegram Research 2025 — the year's key insights 
