ورود

View Full Version : طراحی یک CMS



ARC
چهارشنبه 29 دی 1389, 12:46 عصر
سلام
میخواستم یه CMS طراحی کنم و به صورت رایگان در اختیار همه قرار بدم گفتم قبلش با شما دوستان یه مشورتی کنم.
شاید اولش چیزی خوبی در نیاد ولی تصمیم دارم که روش کار کنم شاید سال های بعد هم ازش پولی در بیارم. حالا ممنون میشم راهنمایی کنید؟
1. روی چه چیزایی واسه شروع کار کنم ؟ (بهتره چه بخش هایی رو اول داشته باشه؟)
2. به نظر شما به صورت متن بازش کنم؟ یا نه سورسش دست خودم باشه ؟ با دلیل بگید.
3. اگر انگلیسی باشه میتونه موفق بشه با این همه CMS هایی که در حال حاضر هست؟
4. اگر جواب سوال 2 متن باز هست از کدام مجوز استفاده کنم بهتره و چرا؟

cybertoos
پنج شنبه 30 دی 1389, 07:05 صبح
ضمن عرض سلام و خسته نباشید
به نظر من برای طراحی و پیاده سازی یک cms از صفر شما باید کل پروژه رو به دو فاز کلی تقسیم کنید: فاز اول ساخت فریم ورک و دوم اپلیکیشن cms.
این دو فاز لزوما نباید پشت سر هم باشند یعنی شما لازم نیست یک فریم ورک در حد کیک یا زند یا سمفونی (در حوزه PHP) آماده کنی بعد نوشتن app رو شروع کنی.میشه تعریف حداقلی برای فریم ورک ارایه داد و بعد از آماده سازی حداقلی هر دو(فریم ورک و app) هم زمان توسعه پیدا کنند.
از کتابخانه های پایه : Database , User , Session و ... .
الگوی استارت شما باید : سیستم بلاگ مثل وردپرس
هدف گذاری میان مدت : سیستمی مثل جوملا
هدف گذاری دراز مدت : تکنولوژی های نوین و بکر

۲ - اگر در حال حاضر منبع درآمد قابل اطمینانی داری من شدیدا توصیه می کنم که به صورت اوپن سورس منتشرش کنی البته دو راه داری:
کاملا اوپن سورس : روش درست - هزینه ای اولیه چندانی نمی خواد - دیربازده تره اما اگه قوی کار کنی زودبازده تر- آماده سازی API در حد متوسط(البته در حد نرم جهانی) و انتشار اون
سورس بسته : احتیاج به سرمایه اولیه بالا جهت بازاریابی - API در حد MSDN لازم داره و ... .
هدف گذاریت کل فضای سایبر باید باشه چون اگر زبان پیش فرض انگلیسی باشه دو خاصیت داره : اول اینکه مشتری(user) هزار برابر میشه و دوما طرف حساب شما چه user و چه همکار developer واقعی میشن البته قبول دارم هزار برابر کارت سخت تر میشه..
۳- اگه قوی کار کنی میشه. این همه بحث هایی که چه توی این فروم و چه فرومهای دیگه با این مضمون که:
بچه ها بیاید یه نرم افزار اوپن سورس بنویسیم رو حتما دیدی و دیدی که هیچ کدومشون به نتیجه ای نرسیدن تا خودشون شروع نکردن. به خاطر اینه که اگر در زمینه اوپن سورس ایرانی فعالی داریم همه چراغ خاموش حرکت میکنن.(فرهنگش جا نیفتاده!!!)
۴- با توجه به تجربه ای که دارم من GPL رو پیشنهاد می کنم چون آزادتره اما بستگی به نقشه های خود شما داره شاید LGPL برای شما بهتر باشه یا MIT

تاکیدات ویژه : تهیه Software Model و نقشه راه هرچند به صورت ساده - تهیه API و مستندات قوی - چراغ خاموش حرکت نکن

