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

خب دوستان عزیزم امروز اومدم تا براتون طریقه پخت یک برنامه خوشمزه را بگم.

مواد لازم:

*- یک عدد مشتری که نیازش را بگه
*- خودکار در رنگهای مختلف
*- کاغذ
*- گوش شنوا
*- یک عدد لپ تاپ خوب
*- تعداد زیادی موسیقی و پادکست و اینجور چیزها
*- قهوه یا چایی یا آب یا هر نوشیدنی دیگه ای که دوست دارید
*- مواد قندی
*- یک مقدار زیادی هنرهای گرفتن پول کار از مشتری
*- سلیقه گرافیکی
*- هنر پیاده سازی سلیقه گرافیکی
*- یک ابزار برنامه نویسی + پایگاه داده

خب دوستان برای شروع اول برید و با مشتریتون صحبت کنید. حتما حتما یادتون نره که قرارداد های لازم در خصوص بیمه و مالیات و روش های پرداخت و تاریخ ها ببندید.

در مرحله بعدی گوش شنوا و خودکارهاتون و کاغذهاتون را همراه با مشتریتون بریزد توی هم و حسابی هم بزنید و ورز بدید. با اینکار باید تمام نیازهای مشتری به دست بیاد و دقیق و مشخص باشه.

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

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

با توجه به ماهیت پروژه و تخصص خودتون زبان برنامه نویسی را مشخص کنید.

هیچ زبان برنامه نویسی در جهان وجود ندارد که به درد همه چیزی و همه نیازها بخوره.

بسته به نیازتون و بستری که قراره برنامه ارائه بشه(تحت وب یا دستکتاپ یا اندروئید یا ...) زبان برنامه نویسی و تکنولوژی های مورد استفاده را انتخاب کنید.

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

حالا با استفاده از سلیقه گرافیکی و نیاز مشتری و ... بیاد و یک طراحی گرافیکی از محصول نهایی بسازید. این را هم میتونید با استفاده از ابزارهایی که وجود دارند پیاده سازی اولیه کنید و به تائید مشتری برسونید و ازش امضا بگیرید.

حالا اون ظاهر گرافیکی را پیاده سازی کنید و به هسته نرم افزارتون وصل کنید و با استفاده از هسته نرم افزار به پایگاه داده وصل بشید.

خارجی ها به این معماری میگند MVC

گاه گداری هم یک نمونه قابل مشاهده به مشتری ارائه بدید. البته من خودم تجربه کردم و اینکارا انجام نمیدم ولی زیاد با مشتری در ارتباطم تا بدونه داره کارش پیش میره. اگر قسمتی به طور کامل پیاده سازی شد اون را به مشتری نشون میدم و حتی اگه قابل تحویل دادن باشه برای تست و ارزیابی زمان اجرا تحویل تستر ها یا مشتری میدم.

کلا مرحله تست خیلی خیلی مهمه.

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

در فرهنگ برنامه نویسی به این معماری میگن TDD.

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

خب حالا که برنامه تست شده و خوشگل هم هست و مطابق نیاز و درخواست مشتریه، باید چکار کنیم؟

سروش کنیم. بسته بندی لازم انجام بشه و جایی که راحت بتونید هم پشتیبانیش کنید و هم مشتری ازش استفاده کنه قرار بدید و تحویل مشتری بدید. اگه تحت وبه با توجه به زبان و تکنولوژی سرور و وب سرور و اینهاش را تهیه کنید. و مبارک باشه. برنامه شما آمادس.

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

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

من محمد(سروش) محمدی هستم و سالهای زیادی هست که درحال کار در حوزه برنامه نویسی هستم. میخوام وقتی باز کنم و برای خودم و شما از برنامه نویسی بنویسم.