Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Gopher Academy
🔵 عنوان مقاله
Go is Not Java

🟢 خلاصه مقاله:
مقاله بحث می‌کند که برخلاف تصور رایج، زبان برنامه‌نویسی Go ممکن است در واقع خصوصیات شی‌گرایی را بهتر از زبان‌های برنامه‌نویسی Java و C++ پیاده‌سازی کرده باشد. این استدلال براساس نظرات خالق مفهوم شی‌گرایی مطرح شده است. مقاله تاکید دارد که مفهوم شی‌گرا بیشتر به چگونگی کپسوله‌سازی داده‌ها، به ارمغان آوردن کد قابل استفاده‌ مجدد و ایجاد واسط‌های فراگیر برای اشیاء مربوط می‌شود، و این که زبان Go توانسته است این خصوصیات را به شیوه‌ای کارآمد فراهم آورد. نویسنده با اشاره به تفاوت‌های موجود بین Go و سایر زبان‌های برنامه‌نویسی معروف در پیاده‌سازی شی‌گرایی، چگونگی برتری Go را توضیح داده است. این مقاله می‌تواند دیدگاهی جدید به برنامه‌نویسان برای انتخاب زبان مناسب برای پروژه‌های آینده خود بدهد.

🟣لینک مقاله:
https://blog.vertigrated.com/go-is-not-java


👑 @gopher_academy
ینفر اومده چنل‌های Go رو با C89 پیاده کرده :)
https://github.com/rochus-keller/CspChan

@DevTwitter | <Hossein/>
Forwarded from Morteza Bashsiz مرتضی باشسیز (Morteza Bashsiz)
درود بر همه شما دوستان
شروع پاییز رو تبریک میگم
امروز روز خاصی هست که توی ذهن هر کسی به یک شکل زیباست
برای من هم به شکل خاصی زیباست
مبارک باشه
#programming

انواع استانداردهای نام‌گذاری در برنامه‌نویسی

🐪 Camel Case
کلمه اول با حرف کوچک و بقیه کلمات با حرف بزرگ شروع می‌شوند مثل myVariableName، این روش بیشتر برای متغیرها و توابع استفاده می‌شود.


🅿️ Pascal Case
تمام کلمات با حرف بزرگ شروع می‌شوند مثل MyClassName، این روش بیشتر برای نام‌گذاری کلاس‌ها یا سازه‌ها استفاده می‌شود.


🐍 Snake Case
کلمات با _ جدا می‌شوند و همه حروف کوچک هستند مثل my_variable_name، این روش در زبان‌هایی که استفاده از زیرخط مجاز است رایج است.


🍢 Kebab Case
تو این نوع اسم گذاری هر کلمه با - جدا می‌شه مثل my-variable-name، این روش در نام‌گذاری فایل‌ها یا URLها استفاده می‌شود چون خط تیره در URL قابل قبول است.


🔤 Hungarian Notation
تو این روش نوع داده به عنوان پیشوند به نام متغیر اضافه می‌شود مثل strName, intCount، هدف این روش اینه که نوع داده مشخص باشد. این روش در برخی زبان‌های قدیمی یا پروژه‌های خاص استفاده می‌شه ولی امروزه کمتر رایج است.


یک مورد از پستایی که تو صفحه لینکدینمون میزاریم، لینک لینکدینمون رو میزارم زیر این پست اگر دوست داشتید صفحمون رو دنبال کنید ... 🔥🚀

🆔 Channel | Group | YouTube
۲ تا Rest Api با اکسپرس نوشتم یکی شونو با Node ران کردم اون یکی رو با Bun بعد با ابزار wrk بنچمارک گرفتم نتیجه خیلی جالب بود

@DevTwitter | <Erfan/>
اگه به عنوان یه برنامه نویس دغدغه و چالش درآمد زایی داری پست جدیدمون رو ببین 😁🤟

https://www.instagram.com/p/DANmAZ5ssWH/?igsh=MWd4MGF4bHZkNjVxMg==
🚨 مشکل امنیتی XSS چیه و چطوری جلوی اونو بگیریم؟ 🚨

سلام دوستان! امروز می‌خوایم درباره یکی از خطرناک‌ترین حملات امنیتی وب یعنی XSS (Cross-Site Scripting) صحبت کنیم. این حمله خیلی وقت‌ها دست کم گرفته میشه، ولی می‌تونه خیلی از سایت‌ها رو به مشکل بندازه و اطلاعات کاربران رو به خطر بندازه 😱.

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

