سامانه های اطلاعاتی فناوری تدبیرگران آهار

ارائه دهنده سامانه های یکپارچه نرم افزاری - اتوماسیون اداری - فرآیندساز - مدیریت ارتباط با مشتریان - تردد پرسنل

سامانه های اطلاعاتی فناوری تدبیرگران آهار

ارائه دهنده سامانه های یکپارچه نرم افزاری - اتوماسیون اداری - فرآیندساز - مدیریت ارتباط با مشتریان - تردد پرسنل

نرم افزار اتوماسیون اداری
نرم افزار دبیرخانه
مدیریت تردد پرسنل
نرم افزار ورود و خروج
نرم افزار CRM
ارتباط با مشتریان
نرم افزار ورود و خروج
نرم افزار حضور و غیاب
نرم افزار حقوق و دستمزد
نرم افزار فرایندساز
نرم افزار جریان کاری
تحت وب

پیام های کوتاه

۹ مطلب با کلمه‌ی کلیدی «دوره MongoDB» ثبت شده است

آموزش احراز هویت با JWT (جیسون وب توکن) Express-Nuxt-Mongo

چهارشنبه, ۳۰ شهریور ۱۴۰۱، ۱۰:۳۰ ق.ظ

دیدین تا حالا مثال هایی که بعضی از معلم ها سرِ کلاس حل می‌کنند، با سوالاتی که سرِ امتحان واسمون طرح می‌کنند، چقدر تفاوت داره :)

تا الان بیشتر دوره های آموزشی که داخل سایتم منتشر کردم، شبیه مثال های سرِ کلاس بوده...

یادگرفتنش مفیده اما برای ورود به بازار کار، هنوز یه سری نکاتی کم دارن... همون نکاتی که بهشون می‌گن فوت استادی...

 

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

باز باید کلی فیلم رو ویرایش کنیم تا اون تیکه، جاساز بشه :)

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

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

چیزی که در نهایت تصمیم گرفتم، آموزش یک پروژه ی فول استکی بود تا بتونم خیلی از موارد برنامه نویسی رو پوشش بدم.توی این دوره، ما هم سمت فرانت اند رو پوشش میدیم و هم سمت بک اند... پروژه ای که قراره با یک توکن، کاربر رو تشخیص بده و اون رو احراز هویت کنه.
احراز هویت  با JWT
احراز هویت با JWT

 

یعنی از همون ابتدا، 2 تا پروژه ایجاد می‌کنیم.یک پوشه به نام back و یک پوشه به نام front ... و کدهای هر بخش رو در پوشه ی مربوط به خودش قرار می‌دیم.

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

دوره آموزش پروژه محور احراز هویت با JWT
دوره آموزش پروژه محور احراز هویت با JWT

 

الان هم تا جلسه ی 15 ام از این آموزش، تولید شده و در سایت قرار داده شده است.

دموی پروژه رو هم از این لینک می‌تونید مشاهده بفرمایید.

آموزش احراز هویت با JWT (جیسون وب توکن) Express - Nuxt - Mongo

 

ترکیب فوق العاده اکسپرس و مونگو در بک اند
ترکیب فوق العاده اکسپرس و مونگو در بک اند

 

ویژگیهای برنامه در سمت backend:

  • استفاده از NodeJS به عنوان موتور اجرای کدهای جاوا اسکریپت در سمت سرور
  • استفاده از کتابخانه ExpressJS برای طراحی API
  • پیاده سازی انواع route های GET , POST , PUT
  • استفاده از Middleware برای تایید توکن (verify)
  • ایجاد route لاگین جهت ایجاد توکن (sign)
  • ایجاد route لاگین جهت حذف توکن (logout)
  • استفاده از mongoose برای ساخت دیتابیس
  • انجام عملیات CRUD
  • ایجاد Schema برای جدول user
  • ایندکس گذاری فیلد accountID ، جهت عدم ثبت داده تکراری
  • استفاده از body-parser جهت دریافت پارامترها از سمت کاربر
  • آشنایی با ارسال و دریافت توکن به صورت GET , POST , authorization header

 

ترکیب فوق العاده ناکست 3 و تیلویند در فرانت اند
ترکیب فوق العاده ناکست 3 و تیلویند در فرانت اند

 

