یک کتابخانه یا چارچوب جاوا اسکریپت را انتخاب کنید

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

کتابخانه ها و چارچوب های جاوا اسکریپت چیست؟

کتابخانه جاوا اسکریپت چیست؟ در ساده‌ترین شکل، کتابخانه جاوا اسکریپت کدی از پیش نوشته شده است که می‌توانید کد پروژه خود را برای رسیدن به یک کار خاص فراخوانی کنید.

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

  • برای یک کتابخانه، کد برنامه شما، کد کتابخانه را صدا می کند.
  • برای یک چارچوب، کد برنامه شما توسط فریمورک فراخوانی می شود.

مثال های عملی زیر به نشان دادن تفاوت ها کمک می کند.

فراخوانی مثال به یک کتابخانه جاوا اسکریپت

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

در مثال زیر، کد برنامه یک متد را از کتابخانه lodash وارد می کند. پس از تکمیل عملکرد، کنترل به برنامه شما برگردانده می شود.

import capitalize from 'lodash.capitalize';
capitalize('hello'); // Hello

هنگامی که متد lodash.capitalize اجرا می شود، کدهای جاوا اسکریپت از پیش نوشته شده را فراخوانی می کند که اولین کاراکتر یک رشته را با حروف بزرگ می سازد.

مثال استفاده از یک چارچوب جاوا اسکریپت

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

مثال زیر یک قطعه کد را نشان می دهد که از چارچوب Preact JavaScript استفاده می کند:

import { createElement } from 'preact';

export default function App() {
  return (
    <p class="big">Hello World!</p>
  )
}

در مثال، توجه داشته باشید که فریم ورک کنترل بسیار بیشتری بر روی کدهایی که می نویسید دارد، و در برخی موارد، فریم ورک حتی زمان اجرای کد شما را نیز کنترل می کند.

چرا از کتابخانه استفاده کنیم؟

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

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

برخی از کتابخانه‌ها توسط شرکت‌های بزرگی پشتیبانی می‌شوند که زمان و هزینه خود را برای به‌روز نگه‌داشتن کتابخانه‌ها و ایمن نگه‌داشتن آنها سرمایه‌گذاری می‌کنند. بسیاری از کتابخانه ها با مستندات گسترده همراه هستند که به شما و تیمتان راه سریعی برای آشنایی با نحوه استفاده از کتابخانه ارائه می دهد.

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

چرا باید به استفاده از کتابخانه اهمیت دهید؟

از نظر فنی، می‌توانید برنامه وب خود را از ابتدا توسعه دهید، اما چرا وقتی می‌توانید از نرم‌افزار رایگان (متن باز) استفاده کنید یا راه‌حلی بخرید که در درازمدت می‌تواند در زمان و هزینه صرفه‌جویی کند، به دردسر بیفتید؟ تعداد زیادی از کتابخانه ها و چارچوب های جاوا اسکریپت موجود است که هر کدام یک رویکرد منحصر به فرد برای حل مشکلات ارائه می دهند و هر کدام ویژگی های متفاوتی دارند. مثلا:

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

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

برخی از محیط‌های جاوا اسکریپت غیر سمت کلاینت، مانند روی سرور (اجرا در محیط ابری) یا روی Raspberry Pi وجود دارد، که ممکن است لازم باشد معیارهایی را که برای بررسی کتابخانه‌ها و چارچوب‌ها استفاده می‌کنید، تنظیم کنید.

کارایی

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

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

هرچه کتابخانه جاوا اسکریپت بزرگتر باشد، تأثیر عملکرد روی کاربران شما بیشتر است.

