این روزا واژهی میکروسرویس رو خیلی میشنویم. برای توسعهی هرچیزی بدون شاید حتی ذرهای تفکر به خودمون میگیم این رویکرد معجزه میکنه. اما واقعیت اینه که میکروسرویسها اونطوری که اکثر برنامهنویسها و حتی مدیرها میبینن نیست. اونها قرار نیست همهی مشکلات ساختاری و حتی فنی شما رو یکباره حل کنن. اما خب خیلیها کورکورانه از این روش پیروی میکنن (شاید به امید معجزه. چیزی که خیلی از ما ها عادت کردیم بهش امید داشته باشیم). دقیقا مثل داستانهای دیروزی که …
پست های وبلاگ
اکثر برنامه نویسها کلمات اختصاری رو دوست دارن و از اونها به مراتب در طول روز استفاده میکنن. کلماتی مثل MVP یا PoC خیلی رایج هستن. اما خب کلمات اختصاری هم وجود دارن که یکم چاشنی طنز و خلاقیت در اونها دیده میشه و خیلیامون دوس داریم ازشون استفاده کنیم؛ مثل SOLID، DRY یا KISS. دونستن معنی و مفهوم هر کدوم از این کلمهها باعث میشه تا ما بهتر بتونیم با همکارامون ارتباط برقرار کنیم و به نوعی منظور هم …
در دنیای برنامه نویسی، بررسی کد سایر اعضای تیم یکی از وظایف مهم برنامه نویسهای ارشد تیم هست. وقتی شما یک pull request ارسال میکنید، سایر برنامه نویسان کد شما رو بررسی میکنن، در موردش نظراتی رو مینویسن و پس از اینکه اصلاحات لازم انجام شد، اون رو با برنچ مورد نظر merge میکنن. ممکن هست که خود شما در موقعیتی قرار گرفته باشید که وظیفه دارین کد سایر افراد تیم رو بررسی کنید. همهی ما در مرحلهی اول سعی …
همهی ما در مورد GIL و محدودیتهایی که برای ما ایجاد میکنه چیزهایی شنیدیم و مطالبی خوندیم. اما آیا واقعا میدونیم GIL چی هست؟ قبل از اینکه بخوایم در مورد GIL صحبت کنیم، بیایید یه تابع ساده بنویسیم. فرض کنید قطعه کدی به صورت زیر نوشتیم که عددی رو از ورودی دریافت میکنه و یکی یکی از اون کم میکنه. خب حالا این تابع رو با یه عدد بزرگ فراخونی میکنیم تا ببینیم چقدر طول میکشه تا اجرا بشه. اجرای …
خیلی وقتها موقع برنامه نویسی با مسائل مختلفی روبرو میشیم که راه حل خیلی از اونها تقریبا شبیه به هم هست. در چنین مواقعی طبیعتا بهترین کار نوشتن توابع و فراخونی اونها در بخشهای مختلف برناممون هست. هر کدوم از این توابع، بدون توجه به سایر بخشهای برنامه، یک یا چند ورودی دریافت میکنن و یک یا چند خروجی رو به ما برمیگردونن. در این مطلب با یک سری توابع درونی پایتون آشنا میشیم که خیلی از چالشهای رایج در …
گاهی اوقات ممکن است بخواهیم دستوراتی رو داخل ترمینال لینوکس اجرا کنیم و دوست نداشته باشیم تا در history ذخیره بشن. مثل وقتی که با استفاده از مرورگر خود به صورت ناشناس به وب گردی میپردازیم، در خط فرمان لینوکس هم میتونیم به صورت ناشناس دستوراتی رو اجرا کنیم، به طوری که اثری از ما باقی نمونه و دستورات در جایی ذخیره نشن. روشهای زیادی برای انجام این کار وجود دارد که در ادامه اون ها را بررسی میکنیم. قرار …
شاید برای مدتی طولانی هست که شما یک برنامه نویس جونیور یا میان رده (مدیور) هستید. احتمالا هم احساس میکنین که لیاقت شما بیشتر از این هاست. همهی ما در بازهای از زمان چنین حسی داشتیم. در چنین شرایطی حس میکنیم دیگه وقتش رسیده تا به اون چیزی که لایقش هستیم برسیم. پس بذارید در مورد مباحثی صحبت کنیم که شاید کمتر کسی در موردشون با ما صحبت کنه. باورهای اشتباهی که شاید بعضی از ما ها بر اساس اونها …
در سیستم لینوکس فایلهای مختلفی در مسیرهای متفاوتی وجود دارد. ما به عنوان یک کاربر لینوکس، باید بتونیم فایلهای مورد نیازمون رو داخل سیستم جستوجو کرده و به راحتی فایل مورد نظر رو پیدا کنیم. بدین منظور از دو ابزار برای یافتن فایلها در لینوکس استفاده میشود: ابزار locate و ابزار find. ابزار locate نسبت به find سادهتر هست و به راحتی میتونیم فایلهای مورد نظر رو با اون پیدا کنیم. از طرفی، ابزار find دارای قابلیتهای بیشتری هست که …
همیشه برنامه نویسهای زیادی اطرافمون هستن که در مورد سرعت کم پایتون صحبت میکنن. خیلی از این برنامه نویسها تا بحال حتی یک خط کد هم با پایتون ننوشتن! در واقع سرعت اجرای هر برنامهای (فارغ از اینکه با چه زبونی نوشته شده) به مهارتهای کدنویسی برنامه نویس بستگی داره تا بتونه بهینه سازی برنامهای که مینویسه رو به خوبی انجام بده تا سرعت اجرای برنامه افزایش پیدا کنه. پس بیایید در مورد ترفندهایی صحبت کنیم که باعث افزایش سرعت …
همانطور که میدانید در پایتون دستورات switch/case وجود ندارد. بنابراین گاهی اوقات ممکن است نیاز باشد تا عبارات طولانی شرطی به صورت if..elif..else نوشته شود. ما در اینجا قصد داریم با روشی آشنا شویم که با استفاده از دیکشنری، عبارات switch/case را شبیه سازی نماییم. فرض کنید که قطعه کدی به صورت زیر در اختیار داریم. مسلما برای بررسی ۳ حالت مختلف، این عبارت به اندازه کافی مناسب است. اما اگر تعداد حالات مورد نیاز برای بررسی بیشتر باشد باید …