ویژگیهای برنامه در سمت frontend:

  • استفاده از NUXT 3 به جهت بهینه سازی برنامه برای موتورهای جستجو (بچه ها کدهای ویو جی اس در سمت کلاینت اجرا می‌شن و این برای موتورهای جستجو ایده آل نیست. برای همین ما از ناکست، استفاده کردیم تا کدهامون سمت سرور ران بشن و در نتیجه بتونید مانور خوبی روی سئو داشته باشید)
  • استفاده از Option API به جهت آشنایی با VueJS 2
  • مهاجرت به Composition API به جهت آشنایی با VueJS 3
  • نصب و استفاده از فریم ورک تیلویند (tailwindcss) (این فریم ورک، خودش یک دوره ی جداگانه داره اما توی این دوره هم تا حدی توضیح دادیم در مورد تیلویند و با بررسی کدهای برنامه، می‌تونید بفهمید داستانش چیه)
  • ایجاد یک قالب ریسپانسیو برای سایت
  • نحوه تعریف کلاس های کاستوم در tailwindcss
  • پوشه بندی برنامه و انتقال پوشه های کلیدی در زیرمجموعه src
  • استفاده از Composables
  • استفاده از Pages
  • استفاده از Components
  • استفاده از Plugins
  • استفاده Layouts
  • استفاده از mixins
  • ذخیره و بازیابی توکن در LocalStorage
  • استفاده از env. برای مقدار دهی به متغیرهای runtime
  • نمایش کامپوننت ها در مودال (بسیار کاربردی)
  • استفاده از فونت زیبای وزیر

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

البته آموزش مونگو یک خیلی مفصل تر از این حرفهاست و من در این پروژه فقط در حد نیاز توضیحاتی رو خدمتتون ارائه دادم.

برای آشنایی بیشتر با این دیتابیس، می‌تونید از این 2 دوره بهره بگیرید:

آموزش مقدماتی دوره MongoDB

آموزش پیشرفته دوره MongoDB

همچنین توی این دوره، از ادیتور VSCode استفاده کردیم که یک دوره ی رایگان vscode هم گذاشتیم که از بعد از ثبت نام، می‌تونید دانلود کنید.

لینک سایر دوره ها رو هم چه در حوزه فرانت و چه در بخش بک، اینجا آوردم:

دوره های آموزشی فرانت اند

دوره های بک اند

دوره های دیتابیس

دوره های پروژه محور

  • محمدرضا عرفانی

Sharding چیست؟

پنجشنبه, ۲۸ اسفند ۱۳۹۹، ۱۱:۱۲ ب.ظ

در این جلسه میخوایم بگیم اگر دیتابیس شما بزرگ شد و آیتم های زیادی در یک کالکشن قرار داشتند، چه راهکارهایی برای توسعه دیتابیس وجود داره... در این موارد ما 2 راه حل داریم: 1- توسعه عمودی و توسعه افقی در توسعه عمودی میتونیم امکانات دیتابیس رو افزایش بدیم. مثلا میتونیم به زیاد شدن رم و هارد یا افزایش قدرت CPU اشاره کرد.

اما مورد دوم، افزایش سرورها است به گونه ای که اطلاعات 1 کالکشن بر روی چند سرور ذخیره شود...

 

آموزش ویدیویی رایگان Sharding 

  • محمدرضا عرفانی

آشنایی با readConcern در ReplicaSet

شنبه, ۲۳ اسفند ۱۳۹۹، ۰۵:۵۵ ب.ظ

وقتی که چند تا سرور با هم ارتباط برقرار میکنند و تشکیل یک رپلیکا ست رو میدهند، اولویت خواندن داده ها چطور باید باشد باشد؟ آیا با ابتدا داده ها از سرور اصلی خوانده شود، و کلاینت اطلاع پیدا کند، یا اینکه میتواند داده ها را از تمام سرورهای رپلیکاست بخواند و سپس به کلاینت اطلاع دهد.

 

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

 

آشنایی با readConcern در ReplicaSet

 

دوره پیشرفته MongoDB رو خریداری کنید و از کار با این دیتابیس لذت ببرید.

 

همچنین دوستانی که تازه با این دیتابیس آشنا شدند، بهتره ابتدا دوره مقدماتی MongoDB رو مشاهده کنند.

  • محمدرضا عرفانی

