DevTwitter | توییت برنامه نویسی – Telegram
DevTwitter | توییت برنامه نویسی
23.6K subscribers
4.36K photos
358 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
#کوته_نیوز

شبکه پرداخت pay.ir تعطیل شد. مدیرعاملش گفته دهنمونو سرویس کردن سر اینترنت و بانک مرکزی هم سرورهامونو برد که روش سالاد درست کنه.

@DevTwitter
👍655🔥3👎1
بیا با یه ترفند خفن توی پی اچ پی آشنات کنم؟

خیلی جاها پیش میاد که میخوایم اعضای یک آرایه رو داخل متغیر قرار بدیم. توی تصویر زیر، به دو روش این کار انجام شده و نتیجه یکسان هست.
البته آرایه نباید indexed باشه.

@DevTwitter | <Pouya Farshidnia/>
👍45👎11🔥7
اگه تا حالا API زدی، حتماً به این فکر کردی که GraphQL بهتره یا REST؟ هرکدوم یه سری مزایا و معایب دارن،

پس بیاید یه مقایسه ساده کنیم :

RESTful API :

- هر چیزی یه Endpoint داره، مثلاً /users یا /products.

- اگه اطلاعات مختلف بخوای، باید چند تا درخواست بزنی. (گاهی داده اضافی می‌گیری، گاهی کمتر از چیزی که لازم داری!)

- کشینگش راحت‌تره، چون روی HTTP سوار شده.

GraphQL :

- فقط یه Endpoint داری، ولی می‌تونی دقیقاً همون داده‌ای که لازم داری رو درخواست بدی.

- یه درخواست، چندین جواب! یعنی بهینه‌تر، مخصوصاً برای اپ‌های موبایل.

- کشینگش سخت‌تره، ولی Apollo Client کمک می‌کنه.

- برای کشینگش و ارور های خاص نیاز به تنظیمات داره

پس کدومو انتخاب کنیم ؟

+ اگه API ساده می‌خوای که سریع بالا بیاد و کشینگ برات مهمه → REST!

+ اگه یه سرویس پیچیده داری که قراره چندین نوع کلاینت (موبایل، وب و ...) بهش وصل شن → GraphQL عالیه!

+ گاهی ترکیبشون هم جواب می‌ده! REST برای بخش‌های عمومی، GraphQL برای بخش‌های خاص.

در نهایت، انتخاب بین GraphQL و REST به نیازهای پروژه بستگی داره! مهم اینه که بدونیم هر کدوم کجا بهتر عمل می‌کنن.

@DevTwitter | <Mohsen Abbasi/>
👍96🔥8👎31
فرق بین Heap Memory و Stack Memory در جاواسکریپت؟
دیروز با یکی از شرکت ایرانی مصاحبه رفتم فارغ از یه سری سوالات تکراری مباحثی مانند hoisting closure , type vs interface , prototype , hook ها و... از heap و stack مموری ازم پرسیدن و همچنین مدیرت درست heap در جاوااسکریپت!

۱ - Stack Memory
- پشته (Stack) در JS برای ذخیره متغیرهای مقدار (Primitive Values) و فراخوانی توابع استفاده می‌شود.
- هر تابعی که فراخوانی شود، یک Stack Frame (قاب پشته) دریافت می‌کند که شامل متغیرهای محلی و پارامترهای آن تابع است.
- تخصیص حافظه در استک سریع و خودکار است.
۲ - Heap Memory
- حافظه هیپ (Heap) برای ذخیره اشیاء (Objects) و داده‌های غیر اولیه (Non-Primitive) استفاده می‌شود.
- حافظه در هیپ داینامیک تخصیص داده می‌شود و Garbage Collector آن را مدیریت می‌کند که هندل کردن این بر عهده برنامه نویس هست.

نکته مهم: هنگامی که یک شیء یا آرایه ساخته می‌شود، مقدار آن در Heap Memory ذخیره شده و آدرس (Reference) آن در Stack Memory قرار می‌گیرد.

خب نکته مهم دیگر این هست که اگر برنامه نویس داده زیادی را در heap ذحیره کند باید حتما بعد از استفاده مموری را آزاد کند تا سیستم دچار Memory Leak نشود که روش آزاد سازی هم به این شکل هست که اگر دیگر نیازی به داده ندارید، مقدار null یا undefined را به متغیر اختصاص دهید تا ارجاع از بین برود و یا میتونید از WeakMap استفاده کنید که خود به خود ارجاع های بدون استفاده را حذف میکند.

