آموزش کد نویسی تمیز Clean Code PHP (توابع)

قسمت های قبلی این آموزش را می توانید در لینک های زیر ببینید:

آموزش کد نویسی تمیز Clean Code PHP (متغیرها: بخش ۱)
آموزش کد نویسی تمیز Clean Code PHP (متغیرها: بخش ۲)

۱- آرگومان های تابع خود را به حداقل برسانید

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

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


۲- تابع فقط باید یک کار انجام بده

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

این مثال خوبی بود تا درک کنید مفهوم clean code لزوما کوتاه کردن کدنویسی نیست بلکه هدف خوانا بودن کد هستش.
این مثال خوبی بود تا درک کنید مفهوم clean code لزوما کوتاه کردن کدنویسی نیست بلکه هدف خوانا بودن کد هستش.


توضیح و مثال در مورد array_walk

توضیح و مثال در مورد array_filter

۳- نام تابع باید بگوید چه کار می کند

برای نام گذاری توابع خود وقت بگذارید. نام گذاری تابع باید کاری را شرح دهد که انجام میدهد. اطمینان داشته باشید این کار چندین برابر کدنویسی و توسعه ی آن را در آینده سریع تر خواهد کرد.

۴- از flag ها به عنوان پارامتر توابع استفاده نکنید

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

  • برای مرور مفهوم flag در علم کامپوتر این مطلب را بخوانید: تعریف flag

5- تاثیرات جانبی تابع را به حداقل برسانید

تابع خود را به گونه ای بنویسید تا اگر نیاز است یک کاری انجام دهد آن کار را تنها بر روی پارامتر ورودی خود انجام دهد و خروجی را برگرداند در غیر این صورت میتواند در خروجی کل کد شما تاثیر بگذارد و به راحتی خطاهای زیادی به وجود بیاورد. هر توابع باید مانند یک ماژول عمل کند و شما بتوانید آنها را به صورت ابزار های مستقل به کار ببرید. به مثال زیر توجه کنید:

در مثال اول اگر تابع دیگری داشته باشیم که از متغیر name استفاده نماید. انتظار پارامتری را دارد که string است در صورتی که یک آرایه تحویل میگیرد
در مثال اول اگر تابع دیگری داشته باشیم که از متغیر name استفاده نماید. انتظار پارامتری را دارد که string است در صورتی که یک آرایه تحویل میگیرد