NimaCodez | خفنیجات با نیما – Telegram
NimaCodez | خفنیجات با نیما
531 subscribers
39 photos
3 videos
27 links
مسئله های یک دولوپر کنجکاو و نیمچه Geek.

Go Deep, Learn Deep, Ask Deep.

A nerd without *shiny* grades.
Download Telegram
📣 امروز ساعت ۷:۳۰ راجب HTTP پست داریم. ولی واقعا مبحث خیلی خیلی بزرگیه و گفتنی ها توش بشدت زیاده، حتی خود پست امروزش هم طولانیه.

برای همین این پست رو فعلا داشته باشید تا یه چیزایی رو بدونید ازش؛ ولی در ادامه خیلی بیشتر باید گفته بشه.
موافق چه کاری هستید؟
دوست دارید یه ویدیو بگیرم همشو جمع کنم براتون و رو یوتیوب بذارم؟ (بعد از یک هفته روی چنل تلگرام هم آپلود میشه).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
⁉️🌐 دنیای وب واقعا چطور کار میکنه؟

ما هرروز کلی عکس، فیلم، صدا، فایل و غیره برای هم ارسال میکنیم. هرروز به کلی وبسایت سر میزنیم و چیزای مختلفی میگیریم و میبینیم، اما همه‌ی اینها چطور ممکن شده؟

‏HTTP یا «HyperText transfer protocol» یک پروتکل در لایه‌ی application، یعنی لایه‌ی هفتم مدل OSI و لایه‌ی چهارم مدل TCP/IP هست. بعدا این جمله رو بیشتر باز میکنیم قطعا، اما در حال حاضر صرفا اینکه بدونید یک پروتکل هست برای ادامه کفایت میکنه.

⁉️ سوالی اولی که پیش میاد اینه که اصلا چیکار میکنه؟ HTTP مثل یک پل ارتباطی بین دوتا دستگاهه که تو بستر وب کار میکنن، و بهشون این قابیلت رو میده که بهم دیگه عکس، صدا، فایل،‌ ویدیو و ... ارسال کنن. اما چطور این کارو میکنه؟

⚜️ دوتا مفهوم هست که باید شدیدا بهشون توجه کنید: «Request» و «Response»

🌕 وقتی شما وارد مرورگر میشید و میزنید http://digikala.com ، درواقع مرورگر یک Request به سمت سرور های دیجی‌کالا ارسال میکنه، و بعد سرورهای دیجی‌کالا بعد از تحلیل درخواست شما و جمع‌آوری اطلاعات لازم برای پاسخ دادن به شما، یک Response متناسب براتون ارسال میکنن. این میشه کل فرایند کار و به عنوان «Request Cycle» میشناسیمش.

⁉️ حالا سوال: چطور مرورگر به سرور های دیجی‌کالا ( یا هر سرور دیگه‌ای ) بفهمونه که چیکارش داره. شاید اصلا من داشتم مشخصات یک محصول رو ارسال میکردم تا توی سبد خریدم ذخیرش کنم، چجوری باید اینو بهش بگم؟ خب باید از Verb های HTTP استفاده کنم.

💎 چیزی که تو این مرحله نیاز میشه بدونید، «HTTP Verbs‏» هست. اول از همه باهم ببینیم که چی هستن:
GET, POST, PUT, PATCH, DELETE

- اما برای چی و چجوری ازشون استفاده میکنیم؟

‏GET: برای دریافت دیتا و اطلاعات یک آدرس یا URL. مثلا برای مشاهده صفحه‌ی اصلیِ http://digikala.com یک درخواست از نوع GET ارسال میشه. اگر اطلاعات بیشتری راجب URL میخواید یا نمیدونید چیه هشتگ #URL کامل توضیحاتش هست.

POST: این متُد (اسم دیگه‌ی وِرب) برای ارسال داده سمت سرور هست. فرض کنید تو مثال دیتابیس تو پستِ بالا من میخواستم اطلاعات یک یوزر جدید رو ثبت کنم. باید با استفاده از یک متد POST این کار رو میکردم. چرا؟ چون متد پست قابلیت حمل بار داره. اگر متد GET موتورسیکلت باشه متد POST کامیونه. و میتونه با خودش یه مقدار بار (که بهش میگیم Request Body) حمل کنه و مثلا همون name, age, lastName رو با مقادیرش بذاریم توش و بفرستیم سمت سرور.