@DevTwitter | <Alireza Majdi/>
👍47👎94
غروب افتاب Create React App
یادم نمیاد از منسوخ شدن کتابخونه یا فریم‌ورکی ناراحت شده باشم ولی وقتی این رو دیدم خیلی احساساتی و غمگین شدم چون با این که من پنج سال بود که پروژه‌ای رو تحت CRA دولوپ نکرده بودم ولی من با اون بود که عاشق ری‌اکت شدم.

@DevTwitter | <Mohammad Ebrahimi Aval/>
54👍6👎3
حل خطای Reduce unused CSS در وردپرس!

اگه توی ابزارهای بهینه‌سازی مثل Lighthouse یا PageSpeed Insights با خطای Reduce unused CSS مواجه شدین، یعنی یه سری استایل‌های اضافی از پلاگین‌ها و قالب‌های آماده داره ناخواسته لود میشه و سرعت سایت رو پایین میاره.

با کدی که براتون ضمیمه کردم، می‌تونید این استایل‌های اضافی رو حذف کنید (تصاویر رو مشاهده کنید)
کافیه لینک فایل رو توی کدها جستجو کنید و id رو جایگزین کنید و کد رو هم توی function.php قرار برید.

@DevTwitter | <Amir hossein Bagheri/>
8👍5👎3
فشرده سازی فایل ها چجوری اتفاق میوفته؟

شاید براتون سوال شده باشه که نرم افزار هایی مثل WinRAR چجوری فایل ها رو فشرده میکنن؟
خیلی ها بر این باورند که فشرده سازی فایل ها با حذف بیت ها اتفاق میوفته که کاملا غلطه
در صورتی که با حذف حتی یک بیت از فایل به طور کل فایل ناقص میسه و دیگه قابل استفاده نیست!

کلی روش و الگوریتم مختلف برای فشرده سازی فایل ها وجود داره اما یکی از پر استفاده ترین روش فشرده سازی فایل ها RLE (Run-Length Encoding) نام داره که با حذف عناصر تکراری فایل های فشرده تولید میکنه.
این الگوریتم با شمارش تعداد تکرار هر المان و ذخیره سازی تعداد اون + المان مربوطه حجم فایل ها رو کم میکنه!

اجازه بدید با مثال توضیح بدم:
مثلا فرض کنیم شما pdf یک کتاب 100 صفحه ای رو دارید و میخواهید این فایل رو فشرده کنید.
طبیعتا موارد تکراری توی فایل شما وجود داره.برای مثال در جاهای مختلف فایل شما کلمه "سلام" چند بار تکرار شده(برای مثال 3 بار) در اینجا این الگوریتم این 3 تا سلام رو تبدیل میکنه به "سلام×3"
نکته : (این عملیات فقط مختص pdf نیست و روی همه نوع فایلی کار میکنه)

این الگوریتم برای خودش یک فایل راهنما میسازه و المان،تعداد تکرار و آدرس ها رو داخل اون ذخیره میکنه تا زمان استخراج فایل فشرده بتونه تمامی فایل ها رو بازیابی کنه

@DevTwitter | <Farzad Ebrahimi/>
597👍42🔥5👎2
جمع‌آوری زباله (Garbage Collection) در جاوا یعنی خود زبان حافظه‌ای که دیگه استفاده نمی‌شه رو پاک می‌کنه. در C یا C++ باید خودت حافظه رو آزاد کنی، ولی در جاوا Garbage Collector (GC) این کار رو به طور اتوماتیک انجام می‌ده.

@DevTwitter | <Misagh Momeni Bashusqeh/>
👍56👎103
این perplexity یه مدل Deep Research داده بیرون، که تا نزدیک ده دقیقه وقت میگیره جواب بده و به جاش یه مطلب رو دقیق تر با امار و رفرنس درست حسابی تحلیل میکنه تحویلت میده.
جون میده برای ریپورت و پروپوزال و …گرچه که هنوز جای کار داره ولی حداقل دیگه رفرنس سازی فیک نمیکنه

@DevTwitter | <Shana/>
👍58👎1
با پیشرفت روزافزون agent های کدنویسی هوش مصنوعی، مهندسان نرم‌افزار باید توانایی‌های زیر را داشته باشند:

۱- توانایی بررسی سریع و دقیق کد نوشته شده توسط هوش مصنوعی
۲- توانایی توصیف مشکلات به‌صورت واضح و کامل
۳- توانایی انجام هم‌زمان چند کار و تغییر سریع بین زمینه‌های مختلف
خوب است که از حالا این مهارت‌ها را تمرین کنید!

