Functional Programming - قسمت پنجم

وسواس استفاده از نوع های اولیه

در ادامه سری مقالات مرتبط با برنامه نویسی تابعی ، قصد دارم به استفاده کردن یا نکردن از نوع های داده اولیه (Primitive Types) را بررسی کنیم. پیشنهاد میکنم در صورتی که قسمت های قبلی را مطالعه نکرده اید ابتدا قسمت های قبل را بخوانید:

بیشتر بخوانید …

Functional Programming - قسمت چهارم

برخورد با Exception ها

چنان چه قسمت های قبلی سری آموزش برنامه نویسی تابعی Functional Programming را مطالعه نکردین پیشنهاد میکنم قبلا اون ها + و + و + رو قبل از شروع بخونید تو این قسمت قراره که تاثیر استثناها (exception) رو بر روی کد بررسی کنیم و راهکاری از جنس functional براش ارائه کنیم.

بیشتر بخوانید …

Functional Programming - قسمت سوم

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

بیشتر بخوانید …

Functional Programming - قسمت اول

Programming Paradigms این قسمت از مقاله به ایده اصلی برنامه نویسی تابعی و دلیل وجودی آن خواهد پرداخت. هیچ شکی نیست که بزرگترین چالش در توسعه نرم افزار‌های بزرگ، پیچیدگی آن است. تغییرات همیش اجتناب ناپذیر هستند. به خصوص زمانی که صحبت از پیاده سازی امکان جدیدی باشد، پیچیدگی اضافه خواهد شد. در نتیجه منجر به سخت شدن فهمیدن کد می‌شود، زمان توسعه را بالاتر می‌برد و باگ‌های ناخواسته را به وجود خواهد آورد. همچنین تغییر هر چیزی در دنیای نرم افزار بدون به وجود آوردن رفتار‌های ناخواسته و یا اثرات جانبی، تقریبا غیر ممکن است. در نهایت همه این موارد می‌توانند سرعت توسعه را پایین برده و حتی باعث شکست پروژه‌های نرم افزاری شوند. سبک‌های کد نویسی دستوری (Imperative) مانند برنامه نویسی شیء گرا، میتوانند به کاهش این پیچیدگی‌ها تا حد خوبی کمک کنند. البته در صورتیکه به طور صحیحی پیاده شوند. در واقع با ایجاد Abstraction در این مدل برنامه نویسی، پیچیدگی‌ها را مخفی میکنیم.

بیشتر بخوانید …