مدتیه این سئوال واسم پیش اومده که بهترین و جامع ترین روش برای تولید پروژه نهایی در زمانی که اعضای تیم برنامه نویسی، هرکدوم جداگانه کد تولید میکنند و از متغیرها و فرمهای دلخواه خود استفاده میکنن...چیه ؟
تیم های برنامه نویسی دنیا، چیکار میکنن ؟
Printable View
مدتیه این سئوال واسم پیش اومده که بهترین و جامع ترین روش برای تولید پروژه نهایی در زمانی که اعضای تیم برنامه نویسی، هرکدوم جداگانه کد تولید میکنند و از متغیرها و فرمهای دلخواه خود استفاده میکنن...چیه ؟
تیم های برنامه نویسی دنیا، چیکار میکنن ؟
استفاده از استاندارهای مناسب و توجیه تیم پروژه و استفاده از ابزارهای مدیریت منابع (مستندات و Artifactها) مانند MS Source Safe و ...
سعی کنید ابتدا یک استاندارد مشخص برای نامگذاری Object ها درست کنید و آنرا در قالب یک مستند به تیم پروژه بدهید. برای این کار می توانید از Notation هایی که خود می سازید بر اساس Notation مجارستانی استفاده کنید
در کل اگر دوستان در این بحث شرکت کنند بحث جالبی خواهد شد
قبل از اینکه به صحبتهایی در مورد سی وی اس ! برسیم ::
این ها رو گوگل کنید
software architecture design document
software design specification
و جزییات محتوایی هرکدوم رو بررسی کنید.
موفق باشید
قبل از روی کد نویسی باید از استانداردی استفاده شود که نام فرمها ، متغییر ها ، جداول و . . . همنام هم نشوند.
مثلا هر کد نویس با استفاده از یک کلمه به خصوص خود را از بقیه مجزا کند.
مانند Abc_From .سه حرف فوق را در ابتدای همه مورد فوق قرار دهد تا خود را از بقیه مجزا کند.
نام توابع که در همه فرمها مورد استفاده قرار می گیرد مشخص شود تا همه با یک نام خود را تعریف کنند.
موفق باشید
خوب، بعد از این مرحله چیکار کنیم؟ چه نرم افزارهایی پروژه رو کنار هم می چینن ؟نقل قول:
قبل از روی کد نویسی باید از استانداردی استفاده شود که نام فرمها ، متغییر ها ، جداول و . . . همنام هم نشون
اینایی که گفتید، ربطی به سوال کاربر هم داشت؟!نقل قول:
به نظر من پروژه هایی که به صورت تیمی انجام می گیرن ابتدا Artifact های RUP و یا MSF (ویا هر متدولوژی که باشه، من RUP رو توضیح میدم) اون رو برای مرحله Implementation طراحی و مستند می کنند. که این Artifact ها عبارتند از Usecase ها و Actorها و ارتباط بینشون که در مرحله Requirements تولید میشه و بعد Key Abstractions که منجر به تولید Star Diagram پایگاه داده می شه و User Experience مدل و Analysis مدل که اولی شامل فعالیت های Identify the Participating Screens و Model the Screen Flows
و Define the Screen Navigation Paths و Reconcile the Use-Case Storyboards و Document Usability Requirements میشه و دومی شامل فعالیت های Identify the Participating Analysis Classes و Model the Use-Case Flows و Describe the Analysis Classes و ... میشه.
پس اگر من در پروژه خودم یک کنترل Label ایجاد کنم و اسمش را بزارم Hassan، سایر برنامه نویسان که دارن کد من رو می خونند، یا باید به امکانات IDE وابسته باشند که وقتی موس روی یک متغیر خاص قرار میگیره، نوع آن را در یک Tooltip نمایش میده، یا به دیاگرام مربوط به کلاسی که Hassan توش تعریف شده، رجوع کنند!نقل قول:
لزومی نداره کسی سبکی (یا برای کد نویسی و یا برای نامگذاری) اختراع کنه بلکه همه توابع و Screen Form ها و Input Form ها در مرحله آنالیز طراجی می شن.
فکر نمی کنید، اگر من و گروه من همگی با هم قرار میزاشتیم که بجای همچین اسمی، یک پیشوند خاص بهش اضافه کنیم (مثلا lblHassan)، کار همه مون راحتتر میشد؟
برای Comment سورس کد چطور؟ تمام برنامه هایی که Comment را بصورت خودکار از سورس ها استخراج می کنند و از آن فایل Help میسازند، نیاز دارند که همه برنامه نویس ها برای Comment های خود الگوی یکسانی را رعایت کنند.
برای Indentation چطور؟ اگر کسی هوس کرد کل یک کد را بدون Indentation بنویسه، باید بهش اجازه داد، یا باید قوانین برای گروه آماده کرد که کل گروه در هنگام کدنویسی از آن پیروی کنند؟
یکسان سازی کد دیگه چیه؟! Source Safe یک ابزار کنترل سورس هست.نقل قول:
برای یکسان سازی کد ها هم دوستمون فرمودن که از Source safe استفاده میشه.
این سوال ربطی به این تاپیک نداره.نقل قول:
ولی مشکل من اینجاست که چرا بسیاری از شرکت های ایرانی از این استانداردها پیروی نمی کنند؟
در هر حال، جواب دوستمون که سوال کردن، استفاده از یک نرم افزار کنترل سورس هست که بتونه یک مخزن برای کدها فراهم کنه و از طرفی به کاربران اجازه بده به سورس ها مورد نیازشون دسترسی داشته باشند و در صورت لزوم آنها را تغییر بدند. البته این نرم افزار باید بتونه تمامی تغییرات کاربران رو ثبت کنه تا در صورت لزوم امکان برگشت اونها باشه. یکی از این نرم افزارها Source Safe هست. یکی دیگه که قبلا معرفی کردم، SubVersion هست.
http://en.wikipedia.org/wiki/Source_control
علی جان دلفی یه Team Source داره، اون چیه ؟ به درد نمی خوره ؟!!
این ابزار علاوه بر کنترل سورس در یک تیم برنامه نویسی ، می تواند به عنوان یک هماهنگ کننده برای تیم پروژه استفاده شود. از این ابزار می توانید برای نگهداری مستندات پروژه، نگهداری ساختار پایگاه داده و اسکریپت ها و حتی نگهداری فایل اجرایی برنامه استفاده شود. این ابزار در پروژه هایی که مثلا از فرآیند RUP استفاده می شود بسیار کار را ساده می کند. اما همه این ها مشروط بر این است که در مراحل آغازین پروژه،تیم پروژه به یک استاندارد و ساختار مناسب برای توسعه نرم افزار رسیده باشند. چگونگی نسخه بندی، نماد گذاری، نام گذاری، تقسیم وظائف و روند نهایی کردن هر یک از Artifact ها چیزهایی است که در همان مراحل اولیه پروژه باید بررسی و تصویب شوند.نقل قول:
Source Safe یک ابزار کنترل سورس هست.
دوست من آقای کشاورز من اولش گفتم که به نظر من، یعنی ممکنه اشتباه باشه و بزرگانی چون شما باید بر این حقیر خرده نگیرند.
پروژه ای که به صورت تیمی اجرا می شه ، آنقدر بزرگ هست که برای مدیریت آن باید از یک متدولوژی استفاده کنند. "من متخصص تحلیل و طراحی نیستم، و فقط آنچه را که از اساتیدی چون اساتید این سایت یاد گرفتم باز گو می نمایم، پس اگه در تحویل درس ها اشتباهی کردم خوشحال میشم اشاره ای داشته باشید." در این نوع پروژه ها دیگر کسی بعد از طراحی حق ایجاد تابع و کلاس و فرم به صورت دیمی رو نداره و باید براساس مستندی که بهش می دن کد بنویسه. یکی از این مستندات Class Diagram هست که تمامی اجزا فرم رو Software Architect طراحی و نامگذاری فرموده. پس نیازی نیست من برای لیبل های فرم هام lblHasan رو انتخاب کنم یا Hasan_lbl رو. کامنت نیز فقط در مواردی نیاز خواهد شد که بخواهیم بدنه یک تابع رو شرح بدیم. در این صورت دوست خوبمون جناب whitehat اشاره کرده بودن که یک سری استاندارد رو برای تیم باید تعریف کنیم. ولی در این نوع مستند ها ما نمیایم بگیم که جداول دیتابیس رو یا tbl شروع کن یا به _T ختم کن. چون این ها دست تعداد معدودی از افراد هستند. و همچنین اکثر مستندات رو از جمله فلان متد در فلان تابع چه آرگومان هایی رو میگیره و چی کار میکنه رو قبل از کد نویسی تهیه کردن و وظیفه کد نویس نیست که اون ها رو انجام بده. حتی از قبل مشخص می شه که فلان متد توسط کی و کی پیاده سازی شده.
ولی در مورد Source safe حق با شماست و من متوجه نبودم. می بخشید.
در هر صورت حق با شماست و من پست خودم رو پاک کردم.
حقیقتش من هیچوقت با Team Source کار نکردم. باید Integrity خوبی با دلفی داشته باشه. من برای پروژه هام از ترکیب SubVersion - TortoiseSVN - DelphiSVN استفاده میکنم. راضی هم هستم. SubVersion که خود نرم افزار اصلی هست. Tortoise یک رابط کاربر گرافیکی تحت ویندوز که بصورت Shell Extension هست، برای SubVersion فراهم میکنه. DelphiSVN هم یک Expert دلفی هست که یک منو در IDE دلفی ایجاد میکنه تا بشه از طریق اون با Tortoise از داخل IDE ارتباط برقرا کرد. همه شون open-source هستند.نقل قول:
دلفی یه Team Source داره، اون چیه ؟ به درد نمی خوره ؟!!
نقل قول:
دوست من آقای کشاورز من اولش گفتم که به نظر من، یعنی ممکنه اشتباه باشه و بزرگانی چون شما باید بر این حقیر خرده نگیرند.
پروژه ای که به صورت تیمی اجرا می شه ، آنقدر بزرگ هست که برای مدیریت آن باید از یک متدولوژی استفاده کنند. "من متخصص تحلیل و طراحی نیستم، و فقط آنچه را که از اساتیدی چون اساتید این سایت یاد گرفتم باز گو می نمایم، پس اگه در تحویل درس ها اشتباهی کردم خوشحال میشم اشاره ای داشته باشید."
اینجا محلی برای بحث فنی هست. اگر کسی نظری میده و دیگری اون نظر رو رد میکنه، دلیلی بر بی سوادی فرد اول، یا استادی فرد دوم نیست. همچین اینگونه بحث ها نشانه خرده گرفتند یا دشمنی نیست و ما برای ضایع کردن این و آن یا خدای نکرده به رخ کشیدن اطلاعاتمون اینجا نمیام، چرا که دست بالای دست بسیار هست! پس به بحث هایی که صورت میگیره، حتی اگر تند هم باشند، جنبه شخصی ندید.نقل قول:
در هر صورت حق با شماست و من پست خودم رو پاک کردم.
نباید پست قبلی خودتون رو پاک می کردید. الان من هم توی این فوروم پست هایی دارم که توسط سایر کاربران رد شده، یا نادرست بوده و دیگران اصلاحش کردند، یا سوالاتی بوده که الان که بهش نگاه میکنم خیلی بچگانه بودند، آیا الان باید به دلیل اشتباه بودن یا ساده بودن حذفشون کنم؟! این بحث ها باید باشه که بعدها که کاربری به این تاپیک مراجعه کرد، بدونه چه نظراتی توی این زمینه مطرح شده و فلان نظر چرا رد شده، یا نظر دیگه چرا پذیرفته شده.
موفق باشید
علی جان؛ متاسفانه راهنمای نصب نداره... چطور تونستی نصبش کنی؟نقل قول:
DelphiSVN هم یک Expert دلفی هست که یک منو در IDE دلفی ایجاد میکنه
خود SVN یا فقط DelphiSVN؟نقل قول:
علی جان؛ متاسفانه راهنمای نصب نداره... چطور تونستی نصبش کنی؟
خود SVN یک e-book کامل به عنوان راهنما داره که با خودش نصب میشه. توش نه تنها امکاناتش رو توضیح داده، بلکه سناریوهای مختلف کار با SVN رو هم قدم به قدم شرح داده.
DelphiSVN هیچ چیز خاصی نداره. همش یه Package ساده دلفی هست که باید کامپایل و نصبش کنی. البته قبل اش TortoiseSVN رو روی سیستمت نصب کن، چون DelphiSVN یک رابط برای Tortoise هست، نه یک رابط مستقیم به خود SVN.
من از لینک زیر دانلودش کردم.ولی توش فقط یه فایل exe و یه فایل dll بود!نقل قول:
همش یه Package ساده دلفی هست که باید کامپایل و نصبش کنی
http://sourceforge.net/projects/delphisvn
شرمنده، من اسمش رو اشتباه گفتم. DelphiSVN یکی از پروژه های Open-source ایی هست که برای استفاده از SVN در دلفی ایجاد شده. من با این ابزار کار نکردم و نمی دونم چطوری هست. اونی که من باهاش کار می کنم اسمش TSvnWizard بود، اما خودم اشتباها اسم پوشه اش رو گذاشته بودم DelphiSVNً!نقل قول:
من از لینک زیر دانلودش کردم.ولی توش فقط یه فایل exe و یه فایل dll بود!