DevTwitter | توییت برنامه نویسی – Telegram
DevTwitter | توییت برنامه نویسی
23.6K subscribers
4.36K photos
357 videos
6 files
4.1K links
توییت های برنامه نویسی و طراحی وب :)

@dvtwi

Hashtags:
devtwitter.t.me/5

DevBooks Channel:
https://news.1rj.ru/str/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
یکی از مزایای استفاده از JWT (JSON Web Token) این است که برخلاف Sessionها، توکن در سرور ذخیره نمی‌شود و نیازی به نگهداری وضعیت کاربر در سمت سرور نیست. این موضوع باعث کاهش سربار سرور و افزایش مقیاس‌پذیری برنامه می‌شود.
اما یک چالش مهم در این روش وجود دارد: اگر نیاز باشد که دسترسی کاربر لغو یا توکن بلاک شود (به عنوان مثال پس از خروج کاربر)، توکن JWT تا زمان انقضای آن همچنان معتبر است و می‌تواند درخواست‌ها را به سمت سرور ارسال کند.
برای رفع این مشکل، از Token Blacklisting یا همان فهرست سیاه توکن‌ها استفاده می‌شود. در این رویکرد، توکن‌هایی که باید بلاک شوند در یک فهرست ذخیره می‌شوند (معمولاً در یک پایگاه داده سریع مانند Redis). هر زمان که توکنی به سرور ارسال می‌شود، ابتدا بررسی می‌شود که آیا در لیست سیاه قرار دارد یا خیر. اگر توکن در این لیست باشد، درخواست رد می‌شود حتی اگر هنوز مدت زمان اعتبار توکن به پایان نرسیده باشد.
این روش نه تنها امنیت بیشتری را فراهم می‌کند، بلکه مدیریت بهتری برای مواردی چون لغو دسترسی کاربران یا بروز تغییرات در حساب‌های کاربری را امکان‌پذیر می‌سازد.

@DevTwitter | <Firoozeh Daeizadeh/>
👍806👎5
لاراول بلدی ولی لایووایر نه؟ میخوای شروع کنی ولی نمیدونی کدوم دوره خوبه؟
جرمی مک پیک (Jeremy McPeak) دوست داشتنی یه کورس آموزش لایووایر گذاشته که اگه نبینی، بعدا خعلی پشیمون میشی!


Today, we're launching a complete refresh of our introductory Livewire course.

"Livewire 3 From Scratch"

- 4 Hours of Content
- 29 Episodes
- 100% Free to All
- Ready to watch right now!

https://laracasts.com/series/livewire-3-from-scratch

@DevTwitter | <Ali Salehi/>
👍29🤣91
خودمون رو به چالش کشیدیم و گفتیم وقتشه که CI/CD رو به بهترین شکل ممکن پیاده کنیم! نتیجه‌اش یک راهکار جامع و ساده برای راه‌اندازی Jenkins و GitLab شد که فرآیندهای استقرار رو کاملاً خودکار میکنه. از Docker و Rsync گرفته تا SSH، همه مراحل رو مستند کردیم تا هرکسی بتونه با کمترین دردسر، همین سیستم رو اجرا کنه.
این داکیومنت رو روی گیت هابمون گذاشتیم تا هر کسی که دنبال یک راه‌حل سریع و کارآمد برای اتوماسیون توسعه و استقرار هست، بتونه ازش استفاده کنه. حتماً یه نگاهی بندازید!

https://github.com/aligharaei/jenkins_cicd

@DevTwitter | <ali gharaei/>
🔥38👍5🤣2👎1
میخوایی بدونی پس قضیه جاواسکریپت چی میگذره و توی مصاحبه ها هم ازش استفاده کنی ؟

من یه مجموعه مقالاتی به اسم اندراحوالات جاواسکریپت توی سایت ویرگول نوشتم که جواب سوال بالا رو بهت میده:
تا جایی که تونستم هر موضوعی رو به ساده ترین نوع ممکن توضیح و پوشش دادم

اندر احوالات جاوا‌اسکریپت قسمت اول
در مورد نحوه کار js و javanoscript Engine
https://vrgl.ir/fH7sf

اندر احوالات جاوا‌اسکریپت قسمت دوم
در مورد Execution Context, Call Stack و زیر و بم اش
https://vrgl.ir/REWoF

اندر احوالات جاوا‌اسکریپت قسمت سوم
هر آنچه که باید درمورد Scope و مخلفاتش بدونی
https://vrgl.ir/Zr7QI

اندر احوالات جاوا‌اسکریپت قسمت چهارم
در مورد Hoisting
https://vrgl.ir/A3CVT

اندر احوالات جاوا‌اسکریپت قسمت پنجم (آخر)
در مورد مفهوم this و کاربردش، arrow function و bind
https://vrgl.ir/JpJXp

نبرد async و sync
در مورد مفهوم asynchronous و synchronous - میکروتسک چیه؟نحوه کار کرد؟
https://vrgl.ir/96eJP