پیشنهاد ویژه : من هم یه کارایی کردم (PHP) اما ظاهرا شما توی یک بعد دیگه زندگی می کنی (.NET) پس هیچی... .

پیشنهاد می کنم که کار رو از صفر شروع نکنیم یعنی یک فریم ورک رو از صفر ننویسیم و به جاش بر روی فریم ورکهای موجود cms بنویسیم مثلا باید اطلاع داشته باشی که با کیک cms خوبی تا حالا ننوشتن.و اینکه باید توجه کنی که محصول در هر مرحله باید هم User Friendly و هم Developer Friendly باشه. کاربری آسان برای کاربر و راحتی نوشتن پلاگین و کامپوننت و پوسته برای توسعه دهنده با استفاده از API و Manual و Documentation قوی.

سخن آخر : خیلی خیلی خیلی سخته ... اما موفق باشی.

ARC
جمعه 01 بهمن 1389, 18:14 عصر
سلام
خیلی ممنون از راهنمایی شما.
در مورد پیشنهاد شما باید بگم بنده بنا به دلایلی (مثلا کسب تجربه و علاقه به دا نت و ...) میخوام با دات نت پروژه رو بنویسم. ممنون میشم در مورد این موارد هم نظر بدید:
1. چرا خودتون پروژه رو کامل نمی کنید؟
2. به نظر شما اگر CMS رو فعلا به صورت کاملا رایگان ارائه بدم تا زمانی که کامل بشه و بعد فقط بابت امکانات جدید هزینه بگیرم بازم میتونه موفق باشه؟
3. منبعی برای مشخص کردن روش کار و .. رو میشناسید؟

cybertoos
دوشنبه 04 بهمن 1389, 06:19 صبح
سلام دوباره
۱- این که گفتم خوبه بتونیم با هم همکاری کنیم معنیش این نبود که خودم کار رو انجام نمیدم دلیل : اولا همونطور که گفتم «شروع» نوشتن پروژه های بزرگ به تنهایی مشکلی نداره اما اصرار به سرانجام رسوندنش به تنهایی کاملا اشتباست و ثانیا میخوام برخلاف موج موجود حرکت کنم و نقشی هر چند کوچک در فرهنگ سازی کار گروهی (Teamwork) داشته باشم.مخاطب صحبتهای من علاوه بر شما تمام کسانی که میخوان در حوزه FOSS فعالیت کنن و حتی کسانی که کدبسته پولی کار می کنند و حداقل دغدغه رشد صنعت نرم افزار ایران رو دارن رو شامل میشه.
۲- بهترین سناریو همین هست.
۳- منبع مجتمع و کاملی در این زمینه حتی توی وب انگلیسی هم نیست مگر چند مقاله در رابطه با Software Entrepreneurship و یا موضوعاتی از این قبیل.
چند تا نکته در این مورد که همین الان به ذهنم رسید:

۱- لزومی به ایجاد یک سیستم اینترپرایز از صفر وجود نداره شما می تونی از یک سیستم جامع موجود Fork بزنی(نمونه تو حوزه کاری خودم: جوملا فورک شده مامبو هست که خیلی ازش جلو افتاده)
۲- روش دوم جمع آوری و مجتمع سازی کتابخانه های Standalone و غیر Standalone موجود هست.
۳- شما می تونی با چند تا Developer دیگه به توافق برسی که هر کدوم یک کتابخانه به خصوص رو حتی شده از صفر بنویسید و بعد از یک مرحله مشخص به صورت مجتمع شده و مولتی لایسنس منتشر کنید و منبع درآمد رو متمرکز بر پشتیبانی و خدمات ارزش افزوده قرار بدید.

نکته : دقت کن که در تمام موارد بالا انتخاب لایسنس بسیار حائز اهمیته.