انواع XSS 🚦
Stored XSS 🗃️
توی این روش، کد مخرب توی دیتابیس سایت ذخیره میشه. هر بار که کاربر صفحه‌ای رو باز می‌کنه، کد مخرب از دیتابیس خونده میشه و اجرا میشه. این روش خیلی خطرناکه چون ممکنه تعداد زیادی کاربر رو تحت تأثیر قرار بده.

Reflected XSS 🔄
توی این روش، کد مخرب از طریق URL به سرور فرستاده میشه و سرور بدون اینکه فیلترش کنه، اون رو به کاربر برمی‌گردونه. کاربر هم وقتی URL مخرب رو باز کنه، کد جاوااسکریپت اجرا میشه.

DOM-based XSS 🧩
توی این نوع از حمله، کد مخرب مستقیماً توی سمت کلاینت (مرورگر) تزریق و اجرا میشه، بدون اینکه نیاز باشه سرور دخالتی داشته باشه.

چه خطرهایی داره؟ ⚠️

1️⃣ دزدیدن اطلاعات کاربران:
هکرها می‌تونن با استفاده از XSS به اطلاعات حساس کاربرها مثل نام کاربری، پسورد و حتی اطلاعات بانکی دسترسی پیدا کنن.

2️⃣ هک کردن سشن‌ها:
هکر می‌تونه با دزدیدن کوکی‌های سشن کاربر، وارد حسابش بشه و از اون سوءاستفاده کنه.

3️⃣ ری‌دایرکت کردن کاربران به سایت‌های مخرب:
با استفاده از کدهای جاوااسکریپت، کاربر رو به صفحاتی ببره که آلوده به بدافزار یا ویروس هستن.

چطور جلوی XSS رو بگیریم؟ 🛡️
1️⃣ فیلتر کردن ورودی‌های کاربر:
هر ورودی که از کاربر می‌گیری، حتماً باید فیلتر و اعتبارسنجی بشه. نذار کاربر بتونه کدهای جاوااسکریپت یا HTML توی فرم‌ها بنویسه.

2️⃣ ؛Encode کردن خروجی‌ها:
حتماً داده‌هایی که از سرور به کلاینت می‌فرستی رو Encode کن. این کار جلوی اجرا شدن کدهای مخرب جاوااسکریپت رو می‌گیره.

3️⃣ استفاده از CSP (Content Security Policy):
با CSP می‌تونی محدود کنی که کدهای جاوااسکریپت فقط از منابع مطمئن لود بشن و نذاری هکرها کدهای خودشون رو اجرا کنن.

4️⃣ استفاده از کتابخونه‌های امن:
کتابخونه‌هایی مثل DOMPurify برای فیلتر کردن کدهای HTML و جاوااسکریپت از سمت کاربر خیلی مفیدن.

جمع‌بندی 🎯
فهمیدیم XSS یکی از خطرناک‌ترین حملات وبه که اگه جلوی اون رو نگیریم، می‌تونه خسارت‌های زیادی به امنیت سایت بزنه. با فیلتر کردن ورودی‌ها، Encode کردن خروجی‌ها و استفاده از سیاست‌های امنیتی مثل CSP می‌تونیم جلوی این نوع حملات رو بگیریم. پس حتماً حواست به امنیت اپلیکیشنت باشه! 😎

امید وارم مفید بود باشه :)
#xss #امنیت

@ninja_learn_ir
شرکت lmsys.org وب‌سایت جدیدی برای LLM Jailbreaking راه‌اندازی کرده. در این وب‌سایت شما یک دقیقه وقت دارید تا مدل مربوطه رو مجبور کنید که یک جمله حساس مثل فحش، توهین یا تهدید رو بگه.
جالبه امتحانش کنید:
redarena.ai

@DevTwitter | <Shahriar Shariati/>
Forwarded from 
با توجه به استقبال بی‌نظیر و ثبت‌نام بیش از ۲۰ هزار نفر در دوره‌ی یادگیری ماشین دانشکده‌ی مهندسی کامپیوتر دانشگاه صنعتی شریف، به اطلاع می‌رسانیم که کلاس‌های هفته‌ی نخست در روزهای یکشنبه و سه‌شنبه ۱ و ۳ مهر ساعت ۹ تا ۱۰:۱۵ صبح، به‌صورت زنده از طریق کانال آپارات به نشانی https://www.aparat.com/SharifML/live پخش خواهد شد.

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

از همراهی شما بسیار سپاس‌گزاریم.
Forwarded from Go Casts 🚀
تخفیف ۵۰ درصدی پاییز 🍁