@DevTwitter | <Mehdi Allahyari/>
👍80👎17
This media is not supported in your browser
VIEW IN TELEGRAM
با گذاشتنِ http://r.jina.ai قبل از هر URL، محتوایِ اون صفحه رو به صورتِ مارک‌داون بهتون می‌ده. مثلاً می‌تونید آخرین نسخهٔ مستنداتِ محصول رو به چت‌بات بدید تا جوابِ به‌روز بده. اگر قبل از لینکِ یک PDF بگذارید متنش رو بهتون می‌ده. رویِ بعضی از PDFهای فارسی هم کار می‌کنه.

@DevTwitter | <Ayub Kokabi/>
👍24🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
یه اکستنشن نوشتم برای جاب‌های لینکدین، خودش show more رو کلیک می‌کنه و لیست کلیدواژه‌هایی که بهش می‌دی رو سبز یا قرمز می‌کنه. میشه سریعتر با یه نگاه متوجه شد جاب چقدر به مهارت‌های آدم نزدیکه.

https://github.com/ArmanJR/LinkedIn-Job-Skills-Highlighter

@DevTwitter | <Arman/>
👍44
This media is not supported in your browser
VIEW IN TELEGRAM
مایکروسافت ورژن جدید مدل OmniParser داد بیرون. این یک مدل برای فهمیدن اسکرین شات هست. برای مواقعی که ایجنت قراره با browser کار کنه و تسکی را انجام بده، به کار میاد. خیلی هم عالی کار میکنه. ویدیو رو ببینید حتما

@DevTwitter | <Mehdi Allahyari/>
👍17🔥6
سلام به همه
تا حالا شده تو یه مصاحبه فنی ازتون درباره‌ی JWT بپرسن و شما با یه جواب ساده کار رو راه بندازین؟

من خودم این تجربه رو داشتم! یه بار توی یه مصاحبه، مصاحبه‌کننده پرسید: JWT چیه و چرا ازش استفاده می‌کنیم؟» و من با یه جواب ساده گفتم: «یه توکن امنیه که اطلاعات رو بین کلاینت و سرور جابه‌جا می‌کنه و دیگه سرور نیازی نداره حالت‌ها رو ذخیره کنه.
مصاحبه کننده ازم میخواست که بیشتر توضیح بدم که خب من اطلاعات کاملی نداشتم

یکم بیشتر با JWT آشنا بشیم اول: JWT یک استاندارد باز (RFC 7519) برای ایجاد توکن‌های امن و قابل اعتماد است که به صورت JSON تعریف میشه. این توکن‌ها معمولاً برای احراز هویت کاربران و انتقال اطلاعات بین سرویس‌ها استفاده میشن

ساختار JWT:
یک JWT از سه بخش اصلی تشکیل شده:
بخش Header: شامل اطلاعاتی مانند نوع توکن و الگوریتم رمزنگاری.
بخش Payload: داده‌هایی که می‌خواهیم انتقال دهیم، مثل اطلاعات کاربر یا نقش‌ها.
بخش Signature: برای تأیید اصالت توکن و جلوگیری از دستکاری.

مزایا استفاده از JWT چیه؟
حالت (Stateless) هست، یعنی سرور نیازی نداره اطلاعات توکن رو ذخیره کنه.
امن هست و با یه امضای دیجیتال (Signature) از دستکاری جلوگیری می‌کنه.
توی سیستم‌های بزرگ و میکروسرویس‌ها خیلی به درد می‌خوره.

این موضوع هم یادمون باشه که اگه JWT درست استفاده نشه، می‌تونه خطرناک باشه. مثلاً اگه توکن‌ها رو به درستی expire نکنیم یا اطلاعات حساس رو داخلش ذخیره کنیم، ممکنه دردسرساز بشه!

@DevTwitter | <Soheil Seyyedi/>
👍573
کدی که منتشر میشه، جواب سوال مصاحبه یکی از شرکت های مطرح هست. سوال این بود که دو تا پراسس داشته باشیم که یکی یک واحد شمارشی رو بفرسته و پراسس مقابل یکی اضافه کنه و برای پراسس اول باز بفرستد. پراسس اول دوباره یکی اضافه کنه و برای پراسس دوم بفرسته و این کار اینقدر ادامه پیدا کنه تا به عدد ۱۰ برسیم و بعد دو تا پراسس بسته بشه.

من این تسک را به دو روش 𝐒𝐨𝐜𝐤𝐞𝐭 و 𝐒𝐡𝐚𝐫𝐞𝐝 𝐌𝐞𝐦𝐨𝐫𝐲 انجام دادم. روش سوکت مدیریتش ساده‌تر هست ولی خوب پرفورمنس زیادی فدا میشه. در عوض Shared Memory با اینکه بالاترین پرفورمنس رو در اختیار شما قرار می ده اما مدیریتش سخت تر هست.

روی شاخه main روش SharedMemmory پیاده سازی شده و روی شاخه socket روش سوکت رو آوردم.