@DevTwitter | <Mohammad Bohluli/>
👍35🤣10🔥91
یک کد اتاق چت کامل به صورت real time با Node.js، Next.js و Socket.io نوشته‌ام که برای دوستانی که علاقه‌مند به نوشتن اتاق چت هست نمونه‌ی خوبیه.

می‌توانید برای دیدن کد به آدرس گیتهابم که در پایین گذاشتم مراجعه کنید.

https://github.com/mo3ito/chat-room

@DevTwitter | <Mostafa Entezami/>
👍32🤣104🔥4
‏«هوش مصنوعی هِزار: کتابخانه‌ای برای آسان‌سازی یادگیری هوش مصنوعی در زبان فارسی، ساخته شده توسط جامعه فارسی زبان!»

این مجموعه ابزار، کار با عکس، متن و صدا را به زبان فارسی تسهیل می‌کند.
شخصا برای آموزش OCR فارسی تصاویر،ازش استفاده کردم.
https://github.com/hezarai/hezar

@DevTwitter | <Mohammad/>
👍454👎1
(بررسی بهینگی روش آپلود تصاویر شما در بک اند)

خب نوبتی هم باشه نوبت یه گپ کوتاه و فلسفی درباره نحوه مدیریت یکی از پر استفاده ترین مباحث در برنامه نویسی بک انده (آپلود تصاویر)


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


فرض کنید برای یک مدل (مثلا Post) شما 5 تا تصویر آپلود کردید که هنگامی که Post رو Delete میکنید، میتونید به images مرتبط با اون Post دسترسی داشته باشید و هنگام این عملیات، تصاویرش رو هم با خودش از روی سرور حذف کنید، تا اینجای کار همه چیز اوکیه.

حالا چالش: فرض کنید تصاویر ما قبل از اجرا شدن عملیات Create اون پست و به صورت Ajax آپلود بشن (با ابزاری شبیه به Dropzonejs) در این صورت قبل از ایجاد شدن رکورد مرتبط با Post، ما ممکنه چند ده تصویر آپلود کرده باشیم.
حالا فرض کنید توی همین فرصت به هر دلیلی اون رکورد ایجاد نشه. حالا ممکنه فرد درج کننده بیخیال این قضیه بشه، مرورگر بسته بشه، برق بره یا هرچی....
این وسط تکلیف تصاویر آپلودی چی میشن؟ در طولانی مدت وقتی ده ها بار این اتفاق بیوفته چی میشه؟

توضیح راه حل:
بهتره در اون دایرکتوری ای که آپلود و ذخیره سازی تصاویر رو انجام میدیم، یه پوشه ای با نام temp داشته باشیم که تصاویر در ابتدا و به صورت موقت اونجا ذخیره میشن:

/images/uploads/articles/temp

و بعد از عملیات create شدن، فانکشن و سرویسی بنویسیم که عملیات Move کردن این تصاویر رو از اون پوشه temp به مسیر اصلی رو انجام بده:

/images/uploads/articles/2024/10/06/image1.jpg
/images/uploads/articles/2024/10/06/image2.jpg
...


با این روش میتونید از آپلود و تکرار تصاویر هرز و بی استفاده و استفاده شدن بیخودی از منابع ذخیره سازی سرور جلوگیری کنید و اون پوشه temp رو به صورت schedule یا حتی دستی هر از گاهی حذف کنید و هم در دنیا و هم در آخرت عاقبت بخیر بشید

@DevTwitter | <Keyvan Lotfi Kamran/>
👍70🤣43👎3
This media is not supported in your browser
VIEW IN TELEGRAM
چیزی که زمان یادگیری Git کمبودش رو به شدت حس می‌کردم ابزاری بود که بتونه دستورات Git رو تصویرسازی کنه.

یادگیری Git تنها با مطالعه داکیومنت‌ و مقاله‌های مختلف می‌تونه چالش‌برانگیز باشه. چیزی که می‌تونه روند یادگیری این ابزار رو سریع‌تر و البته لذت‌بخش‌تر کنه تصویرسازی و انیمیشنه؛ چه بهتر که این تصویرسازی‌ها زنده و در لحظه باشن.

دو تا ابزاری که خودم برای فهم بهتر دستورات Git ازشون استفاده کردم LearnGitBranching و Visualizing Git هستن.
با استفاده از این دو ابزار می‌تونید خیلی از دستورات گیت رو امتحان کنید و تاثیرشون رو در لحظه ببینید. فکر می‌کنم حتی اگر روزانه از git استفاده می‌کنید و با دستوراتش آشنایی کامل دارید، باز هم استفاده از این دو ابزار می‌تونه درکتون از git رو بیش‌تر و بهتر کنه.
شما از چه ابزارها و منابعی برای یادگیری git استفاده می‌کنین؟

LearnGitBranching:
https://learngitbranching.js.org/

Visualizing Git:
https://git-school.github.io/visualizing-git/

@DevTwitter | <Fateme Fouladkar/>
👍536👎6
#میم_شبانگاهی

کاربرهای vim :)