⚠️ نکته: نه اینکه GET قابلیت داشتن Body نداشته باشه، اما ازش استفاده نمیشه چون خیلی از سرور ها از Bodyای که تو ریکوئست GET باشه صرف‌نظر میکنن و از نظر معنایی هم این کار معنی نمیده که شما با متد دریافت اطلاعات، بخوای اطلاعات بفرستی.

‏PATCH و PUT: جفتشون برای آپدیت کردن یک منبع در سرور به کار میرن. مثلا فرض کنید کاربر اومده ایمیل و شماره تلفنش رو وارد کرده. بعد متوجه شده شماره تلفنش اشتباه بوده و میره اون رو اصلاحش کنه. خب اینجا دیگه شما کاربر رو از قبل داری، فقط باید یه سری تغییرات رو بهش اعمال کنی. اگر کاربر رو نداشتیم دیتاش رو با متد POST باید میفرستادیم تا ساخته میشد.

‏DELETE: طبق موارد بالا کارکرد دلیت قابل حدسه. برای حذف یک منبع از سرور به کار میره.

⁉️ خب حالا HTTPS این وسط چیه؟ HTTPS نسخه‌ای هستش که به وسیله گواهی TLS یا SSL اطلاعات ورودی به و خروجی از سرور رو رمزنگاری میکنه تا افرادی که بیرون موندن نتونن بفهمن اون دیتای اصلی چی بوده و امنیتش رو بیشتر میکنه؛ برای همین میگن اگه کار خرید، پرداخت، ثبت نام و ... داشتید همیشه حواستون باشه که بالا https باشه نه http.

هنوز خیلی چیزا مونده که راجب HTTP بگم و همچنین نکته های تستیِ ریزش و خب تو یه پست متنی واقعا سخته، موافق یه ویدیو برای این مبحث هستید؟ کل قضایایی از دنیای وب که نیازه بدونید رو براتون جمع میکنم. اگر آره تو نظرسنجی بالا شرکت کنید 👆🏻

ممنون بابت همراهیتون، ریکشن یادتون نره، پستا واقعا زمان و انرژی میبرن :))).
کنجکاو بمونید

#network #http #osi #tcpip #web #crossstack

🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥26👍114
میگن فردا آزادیه؛ پس فردام یه عده دیگه آزاد میشن.
منم باهاتون آزاد میشم 💙
دلیل نبودن این مدتم همین چیزا بود؛ حالا بعدا صحبت میکنیم که کار زیاده.
امیدوارم موفق باشیم. دیگه بگیریم بخوابیم فردا شب صحبت میکنیم 🫶🏻
🔥16👍3👾2❤‍🔥1
✏️ درود به تک تکتون، یه چند سطری راجب شرایط یه صحبتی بکنیم و برگردیم سر کارامون.

اما در وهله اول بخاطر تاخیر ببخشید، راستش انقدر فشار وارده زیاد بود که ترجیح دادم یک هفته‌ای استراحت کنم.

📚 راجب کنکور؛ راستش من نظرم رو همیشه گفتم، تحصیلات برای آدمی که زندگی آکادمیک دوست داره مهمه؛ برای شخصیت فردی شما هم میتونه اعتماد به نفس بیاره؛ اما یک پدیده غیرممکن هست اینکه هر آدمی تلاش میکنه به رشته مورد نظرش تو دانشگاه مورد نظرش برسه؛ بهرحال محدودیت ظرفیت وجود داره و البته سهمیه های ۲۵٪ و ... 😅

🧮 از نظر من جمله‌ی «من اصلا برای کنکور نخوندم» وجود خارجی نمیتونه داشته باشه. شما یا واقعا آدم بیخیالی بودید و کلا از درس خوشتون نمیومده و نمیخوندید و سال کنکورتون هم نخوندید؛ یا حتی اگر تیکه تیکه یا چند ماه آخر خوندید باز هم تلاشتون رو کردید. همینکه آدم از یک سری چیزا میزنه من اسمش رو تلاش میذارم. من از «برنامه‌نویسی» که تمام نوجوونیم رو پاش گذاشتم زدم تا چند ماهی به این تارگت موقت از زندگیم برسم و از نظر من همین ایثار یه جورایی شهادته برای تلاش های کم و بیش بعدش.

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

⁉️ چنل قراره چی بشه؟
بعد از چند روزی ایده‌پردازی و نوشتن موضوعاتی که میشه راجبشون پست گذاشت برمیگردم و به طور منظم پست میذارم؛ سعی میکنم هفته‌ای سه تا پست رو براتون بذارم.

