본문 바로가기
개발이야기

함수이름 SetDeviceData에 대해서

by ictlab 2012. 10. 11.


  

bool SetDeviceData( bool get, int iPkIdx)
{

    if( iPkIdx > NUM_OF_PICKER )
    {
        LOG_PRINTFW("INSP",L"Set Device Index[%d] Over Check", iPkIdx );
        return false;
    }

    //---------------------------------------------------------------------------
    // ���� ����
    if( get )  // ������ ���
    {

        XEdit *apE[]=
        {
            F_SS->E_Dv1,
            F_SS->E_Dv2,
            F_SS->E_Dv3,
            F_SS->E_Dv4,
            F_SS->E_Dv5,
            F_SS->E_Dv6,
            F_SS->E_Dv7,
            F_SS->E_Dv8,
            F_SS->E_Dv9,
            F_SS->E_Dv10,
            F_SS->E_Dv11,
            F_SS->E_Dv12,
            F_SS->E_Dv13,
            F_SS->E_Dv14,
            F_SS->E_Dv15,
            F_SS->E_Dv16,
        };

        for ( int i=; i<NUM_OF_PICKER ; i++)
        {
            Dev[i].DeviceType = (DEVICE_STATUS)apE[i]->GetInt();
            DM_X->m_iLoadingCount++;
            if( F_SS->CB_Idle->XChecked )
                Dev[i].HaveDevice=true;
        }
    }
    else  // �ٶ�
    {
        if( iPkIdx < 0 )
        {
            for ( int i=; i<NUM_OF_PICKER ; i++)
                SORT::Dev[i] = Dev[i];
        }
        else
        {
            SORT::Dev[iPkIdx] = Dev[iPkIdx];
        }
    }

    return true;
}
     


어느 프로젝트의 시퀀스 소스에서 사용하는 함수이다.

이 함수 이름만 봤을때 SetDeviceData라는  함수가 무슨 기능을 하는것인지 잘 이해가 되는가?


사소하지만 함수 이름때문에 소스 분석하는 사람이 힘들어진다.
함수 이름이 SetDeviceData()이고  파라메터 이름에 get이란것이 있으니..  함수 정의 자체에 Set과 get이라는 반대 개념의 단어가  동시에 들어가 있는 상태이다.
이런 경우 함수의 이름만 봤을때는 이 함수가 뭘하려는건지 의도가 혼란 스럽기 때문에
아예 함수를 별도로 분리하거나 함수 이름을 변경하는것이 났지 않을까 한다.

기능을 봤을때는 MoveDeviceData()나 CopyDeviceData() 정도의 함수 이름이 더 어울리지 않을까?



이 블로그는 소스 코드를 분석하다가 떠오른 생각, 느낌, 의견 등을 올린것입니다. - 이성열 - 2012.10.11