صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 59

نام تاپیک: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

  1. #1
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    سلام
    همون طور که در اعلانات همین تالار مشاهده میفرمایید, بنده مدتی هست که روی یک فریمورک مدیریت محتوا کار میکنم که با لایسنس GPL V3 منتشر شده.
    از دوستانی که علاقه مند به مشارکت هستند تقاضا دارم در صورت تمایل در توسعه این پروژه کمک کنند.

    در حال حاضر برای موارد زیر نیاز به کمک هست:
    • با توجه به انتخاب زبان انگلیسی برای این سیستم نیاز به ترجمه رشته ها به زبان فارسی هست که در سایت CROWDIN قرار داره.
    • با توجه به نزدیک شدن به انتشار اولین نسخه بتا از سیستم . نیاز به نوشتن پلاگین های کاربردی هست که بتوان در پروژه های واقعی از سیستم استفاده کرد.
    • داکیومنت نویسی : اکثر سورس ها با داکیومنت های لازم نوشته شدند و حالا نیاز هست این راهنما ها در یک مکان برای استفاده بقیه گردآوری بشه.
    • چک کردن سیستم:دوستانی که در ضمینه امنیت کار کردند میتونند سیستم رو از لحاظ امنیتی چک و باگ ها رو گزارش یا فیکس کنند
    • پیشنهاد پلاگین جدید:لازم نیست که برای مشارکت حتما کد نویس باشید, و فقط با پیشنهاد پلاگین هایی که به نظرتون لازم و ضروریه به ما کمک کنید.
    • و موارد دیگه ای که دوستان به ذهنشون میرسه .


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

    لینک تایپینگ پروژه در سایت GITHUB

  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    سلام

    همتتون رو تحسین می کنم، کار خوبی رو شروع کردید، اگر هیچ چیزی براتون نداشته باشه، کمترینش، تجربه با ارزشش هست!
    ادامه بدید

  3. #3
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    يعني واقعا کسی نیست؟

  4. #4

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    متأسفانه توی ایران یا افراد اینقدر تازه کار هستن که نمیتونن همکاری کنن یا تخصص دارن که درگیر پروژه هستن و نمیرسن. من خودم حداقل تا 6 ماه دیگه فرصت نمیکنم به پروژه ملحق بشم ولی از شما میخوام مسیرتون رو ادامه بدین. بعد از اینکه گرفتاریهای کاریم برطرف شد من هم به پروژه ملحق میشم. تا اینجا سورس کدها رو بررسی کردم و بنظرم یکسری تغییرات ساختاری بنیادی باید توی کدها بوجود بیاد. خیلی جاها رو میشه به شکل خیلی بهینه تری پیاده سازی کرد. تقریباً میشه گفت از امکانات خاص شئ گرایی مثل رابطها، کلاسهای abstract، وراثت و... که جزو ملزومات ساخت یک پروژه بزرگ در حد و اندازه های یک فریمورک محسوب میشه، هیچ استفاده جدی توی پروژه نشده. همچنین از ابزارهایی مثل Unit Test و... که باعث میشه اگه کسی بخواد همکاری کنه هم روند کار کند بشه و ناسازگاریهایی در خیلی بخشها پیش بیاد.

  5. #5
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

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

  6. #6
    کاربر دائمی آواتار meysam1366
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    ایران/تهران
    پست
    448

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    سلام دوست عزیز

    بنده در مقابل اساتید اینجا شاگردی بیش نیستم و هر روز در حال یادگیری و افزایش علمم هستم و اگر کمکی از دستم بر بیاد دریغ نمی کنم

    در خدمتتون هستم

    موقق باشید

  7. #7
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    ممنونم. شما در چه ضمینه هایی تمایل به همکاری دارید؟

  8. #8
    کاربر دائمی آواتار meysam1366
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    ایران/تهران
    پست
    448

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    من پی اچ پی کار می کنم مقداری هم ام وی سی کار کردم و لاراول

    ولی در آینده ای نزدیک کاملا میرم سراغ ام وی سی و فریمورک ها در حال حاضر مشغله کاریم اجازه نمیده

  9. #9
    کاربر دائمی
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    جزیره مارماری
    پست
    1,137

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    هر کمکی تو کد نویسی از دستم بر بیاد انجام میدم.میتونید رو کمکم حساب کنید

  10. #10

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    همونطور که حدس میزدم، کدها نیاز به اصلاحات زیادی داره. امروز یکم وقت کردم یکی از کلاسها رو چک کردم (cls/core_cls_db_mysql.php) و به این شکل تغییرش دادم (از تغییرات در نامگذاری تا روند صدازدن متدها و کامنت گذاری که لازمه کار تیمیه) :
    <?php
    namespace core\cls\db;
    use core\cls\patterns as patterns;

    /**
    * MySQL DB Wrapper
    */
    class MySQL
    {
    use patterns\singleton;
    /**
    * @var object The PDO Object
    */
    private $pdoObj;

    /**
    * @var object The PDO statement prepared from the given query
    */
    private $query;

    /**
    * @var resource The result of query execution
    */
    private $result;

    /**
    * Constructor
    */
    function __construct()
    {
    try {
    $this->connect();
    }
    catch(PDOException $e) {
    echo 'Error in query execution!<br />Reason: ' . $e->getMessage();
    exit;
    }
    }

    /**
    * Execute a query
    * @param string $query The query to be executed
    * @param array $params (Optional) The parameters needed to execute the query
    * @return false|resource The query result on success, false otherwise
    */
    public function query($query, $params = array())
    {
    if($this->pdoObj == null) {
    $this->connect();
    }
    try {
    if($query == '') {
    return false;
    }
    #perpare query string from security
    $this->query = $this->pdoObj->prepare($query);
    #going to do query

    if(empty($params)) {
    $this->result = $this->query->execute();
    }
    else {
    $this->result = $this->query->execute($params);
    }
    return $this->result;
    }
    catch(PDOException $e) {
    echo 'Error in query execution!<br />Reason: ' . $e->getMessage();
    exit;
    }
    }

    /**
    * Execute the query with parameter binding based on parameter type
    * @param string $query The query to be executed
    * @param array $params (Optional) The parameters needed to execute the query
    * @return false|resource The query result on success, false otherwise
    */
    public function typedQuery($query, $params)
    {
    if($this->pdoObj == null) {
    $this->connect();
    }
    try {
    if($query == '') {
    return false;
    }
    $this->query = $this->pdoObj->prepare($query);
    foreach($params as $index => $param) {
    $type = ($param[1] == 'integer' ? \PDO::PARAM_INT : \PDO::PARAM_STR);
    $this->query->bindValue($index + 1, intval($param[0]), $type);
    }
    $this->result = $this->query->execute();
    }
    catch(PDOException $e) {
    echo 'Error in query execution!<br />Reason: ' . $e->getMessage();
    exit;
    }
    }

    /**
    * Get the last auto-increment ID generates for insert queries
    * @return int The last ID generated automatically by DB engine
    */
    public function lastInsertId()
    {
    return $this->pdoObj->lastInsertId();
    }

    /**
    * Get the result query as an object
    * @return object The result query as an object
    */
    public function fetchObject()
    {
    try {
    $result = clone($this->query);
    $result->setFetchMode(\PDO::FETCH_OBJ);
    return $result;
    }
    catch(PDOException $e) {
    echo 'Error in quary execution!<br />Reason: ' . $e->getMessage();
    exit;
    }
    }

    /**
    * Get the result query as an associative array
    * @return object The result query as an associative array
    */
    public function fetchArray()
    {
    try {
    $result = clone($this->query);
    $result->setFetchMode(\PDO::FETCH_ASSOC);
    return $result->fetchAll();
    }
    catch(PDOException $e) {
    echo 'Error in quary execution!<br />Reason: ' . $e->getMessage();
    exit;
    }
    }

    /**
    * Get the first row as an associative array
    * @return false|array The first row as an associative array
    */
    public function queryOne()
    {
    $result = $this->fetchArray();
    return (count($result) > 0 ? $result[0] : false);
    }

    #ths function return number of rows that return in last query
    /**
    * Get the row count of the last executed query
    * @return false|integer The row count on successful query execution, false otherwise
    */
    public function rowCount()
    {
    if($this->query) {
    return false;
    }
    return $this->query->rowCount();
    }
    //this function create pdo_obj to database
    /**
    * Connect to DB engine
    */
    private function connect()
    {
    $options = array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'utf8\'');
    $this->pdoObj = new \PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME , DB_USER, DB_PASS, $options);
    $this->pdoObj->setAttribute( \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION );
    }

    /**
    * Disconnect from DB engine
    */
    private function disconnect()
    {
    $this->pdoObj = null;
    $this->query = null;
    }

    /**
    * Export the database
    * @return int The result of export operation (0: success, 1: warning, 2:error)
    */
    public function export()
    {
    $command = 'mysqldump --opt -h ' . DB_HOST .' -u ' . DB_USER .' -p ' . DB_PASS . ' ' . DB_NAME .' > ' . AppPath . 'upload/buffer/database.sql';
    $output = array();
    exec($command, $output, $result);
    return $result;
    }

    /**
    * Import the database
    * @param string $filename
    * @return int The result of export operation (0: success, 1: warning, 2:error)
    */
    public function import($filename)
    {
    if(!file_exists($filename)) {
    return false;
    }
    $command = 'mysql -h ' . DB_HOST . ' -u ' . DB_USER . ' -p ' . DB_PASS . ' ' . DB_NAME . ' < ' . $filename;
    $output = array();
    exec($command, $output, $result);
    return $result;
    }
    }

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

  11. #11
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    به نظرتون اول روی ویرایش هسته فریمورک کار کنیم و مستند سازی ها رو به مرور تکمیل کنیم یا اینکه فعلا همینجوری قابلیت ها رو بیشتر کنیم و بعدا که به نقطه دلخواه رسیدیم سورس های قدیمی رو ویرایش کنید.
    ابتدا لازم هست که کارها به صورت متمرکز انجام بشه بر همین لطفا ابتدا در github ثبت نام و از پروژه فورک بگیرید و بعد از هر تغییر درخواست pull بفرستید روی مخزن اصلی.این کار باعث میشه تغییرات هر فردی نسبت به بقیه روی سورس کد ها قابل مشاهده باشه.
    بعد از این کار به نظرم دوستان روی تغییراتی که جناب آقای شهرکی فرمودند یعنی داکیومنت نویسی بهتر و ویرایش سورس ها کار کنیم.
    اگر موافقید به ترتیب از کلاس های کتابخانه ای که در پوشه core\lib\cls قرار دارند شروع کنیم .البته هر کلاسی رو انتخاب کردید اینجا ذکر کنید دوستان دیگه و بنده دیگه روش کار نکنیم و دوباره کاری نشه.
    یه خاطره ای هم یادم افتاد این بود که حدود 2 سال پیش که کار رو شروع کردم اولین کلاسی که نوشتم همین کلاس ,mysql بود که امروز با دوباره مطالعه کردن کد هاش یاد اون زمان افتادم.

  12. #12
    کاربر دائمی
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    جزیره مارماری
    پست
    1,137

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

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

  13. #13
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    بنده هم نظرم همین هست که ابتدا هسته بازنویسی بشه و سپس به جوانب پرداخته بشه. در این مدت هم علاوه بر ویرایش هسته روی قابلیت های جدید کار خواهم کرد که در آینده بشه حداقل وب سایت پروژه با همین فریمورک ساخته بشه. پلاگین blog که تقریبا غیر از ویرایش پست ها بقیه مواردش تکمیل شده در همین راستا بوده.
    به نظرم با یه گروه 2-3 نفره هم میشه کار رو شروع کرد که انشالله در گذر زمان افراد بیشتری اضافه بشن.
    در بحث ترجمه فارسی هم غیر از بنده دو نفر دیگر از کاربران هم همین الان در سایت crowdin فعالیت دارند.
    پس جناب Mohammadsgh و meysam1366 لطفا برای شروع ابتدا حساب کاربریتون رو روی github برای بنده ارسال کنید که در پروژه نام کاربریتون رو اضافه کنم که بعد از اون انشالله بتونیم روی یه مخزن واحد کار کنیم.همچنین استفاده از سایت github باعث میشه با ویرایش هسته بتونیم بخش ویکی رو هم تکمیلتر کنیم که برای افرادی در آینده اضافه میشن روند آشنایی با سیستم سریعتر بشه.

  14. #14
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    http://reza.biz
    پست
    858

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

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

    لذا اینکه برای شروع نسخه اول شروع کنید به جمع آوری گروه و پیاده سازی اولیه ، کارتون خیلی خیلی سخت میشه و از هم گسیختگی پیش میاد و شاید در میانه راه اصلا کار متوقف بشه (کاری که ما برای یک فریم ورک چند سال پیش در انجمن ایران پی اچ پی استارت زدیم و هیچ وقت تموم نشد)

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

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

  15. #15
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    به نظر شخص بنده (اگر مهم باشه برای کسی :) )
    قطعا نظر شما و همه ی کاربران دیگه برای بنده مهم بوده و هست. بنده در مدت دو سال تا جایی که میتونستم پروژه رو تا یه جاهایی رسوندمکه نتیجه رو همین الان از آدرس sarkesh.org میتونید مشاهده کنید . نسخه های خیلی اولیه شی گرا نبود و اصلا نمیشد باهاش وب سایت ساخت ولی به مرور بنده سعی کردم نواقص رو مرتفع کنم و این در حالی بود که واقعا گروهی وجود نداشت و بنده فقط خودم بودم.
    البته معیار برای نسخه اولیه که بنده در ذهن دارم امکانات پایه ای برای راه اندازی یک وب سایت ساده هست که تا آخرین کامیت پروژه سیاست بر همین اساس بوده.
    مورد بعدی که لازم هست ذکر کنم این هست که پروژه ای که داریم CMF هست و قرار نیست چیزی شبیه Yii و prado ... باشه و تمرکز اصلی برای ارائه ابزارهایی در هسته هست که توسط اون بشه محتواهای مختلف رو کنترل و مدیریت کرد و مثل فریمورک های موجود که فراگیر و از اجرا شدن در شل تا نمایش خروجی روی مرورگر رو در بر میگیره نیست.
    اگه با نام کاربری و کلمه عبور test در وب سایت دمو لاگ این کنید و به بخش مدیریتش برید میبینید که حداقل امکانات در نظر گرفتته شده و ابزار ها همگی در جهت تولید و مدیریت محتوا در نظر گرفته شدن. از طرفی این سیستم یه حرف جدید برای گفتن داره و اونم اینکه توسعه دهنده برای اجرای برنامش با تکنولوژی آیجکس هیچ نیازی به دانش javascript نداره و استایل دهی هم با بوت استرپ انجام میشه. یعنی توسعه دهنده با تنها چیزی که کار میکنه php هست . سیستم طوری طراحی شده که مثلا جایی که تکست باکس نیاز دارید فقط یه شی ازش میسازید و روی خروجی میفرستید و بقیه مسائل رو برنامه کنترل میکنه و همچنین میتونید به کنترل های html رویداد php نسبت بدید که این نقطه اوج ماجرا هست.

  16. #16
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    (کاری که ما برای یک فریم ورک چند سال پیش در انجمن ایران پی اچ پی استارت زدیم و هیچ وقت تموم نشد)
    همچنین در صورت امکان تجربه توسعه راسپینا رو هم با ما در میون بزارید که قطعا میتونه مفید باشه .

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

  17. #17
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    http://reza.biz
    پست
    858

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    مورد بعدی که لازم هست ذکر کنم این هست که پروژه ای که داریم CMF هست و قرار نیست چیزی شبیه Yii و prado ... باشه و تمرکز اصلی برای ارائه ابزارهایی در هسته هست که توسط اون بشه محتواهای مختلف رو کنترل و مدیریت کرد و مثل فریمورک های موجود که فراگیر و از اجرا شدن در شل تا نمایش خروجی روی مرورگر رو در بر میگیره نیست.
    CMF با توجه به ماهیتی که دارد باید هم فریم ورک بود هم cms که خیلی پیچیده تر هست
    به نظرم به سمت CMS برید که کاربر نهایی با دانش پایین هم بی نصیب نماند از سیستم .

    در مورد سایر صحبت هاتون هم فقط میتونم آرزوی موفقیت کنم و اینکه راه سختی در پیش دارید و همچنین معذرت میخوام که بدلیل مشغله نمیتونه باهاتون همکاری کنم .
    انشاالله موفق باشید .

  18. #18
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

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

  19. #19
    کاربر دائمی آواتار ABZiko
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    مشهد
    پست
    860

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    بنده در حال حاضر فقط می تونم در بخش ترجمه کمک تون کنم، لطفا بفرمائید باید از کجا شروع کنم(توی crowdin هم حساب دارم)

  20. #20
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    بنده در حال حاضر فقط می تونم در بخش ترجمه کمک تون کنم، لطفا بفرمائید باید از کجا شروع کنم(توی crowdin هم حساب دارم)
    سلام
    ار همکاریتون سپاسگذارم .
    نام کاربریتون رو بفرمایید که به گروه اضافه کنم

  21. #21
    کاربر دائمی آواتار ABZiko
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    مشهد
    پست
    860

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    ABZiko همین!

  22. #22
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    نام کاربریتون رو اضافه کردم.احتمالا باید به ایمیلتون مراجعه و تایید کنید.
    لینک پروژه هم در سایت crowdin
    https://crowdin.com/project/sarkesh
    میتونید شروع کنید.
    مجددا سپاسگذارم

  23. #23
    کاربر دائمی آواتار ABZiko
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    مشهد
    پست
    860

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    خواهش می کنم، این حرف رو نزنید.

  24. #24
    کاربر دائمی آواتار ABZiko
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    مشهد
    پست
    860

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    ببخشید یک سوال باید کدوم یک از اون فایل ها رو ترجمه کنم؟

  25. #25
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    نقل قول نوشته شده توسط ABZiko مشاهده تاپیک
    ببخشید یک سوال باید کدوم یک از اون فایل ها رو ترجمه کنم؟
    fa_IR.po

    البته به صورت هفتگی رشته های جدید رو به این فایل اضافه میکنم و همیشه درصد ترجمش متغییره.این فایل در پوشه
    languages\fa_IR\LC_MESSAGES
    داخل پروژه قرار داره که الان روی گیت هاب هست

  26. #26
    کاربر دائمی آواتار ABZiko
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    مشهد
    پست
    860

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    ممنون، تا به حال حدود 20 کلمه رو ترجمه کردم.

  27. #27
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

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

  28. #28
    کاربر دائمی آواتار ABZiko
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    مشهد
    پست
    860

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    بله خیلی عالی هست.

  29. #29
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

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

    برای مثال سورس زیر رو در نظر بگیرید:
    این سورس در فایل core\lib\cls\core_cls_db_mysql.php قرار داره

    //this function import sql file to database
    //warning: first of all check permission for use this function
    //any change with this function can not undo
    public function import_from_file($filename){
    if(file_exists($filename)){
    $command='mysql -h' . DatabaseHost .' -u' . DatabaseUser .' -p' . DatabasePassword .' ' . DatabaseName .' < ' . $filename ;
    //run mysql program
    exec($command,$output=array(),$result);
    return $result;
    }
    else{
    //file not found
    return null;
    }
    }


    خوب بهترین راه اینه که ایتدا داکیومنت ها و نام متغییر ها تغییر داده بشه به صورت زیر (تغییر کد آقای شهرکی)
     /**
    * Import the database
    * @param string $filename
    * @return int The result of export operation (0: success, 1: warning, 2:error)
    */
    public function import_from_file($filename)
    {
    if(!file_exists($filename)) {
    return false;
    }
    $command = 'mysql -h ' . DatabaseHost . ' -u ' . DatabaseUser . ' -p ' . DatabasePassword . ' ' . DatabaseName . ' < ' . $filename;
    $output = array();
    exec($command, $output, $result);
    return $result;
    }


    خوب اگه دقت کنید توضیحات به صورت خلاصه و مفید درباره کارکرد تابع اومده و پارامتر های ورودی و خروجی و نوع هر کدوم ذکر شده و توضیحات اضافی هم پاک شده .در اینجا نام تابع تغییر نکرده و کارکردش هم همون هست.فضاهای خالی و فاصله ها همگی پاک شدن و مورد آخر هم متغییر های استاتیک هم تغییر نمیکنن مثلا متغییر DatabaseName همون نام قبلی رو داره.

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

  30. #30
    کاربر دائمی آواتار meysam1366
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    ایران/تهران
    پست
    448

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    سلام مجددبه نظر بنده همین روشی که شما فرمودید خوبه و میتونیم از IDE هایی مثل phpstorm استفاده کنیم که این کار رو خودکار انجام میده

  31. #31

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    بهتره بجای اسامی مثل import_from_file از ساختار importFromFile استفاده کنید یا اگه میبینید import و export فقط با فایل انجام میشه، میشه بجای importFromFile یا exportToFile از اسامی خلاصه تر import و export استفاده کنید. با توجه به تکرار زیاد اسامی متدها توی کدهایی که قراره با این هسته نوشته بشن، بهتره تا جایی که میشه و به خوانایی و مفهوم لطمه نمیزنه، از اسامی کوتاه و با معنا استفاده کنید تا به کاهش حجم و افزایش خوانایی سورس کدی که با این محصول تولید میشه کمک کنید. توی یک فریمورک خوب فقط خوانایی و مستندسازی سورس کدهای داخلیش مهم نیست (چون فقط بدرد توسعه دهندگان میخوره) و خوانایی کدهایی که بعداً با کمک اون ساخته میشه هم به همون اندازه اهمیت داره.

  32. #32
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    بهتره بجای اسامی مثل import_from_file از ساختار importFromFile استفاده کنید یا اگه میبینید import و export فقط با فایل انجام میشه، میشه بجای importFromFile یا exportToFile از اسامی خلاصه تر import و export استفاده کنید. با توجه به تکرار زیاد اسامی متدها توی کدهایی که قراره با این هسته نوشته بشن، بهتره تا جایی که میشه و به خوانایی و مفهوم لطمه نمیزنه، از اسامی کوتاه و با معنا استفاده کنید تا به کاهش حجم و افزایش خوانایی سورس کدی که با این محصول تولید میشه کمک کنید. توی یک فریمورک خوب فقط خوانایی و مستندسازی سورس کدهای داخلیش مهم نیست (چون فقط بدرد توسعه دهندگان میخوره) و خوانایی کدهایی که بعداً با کمک اون ساخته میشه هم به همون اندازه اهمیت داره.
    قطعا موردی که فرمودید روش استاندارد و اصولی هست و php-fig هم این روش رو پیشنهاد داده ولی با توجه به تعداد اعضا گروه ( در ترجمه 4 نفر و در برنامه نویسی 2 نفر) که محدود هست ابتدا با همین روش پیش بریم و پس از اتمام ریویو اولیه توابع جدید که نام گذاری اصولی دارن رو اضافه کنیم. و به مرور زمان توابع با نام گذاری غیر اصولی رو از دور خارج کنیم .البته همین حالا هم میشه این کار رو کرد.مثلا در مورد کدی که عرض کردم به شکل زیر تغییر داده بشه.

        /**
    * Import the database
    * @param string $filename
    * @return int The result of export operation (0: success, 1: warning, 2:error)
    */
    public function import($filename)
    {
    return $this->import_from_file($filename);
    }
    /**
    * Import the database
    * @param string $filename
    * @return int The result of export operation (0: success, 1: warning, 2:error)
    */
    public function import_from_file($filename)
    {
    if(!file_exists($filename)) {
    return false;
    }
    $command = 'mysql -h ' . DatabaseHost . ' -u ' . DatabaseUser . ' -p ' . DatabasePassword . ' ' . DatabaseName . ' < ' . $filename;
    $output = array();
    exec($command, $output, $result);
    return $result;
    }


    که به مرور با تغییر کد توابع با نام گذاری استاندارد بشه اونا رو جایگزین کرد. و توابع قدیمی رو از سورس ها حذف کرد.این کار یه خوبی داره و اونم اینکه پلاگین هایی که تا حالا نوشته شدن بدون مشکل به کارشون ادامه میدن و پلاگین های جدید که اضافه میشن با نام گذاری جدید نوشته میشن و بعد از رسیدن به یه نقطه ای در پروژه پلاگین های قدیمی رو اصلاح و نام گذاری های قدیمی رو کلا حذف کرد.
    آخرین ویرایش به وسیله morrning : شنبه 25 بهمن 1393 در 13:46 عصر دلیل: اضافه شدن آقای شهرکی به تیم ترجمه

  33. #33

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    برعکس بنده معتقدم همین اول کار اگه ساختار نامگذاری و درج کامنت و... رو اصلاح کنید بهتره چون به مرور با بزرگ شدن پروژه، هم به مشکل عادت کردن به اسامی قبلی بر میخورین و هم اینکه تغییردادن اسامی و کامنتها و... خودش یک مسئله بزرگ خواهد بود چون IDEها اینقدر هم توی تغییر نام و Refactoring هوشمند و قوی عمل نمیکنن و ممکنه بعضی جاها با خطا مواجه بشین. همین کلاس db و orm رو من اومدم تغییر دادم (از Refactor هم استفاده کردم) باز بعضی جاها بهم ریخت و به مشکل برخورد کردم (ممکنه اون فراخوانی متدی که تغییر نام داده میشه، مال این کلاس نباشه و متد یک کلاس دیگه صدا زده شده باشه و درنتیجه با تغییر نام خودکار، مشکل پیش میاد).

  34. #34
    محروم شده
    تاریخ عضویت
    مرداد 1393
    پست
    219

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    بهتره بجای اسامی مثل import_from_file از ساختار importFromFile استفاده کنید
    چرا بهتره؟!

  35. #35

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    چون هم خلاصه تره، هم با ساختار استاندارد جهانی که توی همه پروژه ها مورد استفاده قرار میگیره سازگارتره. ضمن اینکه ساختار camelCase توی همه IDEها شناخته شده است و برای مثال، توی NetBeans وقتی با Ctrl و جهتهای چپ و راست توی متن بصورت کلمه به کلمه حرکت میکنید، فرضاً اگه کلمه exportToFile رو درنظر بگیریم، مکان نما روی حروف e و T و F توقف میکنه.

  36. #36
    محروم شده
    تاریخ عضویت
    مرداد 1393
    پست
    219

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    چون هم خلاصه تره، هم با ساختار استاندارد جهانی که توی همه پروژه ها مورد استفاده قرار میگیره سازگارتره. ضمن اینکه ساختار camelCase توی همه IDEها شناخته شده است و برای مثال، توی NetBeans وقتی با Ctrl و جهتهای چپ و راست توی متن بصورت کلمه به کلمه حرکت میکنید، فرضاً اگه کلمه exportToFile رو درنظر بگیریم، مکان نما روی حروف e و T و F توقف میکنه.
    ممنون از اطلاعاتتون، ولی پس چرا بیشتر توابع وردپرس به این صورت نوشته نشده؟ بیشتر به صورت "import_from_file" هست.

  37. #37

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    وردپرس ابداً کدنویسی استاندارد و خوبی نداره (منظورم استانداردهای روز هست). علت اینکه تغییرش نمیدن هم همین مسئله است که خیلیها درطول سالهایی که وردپرس وجود داشته به سبک کدنویسی قبلی اون عادت کردن و اگه بخوان به هسته دست بزنن، صدها و شاید هزاران پلاگین که امروزه برای وردپرس وجود داره یک مرتبه از کار میفته. این مسئله، همون مشکلی هست که من برای این فریمورک نوپا (سرکش) نگرانش هستم و برای همین تأکید دارم از همین اول طبق استانداردهای روز کار بشه تا بعداً مثل وردپرس به جایی نرسه که تغییردادن و استانداردکردنش مقرون به صرفه نباشه.

  38. #38
    کاربر دائمی آواتار hamedarian2009
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    گرگان
    پست
    1,691

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    نقل قول نوشته شده توسط n0o0b_sina مشاهده تاپیک
    ممنون از اطلاعاتتون، ولی پس چرا بیشتر توابع وردپرس به این صورت نوشته نشده؟ بیشتر به صورت "import_from_file" هست.
    این قوانین به سلیقه تیم توسعه دهنده اون برنامه میتونه متفاوت باشه ولی خود تیم توسعه دهنده php روش underscore_case رو توی نامگزاری توابع و متغیرها استفاده میکنه و توی شی گرایی و نام متدها از روش camelCase.
    اگه به مستندات php در وبسایت رسمیش مراجعه کنید متوجه میشین

  39. #39
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

    نقل قول نوشته شده توسط hamedarian2009 مشاهده تاپیک
    این قوانین به سلیقه تیم توسعه دهنده اون برنامه میتونه متفاوت باشه ولی خود تیم توسعه دهنده php روش underscore_case رو توی نامگزاری توابع و متغیرها استفاده میکنه و توی شی گرایی و نام متدها از روش camelCase.
    اگه به مستندات php در وبسایت رسمیش مراجعه کنید متوجه میشین
    البته به نظر من خود php هم مثل وردپرس دچار این مشکل شده چون توی هر نسخه سعی میکردن از نسخه قبلی پشتیبانی کنن و به قول آقای شهرکی الان مثلا نام یک تابع رو تغییر بدن کلی برنامه تو سراسر دنیا از کار میفته.ولی واقعیتش اینه غیر از استاندارد بودن این روش بنده هم وسط این دو راهی موندم چون خودمم که اولین خط این برنامه رو شروع کردم شیوه نام گذاریم تبعیت از روش نامگذاری خود php بود.

  40. #40
    کاربر دائمی آواتار morrning
    تاریخ عضویت
    تیر 1387
    محل زندگی
    کرمانشاه
    پست
    599

    نقل قول: تشکیل گروه برای پروژه متن باز (SarkeshMVC)

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

    ۱- نبود داکیومنت استاندارد برای استفاده سایر توسعه دهندگان
    ۲-نبود استاندارد در شیوه نام گذاری متغییر ها (PHP Fig)
    ۳-حذف redbeanphp از کل سیستم و جایگزینی با کلاسی که در آینده خواهم نوشت.
    ۴-استفاده از الگوی های برنامه نویسی و اضافه شدن کش به دیتابیس

    دلیل شماره ۳: این کلاس برای کار با پایگاه داده بسیار عالی هست ولی یک مشکل بزرگ داره و اونم اینکه برای هر بازدید با یک درخواست از بانک اطلاعاتی حدود ۱.۲ مگابایت از رم رو مصرف میکنه و در بازدید های بالا سربار زیادی ایجاد میکنه و این خلاف سیاست اولیه برای تولید این فریمورک هست.از طرفی مقداری از هسته و پلاگین های جانبی از این کلاس استفاده میکنند به همین دلیل بنده تصمیم گرفتم همین شیوه و نامگذاری در redbeanphp رو حفظ و فقط ساختار ها رو تغییر بدم که مقدار مصرف منابع رو پایین بیارم.

    دلیل شماره ۴:اضافه کردن و استفاده از الگو های برنامه نویسی بیشتر در سیستم هست که به شدت بهینگی رو بالا میبره.در حال حاضر فقط از الگوی singleton استفاده شده.