درکل فارغ از نتیجه؛ امیدوارم هممون موفق باشیم چون به قول خودم تو این چند وقت اخیر، این کره آبی گنده جا واسه هممون داره 🌍

- نیما
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥26👍5
۸ تا موضوع فعلا برنامه‌ریزی شده و بجز امروز که پنج‌شنبست، روزهای شنبه، دوشنبه و چهارشنبه ساعت ۸ غروب میان روی کانال که اشتراک گذاری و ریکشنش با شماست، کیفیت و محتواش با من 🫶🏻💙

📣 از امروز هم شروع میشه، نوتیفیکیشن های کانال رو روشن کنید
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍31
⁉️ تفاوت فانکشن های Create و Insert توی typeorm باهم چیه؟

هر دوی این فانکشن ها زمانی استفاده میشن که بخوایم یه دیتای جدیدی رو به دیتابیس اضافه کنیم اما این دوتا فانکشن تفاوتایی باهم دارن که میخوایم الان باهم توی چهارتا معیارِ

۱- ساخت یه آبجکت جدید
۲- اجرا کردن هوک ها و لایف سایکل ها (AfterInsert, ‌BeforeInsert و ...)
۳- ذخیره سازی آنی داده ها
۴- پرفورمنس

بررسیشون کنیم.

1️⃣ساختن یه آبجکت جدید: فانکشن Create یه آبجکت جدید از روی Entity میسازه و شما در طول فانکشنی که دارید میتونید تغییراتی روش اعمال کنید و در نهایت بعد از اعمال همه‌ی اون تغییرات؛ متد save رو روی آبجکتی که ایجاد کردید صدا میزنید و اینجاست که عمل ذخیره کردنِ دیتا توی دیتابیس واقعا اتفاق میفته.
«درواقع خود فانکشن create هیچ چیزی رو به دیتابیس اضافه نمیکنه.»

2️⃣ اجرای هوک ها (لایف‌سایکل های Entity): متد Insert هیچ هوکی رو اجرا نمیکنه. همونطور که قابل حدسه، از اونجایی که متد create هم هیچ ارتباط مستقیمی با دیتابیس نداره پس این متد هم هوک هارو اجرا نمیکنه.
«هوک ها فقط زمان صدا زدن متد save صدا زده میشن.»

3️⃣ ذخیره سازی آنی: متد Insert به‌صورت آنی و لحظه‌ای دیتارو توی دیتابیس ذخیره میکنه و اون رو ریترن میکنه. متد create اما هر زمانی که شما save رو روی اون آبجکت create شده صدا بزنید؛ دیتارو ذخیره میکنه.

4️⃣ پرفورمنس: خب راستش این بخش جواب خاصی نداره؛ به طور مشخص وقتی شما از Insert استفاده کنید و یهو دیتارو سیو کنید پرفورمنس بهتری دارید. ولی مسئله اصلی ما توی یک نرم‌افزار صرفا پرفورمنس ذخیره شدن دیتا نیست. خیلی وقتا شما نیاز دارید اون دیتایی که از Entityتون دارید رو در طول کنترلر تغییراتی بدید و درنهایت اون رو ذخیره کنید (یا حتی یک سری هوک هارو اجرا کنید)
«پس معیار نهایی استفاده از Create و Insert به این بستگی داره که شما میخواید چه کاری انجام بدید!»

کنجکاو بمونید.
#nestjs #typeorm #database #backend

🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥163🆒3👍2
🔥 ستون اصلی نرم‌افزار های روز دنیا چیه؟
⁉️ بک‌اند و فرانت‌اند چجوری باهم حرف میزنن؟
⁉️ اصلا اپلیکیشن موبایل چجوری با بک‌اند حرف میزنه؟

تو این پست با «API» آشنا میشم و همه اینارو جواب میدیم.

تو یه رستوران، منو یه فهرستی از غذاهاست که میتونید سفارش بدید. منو بهتون میگه که چه غذاهایی موجودن و چطوری میتونید سفارششون بدید.
تو دنیای برنامه‌نویسی «‏API» همون منوی توی رستورانه. API ها یه فهرست از عملکردها و خدماتی هستن که یه بک‌اند میتونه ارائه بده و توضیح میده چجوری میشه ازش استفاده کرد.

‏«API» هارو حتی میشه یه‌جور دلال دیتا هم حساب کرد. چون درواقع واسطه میشن بین کاربر و جایی که پردازش واقعی داره انجام میشه. (مثل پیش‌خدمتی که سفارش شمارو به آشپزخونه میگه و شما خودتون نمیرید به آشپزخونه)