هنگام ارزیابی یا استفاده از یک کتابخانه یا چارچوب جاوا اسکریپت، پیشنهادات زیر را برای بهبود عملکرد در نظر بگیرید:

  • با توجه به یک کتابخانه بزرگ جاوا اسکریپت، از جایگزین کوچکتری استفاده کنید. به عنوان مثال، date-fns عملکردهای زیادی را در اندازه معقول‌تری نسبت به سایر گزینه‌ها ارائه می‌دهد.
  • به دنبال مثال قبلی date-fns، فقط توابع مورد نیاز خود را وارد کنید، مانند: import { format } from 'date-fns' . مطمئن شوید که این رویکرد را با تکان دادن درخت ترکیب کنید، به طوری که حداقل بار جاوا اسکریپت ساخته شده و برای کاربران شما ارسال شود.
  • از ابزارهای تست عملکرد مانند Lighthouse برای مشاهده اثر عملکرد استفاده از یک کتابخانه جاوا اسکریپت خاص استفاده کنید. اگر یک کتابخانه یک ثانیه تاخیر به زمان بارگذاری صفحه شما اضافه کند (فراموش نکنید که شبکه و CPU خود را در حین آزمایش کاهش دهید )، ممکن است لازم باشد کتابخانه انتخابی خود را دوباره ارزیابی کنید. علاوه بر بررسی بارگذاری صفحه، مطمئن شوید که هر رفتار صفحه وب را که کدی را از کتابخانه مورد نظر فرا می‌خواند، نمایه کنید—عملکرد بارگذاری صفحه داستان کامل را بیان نمی‌کند.
  • اگر نظرات توسط نویسنده کتابخانه مورد استقبال قرار گرفت، مشاهدات، پیشنهادات و حتی مشارکت خود را در پروژه ارسال کنید. اینجاست که جامعه منبع باز می درخشد! اگر تصمیم به مشارکت دارید، ممکن است لازم باشد ابتدا با کارفرمای خود مشورت کنید.
  • برای مشاهده به‌روزرسانی‌های بزرگ غیرمنتظره یک کتابخانه، از یک ابزار خودکار ردیابی بسته‌ها، مانند bundlesize استفاده کنید. معمولاً یک کتابخانه جاوا اسکریپت در طول زمان رشد می کند. ویژگی های اضافه شده، رفع اشکال، موارد لبه و موارد دیگر، همگی می توانند به اندازه فایل یک کتابخانه اضافه کنند. هنگامی که شما/تیم شما با استفاده از کتابخانه موافقت کردید، به روز رسانی کتابخانه ممکن است مشکل کمتری داشته باشد و ممکن است سؤالات کمی ایجاد کند. اینجاست که تکیه بر اتوماسیون مفید است.
  • به نیازهای خود برای کتابخانه نگاه کنید و ارزیابی کنید که آیا پلتفرم وب همان عملکرد را به صورت بومی ارائه می دهد یا خیر. به عنوان مثال، پلتفرم وب قبلاً یک انتخابگر رنگ ارائه می‌دهد که نیاز به استفاده از کتابخانه جاوا اسکریپت شخص ثالث را برای پیاده‌سازی عملکرد مشابه برطرف می‌کند.

امنیت

استفاده از ماژول شخص ثالث خطرات امنیتی ذاتی را به همراه دارد. یک بسته مخرب در پایگاه کد برنامه وب شما می تواند امنیت تیم توسعه و کاربران شما را به خطر بیندازد.

کتابخانه ای را در نظر بگیرید که برای اکوسیستم NPM منتشر شده است. چنین بسته ای ممکن است مشروع باشد. با این حال، با گذشت زمان، بسته ممکن است به خطر بیفتد.

در اینجا چند نکته امنیتی وجود دارد که باید هنگام استفاده یا ارزیابی کد شخص ثالث در نظر بگیرید:

  • اگر از GitHub استفاده می کنید، پیشنهادات امنیتی کد را در نظر بگیرید، مانند Dependabot . یا، سرویس‌های جایگزینی را در نظر بگیرید که آسیب‌پذیری‌های کد شما را اسکن می‌کنند، مانند snyk.io.
  • استفاده از خدمات حسابرسی کد را در نظر بگیرید، تیمی از مهندسین که می توانند کد شخص ثالثی که شما استفاده می کنید به صورت دستی بازرسی کنند.
  • ارزیابی کنید که آیا باید وابستگی های خود را به یک نسخه خاص قفل کنید یا کد شخص ثالث خود را در کنترل نسخه خود متعهد کنید. این می تواند به قفل کردن وابستگی شما به یک نسخه خاص کمک کند - که احتمالاً ایمن تلقی می شود. از قضا، این می تواند یک اثر متقابل در امنیت داشته باشد، زیرا ممکن است به روز رسانی های حیاتی کتابخانه را از دست بدهید.
  • صفحه اصلی پروژه یا صفحه GitHub را در صورت وجود اسکن کنید. بررسی کنید که آیا مسائل امنیتی باقی مانده وجود دارد یا خیر، و آیا مسائل امنیتی قبلی در یک بازه زمانی معقول حل شده اند یا خیر.
  • کد شخص ثالثی که از کدهای شخص ثالث دیگر استفاده می کند، نسبت به کتابخانه ای که وابستگی صفر دارد، خطر بیشتری دارد. مراقب این خطر باشید.

دسترسی

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

یک کتابخانه مبتنی بر جاوا اسکریپت سمت مشتری (یا چارچوب) می تواند دسترسی به وب سایت شما را افزایش یا کاهش دهد. یک کتابخانه جاوا اسکریپت شخص ثالث را در نظر بگیرید که اسلایدر تصویر را به صفحه اضافه می کند. اگر نوار لغزنده تصویر دسترسی به وب را در نظر نگیرد، شما به عنوان توسعه‌دهنده وب ممکن است چنین ویژگی مهمی را نادیده بگیرید و محصولی را منتشر کنید که ویژگی‌های حیاتی را از دست می‌دهد، مانند اینکه نوار لغزنده قابل پیمایش با صفحه‌کلید است!

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

منطقی است انتظار داشته باشیم که برای برآورده کردن چنین الزامات دسترسی، سطحی از مشارکت از شما، توسعه‌دهنده وب، مورد نیاز باشد. مثلا:

  • برای هر ویژگی از دست رفته، می توانید چنین ویژگی هایی را در پایگاه کد خود پیاده سازی کنید، حتی در حالی که همچنان به استفاده از کتابخانه مورد نظر ادامه می دهید.
  • با حمایت کارفرمای خود، اگر نویسنده کتابخانه اجازه چنین مشارکتی را بدهد، می‌توانید چنین ویژگی گمشده‌ای را به کتابخانه کمک کنید.
  • می توانید با نویسنده کتابخانه گفتگو کنید. به عنوان مثال، آیا این ویژگی های دسترسی خاص در نقشه راه شما وجود دارد؟ آیا موافقید که آنها متعلق به کتابخانه هستند؟
  • برای موارد استفاده رایج، می‌توانید گزینه‌های کتابخانه جایگزین را که در دسترس‌تر هستند، بررسی کنید. آنها ممکن است وجود داشته باشند اما پیدا کردن آنها سخت تر است.
  • در حالت شدید، ممکن است لازم باشد یک کتابخانه را به طور کامل حذف کنید و ویژگی های خود را از ابتدا پیاده سازی کنید. این ممکن است زمانی اتفاق بیفتد که یک کتابخانه یا چارچوب در استفاده اولیه تجربه دسترسی ضعیفی داشته باشد، و شما باید بسیاری از آنچه را که کتابخانه یا فریم ورک ظاهراً به شما رایگان می‌دهد، لغو کنید.

کنوانسیون ها

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

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

  • حتماً بین کد منبع کتابخانه و API در معرض دید شما، کاربر کتابخانه، تفاوت قائل شوید. در حالی که کد منبع داخلی ممکن است از قراردادهای ناآشنا استفاده کند، اگر API (بخشی از کتابخانه که با آن در تعامل هستید) از قراردادهای آشنا استفاده کند، ممکن است جای نگرانی وجود نداشته باشد.
  • اگر API کتابخانه از قراردادهای رایج کدنویسی پیروی نمی‌کند، می‌توانید از یک الگوی طراحی جاوا اسکریپت، مانند الگوی پراکسی ، برای بسته‌بندی و حاوی تمام تعاملات با کتابخانه در یک فایل واحد در پایگاه کد استفاده کنید. سپس پروکسی شما می‌تواند یک API بصری‌تر به بخش‌های دیگر کد در پایگاه کد شما ارائه دهد.

کنوانسیون ها با سهولت استفاده نقش زیادی دارند. کتابخانه‌ای که شامل یک API شهودی است، در مقایسه با یک API غیر شهودی که برای کشف کردن آن به آزمایش‌های زیادی نیاز دارد، می‌تواند ساعت‌ها یا حتی چند روز را در ساعات کاری صرفه‌جویی کند.

به روز رسانی ها

به عنوان مثال، برای یک کتابخانه کاملاً فعال که چند محاسبات ریاضی را انجام می دهد، چنین کتابخانه ای ممکن است به ندرت به به روز رسانی نیاز داشته باشد. در واقع، یک کتابخانه با ویژگی های کامل، یک یافته نادر در دنیای همیشه در حال تغییر توسعه وب است! با این حال، مواقعی وجود دارد که می خواهید نویسنده کتابخانه پاسخگو باشد و مایل به به روز رسانی باشد. تحقیقات و یافته‌های جدید می‌تواند راه‌های بهتری را برای انجام کارها نشان دهد، بنابراین تکنیک‌های مورد استفاده در کتابخانه‌ها و چارچوب‌ها همیشه در معرض تغییر هستند.

وقتی کتابخانه یا چارچوبی را انتخاب می‌کنید، به نحوه مدیریت به‌روزرسانی‌ها توجه کنید و آگاه باشید که چنین تصمیم‌هایی می‌توانند بر شما تأثیر بگذارند:

  • آیا کتابخانه برنامه زمانبندی معقولی برای انتشار دارد؟ به عنوان مثال، به‌روزرسانی‌های مخزن کد منبع ممکن است مکرراً اتفاق بیفتد، اما اگر چنین به‌روزرسانی‌هایی بر این اساس «منتشر» یا «انتشار» نشوند، متوجه خواهید شد که دانلود چنین به‌روزرسانی‌هایی می‌تواند مشکل باشد.
  • آیا کتابخانه به‌روزرسانی‌ها را با یک طرح منطقی نسخه‌سازی نرم‌افزار منتشر می‌کند؟ یک کتابخانه باید در وقت شما صرفه جویی کند. اگر مجبور باشید هر بار که نسخه کتابخانه را به‌روزرسانی می‌کنید به‌طور غیرمنتظره کد خود را تغییر دهید، ممکن است در وهله اول هدف استفاده از آن کتابخانه را نادیده بگیرید. تغییرات شکسته گاهی اجتناب ناپذیر است، اما در دنیای ایده آل، تغییرات به ندرت اتفاق می افتد و بر مصرف کنندگان کتابخانه تحمیل نمی شود.
  • آیا کتابخانه برای سازگاری با عقب ماندگی تلاش می کند؟ گاهی اوقات، به‌روزرسانی‌های نرم‌افزاری می‌توانند با تغییرات قطعی همراه شوند، اما لایه‌ای از سازگاری با عقب را نیز فراهم می‌کنند. این به مصرف کننده کتابخانه اجازه می دهد تا از آخرین نسخه کتابخانه با کمترین تغییرات در کد خود استفاده کند.

صدور مجوز

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

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

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

انجمن

کتابخانه یا چارچوبی که دارای جامعه بزرگی از کاربران/ مشارکت کنندگان باشد می تواند مفید باشد، اما این تضمینی نیست. به طور کلی، هرچه یک کتابخانه یا فریم ورک کاربران بیشتری داشته باشد، احتمال بهره مندی آن بیشتر است. مزایا و معایب زیر را برای مشارکت در یک جامعه توسعه در نظر بگیرید:

طرفداران:

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

معایب:

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

مستندات

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

مستندات حتی می‌توانند کد نمونه را ارائه دهند و شروع سریع را برای شما آسان‌تر کنند. هنگامی که یک کتابخانه یا چارچوب را ارزیابی می کنید، می توانید برخی از این سوالات را بپرسید:

  • آیا کتابخانه شامل مستندات است؟ اگر اینطور نیست، باید راحت باشید که خودتان مسائل را مشخص کنید.
  • آیا مستندات واضح، قابل فهم و عاری از ابهام هستند؟ بسیاری از توسعه دهندگان زمان زیادی را صرف مستندسازی می کنند. ممکن است کوچک به نظر برسد، اما وضوح در اسناد متنی می تواند تأثیر زیادی بر بهره وری شما داشته باشد.
  • آیا اسناد به طور کامل به صورت خودکار تولید می شوند؟ هضم چنین اسنادی دشوارتر است و همیشه راهنمایی روشنی در مورد نحوه استفاده از API ارائه نمی دهد.
  • آیا مستندات به روز هستند؟ نگهداری اسناد گاهی اوقات به عنوان یک فکر بعدی تلقی می شود. اگر کتابخانه به روز شود اما مستندات آن به روز نشود، این می تواند منجر به هدر رفتن زمان توسعه شود.
  • آیا مستندات جامع و در قالب های متعدد موجود است؟ راهنماهای کاربر، کد نمونه، مستندات مرجع، دموهای زنده و آموزش‌ها همگی فرمت‌های مستند ارزشمندی هستند که می‌توانند به شما در موفقیت در استفاده از یک کتابخانه یا چارچوب کمک کنند.

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

نتیجه

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

جنبه‌های دیگری از کتابخانه‌ها و چارچوب‌ها وجود دارد که ممکن است بخواهید در نظر بگیرید، و در این پست به‌شدت مورد بحث قرار نگرفته‌اند:

  • توسعه پذیری: گسترش کتابخانه با منطق و/یا رفتار سفارشی چقدر آسان است؟
  • Tooling: در صورت وجود، آیا کتابخانه دارای ابزارهایی مانند افزونه های ویرایشگر کد، ابزارهای اشکال زدایی و پلاگین های ساخت سیستم است؟
  • معماری: کد پاک مهم است، اما آیا معماری کلی کتابخانه معقول است؟
  • تست ها: آیا پروژه مجموعه آزمایشی دارد؟ آیا وب‌سایت پروژه از نشان‌ها یا شاخص‌هایی استفاده می‌کند که مجموعه آزمایشی در مقابل آخرین commit آن را پاس می‌کند؟
  • سازگاری: آیا کتابخانه با سایر کتابخانه ها و/یا چارچوب هایی که در حال حاضر استفاده می کنید به خوبی کار می کند؟
  • هزینه: هزینه یک چارچوب چقدر است؟ آیا منبع باز است یا برای خرید در دسترس است؟
  • معیارهای بیهودگی: این باید در فهرست معیارهای شما پایین باشد یا حتی به طور کامل نادیده گرفته شود، اما ممکن است بخواهید «رای‌های پروژه»، حساب‌های رسانه‌های اجتماعی که پروژه را نشان می‌دهند و/یا تعداد اشکال/مشکلات باز در پروژه را در نظر بگیرید. صفحه پروژه