@DevTwitter | <Javad/>
🤣114👍145👎2
This media is not supported in your browser
VIEW IN TELEGRAM
این ریپو یک ابزار هست که میتونید به صورت لوکال صفحه مانیتورتون و صدا را ۲۴ ساعته ضبط کنید و بعد راجع به هرچیزی که گفتید و شنیدید و دیدید سوال بپرسید. یک جور ورژن اپن سورس rewind .ai هست.
https://github.com/mediar-ai/screenpipe

@DevTwitter | <Mehdi Allahyari/>
🔥44👍9👎3🤣1
رندرینگ در Next.js

در دنیای توسعه وب، یکی از دلایل محبوبیت Next.js نحوه مدیریت فرآیندهای رندرینگ است. این
فریمورک انعطاف‌پذیری زیادی در ارائه انواع مختلف رندرینگ برای بهینه‌سازی عملکرد و تجربه کاربری فراهم می‌کند. در ادامه به انواع رندرینگ در Next.js می‌پردازیم:

رندرینگ سمت سرور (SSR) - Server Side Rendering:

در این روش، صفحه وب در سمت سرور رندر شده و به صورت HTML کامل به مرورگر کاربر ارسال می‌شود. این نوع رندرینگ برای سئو (SEO) و دسترسی سریع به محتوای اولیه بسیار موثر است.

رندرینگ سمت کاربر - کلاینت (CSR) - Client Side Rendering:

در CSR، صفحه ابتدا به صورت یک فایل HTML خالی ارسال می‌شود و جاوا اسکریپت در مرورگر بارگذاری شده و محتوای پویا را ایجاد می‌کند. این نوع رندرینگ برای اپلیکیشن‌های تک‌صفحه‌ای (SPA) که تعاملات زیادی دارند، مناسب است.

رندرینگ استاتیک (SSG) - Static Site Generation:

در این روش، صفحات به صورت استاتیک و در زمان ساخت (build time) تولید می‌شوند و به کاربران ارائه می‌گردند. این نوع رندرینگ بسیار سریع و مناسب برای محتوای ثابت است.

رندرینگ هیبریدی (ISR) - Incremental Static Regeneration:

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

@DevTwitter | <Mohsen Abbasi/>
👍39🔥4
الگوهای ماکروسرویس که هر مهندس نرم‌افزار باید بدونه. این الگوها کمک میکنن سیستم‌های نرم‌افزاری مقاوم در برابر خطا و قابل نگهداری طراحی کنید
https://blog.amigoscode.com/p/mircroservices-best-practices

@DevTwitter | <Mohammad Roshandelpoor/>
🔥14👍7👎1
ترتیب اجرای کوئری‌های SQL

@DevTwitter
56👍6
این درسته

@DevTwitter
👍135🔥43🤣2
ذات فرانت‌اند به طرز وحشتناکی پیچیده‌ست. اینو زمانی متوجه می‌شید که بخواید یه تیکه از کد یه باندلر مثل ESbuild یا Rollup رو بخونید. یا بخواید درباره الگوریتم‌های Virtual DOM توی مثلا ریکت یا Vue بخونید. فکر می‌کنید ساده‌اس چون فقط یه تیکه از رنگ دادن به دکمه رو توی فرانت دیدید.

@DevTwitter | <Yasha/>
👍149🤣44👎12🔥7
این مقاله جالب در مورد ده تا سوال راجع به promise ها توی جاوااسکریپت هست
https://medium.com/frontend-canteen/can-you-answer-this-senior-level-javanoscript-promise-interview-question-69f7b6ffc2e7

سطح سوالات بالاس و تقریبا سوالات مصاحبه‌س همشون

@DevTwitter | <ممد کاکل به سر/>
👍18🔥2
اگر یک developer ساده مثل من هستید و هر از گاهی مجبورید پروژهای خودتون رو روی سرور دیپلوی کنید این چندتا کامند داکر به دردتون میخوره(دراصل برای خودم درست کردم که فراموش نکنم)

https://gist.github.com/mthri/fc0a594cb3d4ed06fc6b6c117e819a1c

@DevTwitter | <Amir Motahari/>
32👍13🤣8
سرعت پروژه‌تون رو با php opcode ببرید بالا

https://inspector.dev/php-opcode-improve-application-performance-without-changing-your-code/

@DevTwitter | <لادویا/>
🤣26👍123👎3
بعد سه بار خوندن کتاب You Don't Know JS شروع کردم به خلاصه کردنش و تو گیتهابم به اشتراک گذاشتم. ممنون میشم چکش کنید و اگه نظری داشتید بهم بگی و لطف کنید اگه خوشتون اومد یه ستاره بدید بهش

4 جلدش رو کامل خلاصه کردم و مشغول خلاصه کردن دو جلد آخرشم.

https://github.com/Masoud-z/You-Dont-Know-JS-summary

@DevTwitter | <Masoud/>
👍7222🔥7🤣4
یه مقایسه‌ی کوچیک و باحال از ‌Kotlin، Swift و فلاتر

@DevTwitter
35👎21🤣9👍6