- بیاید براش یه مثال قابل لمس بزنیم:
۱- منو رو نگاه میکنید و غذارو انتخاب میکنید.
۲- به پیش‌خدمت میگید فلان غذارو رو میخواید.
۳- پیش‌خدمت سفارش شمارو به آشپزخونه میبره تا آشپز حاضرش کنه.

⁉️ تو هرکدوم از این مراحل چه اتفاقی میفته؟

1️⃣ مرحله اول: این مرحله داره فرانت‌اند رو توصیف میکنه، جایی که کاربر داره دکمه ها، اطلاعات، فرم ها و متن هارو میبینه.

2️⃣ مرحله دوم: اینجا پیش‌خدمت داره نقش API رو بازی میکنه. داره HTTP Request (سفارش) رو از فرانت اند (کاربر) میگیره و به بک‌اند (آشپزخونه) تحویل میده.

3️⃣ مرحله سوم: وقتی API این ریکوعست رو تحویل داد؛ بک‌اند هم با وصل شدن به دیتابیس و پیدا کردن اون دیتای مورد نظر و یه سری پردازش ها، دوباره جواب (غذا) رو میده به API (پیش‌خدمت) تا تحویل فرانت‌اند (مشتری/کاربر) بدتش.

به عکس #2 نگاه کنید! «اصلا دلیل فلش دو طرفه‌ای که بینشون کشیدم همینه». چون هر دوتاشون با اون پیش‌خدمت (API) سروکار دارن؛ نه خود آشپز مستقیم غذارو برای مشتری میبره،‌ نه مشتری مستقیما میره آشپزخونه.

⁉️ ولی اصلا این API چه جنسیه؟ چه شکلیه؟

تعدادی HTTP Endpoint هستن که وقتی بهشون ریکوعست زده میشه، فانکشن خاصی رو تو بک‌اند اجرا میکنن.

⭐️ تقریبا کل قضیه Backend Development راجب همین ساخت API هاست. پس درک مفهومش برامون خیلی مهمه.

⚠️ اگه حس کردید مطالب این پست براتون ناآشناست؛ خوندن این سه تا پیام میتونه کمکتون کنه که این پست رو بهتر درک کنید.

‌‏- URL و درکل آدرس تو دنیای وب چی هست؟
‏- HTTP یعنی چی؟ و اصلا چی هست؟
- دیتابیس چیه؟

کنجکاو بمونید.
#API #crossstack #web #http

🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥14👍42🆒2
⁉️ چه انواعی از API موجوده؟ الان باهم میفهمیم.

شناخت انواع API به درک عمیق‌تر و دانش بیشتر شما کمک می‌کنه.

‌‏1️⃣- REST API: یک استایل معماری برای توسعه اپلیکیشن‌های تحت شبکه که از متدهای استاندارد HTTP (مثل GET, POST, PUT, DELETE) استفاده میکنه. فرمت داده معمولاً JSON هست. برای دسترسی به هر منبع یک URL مشخص وجود داره.

2️⃣- GraphQL: برخلاف REST که هر منبع یک آدرس داره، GraphQL فقط یک آدرس داره و همه درخواست‌ها به همون یه Endpoint ارسال میشن. GrapQL یه زبان کوئری هست که به کلاینت اجازه میده دقیقاً داده‌های مورد نیازش رو درخواست کنه. از قابلیت‌هایی مثل به‌روزرسانی لحظه‌ای هم پشتیبانی می‌کنه، که برای اپلیکیشن‌های وب‌سوکت ایده‌آل هست.

3️⃣- SOAP: یک پروتکل برای تبادل اطلاعات ساختاریافته بین وب‌سرویس‌ها است. از XML استفاده میکنه و معمولاً روی بستر HTTP کار می‌کنه، اما می‌تونه با SMTP هم کار کنه.

4️⃣- gRPC: یک فریم‌ورک RPC (Remote Procedure Call) با پرفورمنس بالا که از پروتوکل بافر (Proto Buff) برای انتقال داده استفاده می‌کنه. برای میکروسرویس‌ها خیلی مناسبه و از استریم دوطرفه (کلاینت به سرور و برعکس) پشتیبانی میکنه و برای سیستم‌های Low-latency عالیه.

⁉️ حالا کدوم رو استفاده کنیم؟

