مهندس نرمافزار عاشق قهوه
سلام! من بهمن شادمهرم من بهمنام، یه برنامهنویس و توسعهدهنده نرمافزار که عاشق چالشهای فنیام! این چند سال گذشته، بیشتر وقتهام رو صرف این کردم که با یه لپتاپ و یه اینترنت درستحسابی، سیستمهای عجیب و غریب بسازم و مشکلات بقیه رو حل کنم (از همونایی که میگن "این دیگه چطوری کار میکنه؟"). از نوشتن کدهای باحال و اتوماتکردن سیستمهای انرژی گرفته تا تریدینگ با دادههای پرسرعت، حسابی سرم شلوغ بوده. یه پروژهای داشتم که حسابی دردسرساز بود ولی آخرش تونستم با بهینهسازی زیرساخت، ۵۰ درصد هزینهها رو کاهش بدم! (میدونی وقتی هزینه رو اینقدر کم میکنی، چه جوری همه باهات رفیق میشن؟!). بعضی از پروژههایی که انجام دادم: CoffeeCodeCamp: یه پلتفرم که بهتون یاد میده کد بزنید و هر چی نوشتید رو هم خودش تست میکنه! MasterYourCourses: یه سیستم مدیریت دورههای آموزشی که کاملترین امکانات رو داره. CryptoCasting: این یکی برای عاشقای تریدینگ! پلتفرمی برای جمعآوری دادههای با سرعت بالا. اگه بخوام از مهارتهام بگم، بیشتر با پایتون و گلانگ ور میرم، توی AWS و GCP غرقم و از Docker و Kubernetes هم برای نگهداشتن سرویسها استفاده میکنم (یه جورایی مثل کارهای عادی روزمرهم شدن اینا!). همیشه دوست دارم با سیستمهای پیچیده سر و کله بزنم و کدهای خفنتر بنویسم. راستش از اینکه زیرساختهای نرمافزاری رو بهینه کنم و هزینهها رو پایین بیارم هم بد نمیاد؛ آخه کی از کمشدن هزینهها بدش میاد؟!
وبینار آشنایی با کش کردن به کمک دیتابیس redis
فرض کن سفارش ساخت یه وبسایت رو گرفتی که قراره امکان رزرو دکتر رو به کابرها بده. بیمارستانی که این درخواست رو داده حدود ۱۰۰۰ تا پزشک داره و هر پزشک برنامه خاص خودش رو داره. به علاوه بیمارستان از تو خواسته که کاربرها بتونن تقویم هر پزشک رو توی وبسایت ببینن و روزها و ساعتهایی که براشون مناسب هست و پزشک توی اون بازه آزاده رو انتخاب کنن. این تقویم میتونه برنامه دکترها تا ۳ ماه آینده رو نشون بده.
حالا شما کد وبسایت رو نوشتی و وبسایت رو به بیمارستان تحویل دادی. بعد از چند روز بیمارستان با تو تماس میگیره و ازت شاکیه چون لود شدن تقویم ها برای کاربرها حداقل چند ثانیه طول میکشه و برای بعضی از کاربرها که اینترنت ضعیفی دارن اصلا لود نمیشه.
علت اصلی به وجود اومدن همچین مشکلی، زمان بر بودن تعاملهای دیتابیسی هستش. بعضی وقتها هم ممکنه پردازش ما روی دیتاها زمان بر باشه. یکی از روشهایی که برای حل کردن مشکلایی از این دست استفاده میشه، کش کردنه. کش کردن به ما این امکان رو میده که بعد از این که یه بار برنامه کاری دکتر رو ساختیم، تا وقتی تغییر نکرده همون رو توی مموری (یا یه سری جاهای دیگه بسته به نوع کش کردنمون) ذخیره کنیم و به جای این که هربار اطلاعات رو دوباره پردازش کنیم، از اون دیتایی که قبلا ایجاد شده استفاده کنیم.
توی این پروسه ممکنه چالشهای زیادی داشته باشیم. بعضی از اون چالشها رو به این شکلن:
کش کردن از مواردیه که تقریبا هرجایی به یه روشی ممکنه انجام بشه. بعضیها حتی یه سرویس جدا برای کش میسازن و کش سیستمشون رو از طریق اون سیستم انجام میدن. اینجا خیلی از مورادی که بالا صحبت کردیم میوفته روی دوش اون سرویس. ولی این روش هم خوبیها و بدیهای خودش رو داره.
توی این وبینار قراره این موارد رو به صورت کامل با هم بررسی کنیم و یه سری ابزار که توی کش کردن به کا کمک میکنن رو معرفی کنیم.
faq
دورههای آموزشی ما با تمرکز بر یادگیری عملی طراحی شدهاند تا شما را آماده بازار کار کنند.