نوشته شده توسط & ثبت شده در آفتاب, نرم افزار.

اصولا هر سایت اینترنتی برای اینکه بتونه فعالیت کنه احتیاج به یک نرم افزار مناسب داره. بعضی ها از نرم افزارهای Open Source برای مدیریت سایت استفاده می کنن. مثل همین وبلاگ که از wordpress استفاده میکنه. بعضی ها هم سفارش نرم افزار سایتشون رو به شرکتهای نرم افزاری میدن و اونها طبق نیاز مشتری ، سایت رو براشون آماده می کنند.

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

کار برنامه نویسی سایت آفتاب از سال 81 شروع شد. اون دوران مصادف بود با بیرون اومدن پلتفورم Microsoft .NET که یه تکنولوژی جدید در مورد تولید نرم افزار محسوب می شد. ابتدا قرار بود برای سایت آفتاب هم از اون تکنولوژی استفاده بشه. ولی چون ما از ابتدا می دونستیم که این سایت احتمالا با استقبال خوبی مواجه خواهد شد ، یک مقدار از Performance تکنولوژی جدید مایکروسافت ترسیدیم. واقعیت اینه که اون موقع سرورهای مبتنی بر Windows ، پر بودند از اشکالات امنیتی و همینطور نسبت به Linux از بازدهی خیلی خوبی هم برخوردار نبودند. این نکته هم که در اون زمان مثل الان برنامه نویس مسلط به NET. زیاد نبود در تصمیم گیری ما تاثیر داشت.

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

خلاصه اینکه در یک غروب بهاری و پس از ساعتها سر و کله زدن با دوستانی که الان خیلیهاشون دیگه بین ما نیستن ، تصمیم بر این شد که از زبان برنامه نویسی PHP ، بر روی سرور Linux استفاده بشه. از Apache HTTPD به عنوان “وب سرور” استفاده شد و از MySql برای مدیریت پایگاه داده ها.

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

خلاصه.. کار با زبان PHP شروع شد. در اون زمان هیچ کدوم از Framework هایی که امروز برای PHP موجود هستند مثل Symfony یا CodeIgniter ، وجود نداشت. ما مجبور بودیم Framework خاص خودمون رو برای انجام کارهای سیستمی مثل ارتباط با دیتابیس و ارسال Email ، بنویسیم. این کار خیلی کار آسونی نبود و احتیاج به تجربهء بالایی داشت. ولی بالاخره یه چیزی نوشته شد و سیستم بر اساس اون پیاده سازی شد. هرچند امروز، با پیشرفتهایی که در این زمینه به وجود اومده ، Framework آفتاب که در سال 81 نوشته شده خیلی خوشایند نیست و احتیاج به کار اساسی داره. صحبت بیشتر در مورد Framework ها رو هم مثل موضوع قبلی به پست های آتی موکول می کنیم.

اینم بگم که اون موقع آخرین ورژن PHP که موجود بود ، 4 و خورده ای بود و امکانات شیء گرایی PHP مثل امروز نبود. (هر چند امروز هم زیاد دلچسب نیست) ولی چیزی که بود این بود که PHP فوق العاده سریع بود (و هست) و برنامه نویسی باهاش هم راحت بود.
از همون ابتدا آفتاب به 2 بخش بزرگ تقسیم شد. بخش اول اسمش بانکهای اطلاعاتی بود ، که شامل یک سری Static Content می شد که از طریق یک سیستم CMS داخلی عرضه می شد. یادمه اون CMS جزو اولین چیزهایی بود که من در آفتاب پیاده سازی کردم. چند وقتی هست که از طریق اون CMS مطلبی به آفتاب اضافه نمیشه ، ولی مطالبی که اون موقع کار شده بود هنوز موجوده و به بیش از 40,000 عنوان مطلب میرسه.

می تونید این مطالب رو که در زمینه های هنر ، ادبیات ، بهداشت و درمان ، گردشگری و … هست ببینید.

بخش دوم بخش سرویس های آفتاب بود. سرویس های آفتاب شامل برنامه های کوچکی می شد که بر روی بستر آفتاب نوشته می شدند و هر کدام مخصوص به انجام کار خاصی بودند. اولین سرویسهایی که پیاده سازی شدند کاریابی ، نیازمندیها و فروشگاه الکترونیکی بودند. بخش سرویس ها به سرعت گسترش پیدا کرد و در کل بیش از 40 سرویس در مجموعهء آفتاب پیاده سازی شد. متاسفانه خیلی از این سرویس ها عملیاتی نشدند و یا مدتی فعال بودند و سپس کارشون متوقف شد. مثل سرویس برگزاری کنکورهای آزمایشی قلم چی در سایت آفتاب  و برگزاری دوره های زبان موسسه کیش به صورت online.

کار تولید محتوا هم با سرعت قابل توجهی در حال انجام بود. یک گروه تحقیقاتی ، درختوارهء مطالب و موضوعاتی که قرار بود در سایت بیاد رو تهیه می کرد و گروهی دیگه متشکل از اساتید دانشگاه ، منابع هر عنوان رو تهیه می کردند و با ناشرین برای کسب اجازه تماس می گرفتند. فرآیند کار در این بخش درست مثل فرآیند تولید یک کتاب بود.

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

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

