پست های وبلاگ

میکروسرویس‌ها معجزه نمی‌کنند!

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

بیشتر بخوانید

کلمات اختصاری در دنیای توسعه‌ی نرم افزار

acronyms

اکثر برنامه نویس‌ها کلمات اختصاری رو دوست دارن و از اون‌ها به مراتب در طول روز استفاده می‌کنن. کلماتی مثل MVP یا PoC خیلی رایج هستن. اما خب کلمات اختصاری هم وجود دارن که یکم چاشنی طنز و خلاقیت در اونها دیده میشه و خیلیامون دوس داریم ازشون استفاده کنیم؛ مثل SOLID، DRY یا KISS. دونستن معنی و مفهوم هر کدوم از این کلمه‌ها باعث می‌شه تا ما بهتر بتونیم با همکارامون ارتباط برقرار کنیم و به نوعی منظور هم

بیشتر بخوانید

چطور کد دیگران رو بررسی کنیم؟ راهنمایی برای code review

code-review-owl

در دنیای برنامه نویسی، بررسی کد سایر اعضای تیم یکی از وظایف مهم برنامه نویس‌های ارشد تیم هست. وقتی شما یک pull request ارسال می‌کنید، سایر برنامه نویسان کد شما رو بررسی می‌کنن، در موردش نظراتی رو می‌نویسن و پس از اینکه اصلاحات لازم انجام شد، اون رو با برنچ مورد نظر merge می‌کنن. ممکن هست که خود شما در موقعیتی قرار گرفته باشید که وظیفه دارین کد سایر افراد تیم رو بررسی کنید. همه‌ی ما در مرحله‌ی اول سعی

بیشتر بخوانید

پایتون GIL به زبان ساده

python GIL

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

بیشتر بخوانید

پایتون و Functional Programming

functional programming

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

بیشتر بخوانید

در ترمینال لینوکس مخفی بمونید

incognito linux

گاهی اوقات ممکن است بخواهیم دستوراتی رو داخل ترمینال لینوکس اجرا کنیم و دوست نداشته باشیم تا در history ذخیره بشن. مثل وقتی که با استفاده از مرورگر خود به صورت ناشناس به وب گردی می‌پردازیم، در خط فرمان لینوکس هم می‌تونیم به صورت ناشناس دستوراتی رو اجرا کنیم، به طوری که اثری از ما باقی نمونه و دستورات در جایی ذخیره نشن. روش‌های زیادی برای انجام این کار وجود دارد که در ادامه اون ها را بررسی می‌کنیم. قرار

بیشتر بخوانید

چطور به یک برنامه نویس ارشد (senior) تبدیل بشیم؟

senior

شاید برای مدتی طولانی هست که شما یک برنامه نویس جونیور یا میان رده (مدیور) هستید. احتمالا هم احساس می‌کنین که لیاقت شما بیشتر از این هاست. همه‌ی ما در بازه‌ای از زمان چنین حسی داشتیم. در چنین شرایطی حس می‌کنیم دیگه وقتش رسیده تا به اون چیزی که لایقش هستیم برسیم. پس بذارید در مورد مباحثی صحبت کنیم که شاید کمتر کسی در موردشون با ما صحبت کنه. باورهای اشتباهی که شاید بعضی از ما ها بر اساس اون‌ها

بیشتر بخوانید

جست و جوی فایل در لینوکس با دستورات locate و find

find and locate linux

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

بیشتر بخوانید

ترفندهایی برای افزایش سرعت برنامه‌های پایتون

python fast

همیشه برنامه نویس‌های زیادی اطرافمون هستن که در مورد سرعت کم پایتون صحبت می‌کنن. خیلی از این برنامه نویس‌ها تا بحال حتی یک خط کد هم با پایتون ننوشتن! در واقع سرعت اجرای هر برنامه‌ای (فارغ از اینکه با چه زبونی نوشته شده) به مهارت‌های کدنویسی برنامه نویس بستگی داره تا بتونه بهینه سازی برنامه‌ای که می‌نویسه رو به خوبی انجام بده تا سرعت اجرای برنامه افزایش پیدا کنه. پس بیایید در مورد ترفندهایی صحبت کنیم که باعث افزایش سرعت

بیشتر بخوانید

پیاده سازی عبارات switch/case به کمک دیکشنری در پایتون

python switch case

همانطور که می‌دانید در پایتون دستورات switch/case وجود ندارد. بنابراین گاهی اوقات ممکن است نیاز باشد تا عبارات طولانی شرطی به صورت if..elif..else نوشته شود. ما در اینجا قصد داریم با روشی آشنا شویم که با استفاده از دیکشنری، عبارات switch/case را شبیه سازی نماییم. فرض کنید که قطعه کدی به صورت زیر در اختیار داریم. مسلما برای بررسی ۳ حالت مختلف، این عبارت به اندازه کافی مناسب است. اما اگر تعداد حالات مورد نیاز برای بررسی بیشتر باشد باید

بیشتر بخوانید