بسازیم یا استفاده کنیم؟
برنامه نویسان جوان و کم تجربه (منظور از کم تجربه کسی است که حداقل دو سال سابقه ی برنامه نویسی داشته باشد) در زمان تصمیم گیری برای اینکه بخشی از برنامه را خودشان از صفر بنویسند یا از کتابخانه های آماده استفاده کنند، دچار شک و اشتباه می شوند.
مهمترین دلیل وسوسه ای که همواره برنامه نویسان را به سمت کدنویسی بیشتر هدایت می کند، حس لذت بردن از کدنویسی است و تقریبا همه ی برنامه نویسان در این حس مشترک هستند. البته عوامل دیگر مانند اینکه هر برنامه نویس خود را بهترین می داند و فکر می کند کسی بهتر از او نمی تواند کدنویسی کند هم تاثیرگذار است.
در گذشته برنامه ها بسیار ساده تر از زمان حال بودند و دو برنامه نویس با کمک هم سیستم عامل می نوشتند! اما روز به روز به پیچیدگی های برنامه ها افزوده شده و دیگر یک برنامه نویس نمی تواند همه ی دانش های موجود را یاد گرفته و به تنهایی پروژه های بزرگ را انجام دهد. مهمترین نکته که باید به آن دقت شود این است که «به ما برای کدنویسی و یا لذت بردن از کدنویسی پولی داده نمی شود، بلکه برای حل مشکلات مشتری با استفاده از یک نرم افزار پول می گیریم»
باید قبول کنیم که نرم افزار یک صنعت و تجارت می باشد، بعد هر خط کدنویسی باید این سوال را از خود بپرسیم «این خط کد چه کمکی به تجارت ما خواهد کرد؟». برخی برنامه نویسان از تعداد بالای خط های برنامه هایشان لذت می برند، اما باید بدانند هر خط کد اضافی باعث افزایش احتمال بوجود آمدن باگ های بیشتر و سخت تر کردن نگهداری برنامه در آینده می شود.
به طور مثال اگر شما در حال ساخت یک نرم افزار بانکداری آنلاین هستید، تمرکز تجارت شما بانکداری است. زمانی که در حال تولید نرم افزار هستید، در جایی از برنامه، کاربران باید تاریخی را برای پرداخت قبض هایشان مشخص کنند، پس نیاز به یک تقویم دارید تا کاربر از طریق آن تاریخ را انتخاب کند و یک تقویم خوب تجربه کاربری (UX) بهتری به استفاده کننده از برنامه می دهد. پس در نگاه اول به نظر خیلی منطقی است که خودتان شروع به کدنویسی کرده و بهترین تقویم طول تاریخ را برای برنامه خود بسازید! مخصوصا اگر در گذشته همیشه علاقه داشتید یک تقویم خوب بنویسید اما وقت نشده است. اینجاست که باید از خود بپرسیم آیا وظیفه ی ما تولید یک نرم افزار بانکداری است یا یک تقویم خوب؟ شما باید زمان خود را برای هر چه بهتر کردن سیستم بانکداری آنلاین صرف کنید نه یک تقویم، چون در این پروژه تمرکز شما یک سیستم بانکداری است.
شرکت های بسیاری هستند که کارشان تولید کامپوننت های گرافیکی مثل تقویم، دکمه و … است که با استفاده از آن ها می توانید هم در هزینه و هم در وقت صرفه جویی بسیاری داشته باشید. امروزه رابط کاربری، تخصصی جداگانه است که برای حرفه ای شدن در آن زمان بسیاری لازم است.
البته گاهی استثنا هم وجود دارد. مثل زمانی که تقویم برای نرم افزارتان یک ویژگی رقابتی محسوب شود. مثلا تمام سیستم های بانکداری موجود، خارجی هستند و از تقویم میلادی استفاده می کنند. اما شما برای اینکه بازار هدف خود را خاورمیانه و یا حتی ایران تعیین کرده اید مجبورید خودتان یک تقویم را از صفر بنویسید که از تقویم های میلادی، قمری و شمسی پشتیبانی کند. در اینگونه موارد به علت اینکه این ویژگی به شما شانس بسیاری در بستن قرار دادهای بزرگ در این منطقه از جهان می دهد، پس انجام آن بسیار منطقی است. همیشه باید سود و هزینه را با یکدیگر مقایسه کنید و با توجه به این مقایسه تصمیم بگیرید کدام کار برای شما سود بیشتری از هزینه اش دارد.
سعی کنید پلتفرمی که در آن برنامه نویسی می کنید را بسیار خوب بشناسید. مثلا بدانید دات نت چه امکاناتی را به شما می دهد. لازم نیس نام تک تک کلاس های موجود در فریم ورک را حفظ کنید، اما دانستن اینکه کلاس هایی در دات نت وجود دارد که فلان کار را انجام می دهد به شما کمک می کند به جای کدنویسی اضافه، از امکانات فرم ورک دات نت استفاده کنید و زمان تحویل پروژه را کاهش دهید. وقتی تعداد زیادی از نخبه های برنامه نویسی مایکروسافت زمان خود را صرف نوشتن کلاسی در دات نت کرده اند، واقعا چند درصد احتمال دارد ما کدی بهینه تر از کدهای آن ها بنویسیم؟ (بحث شخصی سازی جداست). بخ علاوه از باگ گیری و تست های اضافی هم خبری نیست.
راه دیگر هم استفاده از برنامه های منبع باز می باشد. البته اگر می خواهید از این گونه برنامه ها را استفاده کنید، حتما قبل از استفاده تحقیق کنید که این برنامه متعلق به انجمن های فعالی باشد و بتوانند در آینده در مشکلات احتمالی کمکتان کنند و اگر باگی در آن وجود داشت رفع کنند.
پس همیشه به این جمله دقت کنید که چون از کدنویسی لذت می برید، نباید حتما تک تک بخش های برنامه را خودتان به تنهایی کدنویسی کنید.
منبع : +