Skip to content

RSCUAD-TEAM/Guidelines

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 

Repository files navigation

RSCUAD Development Rules

| RSCUAD 2021
| Rscuad Team

peraturan ini dibuat dikarenakan banyaknya penambahan baris program dan pengembangan robot disetiap tahun yang membuat program cukup berantakan, maka rule ini digunakan untuk mencoba melakukan perubahan format program sesui dengan format dari Darwin-OP sehingga program akan lebih mudah dianalisis dan rapi saat dilakukan penambahan kode secara masif.

kami merekomendasi menggunakan code editor Visual Studio Code

  • proses editing program dilakukan dikomputer pengembang jika dirobot tidak dianjurkan menggunakan vs code seperti odroid xu4.

--- Create New Program Robot

pisahkan research Rscuad dengan folder robot darwin OP2 dengan menggunakan submodule untuk library rscuad. tambahkan setiap research baru di dalam repo rscuad. penambahan hanya dilakukan dengan ijin ketua tim.

  • clone folder base OP2

      $ git clone https://github.com/R-SCUAD-PROGRESS/rscuad-base.git --recurse-submodules
      $ cd rscuad-base
    

anda dapat dengan mudah melakukan konfigurasi dengan melakukan perintah:

    $ sudo chmod 777 setup.sh
    $ ./setup.sh

--- Create New Project

  • masuk pada directory Linux/project buat nama baru dengan mengcopy folder soccer jika rule berubah

  • jika tidak lakukan workflow pada folder yang sudah tersedia seperti dibawah

      + build
      + include
      + lib
      - project
          + Soccer            -> perlombaan offline / sepak bola normal
          + Technical         -> perlombaan Technical challenge
          ....
    

--- Whitespace (tab)

Aturan pertama yang harus diikuti semua orang wajib menggunakan 'tab' karakter, dan tidak menggunakan spasi, untuk membuat indentasi kode. Juga 'tab' karakter harus mewakili 4 spasi.

--- Case style

Gunakan Pascal case untuk class dan function, gunakan Camel case untuk variable see referance

--- Braces (kurung kurawal)

pada penggunakan kurung kurawal dilakukan dibawah pernyatan (if statement) dan jika ditutup harus sejajar dengan awalan, contoh:

    if (error != -ENODEV) 
    {
        Foo();
        Bar();
    }

jika anda ingin menggunakan else statement, maka else statement tidak boleh sejajar dengan kurung kurawal sebagai berikut:

    if (error != -ENODEV) 
    {
        Foo();
        Bar();
    } 
    else 
    {
        ReportError();
        goto exit;
    }

Jika kurung kurawal tidak diperlukan untuk sebuah pernyataan, jangan menggunakannya karena itu tidak diperlukan, contoh:

    if (error != -ENODEV) 
        Foo();
    else 
        goto exit;

--- Formatting Statement

jika menggunakan terlalu banyak pernyatakan pastikan membuat fungsi baru pada sebelum fungsi main. hal ini akan memudahkan pengeliatan dalam baris program untuk identifikasi, contoh jika mengalami hal seperti ini:

    int main()
    {
            .....
        if(state1)
        {
            if(state2)
            {
                if(state3)
                {
                    if(parameterEquation)
                    {
                        if(robotEquation)
                            //do something
                    }
                }
            }
        }
    }

gunakan function untuk membuat program lebih rapi

    int Foo()
    {
        if(parameterEquation)
        {
            if(robotEquation)
                //do something
        }
    }
     
    int main()
    {
        .....
        if(state1)
        {
            if(state2)
            {
                if(state3)
                    Foo();
            }
        }
    }

--- Variable

variabel merupakan hal yang sering membuat struktur program berubah pada RSCUAD kita coba kembalikan sesuai dengan Framework Darwin-OP yaitu menggunakan bahasa inggris dan nama yang sesuai dengan keperluan variable

    const int threshold = 250;  
    float approach = 0;

gunankan tipe data yang sesui dengan kebutuhan. jika hanya digunakan untuk trigger yang bernilai true dan false maka cukup gunakan boolean;

    bool trig = false;

--- Initial style.

deskripsikan variable pada header library program, kemudian deskripsikan nilai pada construction library lihat disini

file header.h

    class Header 
    {        
        public: 
            .....
            .....
        private:
            int yAxis; 
            int xAxis; 
    };

file header.cpp

    int Header::Header()
    : yAxis(0)
    , xAxis(0)
    {
    }

--- Comment

komentar digunakan untuk mendeskripsikan algoritma atau program yang kondisinya perlu dideskripsikan gunakan perintah /* ... untuk mendiskripsikan suatu algoritma tertentu dan // untuk variable. gunakan komentar yang jelas pada setiap algoritma sehingga mudah dipahami. komentar diperbolehkan menggunkan bahasa indonesia.

    const int threshold = 250;  // const digunakan untuk nilai ketetapan
    float approach      = 0;    // konstanta nilai awal

    /*
     *   algoritma dribling
     */
    if(pan != threshold)
        Foo();

--- Pattern

gunakan pola DRY Principle untuk mengurangi program yang tidak diperlukan. contoh menggunakan perulangan.

    /*
     *   Tidak disarankan
     */
    servoPan = 5;
    servoPan = 10;
    servoPan = 15;
    servoPan = 20;


    /*
     *   disarankan
     */
    for(int i=5; i<=20; i+5)
        servoPan = i;

gunakan fuction atau library jika sebuah kondisi yang digunakan terus menerus

    void Foo()
    {
        X_MOVE_AMPLITUDE = 10;
        Y_MOVE_AMPLITUDE = 15;
    }
    ....
    int main()
    {
        ......
        Foo();
    }

--- GIT

GIT adalah sebuah vcs(version control system) digunakan untuk melakukan log dan kolaborasi dalam tim. Tutorial git dapat dilihat disini.

 -- pengembangan robot untuk mode
jika melakukan pengembangan robot dengan mode-mode tertentu untuk pertandingan yang sama. pengembang 
diharuskan menggunakan branch untuk membuat environment sendiri sehingga tidak ada perubahan saat
melakukan pengembangan di mode lain.
    $ git branch mode2
    $ git checkout mode2

hanya seperti itu. jika ingin melihat branch seperti ini:

    $ git branch
    >    master
       * mode2

tanda * berarti project kita poda branch tersebut.

NOTE

jika melihat program tidak sesuai format, maka pengembang wajib memperbaiki dan mengkompile terlebih dahulu selanjutkan melakukan update commit dengan nama "format adjustment" dengan cara sebagai berikut.

    $ git add .
    $ git commit -m "# format adjustment"
    $ git push origin master

wiki

About

Panduan pengembangan software

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published