<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های داریوش علیپور</title><link>https://virgool.ir/feed/@dariushalipour</link><description>توسعه دهنده نرم افزار</description><language>fa</language><pubDate>2026-11-11 23:45:59</pubDate><image><url>https://files.virgool.ir/upload/users/26776/avatar/OHmIGc.png</url><title>داریوش علیپور</title><link>https://virgool.ir/@dariushalipour</link></image><item><title>تفاوت فلسفی ریکت و انگولار، لایبرری و فریمورک</title><link>https://virgool.ir/@dariushalipour/react-angular-library-framework-itmaf5k98pm3</link><description>یک همکار که در شغلش بسیار موفق و توانا بود، چند روز پیش در یک صحبت دوستانه اشاره کرد که:انگولار از ریکت خیلی بهتره، چون تمام جوانب اپلیکیشن رو پوشش میده. ریکت فقط المنت رندر میکنه.البته این رو هم قبول داشت که یادگیریش از ریکت سخت تره. هرچند پرداخت این هزینه رو به صرفه میدونست. اجازه بدید که مخالفت کنم...قبلا در رابطه با کسانی که برای ساده ترین کار ها به دنبال لایبرری ها میرن صحبت کردم. برنامه نویس هایی که به هیچ وجه زحمت فکر کردن راجع به یک تابع ۳۰ یا ۴۰ خطی یا یک تابع ریکِرسیو رو به خودشون نمیدند. اما میدونید چی حتی از این هم خطرناک تره؟ تعهد بی قید و شرط اپلیکیشن شما به یک فریمورک...تعریف فریمورک در مقابل لایبرریکد شما، لایبرری ها را صدا می کنه، تا بخش هایی از مسئولیتش رو به اون ها بسپاره؛ اما فریمورک، کد شما رو در بر میگیره. در حقیقت به گونه ای که فریمورک به شما میگه که از چه چیز هایی و به چه شکل می توانید استفاده کنید.کد همه یکدست بشه خوبه! همه کد هم رو راحت می فهمیم!بله! صد البته! بهرحال هر چیزی خوبی و بدی های خودش رو داره. اما این ترسناک نیست که عده ی زیادی از برنامه نویس ها در چارچوبی برنامه نویسی کنن که شاید ایده آل پروژه منحصر به فرد بیزینس شون نباشه؟ یادگیری اون همه چیزی که هیچ جایی بیرون اون فریمورک به دردشون نمیخوره چطور؟ آزارشون نمیده؟سرعت توسعه اپلیکیشن، با فریمورک ها افزایش پیدا می کندچون همه چیز رو خودشون دارن؟ بله درسته اما اول باید ادبیات تمام اجزای فریمورک رو کامل یاد بگیرید. هرچند معمولا تمام اون اجزا، با کیفیت بهتر و شرایط مناسب تر برای شما، در پکیج های کوچک و تخصصی، در دسترس هستند. با پیدا کردن ابزار مناسب، دیگه نیاز نیست به زور و زحمت، فریمورک رو به سمت نیاز هاتون خم کنید؛ طوری که از چشم توسعه دهنده های فریمورک، اصطلاحا بِست پرَکتیس نیست. پس ظاهرا اینجوری بیشتر زمان ذخیره میکنید!هر چی بیشتر هزینه کنی، بیشتر قدرش رو میدونی...بله دیگه... این هم ریشه ی روانشناختی داره. اما همونطور که همه واقف هستند، این لزوما چیز خوبی نیست.روی خودتون سرمایه گذاری کنید، به خودتون اعتماد کنید!بیشتر جاوا اسکریپت رو تجربه کنید. خودتون رو به چالش بکشید، محک بزنید. اینطوری با دغدغه های برنامه نویس های «تولید کننده» آشنا می شوید. شاید راه حل بهتری پیدا کنید و تغییر بزرگ بعدی رو شما رقم بزنید! در بدترین حالت، از خودتون یک برنامه نویس آگاه تر ساختید که میتونه راجع به دیپندنسی ها تصمیم بگیره؛ کاری فراتر از مقایسه تعداد ستاره های دو ریپوی رقیب.اگر همه مثل اکثریت ما فکر می کردند و فقط گوگل می کردند و دیپندنسی اینستال می کردند، گوگل کردن های ما خالی از نتیجه میشد و پروژه هامون شکست میخورد. رجیستری پکیج های رایگان چیزی به جز دیوار مهربانی نیست. شما هم درش دستی داشته باشید؛ حتی فقط برای افزایش اعتبار حرفه ای تون.برنامه نویسی ذاتا بر پایه ی فلسفه و منطق است؛ نه تقلید و تکرار.</description><category>داریوش علیپور</category><author>داریوش علیپور</author><pubDate>Sat, 28 Sep 2019 01:18:18 +0330</pubDate></item><item><title>اهمیت یادگیری Javascript برای همه برنامه نویس ها</title><link>https://virgool.ir/@dariushalipour/اهمیت-یادگیری-javascript-برای-همه-برنامه-نویس-ها-uvjypnkvwwti</link><description>در مقاله پیش به اهمیت یادگیری زبان C برای تمام برنامه نویس ها اشاره کردم. در این مقاله به ۱۸۰ درجه آن طرف ماجرا اشاره می کنم.مهندسی، نقشه کشی و ماکت سازیدر زمینه های گوناگون مهندسی، طرح نقشه از گام های مهم کار یک مهندس است. در علوم کامپیوتر این مهم از طریق طراحی داکیومنتیشن هایی بر پایه دیاگرام های UML محقق می شود.زمانی که دیاگرام ها کفایت نمی کننددر بیشتر نرم افزار های سفارشی رایج، الگوریتم های مورد نیاز در روند یک نرم افزار، چیزی حدودا در حد یک فلوی دیتا، ایجاد-دریافت-بروزرسانی-حذف (که به CRUD معروف هستند) و کنترل دستیابی منتهی می شود. اما همیشه اینگونه نیست...گاهی کشیدن دیاگرام های UML برای درک صحت (اینتگریتی) اجزای نرم افزار کافی نیست؛ که در بعضی مواقع راه نسبتا آسانی برای تست الگوریتم و حتی آزمون و خطا و توسعه یک الگوریتم کارا وجود دارد. در این مواقع نوشتن سریع و ساده الگوریتم مورد نظر در یک زبان سطح بالای اسکریپتی مانند جاوا اسکریپت این چالش را تسهیل بخشیده؛ و بعد توسعه دهنده می تواند با خیال راحت کد تهیه شده را -- که حکم چرک نویس دارد -- با کد به زبان نرم افزار اصلی جایگزین کند؛ به زبان ساده تر، به صورت دستی ترنسپایل کند.ساخت اتومیشن ها و مایکرو ابزار هادر مورد ساخت اتومیشن های بیلد و باندلینگ، راه اندازی و آماده سازی محیط توسعه سفارشی، ویژه نرم افزار مورد توسعه و کارهایی از این جنس، زبان های اسکریپتی مانند Javascript و Python می توانند بسیار ساده تر، سریع تر و به طور کلی کم هزینه تر باشند.ساخت اسکریپت های کد جنریتورتصور کنید که چندین مایکرو سرویس در اکو سیستم نرم افزار شما وجود دارند که با دیتا مدل های تکراری ای که در پیام های بین سرویسی رد و بدل میشوند سر و کار دارند و مجبورید با تغییر در مدل اصلی پیام، تمامی کد های دوپلیکت (اما به زبان های گوناگون) را آپدیت کنید تا نرم افزار درست کار کند.می توان با نوشتن یک مایکرو زبان دامین اسپسیفیک برای نوشتن کد های این مدل ها، این مشکل را برطرف کرد و مدل مذکور را در آن زبانی که خودتان در چند ساعت ساخته اید بنویسید و نگه داری کنید، و تنها با یک دستور خروجی مناسب زبان دیگری را دریافت کنید.حرف آخردانستن یک زبان اسکریپتی، مانند داشتن یک ابزار قدرتمند و همه کاره است در جعبه ابزار یک توسعه دهنده. خودمان را از نعمت های این ابر ابزار محروم نکنیم.</description><category>داریوش علیپور</category><author>داریوش علیپور</author><pubDate>Fri, 11 Jan 2019 21:39:48 +0330</pubDate></item><item><title>اهمیت یادگیری زبان برنامه نویسی C برای برنامه نویسان</title><link>https://virgool.ir/@dariushalipour/اهمیت-یادگیری-زبان-برنامه-نویسی-c-برای-برنامه-نویسان-zoq41inzppcj</link><description>برنامه نویسان به دو دسته تقسیم می شوند؛ آنهایی که یک زبان را به صورت پایه ای یاد میگیرند تا با استفاده از لایبرری ها و فریمورک ها صرفاً تسک های یک پروژه را به اتمام برسانند، و آنهایی که کنجکاو هستند تا از روش کار لایبرری ها و فریمورک های مورد استفاده خود درک کامل پیدا کنند.برنامه نویسان مصرف گرا، به اصطلاح «استک آورفلویی»مشکلی که این روزه گریبانگیر توسعه دهنده ها شده، مصرف گرایی آنها است. این رویکرد باعث شده تا خلاقیت و پیشرفت دنیای توسعه نرم افزار کم شود و «جستجو کردن» به جای همراهی با «فکر کردن»، به سمت تصاحب جایگاه «فکر کردن» برود.تقصیر ما یا دوستان ناباب؟نمی شود تاثیر رقابت استارت آپ ها را بی ربط به این ویروس دانست و تمام قصور را از چشم برنامه نویس ها دید. با این حال، در هر زمینه ای در آخر، این برنامه نویس ها هستند که اجازه می دهند این فضا ایجاد شود. اگر برنامه نویسی نبود که با چشمان بسته به بحث های فنی، تصمیم به استفاده از کد های دیگران بگیرد، توقع کارفرما ها نیز معقول تر بود.چرا C یاد بگیریم؟از بحث اصلی دور نشویم. یادگیری یک زبان میان-سطح مانند C برای برنامه نویسانی که حتی از زبان هایی همچون جاوا استفاده می کنند نیز اهمیت دارد. یادگیری مسئله مهم و اساسی ای همچون مدیریت حافظه، تفاوت حافظه استک و هیپ مموری، عدم وجود لایبرری هایی که با ۵ خط کد قابلیت بازنویسی دارند، که در جامعه جاوا اسکریپت به وفور دیده می شود؛ برنامه نویس را وا می دارد تا کمی دانش، حتی تکراری، تولید کند تا درک بهتری از ساز و کار نرم افزار خود که قرار بود حکم فرزند او را دارد داشته باشد، پیدا کند.کلاه خود را قاضی کنیدچطور می شود تا این حد از فرزند خود بی شناخت بود و بی اهمیت از کنارش رد شد؟ وردپرس که خود خانه مشوق تمام درگ اند دراپ ها و کپی پیست ها است جمله شیرینی را شعار خود کرده است که می گوید «کد شعر است» و برداشت من این است که توسعه دهنده قرار است از سرودن آن و تماشای آن لذت ببرد، نه اینکه صرفا تسک خود را از روی دیوار اتاق یا جیرا به عنوان «انجام شده» علامت بزند.سر آخراگر برنامه نویسی بخواهد که توانایی حل مسائلی به غیر از مسائل روزمره و مرتبط با فیلد خاص شغل فعلی خود را داشته باشد، و نرم افزار های اکستندبل (توسعه پذیر از جهت نرم افزاری) و اسکلبل (توسعه پذیر از جهت افزایش توانایی پاسخگویی به حجم بیشتر درخواست و کاربر) تولید کند، باید به چم و خم توسعه نرم افزار در زبان نیمه-ابتدایی ای چون زبان C مسلط باشد. چون به حتم این تسلط در هر زبان دیگری راه گشای حل مسائل و درک بهتر وی از محصول تولیدی خود می شود.</description><category>داریوش علیپور</category><author>داریوش علیپور</author><pubDate>Sat, 05 Jan 2019 02:14:23 +0330</pubDate></item></channel></rss>