سلام خدمت همهی برنامهنویسهای عزیز از مبتدی تا حرفهای
سوالم اینه وقتی به شما یه پروژه داده میشه یا یه پروژه خودتون برای خودتون تعریف میکنید، به چه صورتی عمل میکنید؟!
بخوام دقیقتر بگم چک لیست خاصی برای طراحی وب سایت دارین مثلا یه چیزی مثل دفترچهی طراحی سایت
که توی اون چک لیست مشخص میکنید چه ویژگیهایی لازمه و ترتیب برای پیادهسازی بخشهای مختلف مینویسن مثلا برای سایت X اول سیستم احرازهویتش رو پیاده کنم بعد برم سراغ پنل کاربری بعد پنل مدیریت بعد بخشهای مختلف و ...
یا اینکه اصلا به این موضوع نیازی و مستقیم میرین سراغ برنامه نویسی و یکی یکی بدون برنامه شروع میکنید به برنامه نویسی! چون خیلی وقتها در حین برنامه نویسی ممکنه به ذهن آدم خطور کنه این ویژگی رو هم اضافه کنم خوب میشه و ..
البته میدونم این مورد بیشتر برای پروژهها و کارهایی که دستمون بازه میشه انجام داد و برای اون پروژههایی که کارفرما مصمم هست تغییرات سخته!
ممنون میشم همگی جواب بدین😄
@hesammousavi
@ali.bayat
@mrhex
در نرمافزار ما مبحثی داریم به نام "معماری نرمافزار" یا Software Architecture
نکته ای که اکثرا بهش توجه نمیشه
پس مشخص بودن ساختار پروژه .. رو پارادایم انتخاب شده و شکل کلی کدنویسی اثر میگذاره
@alimanian
خب ببینید ما یک بحثی دارم به نام مهندسی نرم افزار که میاید و تمام پروژتونو اول روی کاغذ پیاده سازی مکنیدحتی کلاس هاش ارتباط بین شون و طراحی بانک اطلاعاتی و ارتاباطاتشون و... و بعد میرین سراغ پیاده سازی کد چیزهایی که روی کاغذ پیاده سازی کردید:روش های مختلفی داره که بهترینش طراحی شی گرا (uml) هستش.
اول یه سلام به علی عزیز (از برو بچه های خوب هنرستان ابوذر😎)
در مورد سوالی که مطرح کردی من خودم یه روش رو پیش گرفتم که خیلی جواب میده اول کارهایی که راحت تر هست رو انجام میدم و اقدام هام رو به این ترتیب پیاده سازی می کنم.
1- بررسی و تحلیل پروژه و رسم طرح دستی دیتابیس و Relation های جداول
2- پیاده سازی کامل قسمت مدیریت سایت (CMS اختصاصی) یا بهتر بگم (قسمت هایی که وابستگی به فرانت ندارن )
3- قسمت های Authentication و Authorization
4- میرم سراغ فرانت و پیاده سازیش می کنم
البته جدیدا با یه برنامه هم آشنا شدم به اسم Clickup که میتونی ازش برای مدیریت Task های پروژت ازش استفاده کنی من از نسخه موبایلش استفاده می کنم و پیشنهاد میکنم یه سری بهش بزن برای این کار Trello هم هست ولی خودم تاحالا ازش استفاده نکردم.
در موردی اون موضوعی هم که گفتی وسط کار آدم یهو یادش میوفته که این فیچر رو هم اضافه کنه بایدم بگم من خودم این شکلیم 😅✌🏻
با این که اول کار همه کار ها رو مشخص می کنم ولی شده بعضی وقت ها هم چند تا چیز بیشتر اضافه کردم من شخصا باید برم تو دل کار تا بفهمم باید چیکار کنم.
امیدوارم تجربیات یه برنامه نویس آماتور برات مفید بوده باشه!
@alimanian
سلام
مراحلی که واسه خودم درست کردم.
1- تحلیل نیاز مشتری که چه چیزی میخواد.
2- درصورت وجود بررسی رقبای مشتری
3- طراحی اسکچ
4- چکش کاری اسکچ و تایید نهایی کارفرما
5- طراحی در XD
6- بررسی و تایید نهایی توسط مشتری
7- بررسی و تحلیل و طراحی دیتابیس به صورت دستی
8- شروع کدنویسی استاتیک پروژه
9- بررسی و تایید توسط کارفرما
10- کدنویسی بک اند و کلا کارای داینامیک سازی
11- آماده سازی مستندات
12- تحویل و شروع پشتیبانی
ممنون میشم قدیمی ها هم نظرشونو بگن تا مراحل بهتر بشه.
@ali.bayat @mhyeganeh @TimeRunner2359 @hosseinshirinegad98 @mohsenbostan @hesammousavi @khosravi424 @milad @mohsen.mehri6101 @khanzadimahdi
@alimanian
سلام و وقت بخیر
چه قدیمی آقا منم جوجه برنامه نویس ام 😂
ولی خب نظر کلی من اینه :
۱ گفتگو با کارفرما برای به توافق رسیدن سر امکانات کلی پروژه (چیزی که کارفرما ازم میخواد)
۲ همین کار رو برای فرانت هم انجام میدم
۳ شروع به طراحی فرانت میکنم
۴ بعد از اتمام طراحی اولیه ، با کارفرما مشورت میکنم تا اگر نظری داشته باشه اعمال کنم(فونت ها ، color scheme , چیدمان و ...)
۵ پس از تأیید فرانت ، میرم سراغ بک اند.
۶ تجربه ثابت کرده بهترین کار اینه که اول از همه ، سیستم کاربر و ادمین ساخته بشه .
۷ و ادامه بک اند رو میزنم و در همین حین ، فرانت رو به بک اند متصل میکنم . حلقه ها ، اطلاعات دریافتی و ... رو با فرانت مچ میکنم .
۸ اگر قابلیت مفیدی توی هر یک از بخش ها یادم بیاد اضافه میکنم (این اصلا عیب نیست که شما وسط پروژه یه چیزی به ذهنت برسه بلکه خودش نقطه قوته چون نشون میده شما خلاق هستید .).
۹ تست کلی پروژه و deployment
۱۰ تحویل به کارفرما
۱۱ پشتیبانی 😊
هرچند من اصلا تجربه خاصی ندارم و جوجه ای بیش نیستم 😅 ، ولی خب این چیزیه که از یکی دوتا پروژه که داشتم به دست آوردم. امیدوارم مفید بوده باشه
نظرات دیگر دوستان رو مشتاقانه میشنوم
موفق و سلامت باشید
یا حق
@Mohammad79
لیست خوبی تهیه کردی .. فقط یه سری توضیحات رو اضافه میکنم.
اولین هدف از اجرای یک پروژه برآورده کردن نیاز مشتری هست..
پس ابتدا باید تمام ویژگی ها یا فیچر های اپلیکیشن رو درآورد.
با توجه به لیست نیاز ها.. شما به عنوان یک توسعه نرمافزار باید تشخیص بدید که از چه معماری باید استفاده بشه.
و بر اساس اون پارادایم کدنویسی و زبان هم مشخص میشه..
این مراحل سنگ بنای یک اپلیکیشن موفق هستند.. حالا در هر حیطه و با هر زبانی که نوشته بشه.
و بقیه مراحل رو هم که لیست کردی.
اما جای Testing در لیست خالی هست.. نوشتن Test میتونه عادت بسیار خوبی برای یک برنامه نویس باشه.
بعد ها این تست ها به گزارش کار + مستندات پروژه تبدیل میشند.
و باعث میشه بتونی با اعتماد به نفس فیچر اضافه کنی و یا ریفکتور کنی.
نظرات کامل و پخته دوستان به نظرم به اندازه کافی هست و بنده مورد جدیدی ندارم که بخوام اضافه کنم.
فقط غیر از بعد فنی، به نظرم هر برنامه نویسی خیلی خیلی باید روی مهارت های نرم (Soft Skill) ش سرمایه گذاری کنه. مثل فن مذاکره و فن بیان و انتقال مفهوم و قدرت همفکری و خلاقیت و ... راه تقویتش هم عمدتا از مسیر تجربه زیاد میگذره و میان بری نداره.
و اینکه حتما حتما سعی کنید در طول دوره توسعه یک سازوکار پایدار و مستمر برای برقراری ارتباط با کارفرما داشته باشید و هر چند وقت یکبار مواردی که تا الان انجام شده و یک کلیتی از مرحله بعد رو باهاش چک کنید. یعنی اینجور نباشه که کار رو که تحویل گرفتید تا یک دو ماه هیچ ارتباطی برقرار نشه و یهویی خروجی کار رو بهش تحویل بدید. ریسک ها و ضررهای زیادی داره این روش.
موفق و پیروز باشید
درود...از قدیمی های راکت هستم
به ترتیب:
@Mohammad79
با سلام
دوست عزیز یه چیزی بگم میگن سنگ بزرگ نشانه نزدن است (نه اینکه شما ناتوان باشید) ولی من خودم به شخصه خیلی پروژه بزرگ در نظر داشتم و وقتی انجامشون میدادم به قول خودم میخواستم خیلی اصولی کار کنم بعده یک مدت خسته کننده و واقعا دل زدگی میاورد اون پروژه و اینکه اگه تک نفره میخواید انجام بدید واقعا اذیت میشین نه اینکه نتونین میتونین 100% ولی ببینید مثلا رانندگی رو در نظر میگیریم(همه رانندگی بلدن) : ولی یکی میگه برو مثلا از مشهد تا تهران یکی میگه تک نفره از مشهد برو مثلا تا دل اروپا خب خسته کننده و دل زننده میشه مگه اینکه چندتا راننده باشین برای این کار پس این مورد رو حتما درنظر بگیرین که یک تیم باشین تا پروژه به شکست نخوره
@alimanian
@alimanian
سلام دوستان خیلی قشنگ و با جزئیات مراحل گرفتن یک پروژه رو توضیح دادن منم تجربه خودمو میگم :
نکته ای که از همه مهمتره بگم : مطمئن بشین که دیتابیس رو درست طراحی کنین، چون اگه یه روزی مشتری خواست ظاهر رو عوض کنین خیلی راحت میتونین این کارو بکنین - یا حتی اگه خواستین کلا زبان یا فریمورکی که استفاده میکنین رو عوض کنین باز هم خیلی راحت و بدون اینکه به سایت لطمه ای وارد بشه میتونین این کارو بکنین
اما اگه بخاین دیتابیس رو تغییر بدین ( یعنی فرض بر این بگیرین سایت بالا اومده یک سال روی هاست مشتری داره کلی کاربر و کالا و داده ... ) حالا اگه بخاین سایت رو تغییر بدین مطمئنا خیلی اذیت میشین - پس حتما طراحی دیتابیس رو خیلی خیلی جدی بگیرین
دو : تا وقتی در مورد ظاهر سایت با مشتری کنار نیومدین وارد مرحله بعدی نشین، یعنی به مشتری نگین که حالا ظاهر مهم نیست بعدا با هم کنار میاییم
به نظرم بهترین توضیح مال دوست جوجمون (😀😀 آقا احسان شوخیه ها )@TimeRunner2359 هستش - خیلی با جزئیات و درست توضیح دادند
من خودم به شخصه اول تمام فیچر هایی که قراره برنامه داشته باشه رو مینویسم به اضافه قیمت و به اضافه زمان بعد به کارفرما این کلیات رو میگم و طبق روز هایی مشخص ، برنامه و پیش میبرم
@alimanian
@mohsen.mehri6101
سپاس از نظرتون 🙏🌹🙏
در روایات داریم جوجه بودن عیب نیست ، جوجه ماندن عیب است 😂
در کل من واقعا نسبت به دیگر دوستان تجربه آنچنانی ندارم و واقعا جوجه ام .
@khosravi424
بله درست میفرمائید ولی بنظرم هر چه قدر طبق یه ساختار بریم جلو خیلی بهتره حتی اگه تیم نباشیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