بستگی به نیاز شما داره. اگر API ساده‌ای توسعه میدید، REST گزینه مناسبیه. اما اگر به انعطاف‌پذیری بیشتری نیاز دارید، GraphQL انتخاب خوبی هست و برای میکروسرویس‌ها و سیستم‌های با تأخیر کم، gRPC بهترین گزینه‌ است. این تصمیم به نیازسنجی دقیقی نیاز داره و به یادتون باشه که: «مجبور نیستید فقط یکی از اینها رو استفاده کنید.»

کنجکاو بمونید.
#gRPC #REST #graphql #soap #api #backend #crossstack

🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥463🔥3👾3👍1
NimaCodez | خفنیجات با نیما
Photo
اگه خواستید این پست رو بخونید و منو یه ری‌اکشن مهمون کنید!
❤‍🔥15😭2👍1
🔥 ۷ تا ترفند برای داشتن API Endpoint های تمیز و خفنی که هرکی دید کف کنه تو خوندن این پسته!

نوشتن API هایی که نگهداریشون آسون باشه و خوانایی خوبی داشته باشن از توانایی های اصلی هر توسعه دهنده‌ی بک‌اندیه؛ پس بریم یادش بگیریم.

نکته: منظور از resource در ادامه؛ اون شیوه‌ی اصلی و اولیه نمایش یک منبع هست.

1️⃣- کالشکن یا تک عضو؟
فرض کنید میخوایم سفارشات یک کافی‌شاپ رو از API دریافت کنیم، این URL باید کل سفارشات رو بده:
https://ye-chizi.com/orders


و این یکی باید یکیشون رو برگردونه:
https://ye-chizi.com/orders/{orderID}


2️⃣- کالشکن ها و زیر مجموعه هاشون!:
هر کاربری میتونه سفارشاتی داشته باشه. از اونجایی که این سفارش ها هستن که مال کاربر هان نه برعکس؛ پس URL درستی که همه‌ی سفارشات یک کاربر رو بده این خواهد بود:
https://ye-chizi.com/users/{userID}/orders


و URLای که فقط یک سفارش یه کاربر رو برگردونه اینطور میشه:
https://ye-chizi.com/users/{userID}/oders/{orderID}


3️⃣- استفاده از اسم ها؛ به‌جای فعل ها: فرض کنید بخوایم تمام یوزرهای دیتابیس رو در پنل ادمین نشون بدیم؛ URL درستش به این صورت میشه:
https://ye-chizi.com/admin/get-users
https://ye-chizi.com/admin/users


4️⃣- برای ایجاد سلسله مراتب از Forward Slash استفاده کنید! مثالش همون مثال مورد دوم هست.

5️⃣- از خط تیره برای جدا کردن کلمات استفاده کنید:‌
https://ye-chizi.com/reports/remotejobs
https://ye-chizi.com/reports/remote-jobs


6️⃣- اسم فانکشن های CRUD رو تو URL نیارید:
چیزی که تایین میکنه این ریسورس قراره خونده بشه، چیزی براش ارسال بشه یا دلیت بشه؛ اون HTTP Methodی هست که درخواست باهاش ارسال شده.
GET @ https://ye-chizi.com/orders => Get orders
POST @ https://ye-chizi.com/orders => Create a new order
DELETE @ https://ye-chizi.com/orders/{orderID} => Delete an order


7️⃣- فیلتر و مرتب سازی بر اساس کوئری:
برای سرچ تو یه ریسورس خاص و مرتب سازیش نیاز نیست API های جدایی بزنید. تو همون API از طریق کوئری دیتای مورد نیاز کارتون رو دریافت کنید!
https://ye-chizi.com/hotels?state=gilan&days=3

کنجکاو بمونید.
#api #rest #conventions #backend

🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥192👍1🔥1🤝1
NodeJS چیه و چیکار میکنه؟ اصلا چرا هست؟

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

نکته ۱: Node سال ۲۰۰۹ ریلیز شد ولی سروصدا و صحبت دربارش از ۲۰۰۸ استارت شده.

نکته ۲: Netscape چون اولین مرورگری بود که خیلی فراگیر شد من با اصطلاح "اولین مرورگر" بهش اشاره کردم، وگرنه قبلش هم مرورگر های دیگه ای بودن.

کنجکاو بمونید.
#nodejs #runtime #js #engines #backend #frontend


🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
220👍6🆒3❤‍🔥2
⁉️ SQL Injection چیه و راهای جلوگیری ازش چیا هستن؟