الحمدلله تیمسازی ۳ هم شروع شد 🎉

در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن.
از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه توسعه یک پروژه از مراحل اولیه ش رو کسب میکنن.


دوره +‌ تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان

https://survey.porsline.ir/s/PISsWn7f

همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://t.iss.one/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://t.iss.one/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4

@gocasts
یه سایت براتون آوردم که باهاش می‌تونید این اشکال خفن رو رو به سادگی ایجاد کنید 🔥🤩

این اشکال درواقع با border-radius ساخته میشن و خودتون به صورت دستی هم میتونید ایجادش کنید ولی مشکلی که وجود داره اینه که خیلی باید تغییرش بدید تا به شکل دلخواهتون برسید و این سایت کارتون رو خیلی ساده کرده


لینک این سایت و ریپازیتوی گیت هابش رو زیر این پست تو چنل براتون میزارم

#️⃣ #website #css #shape

🚀 @coolycode
لینک وبسایت 🔻
https://9elements.github.io/fancy-border-radius/


لینک ریپازیتوری پروژه 🔻
https://github.com/9elements/fancy-border-radius
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 کانال یوتیوب CSharpDesignPro طراحی UI نرم افزار به صورت حرفه ای با C# آموزش می دهد.

https://www.youtube.com/@CSharpDesignPro

#دوره

@TheRaymondDev
Forwarded from Syntax | سینتکس (𝙰𝚖𝚒𝚛𝚑𝚘𝚜𝚜𝚎𝚒𝚗)
📊 Raw Queries and Connection Proxy in Django

🔍 How to Get Raw Queries in ORM

در جنگو، اگر ویژگی .query یک QuerySet را چک کنیم، می‌توانیم پرس‌وجو SQL مربوطه را دریافت کنیم. به عنوان مثال:

from author import models
all_authors = models.Author.objects.filter(email__endswith='@gmail.com').values_list('name').query


خروجی:

SELECT "author_author"."name" FROM "author_author" WHERE "author_author"."email"::text LIKE '%@gmail.com'



⚠️ چالش!

در جستجوهای ORM جنگو، دستورهایی داریم که غیر از QuerySet هستند و استفاده از .query باعث ایجاد خطا می‌شود. به عنوان مثال:

from author import models
author_count = models.Author.objects.filter(email='a').count().queries


خطا:

Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'int' object has no attribute 'query'



🛠 راه‌حل با استفاده از Connection Proxy

برای حل این مشکل، از connection در django.db استفاده می‌کنیم:

from django.db import connection
from author import models

author_count = models.Author.objects.filter(email='a').count()
connection.queries[-1]


خروجی:

{'sql': 'SELECT COUNT(*) AS "__count" FROM "author_author" WHERE "author_author"."email" = \'a\'', 'time': '0.166'}



📌 توجه!

شی connection فقط زمانی نتیجه می‌دهد که سرور جنگو در حالت DEBUG=True در حال اجرا باشد!

📝 نوشتن Debug Queries برای درک Connection Proxy

from django.db import connection
from django.db import reset_queries

def database_debug(func):
def inner_func(*args, **kwargs):
reset_queries()
results = func(*args, **kwargs)
query_info = connection.queries
print(f'function_name: {func.__name__}')
print(f'query_count: {len(query_info)}')
queries = [f'{query["sql"]}\n' for query in query_info]
print(f'queries: \n{"".join(queries)}')
return results
return inner_func


📌 توجه! تابع reset_queries تمام پرس‌وجوهای ذخیره شده در connection را پاک می‌کند!

🔧 استفاده از کد:

@database_debug
def regular_query():
blogs = models.Blog.objects.all()
return [blog.author.name for blog in blogs]


خروجی:

function_name: regular_query
query_count: 4
queries:
SELECT "blog_blog"."id", "blog_blog"."title", "blog_blog"."content", "blog_blog"."author_id"



💡 توضیح کد:

با استفاده از دستور reset_queries تمام پرس‌وجوهای ذخیره شده در connection را حذف می‌کنیم تا فقط کوئری‌های خواسته شده دیباگ شوند. سپس کوئری‌های داخل inner_function که دکوراتور شده‌اند اجرا می‌شوند و شی connection حاوی لیست از پرس‌وجوها می‌شود. بعد از آن، تمام پرس‌وجوها را از connection.queries بازیابی می‌کنیم.


🔗 منبع : کتاب django in productions
Forwarded from Gopher Academy
🔵 عنوان مقاله
FAIR: A Go Library for Serving Resources 'Fairly'

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

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


👑 @gopher_academy