یک برنامه نویس خلاق و خوب چه شکلیه؟

مقدمه

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

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

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

 

برنامه نویس معمولی

کسایی که کدهای توی گیتهاب، stackoverflow و غیره رو با تغییراتی در پروژه خودشون قرار می دن و در آخر کاری رو که بهشون واگذار شده بود رو سر وقت تحویل می دند.

 

:صادقانه بگم که من هنوز توی گروه معمولی هستم و در حال تغییر و حرکت به سوی خلاق شدن هستم هرچند کار سختیه ولی غیر ممکن نیست.


برنامه نویس خلاق

 

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

 

خلاق ها توی ساعت کاری:

موقع انجام دادن وظیفه شون اگه خارج از حیطه وظیفه شون باگی یا کدی که خراب باشه رو درست میکنند و نمی ترسند از تغییر دادن اون کد.

هیچ وقت بیکار نیستند و همیشه کاری هست برای انجام دادن، برای مثال اونها درصورت نداشتن کار، مشغول Code refactoring یا افزایش Code coverage هستند.

 

خلاق ها موقع وقت آزادشون:

 

دائم مشغول یادگیری زبان، تکنولوژی و یا سرویس های جدیدی هستند که میتونه به پروژه شون کمک کنه و کارها رو ساده تر کنه.

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

حرف آخر

هنوز این لیست خلاق بودن در حال تغییر هست و نمیشه یک قانون مشخص براش نوشت و دنبال کرد همون طور که مشخصه باید خلاق بود ولی چیزی که در بین همه خلاق ها مشترک هست پرسشگری بودن هست و باید همیشه کنجکاو بود و سوال پرسید.

من آدم با استعدادی نیستم، من فقط بسیار کنجکاو هستم – انشتین

دنیای وب دچار تحول شده و بدنبال افراد خلاق هست پس باید خلاق بود و خلاقیت یاد گرفتنی هست و چیزی ذاتی نیست.

نظر شما چیه در مورد برنامه نویس خلاق؟

Flake8 چی هست و چرا باید استفاده کرد؟

ابزارهای زیادی هست که با استفاده از اونها ما تبدیل بشیم به یک برنامه نویس بهتر. ابزارهایی که در استفاده های روزمره به کمک زیادی میکنه که یکی از اون ابزار linting هست که تقریبا همه زبان های برنامه نویسی برای خودشون یکی دارند.

linting دقیقا یعنی چه؟

به برنامه ای که کد ما رو آنالیز میکنه و خطاهای احتمالی رو پیدا میکنه، Linting نامیده میشه.

اولین برنامه ای که این کار رو کرد Lint بود و توی زبان C کار میکرد.

Linting آیا جزو واجبات هست؟

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

  • می تونیم syntax error، بد بون شکل ظاهری، غلط املایی ها و غیره رو بفهمیم
  • صرفه جویی در وقت
  • باعث میشه بازبینی کدهامون (review) راحت تر باشه برای هم تیمی هامون (بخاطر یک شکل بودن کدها)
  • سادگی استفاده
  • سادگی در راه اندازی اولیه
flake8 چی هست؟

خب یکی از ابزارهای linting در پایتون هست و توی کاروانرو ما از اون استفاده میکنیم.

نصب flake8 و روش استفاده

برای نصب کافیه با توجه به ورژن پایتونی که دارید نصب رو انجام بدید

python<version> -m pip install flake8

برای استفاده از اون هم کافیه فقط توی ترمینالتون دستور زیر رو وارد کنید

flake8 path/to/code/to/check.py
# or
flake8 path/to/code/

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

فرض کنید که میخواهیم بررسی کنیم که آیا خط طولانی توی یک فولدر وجود داره یا نه

flake8 — select E501 path/to/your_project/
تنظیمات flake8 برای ادیتورها:
ترکیب flake8 و git

فرض کنید که پروژه ای دارید فایل های زیادی داره و وقت و حوصله ویرایش فایلهای قدیمی رو ندارید ولی تصمیم دارید از این ابزار برای فایل های جدید استفاده کنید و یا شاید شما دوست داشته باشید که flake8 رو به Continuous integration اضافه کنید و از این به بعد همه باید از این ابزار استفاده کنند.

این کد کاری که انجام میده اینه که اول که فایل های جدید یا تغییر پیدا کرده رو از گیت میگیره و linting رو روی اونا انجام میده و اگه خطا داشته باشه نمایش میده.
شما کافیه این دستور shell رو هر بار قبل از کامیت کردن یا قبل از deploy کردن کدتون اجرا کنید.