۱۰ نظرات در مورد “نرم افزار سایت آفتاب چگونه نوشته شد؟”

  1. غلامرضا فغانی

    سلام
    امیدوارم سالی سرشار از رنگین کمان داشته باشید( آفتاب و باران با هم )
    نوشتید که در شروع کار php رو انتخاب کردید هنوزم رو اعتقاد خودتون هستید یا نه
    و یه سوال دیگه آیا قصد open source کردن آفتاب رو دارید ؟

    پاسخ دادن
    • مدیر سیستم

      سلام
      PHP در سال 81 بهترین انتخاب بود. ولی الان اگر بخواهیم آفتاب را دوباره بنویسیم از معماری Service Oriented استفاده خواهیم کرد تا بتوانیم از خوبیهای همهء زبانهای برنامه نویسی در سرویس های مختلف استفاده کنیم.

      پلتفورم فعلی آفتاب توانایی open source شدن را ندارد. ما هم نمی خواهیم بر روی این پلتفورم خیلی تغییرات اساسی انجام دهیم. برای ورژن جدید آفتاب شاید بتوان این کار را انجام داد. به شرط اینکه واقعا کسانی باشند که در تولید نرم افزار ما را کمک کنند.. و نه اینکه فقط بخواهند از کد استفاده کنند.
      با تشکر

      پاسخ دادن
  2. رضا

    سلام
    ممنون از نوشته هاتون.
    واقعا حسته نباشید میگم بهتون و امیدوارم یه روزی بتونین به خواسته هاتون برسین
    اگه میشه این مطلب رو ادامه بدین و بیشتر در مورد ارتباط با دیتا بیس و فرم ها هم بگین مثال هم باشه طرفدارش زیاده ها

    بازم ممنون از شما و بچه های افتاب

    پاسخ دادن
  3. حسن

    سلام…
    از اونجا که خودم علاقه مند به PHP هستم و البته بسیار تازه کار، مشاقانه منتظر مطالب بعدیتون در همین زمینه هستم… مخصوصا Framework و MySQL…
    موفق باشین.

    پاسخ دادن
    • مدیر سیستم

      سلام
      بله.. سرعت چندان مطلوب نیست.. مخصوصا توی زمان اوج ترافیک… واقعیت اینه که آفتاب به 2 تا سرور نیاز داره.. یکی برای دیتابیس و یکی هم برای وب سرور… از تابستون گذشته تا حالا به دلیل برخی مسائل از یک سرور مجبور شدیم استفاده کنیم و این توی کار تاثیر گذاشته.. علاوه بر این محل فیزیکی سرور که توی آمریکای شمالی هست.. زیاد مناسب سرویس دهی به ایران نیست و بهتره از سرور اروپایی استفاده بشه.. این مورد خیلی مهمه و تاثیر زیادی داره… با این حال ما تو این مدت هر روز سعی می کنیم با software optimization عملکرد سایت رو بهتر کنیم. به امید خدا تا چند وقت دیگه سرور رو هم عوض خواهیم کرد و باز برمی گردیم روی solution دو سروری.

      پاسخ دادن
  4. غلامرضا فغاني

    سلام
    نميدونم از دريافت كمك منظورتون چيه اما تا جايي كه ميدونم اطلاعات مربوط به سايتتون تا شما منتشر نكنيد كسي نميتونه كمكتون كنه مخصوصا تو آناليز كار براي سرويس گرا كردنش
    البته صفحه جديدي رو كه طراحي كرديد ديدم يه مقدار ديره اما بهتون تبريك ميگم AJAX ميتونه برا سايتتون مفيد باشه بهتره كه به استفاده از net. هم فكر كنيد چون خيلي ميتونه تو هدفتون كمكتون كنه
    البته شما و تيمتون بهتر ميدونيد كه چه بايد بكنيد چون با پرو‍‍‍‍‍‍ژه و محيط انجامش از نزديك درگيريد و هر آنچه كه ديگران بگن مثل فرمان لنگ كردن از بيرون گوده !
    موفق باشيد

    پاسخ دادن
  5. مریم

    باعرض سلام و خسته نباشید و تشکر از سایت خوبتون، یه سوالی از خدمتتون داشتم، من می خوام یه فروشگاه اینترنتی راه اندازی کنم، در مورد خود سایت احتیاج به کمک دارم، اول می خواستم خودم با asp بنویسم ولی چند ماه طول می کشه، خواستم نرم افزار فروشگاه رو بخرم ولی استادم گفت که اگه نرم افزار خوبی بخوای باید پول خوب بدی و نمیشه به فروشنده های اینترنتی که نرم افزار ارزون می فروشن اعتماد کرد، حالا من از شما می خوام کمکم کنید که از کجا می تونم نرم افزار فروشگاه تهیه کنم که هم قیمت پایینی داشته باشه و هم آپشن های لازم رو برای یه فروشگاه رو داشته باشه، اگر پاسخ رو به ایمیلم هم بفرستید ممنون میشم، تشکر

    پاسخ دادن

نظر شما چیست؟

  • (منتشر نخواهد شد)