آشنایی با writeConcert در ReplicaSet

شنبه, ۲۳ اسفند ۱۳۹۹، ۰۵:۵۰ ب.ظ

وقتی که چند تا سرور با هم ارتباط برقرار میکنند و تشکیل یک رپلیکا ست رو میدهند، اولویت نوشتن داده ها چطور باید باشد باشد؟ آیا با ابتدا داده ها روی سرور اصلی نوشته شود، و کلاینت اطلاع پیدا کند، یا اینکه میتواند داده ها را روی تمام سرورهای secondary بنویسد و سپس به کلاینت اطلاع دهد.

 

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

 

آشنایی با writeConcert در ReplicaSet

 

دوره پیشرفته MongoDB رو خریداری کنید و از کار با این دیتابیس لذت ببرید.

 

همچنین دوستانی که تازه با این دیتابیس آشنا شدند، بهتره ابتدا دوره مقدماتی MongoDB رو مشاهده کنند.

  • محمدرضا عرفانی

در این جلسه به طور کاملا عملی تعداد 100 عدد آیتم رو در یک جدول درج میکنیم، و سپس عملیات را commit کرده و میبینیم که عملیات Insert با موفقیت به انجام میرسد، اما در برنامه ای که نوشتیم، یک شرط قرار میدهیم. اگر که تعداد آیتم های درج شده، بیشتر از 100 عدد بود، عملیات درج در دیتابیس را RollBack میکنیم.نتیجه را در فیلم مشاهده کنید.واقعا زیباست.

 

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

 

آموزش عملیات ترنزکشن با متد startSession

 

دوره پیشرفته MongoDB رو خریداری کنید و از کار با این دیتابیس لذت ببرید.

 

همچنین دوستانی که تازه با این دیتابیس آشنا شدند، بهتره ابتدا دوره مقدماتی MongoDB رو مشاهده کنند.

  • محمدرضا عرفانی

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

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

 

مونگو دیتابیس بسیار خوب و سریعی هست که هم به درد کارهای تستی و هم به درد محیط های عملیاتی میخوره... این دوره آموزشی رو از دست ندید :)

 

آزمایش بهبود عملکرد هنگام ایندکس گذاری دیتابیس Mongo

  • محمدرضا عرفانی

انواع ایندکس در مونگو - sparse ، TTL ، unique ، partial index

يكشنبه, ۱۷ اسفند ۱۳۹۹، ۱۰:۰۵ ب.ظ

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

 

انواع ایندکس در مونگو - sparse ، TTL ، unique ، partial index

  • محمدرضا عرفانی

آشنایی با درخت B-Tree و نحوه ایندکس گذاری در دیتابیس

چهارشنبه, ۱۳ اسفند ۱۳۹۹، ۱۰:۱۳ ب.ظ

در این جلسه در مورد درخت B صحبت میکنم واستون و همینقدر بدونید این درخت باعث شده تا تحول عظیمی در جستجوی داده ها در دیتابیس، به وجود بیاد.در واقع برای جستجوی داده ها بدون ایندکس گذاری، باید به مقدار تعداد آیتمهایی که داخل جدول شما وجود داره، مقایسه انجام داد که میشه برابر o(n) در صورتی که با ایندکس گذاری، زمان جستجوی شما به o(logn) کاهش پیدا میکنه که در مقادیر بالا، زمان بسیار زیادی هست.

 

برای آشنایی بیشتر، نگاهی به ویدیوی زیر بندازید.

آشنایی با درخت B-Tree و نحوه ایندکس گذاری در دیتابیس

  • محمدرضا عرفانی

دوره مقدماتی MongoDB

يكشنبه, ۱۰ اسفند ۱۳۹۹، ۰۸:۰۳ ق.ظ

بهترین دیتابیسی که تا حالا باهاش کار کردم و مناسب تمام پروژه های کوچک، متوسط و بزرگ بوده همین دیتابیس مونگو هست.کار باهاش راحت و زبان کوئری نویسی قدرتمندی داره... پشتیبانی از انواع ایندکس ها امکان جستجوی سریع داده ها رو به شما میده ... حتما مشاهده این دوره رو بهتون توصیه می‌کنم.

دوره آموزش MongoDB

  • محمدرضا عرفانی