https://github.com/HosseinAssaran/PingPongCounter

@DevTwitter | <Hossein Assaran/>
🔥33👍14
پکیج فیکر فارسی برای PHP

چند روز پیش برای پروژه خودم روی PHP 8.3 نیاز داشتم تا اطلاعات فیک فارسی و منطبق با کشور ایران رو داشته باشم و متاسفانه پکیجی براش پیدا نکردم (سازگار با نسخه های قبلی PHP بودند و چندسالی توسعه داده نشده بودند، faker اصلی هم توابع محدودی locale فارسی داشت.)

چون می خواستم پکیج نویسی و انتشارش رو یادبگیرم (فکر می کردم خیلی پیچیده باید باشه که خب نبود) بنابراین یدونه خودم نوشتم که می توانید با composer به پروژه خودتان اضافه کنید.

خوشحال می شم اگر فرصت بررسی اش رو داشتید نظراتتون رو بهم بدید (جهت یادگیری خودم) و اگر مفید دیدید به سایرین هم معرفی کنید که استفاده کنند.

** توابع کد ملی و اطلاعات فیک بانکی هم به زودی اضافه می کنم.

از این لینک می توانید پکیج را مشاهده و دریافت کنید
https://github.com/amyavari/persian-faker-php

@DevTwitter | <Ali Mohammad Yavari/>
28👍18👎2
میدونستین توی جاوااسکریپت Labelled Break هم داریم؟

اما Labelled Break چیه؟
حتماً براتون پیش اومده که یک یا چندتا حلقه تو در تو داشته باشید و بخواید توی یک شرایط خاص فقط از یکی از حلقه‌های مشخص شده خارج بشید، بدون اینکه بقیه روند اجرای کد تحت تأثیر قرار بگیره!

اینجاست که Labelled Break به کمکمون میاد!
با این قابلیت می‌تونیم برای حلقه‌هامون اسم بذاریم و بعد، هر وقت لازم شد، با نوشتن break همراه با نام اون حلقه، مستقیماً ازش خارج بشیم. این کار هم کد رو خواناتر می‌کنه و هم در شرایط خاص دیباگینگ رو راحت‌تر!

@DevTwitter | <Amirreza Riahi/>
👍64🔥11👎3
هرس ساختاری (Structured Pruning) اینجوریه که یه سری از قسمت‌های اضافی مدل رو حذف می‌کنیم تا کوچیک‌تر بشه.
روش DarwinLM هم همین کار رو میکنه، انگار یه فرزند از مدل LLM تولید کنیم، کوچیک‌تر، کم هزینه‌تر و سریع‌تر.
بعد تمام این مدل‌های کوچیک (فرزند‌هارو) آموزش میدیم، خروجی میگیریم ببینیم کدوم‌ها بهترن و همونارو نگه میداریم.
این مراحل رو ۲ تا ۳ بار تکرار میکنیم تا به یه مدل کوچیک و کارآمد برسیم.
نویسنده مقاله میگه تو این روش میشه LLMهارو کوچیکتر و سریع‌تر کرد بدون اینکه دقتشون خیلی کم بشه.
نتیجه هم اینه که مدل‌هایی در آینده خواهیم داشت که سرعت بسیار بالا و هزینه خیلی کمی داشته باشن.

@DevTwitter | <Soroush Ahmadi/>
👍17🔥4
اگر دنبال نمونه کار برای رزومه هستین
To Do List
Weather
Calculator
اینا واقعا رزومه نیستن
اینا برای ارتقا مهارت خودتون
اگر ایده پروژه ندارین، این Repo بهتون تو تمام حوزه های Javanoscript توی
Fronend
Backend
Ai
Chatbot
و .... کلی ایده پروژه داره

https://github.com/deepakkumar55/ULTIMATE-JAVASCRIPT-PROJECT

@DevTwitter | <Ali Palvane/>
👍3620👎5
This media is not supported in your browser
VIEW IN TELEGRAM
یه دستیار کد مبتنی بر LLM برای Vim پیدا کردم، میتونم (گاهی) از VSCode برگردم به اصل خودم:
https://github.com/JosefAlbers/VimLM

@DevTwitter | <Hamed/>
👍13👎42
اگر به هر دلیلی با تولیدکنندگان رمز عبور درون برنامه‌ای (Password Manager ها یا Authenticator ها) مثل من حال نمی‌کنید، پیشنهاد می‌کنم از این تولیدکننده‌ی رمز عبور استفاده کنید:

https://4n0nymou3.github.io/PassForgeMatrix

سورس:
https://github.com/4n0nymou3/PassForgeMatrix

@DevTwitter | <Anonymous X/>
👎247👍2🔥2