صفحه 1 از 2 12 آخرآخر

تاپیک های مشابه

  1. تشکیل گروه برای ساخت ادامه دیکشنری + سورس دیکشنری
    نوشته شده توسط M_P_1374 در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 13
    آخرین پست: جمعه 28 تیر 1392, 14:37 عصر
  2. تشکیل گروه برای یادگیری Directx
    نوشته شده توسط amsjavan در بخش طراحی و ساخت بازی‌های کامپیوتری
    پاسخ: 83
    آخرین پست: جمعه 17 خرداد 1392, 13:26 عصر
  3. تشکیل گروه برای ترجمه کتاب Introduction to 3D Game Programming with DirectX 10
    نوشته شده توسط mahdi1373 در بخش طراحی و ساخت بازی‌های کامپیوتری
    پاسخ: 12
    آخرین پست: چهارشنبه 13 مرداد 1389, 17:48 عصر
  4. دقیق‌ترین و سریع‌ترین تبدیل تاریخ شمسی برای VB - متن‌باز و آزاد
    نوشته شده توسط AMIBCT در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: پنج شنبه 07 شهریور 1387, 13:18 عصر
  5. تشکیل گروه برای برسی یک سری تکنولوژی ها
    نوشته شده توسط persia boy در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: پنج شنبه 29 آذر 1386, 10:44 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •