۱۳۸۹/۰۷/۲۳

نوشته شده توسط Reza Alizadeh
دسته بندي:
چند وقته شروع کردم به خوندن یک کتاب راجع به برنامه نویسی در لینوکس. اوایل کتاب به یه بخشی رسیدم به عنوان «فلسفه یونیکس». مطلبش برام جالب اومد واسه همین خلاصه اونو تو وبلاگم میزارم:

اکثر برنامه‌های کاربردی و متداول یونیکس/لینوکس خصوصیات زیر رو دارن:

۱. سادگی (Simplicity): خیلی از برنامه‌های کاربردی یونیکس خیلی ساده هستند و به همین دلیل حجم پایینی دارند و همچنین فهمیدن اونها بسیار سادست. KISS، این یه اصل مهم تو برنامه نویسی تو یونیکس ه که مخفف Keep It Small and Simple به معنی «ساده و کوچک نگه داشتن حجم برنامه» ست. باید به این نکته توجه داشت که برنامه‌های بزرگ‌تر دارای اشکلات پیچیده‌تری هستند و رفع اون اشکالات هم برای خودش معضلی ه !!!‌

۲. تمرکز (Focus): اصولاً بهتر برنامه شما یه کار رو درست انجام بده تا چندین کار رو ناقص و نصف و نیمه و با اشکال. وقتی برنامه‌ای روی یک موضوع متمرکز نیست هم استفاده ازش سخت میشه هم نگهداری و بروز رسانیش کار آسونی نیست. در مقابل برنامه‌هایی که روی یک موضوع خاص تمرکز میکنن رو راحت‌تر میشه به روز کرد. در یونیکس هم طبق همین اصل اکثراً سعی شده وقتی که نیاز کاربر بالا میره برنامه‌های کوچک رو باهم ادغام کنن تا اینکه یه برنامه حجیم پیچیده ایجاد کنن.

۳. اجزاء‌ قابل استفاده مجدد (Reusable Components): سعی کنید هسته برنامتون رو بصورت کتابخانه‌هایی با توضیحات و مستند سازی کامل و خوانا برای دیگران درست کنید تا دیگران هم بتونن اون رو گسترش بدن و رفع عیب کنن. با اینکار برنامه شما هم روز بروز بهتر میشه. نمونه این موضوع رو میتونین توی کتابخانه‌های dbm ببینید که بجای ایجاد یه برنامه بزرگ مدیریت دیتابیس مجموعه‌ای از توابع قابل استفاده مجدد است که در یک بسته ارائه شده است.

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

۵. ؟؟؟ (Open File Formats): یکی دیگه از امکانات محبوب و موفق برنامه‌های یونیکس استفاده از فایل‌های تنظیمات با فرمت ASCII یا XML ه. این موضوع باعث میشه تا کاربران از ابزار استاندارد موجود برای جستجو و یا ویرایش تنظیمات برنامه استفاده کنند و همچنین بتونن ابزار خاص خودشون رو با توجه به اون تنظیمات بنویسن تا اعمال جدیدی رو روی فایل‌های داده انجام بده.

۶. انعطاف پذیری (Flexibility): شما نمیتونید پیش‌بینی کنید که کاربران باهوش سیستم شما دقیقاً چه‌جوری از اون استفاده میکنن. به همین خاطر سعی کنید تا اونجا که ممکنه برنامتون انعطاف پذیر باشه. از اعمال محدودیت‌های دلخواه روی موضوعاتی نظیر سایز یک فیلد یا حداکثر تعداد رکورد ها خودداری کنید. اگه براتون مقدوره سعی کنید تا برنامتون قابلیت اجرا بر روی شبکه رو به مانند کامپیوتر لوکال داشته باشه. هیچ وقت فکر نکنید که از تمام نیاز های کاربر باخبرید.

0 نظر:

ارسال یک نظر