به اشتراک گذاری تجربه :
۱- استفاده از Design Pattern های معروف و پرکاربرد به علاوه خلاقیت و نوآوری در معرفی پترنهای جدید به Community
۲- شئ گرایی به معنای واقعی کلمه + MVC
۳- ارتباط موثر و آسان با توسعه دهنده (Developer Friendly) به ویژه جهت ساخت برنامه های الحاقی
۴- سیاست گذاری رابط کاربری آسان (User Friendly) منظور سیاست ریشه ای سیستم هست(بعضی از سیستم های موجود رو فقط باید از صفر نوشت تا درست بشن) + سیاست طراحی UX
۵- تهیه API قوی که به خصوص به مورد ۳ کمک می کنه.
۶- تهیه Documentation قوی که به مورد ۴ کمک می کنه

یک درد دل :
خیلی خلاصه بگم من سیستم مدیریت محتوایی رو که نوشتم پیش همه طیف آدمی بردم و ازشون نظر خواستم ولی هیچ کدوم هیچ ارزشی نه برای شخص خودم و نه برای سیستمی که نوشته بودم قائل نشدند در نگاه اول تعریف و تمجید اما وقتی بحث قیمت می رسید (مشتری) می گفت گرونه - نمی خوام - والسلام.در حالی که من خیلی کمتر از ارزش کار و نزدیک به عرف معقول تر بازار قیت می دادم.
دید همکار هم از کد بسته کارهای مایکروسافتی گرفته تا متعصبین (خونی) اوپن سورسی(گنویی - لینوکسی و ... ) هم یک شکل بود بهترین صحبتی که شنیدم از یک اوپن سورسی : تا وقتی جوملا هست مگر من دیوانه ام بیام از سیستم شما استفاده کنم حتی!!!! اگه رایگان و اوپن سورس باشه!!!!!!!!!
اما من صبر می کنم خدا بزرگه ... شما هم مواظب باش همونطور که گفتم خیلی خیلی خیلی .... سخته اما موفق باشی.

امیدوارم محصولی تولید کنید که علاوه بر اینکه افتخاری(و صد البته با منفعت خوب!!!!) برای خودتون باشه عزت و آبرو برای ایران به ارمغان بیاره.

ARC
دوشنبه 04 بهمن 1389, 13:07 عصر
سلام
بازم ممنون جناب cybertoos از رهنمایی هایی که کردین. در مورد همکاری اگر کاری از دستم بر بیاد خوشحال میشم که بتونم انجام بدم. البته بگم من ASP.net کار می کنم و همون طور که قبلا در این انجمن هم گفتم تازه کارم نه که هیچی ندونم 1 سالی هست دارم کار می کنم ولی تا به اون سطحی که خودم در نظر دارم نرسم خودم رو یک تازه کار میدونم بگذریم.

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

در مورد ایم موضوع:

یک درد دل :
خیلی خلاصه بگم من سیستم مدیریت محتوایی رو که نوشتم پیش همه طیف آدمی بردم و ازشون نظر خواستم ولی هیچ کدوم هیچ ارزشی نه برای شخص خودم و نه برای سیستمی که نوشته بودم قائل نشدند در نگاه اول تعریف و تمجید اما وقتی بحث قیمت می رسید (مشتری) می گفت گرونه - نمی خوام - والسلام.در حالی که من خیلی کمتر از ارزش کار و نزدیک به عرف معقول تر بازار قیت می دادم.
دید همکار هم از کد بسته کارهای مایکروسافتی گرفته تا متعصبین (خونی) اوپن سورسی(گنویی - لینوکسی و ... ) هم یک شکل بود بهترین صحبتی که شنیدم از یک اوپن سورسی : تا وقتی جوملا هست مگر من دیوانه ام بیام از سیستم شما استفاده کنم حتی!!!! اگه رایگان و اوپن سورس باشه!!!!!!!!!


