این مقاله ترجمه ای خلاصه وار از این نوشتار است: https://javascript.info/ninja-code
در این مقاله سعی کردم که ترجمه رو نزدیک به متن اصلی نگه دارم. متن اصلی این مقاله طنز داره و از تمام موارد این مقاله باید به شدت بپرهیزید. در واقع باید سعی کنید اصلا نینجایی کد نزنید .
1- کد را تا حد امکان کوتاه کنید. نشان دهید که چقدر باهوش هستید.
i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
2- راه دیگر برای کدنویسی کوتاه تر استفاده از نام متغیرهای تک حرفی در همه جا است. مانند a، b یا c.
3- اگر قوانین تیم استفاده از نام های تک حرفی و مبهم را ممنوع می کند - آنها را کوتاه کنید، مختصر کنید.
list → lst userAgent → ua browser → brsr
4- در هنگام انتخاب نام سعی کنید از انتزاعی ترین کلمه استفاده کنید. مانند obj، data، value، item، elem و غیره.
5- فقط یک برنامه نویس واقعاً دقیق باید بتواند کد شما را درک کند.یکی از راهها استفاده از نام متغیرهای مشابه، مانند data و date است. آنها را تا جایی که می توانید مخلوط کنید.
6- استفاده از نام های مشابه برای چیزهای مشابه زندگی را جذاب تر می کند و خلاقیت شما را به عموم نشان می دهد. به عنوان مثال، پیشوندهای تابع را در نظر بگیرید. اگر تابعی پیامی را بر روی صفحه نمایش نشان میدهد - آن را با display شروع کنید، مانند displayMessage. و سپس اگر تابع دیگری روی صفحه نمایشگر چیز دیگری مانند نام کاربری را نشان داد، آن را با show (مانند showName) شروع کنید.
7- یک متغیر جدید را فقط و فقط در صورت لزوم اضافه کنید. در عوض، از نامهای موجود دوباره استفاده کنید. فقط مقادیر جدیدی را در آنها بنویسید. در یک تابع سعی کنید فقط از متغیرهای ارسال شده به عنوان پارامتر استفاده کنید. این کار تشخیص اینکه چه چیزی دقیقاً در متغیر فعلی وجود دارد و همچنین اینکه از کجا می آید را واقعاً دشوار میکند. هدف توسعه شهود (بینش یا بصیرت یا درک ناگهانی) و حافظه شخصی است که کد را می خواند. فردی با شهود ضعیف باید کد را خط به خط تجزیه و تحلیل کند و تغییرات را از طریق هر خط کد دنبال کند. یک نوع پیشرفته از این رویکرد، جایگزین کردن مخفیانه (!) مقدار با چیزی مشابه در وسط یک حلقه یا یک تابع است.
function ninjaFunction(elem) { // 20 lines of code working with elem elem = clone(elem); // 20 more lines, now working with the clone of the elem! }
8- قبل از نام متغیرها آندرلاین قرار دهید. مانند _name یا __value. اگر فقط معنی آنها را می دانستید عالی می شد. یا، بهتر است، آنها را فقط برای سرگرمی، بدون هیچ معنای خاصی اضافه کنید. یا معانی مختلف در جاهای مختلف. شما با یک تیر دو نشان میزنید. اول، کد طولانیتر و کمتر قابل خواندن میشود، و دوم، یک توسعهدهنده همکار ممکن است زمان زیادی را صرف کشف معنای آندرلاین ها کند.
9- بگذارید همه ببینند موجودات شما چقدر باشکوه هستند! نام هایی مانند superElement، megaFrame و niceItem قطعا خواننده را روشن می کند.
10- از نام های یکسان برای متغیرهای داخل و خارج یک تابع استفاده کنید. به همین سادگی. هیچ تلاشی برای ایجاد نام های جدید نکنید.
let user = authenticateUser(); function render() { let user = anotherValue(); ... }
11- توابعی وجود دارد که به نظر می رسد چیزی را تغییر نمی دهند. مانند isReady()، checkPermission()، findTags()، فرض بر این است که آنها محاسبات را انجام می دهند، داده ها را پیدا کرده و برمی گردانند، بدون تغییر چیزی خارج از آنها. به عبارت دیگر، بدون «side-effects». یک ترفند واقعا زیبا این است که علاوه بر وظیفه اصلی، یک اقدام "مفید" به آنها اضافه کنید.ابراز تعجب مات و مبهوت در صورت همکارتان وقتی می بیند تابعی به نام check یا find در حال تغییر چیزی است.
راه دیگر برای غافلگیری این است که یک نتیجه غیر استاندارد را برگردانید.اجازه دهید فراخوانی checkPermission نه true برگرداند نه false، بلکه یک شی پیچیده را برگرداند.
12-تابع را با آنچه در نام آن نوشته شده محدود نکنید. آن را گسترش دهید. به عنوان مثال، یک تابع validateEmail(email) می تواند (علاوه بر بررسی صحت ایمیل) یک پیام خطا نشان دهد و از شما بخواهد که ایمیل را دوباره وارد کنید. پیوستن چندین عمل در یک تابع از کد شما در برابر استفاده مجدد محافظت می کند.
این مقاله ترجمه ای خلاصه وار از این نوشتار است: https://javascript.info/ninja-code