SQL Injection یکی از تکنینک های تزریق کده که بخاطر سو استفاده از آسیب‌پذیری های یک نرم‌افزار در حین ورود اطلاعات به یه فرم یا فیلد اتفاق میفته. مثلا یک فرم جلوی کاربر هست و ازش خواسته شده که سنش رو وارد کنه؛ ولی اون میتونه داخلش دستورات SQL مخربی بنویسه که مثلا کل جدول users شمارو حذف کنه.

🔥 حالا چطور باید از این اتفاق جلوگیری کرد؟

1️⃣ استفاده از ORM ها:‌ ORM ها بخش زیادی از حملات SQL Injection رو با روشی که بهش میگن parameterized queries دفع میکنن و از برناممون محافظت میکنن.

2️⃣ اعتبارسنجی ورودی ها: باید یک سری اعتبارسنجی روی ورودی های کاربر هم از سمت فرانت‌اند و هم از سمت‌ بک‌اند صورت بگیره تا حدالامکان هیچ دیتای مشکوک و مخربی سمت بک‌اند وارد نشه.

3️⃣ استفاده از میدلور های امنیتی: استفاده کردن از میدلورهایی مثل helmet و csurf.

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

کنجکاو بمونید.
#backend #nodejs #sqlinjection #sql #security #tips

🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥17👍82🆒1
نصب شبی که درصد کمی از ما خواب بودن گیتهاب حوالی ساعت ۳ صبح ترکید و حوالی ۴ صبح به زندگی برگشت 😂😂

#نیم_خبر
@NimaCodez
😁16👾4👍2
Forwarded from پروگرمرزمیم
من اونقدر برنامه نویس خوبی نیستم ک بتونم تو دلت جاوا کنم.

#پروگرمر_عاشق

@programmerjokes_fa
Please open Telegram to view this post
VIEW IN TELEGRAM
2😁21😭52❤‍🔥1👍1
⁉️🌐 اینترنت چطوری متولد شد؟

🧐 شاید یکی از شُکه کننده ترین فکتای دنیا اینه که: «اینترنت اونقدری که بنظر میاد بی‌سیم نیست
درواقع اون بخشی که بی‌سیم هست در مقابل اون بخشی که واقعا با سیم بهم وصل شده عددی نیست. اما ایده های این شبکه از کجا اومد؟

حوالی سال ۱۹۵۰ بود که ایده های وصل کردن چندتا کامپیوتر بهم دیگه برای رد و بدل کردن اطلاعات و منابعشون مطرح شد. از طرفی بخاطر «جنگ سرد روسیه با آمریکا» و خطرات ممکنِ یه «حمله اتمی» آمریکایی ها میخواستن تا جایی که ممکنه شرایط رو برای حفظ ارتباطاتشون محیا نگه‌دارن.

⭐️ اینطوری شد که «آرپانت» به وجود اومد؛ پدربزرگ اینترنت امروزی.

🟢 آرپانت اوایل یه مرکزی بود که تعدادی از دانشگاها و مناطق مهم رو بهم وصل میکرد؛ اما با گسترش این حوزه و به وجود اومدن TCP در حوالی ۱۹۷۴؛ این شبکه گسترده تر شد و به اینترنتی که ما امروزه میشناسیم شبیه تر شد.

اگه براتون جالب بود؛ لطفا برای حمایت از من و کانال ریکشن رو فراموش نکنید، خصوصا استارز :)
#network

🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤‍🔥27👍10🔥1
🔥 ‏Wikipedia Page Finder منتشر شد!

⭐️@weekipediabot یه رباته که شما به صورت اینلاین میتونید بهش یه موضوع بدید و همون رو تو ویکی‌پدیا سرچ میکنه و درنهایت میتونید نتیجه رو انتخاب و ارسال کنید.

مشکلی که وجود داشت این بود که وقتی داشتیم راجب یه موضوعی صحبت میکردیم خیلی وقتا نیاز بود از تلگرام بریم بیرون و یه سورسی از ویکی‌پدیا رو بفرستیم؛ دیگه نیاز نیست این کار رو بکنیم.

🌐 ریپازیتوری گیتهاب: Wiki Page Finder
🤖 آدرس ربات:‌ @Weekipediabot

🔴 ورژن یک هست. خوشحال میشم نظراتتون؛ پیشنهاداتون؛ و حتی PR هاتون رو ببینم 💙.

⚡️ استک پروژه: Bun, TS, Typeorm, Sqlite, Telegraf

🔗 @NimaCodez
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥20👍3🔥2