باید بگم که اصلا در حال حاضر به فکر فروش نیستم مخصوصا در ایران که کسی حاضر نیست بابت برنامه پول بده و حتی CMS ها و نرم افزار های ایرانی هم اگر خوب باشن بازم کسی پول بابتش نمیده و کرک میشن.
در این مورد که فرمودید با وجود جوملا حتی اگر بازم رایگان بدیم دیگران استفاده نمی کنن من با این طرز فکر کاملا مخالفم که طرز فکر اکثر ما ایرانی هاست اگر اینجوری بود گوگل یا فایرفاکس مرورگری تولید نمی کردن چون مایکروسافت داشت مرورگر خودش رایگان به همه می داد یا سایت bing ساخته نمی شد چون گوگل تمام نت رو گرفته یا چرا نمونه خارجی از همین کرکر های خودمون یه سرچ کنید ببینید چند تا سایت دانلود داریم و ماهیانه چندتا درست میشه و همه هم بازدید دارن و ... پس این طوری فکر نکنید و هدفتون رو مشخص کنید و به حرف این طور افراد که نه خودشون کاری میکنن و نه اجازه میدن دیگران کار کنن( موج منفی ) گوش ندید.

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

موفق باشید

ARC
دوشنبه 04 بهمن 1389, 13:07 عصر
ممنون میشم بقیه دوستان هم نظرشون رو بگن.

eshpilen
دوشنبه 04 بهمن 1389, 19:47 عصر
همون طور که قبلا در این انجمن هم گفتم تازه کارم نه که هیچی ندونم 1 سالی هست دارم کار می کنم ولی تا به اون سطحی که خودم در نظر دارم نرسم خودم رو یک تازه کار میدونم بگذریم.

اتفاقا بنده میخواستم بپرسم میزان تخصص و تجربهء عملی شما چقدر هست که میخواید یک CMS درست کنید. چون بنظرم کار گسترده ای باشه که نیاز به تخصص و تجربهء کاملی داره. البته شایدم اونقدری که بنده فکر میکنم سخت نیست.
اما هنوزم با این صحبتهای شما نفهمیدم دقیقا توان عملی فعلی شما در چه حدی هست.
میشه بگید تاحالا چه پروژه هایی انجام دادید و بنظرتون کار روی یک CMS چقدر سخته و چقدر طول میکشه کامل کردنش؟


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

نرم افزارهای انحصاری، گرچه رایگان، در دنیای امروز ارزشی ندارن.
بنظرم این پتانسیل درمورد نرم افزارهای وب حتی کمتر هم هست؛ اونم وقتی یک فرد یا شرکت بی نام و نشان اونو درست کنه که بنظرم نمیتونه براحتی اونم در بار اول چیزی از آب دربیاد که کسی به نرم افزارهای آزاد قوی و باکیفیتی که وجود دارن ترجیحش بده.
ضمنا بازمتن موجب رشد علمی خود آدم میشه.
شما از بازمتن یاد میگیرید. هم علم رو و هم فرهنگ رو. و میبینید که کدهای من و شما دربرابر عظمت این علم و دستاوردهاش و کارهایی که آزاد و بازمتن ارائه شدن واقعا هیچی نیست. تازه حتی به جایی هم که برسیم، احتمالا به کمک همین بازمتن و دانش آزاد رسیدیم و احساس میکنیم باید دین خودمون رو بهش ادا کنیم.
خلاصه من فکر نمیکنم در نرم افزار انحصاری در این شرایط هیچ مزیت و پتانسیلی وجود داشته باشه. اونایی هم که شما میگید اکثرا نرم افزارهاشون بازمتن هست. رایگان بودن به افزایش کاربر کمک میکنه، اما بازمتن بودن هم باز دوچندان کمک میکنه و ضمنا وارد وادیهایی میشه که دست هیچ نرم افزار انحصاری ای بهش نمیرسه.
بنظر من اگر دنبال پیشرفت فنی و علمی و کسب اعتبار واقعی در سطح جهانی هستید، راهی جز یا بهتر از بازمتن نیست. ولی اگر دنبال پول هستید، خب چرا چنین پروژه ای و چرا حیطهء وب؟ چون در این حیطه ها هم نرم افزار بازمتن فراوان هست و هم کنترل کدمنبع و عدم استفادهء غیرمجاز خیلی دشوارتره.


