نود و هفت چیزی که هر برنامه‌نویسی باید بداند: استاندارهای کدنویسی


Coding Standards یا استاندارهای کدنویسی یک از چیزهایی است که هر برنامه نویسی که قصد دارد لیبل حرفه‌ای رویش بخورد می بایست دنبال کند. پیروی از استانداردهای کدنویسی کار خیلی آسانی هم نیست و گاهی اوقات خیلی خسته‌کننده می‌شود اما واقعیت امر این است که در پروژه های نسبتاً بزرگ اعضای تیم نیاز دارند تا از یکسری قوانین تبعیت کنند.

توجه داشته باشیم زمانی که یکسری قوانین کدنویسی -مثلا تعداد اسپیس هایی که می بایست در کدها استفاده کرد- را وضع می کنیم، تمامی اعضای تیم می بایست قبول کنند که از آن قوانین تبعیت کنند که در غیر این صورت، یک برنامه نویس خاطی می‌تواند هر چه سایر برنامه نویسان رشته کرده‌اند را پنبه کند! برای اعمال استانداردهای کدنویسی می‌توان از یکسری ابزارها هم استفاده کرد که فرایند استاندارد سازی را تا حد قابل توجهی برای برنامه نویس سهل و آسان می سازند که این ابزارها بسته به IDEیی که استفاده می کنیم می توانند از خصوصیات مختلفی برخوردار باشند.

به عنوان نمونه، می‌توان زبان برنامه نویسی پی اچ پی را مثال زد. سایتی تحت عنوان php-fig.org استانداردی تحت عنوان PSR که مخفف واژگان PHP Standard Recommendation است را برای برنامه نویسان پی اچ پی طراحی کرده که علاقمندان با استفاده از این استانداردها می توانند از کدهایی برخوردار شوند که سایر برنامه نویسان پی اچ پی با نگاه کردن به کدهای ایشان کمتر دچار سردرگمی شوند.

نکته

سورس کد سکان آکادمی کاملا منطبق بر استاندارد PSR است و همین مسئله کار گروهی روی توسعه ی بخش های مختلف این سایت را بسیار اثربخش تر ساخته است.

به طور مثال، کدی که در زیر مشاهده می کنید بر اساس استاندارد PSR نوشته شده است:

<?php
namespace Vendor\Package;

use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

class Foo extends Bar implements FooInterface
{
    public function sampleFunction($a, $b = null)
    {
        if ($a === $b) {
            bar();
        } elseif ($a > $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }

    final public static function bar()
    {
        // method body
    }
}

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

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
محسن
محسن
در رابطه با کدهای فرانت اند هم معیار بیسار مناسب برای برررسی استانداردهای مربوط به این کد ها سایت
http://validator.w3.org
هست، به سه صورت میشه کدها رو در این سایت ارزیابی کرد
Validate by URI ، می توانید آدرس سایت مورد نظر را تایپ کنید
Validate by File Upload، فایل صفحه .html خود را آپلود کنید
Validate by Direct Input، کدهای خود را آپلود کنید

اگر بتوانید در نهایت پیام موفقیت آمیز سبز رنگ را بگیرید کد شما از نظر کنسرسیوم جهانی وب استاندارد هست
همینطور برای سایت هایی که کدهای آن ها از نظر w3 معتبر شناخته میشه
یک تصویر کوچک که نشان دهنده این موضوع هست برای درج در پایین صفحه سایت ارایه میشه
Insight
Insight
در کنار Best Practice‌هایی که در برنامه نویسی وجود داره، یک سری Worst Practiceهم وجود داره که به چندتا از اونها اشاره میکنم:
- عدم استفاده از Unit Testing
- Build نگرفتن از پروژه برای مدت زمانی زیاد (حتی 1 روز هم زمان زیادی محسوب میشه)
- آغاز فرآیند توسعه بدون فراهم کردن پیش‌نیازها
- عدم بهره‌گیری از لایبرری‌ها و فریمورک‌های منطبق با نیاز پروژه
- عدم استفاده از سیستم‌های کنترل ورژن
Insight
Insight
درمورد زبان پایتون هم چیزی وجود داره تحت عنوان PEP که سرنام عبارت Python Enhancement Proposal هست و توسط سازنده ی این زبان (آقای Guido van Rossum) و برخی دیگر از برنامه نویسان ارشد نوشته شده.
راهنمایی درمورد چگونگی استایل کدهای پایتون و نحوه ی تفکر اصطلاحا Pythonic در این سند ذکر شده.
این راهنما در لینک زیر وجود داره:
https://www.python.org/dev/peps/pep-0008/
Nitwit
Nitwit
نکته غیرقابل انکار و مهمیه.خواستم بگم که یه سری Plug-in هم هست که میشه ازشون استفاده کرد در این زمینه.مثلا برای Visual Studio Code میشه پلاگین Prettier استفاده کرد.
موقع نوشتن کد , Ctrl+s که میزنید برای سیو کردن فایل , خودش استاندارد ها رو اعمال میکنه.
elham rad
elham rad
"استاندارد" های کدنویسی یا"استاندار"های کدنویسی؟؟؟؟

برای آگاهی ازاستانداردهای زبان های دیگه بایدچکارکنیم؟؟؟