در مورد کار تیمی باید بگم من هم دوست دارم کار تیمی کنم ولی متاسفانه در ایران نمیشه هر بار که یه تیم برای هر کاری از طراحی، تحقیق و یا راه اندازی یه کار را انداختم با این که تمام هزینه هارو هم خودم دادم ولی بعد یه مدت هر کسی یه دلیلی پیدا کرده که از زیر کار دربره و تیم بعد از یه مدت از هم پاشیده یا بهترین حالتش این بوده که کار می کردن ولی اصلا کسی به حرف من گوش نمیده و هر کسی واسه خودش کار میکنه و یه کار 10 روزه 2 ماه طول میکشید تا تموم بشه و به نتیجه برسه به این خاطر هست که گفتم فعلا از صفر خودم یه چیزی بسازم تا بعد ببینم چی میشه البته این رو هم بگم من نرم افزار ها و سیستم هایی رو هم دیدم که خارجی بودن و مشهور که یک نفره ساخته شدن درسته سخت میشه ولی نتیجه میده.
البته کار تیمی در اینجا مشکله با شرایط و فرهنگی که هست. منم کار انفرادی رو خیلی عملی تر میبینم.
اما یک شرط مهم دیگه برای کار تیمی بنظر من اینه که باید تمام یا حداقل چند نفر از اعضاء تیم متبحر و حرفه ای باشن و جدی؛ و شاید مشکل اصلی همین باشه.
ضمنا رهبر تیم هم واقعا باید در سطحی نباشه که بگه من هنوز تازه کارم. اینطوری که نمیشه رهبری کرد. رهبر باید اینقدر توان و جذبه و جسارت داشته باشه که همه جدیش بگیرن و به تشخیص و هدفش کمتر شک کنن. شاید حداقل در یک تیم باید چند نفر اینطور باشن.
اونایی که میگن تیم آخه کدوم تیم اصلا؟! برنامه نویسی و کار تیمی که بچه بازی نیست!! آیا اون اعضاء و رهبر تیم واقعا در سطح علمی و شخصیتی کافی بودن؟ منکه شک دارم. اینجا چند نفر آدم با همهء این خصوصیات رو نمیشه براحتی پیدا کرد. در مثلا آمریکا اگر میشه، چون اونجا مرکز علم و فناوری هست و از اینطور آدمها زیاده. اونی که میخواد بره دنبال عیاشی میره، و دانشمندان و متخصصان و خبره های واقعی هم هستن و دنبال علاقمندیها و اهداف خودشون میرن. اما اینجا درهم و نابسامان هست اوضاع و دو تا آدم درست و حسابی رو نمیشه گیر آورد و دور هم جمع کرد. بالاخره اینقدر هم باید وقت و انرژی و خیال راحت و مایه داشته باشن بتونن روی چیزی که مورد علاقشون هست سرمایه گذاری کنن. بنده فکر میکنم اکثر کارهایی که موفق میشن، فقط به شکل وظیفه و برای پول نیستن. آدمهایی که به این سطح میرسن، حتی اگر کارمند باشن و این کارها جزیی از شغلشون باشه، بالاخره توان علمی خودشون رو با کلی علاقه و فراقت بدست آوردن.
منابع انسانی و غیرانسانی ما خیلی کمتر از اونهاست.
بخاطر همین فکر میکنم اینجا کار فردی احتمال عملی شدن خیلی بیشتری داره.
البته امیدوارم در آینده ظرفیت بیشتری برای کارهای تیمی هم ایجاد بشه.
بهرحال بنظرم کار تیمی وقتی هست که یک جامعه از نظر علمی به شکوفایی و استقلال بالایی میرسه.