더 알기 쉬운 코드를 쓰다

3238 단어 코드
코드를 쓰거나 수정하는 횟수가 읽는 횟수보다 훨씬 낮다.여러 사람이 합작하는 환경에서 가독성이 좋은 코드는 적지 않은 시간을 절약할 수 있다.자신이 쓴 코드가 기술적인 리더 리뷰에 의해 작성될 때 코드의 가독성과 깔끔함은 다른 사람들이 보는 심미와 소양을 반영한다.좋은 인코딩 습관을 기르면 자신의 개발 효율을 높일 뿐만 아니라 불필요한 해석과 이로 인한 마찰도 피할 수 있다.1 전역 변수의 성명 프로그램의 모든 전역 변수는 하나의 클래스에 넣을 수 있다. 예를 들어 글로벌이라고 이름을 짓고 프로그램 입구에서 초기화할 수 있다.일부 입구로 들어가는 데 값이 있는 변수가 필요하면 정적 변수로 정의합니다.2 클래스를 자세하게 정의하는 방법인public형의 함수는 좋은 정의가 있어야 한다. 함수 이름과 파라미터 목록은 모두 의미가 명확해야 하며 적당한 주석을 붙이고 파라미터 이름을 생략해서는 안 된다.private형의 함수는 대외적이지 않기 때문에 매개 변수의 이름을 생략할 수 있다.이 점은 매우 관건적이다. 이것은 인터페이스를 향한 프로그래밍 사상을 구현했다.3가지 종류의 헤더 파일에는 설명 클래스의 정의 파일이 있어야 하며, 이 클래스의 설명 문자인 클래스의 기능, 방법의 기능을 포함해야 한다.마치 사용 설명서와 같다.
아래의 이 종류의 정의는 만약 주석이 없다면, 너는 매우 힘들게 알아볼 수 있을 것이다
//  Map  



	//IDispatchImplMapImpl

		//Created On :2013-3-20

		//class OBJ_T:    

		//class T:      

		//             , Map       。Delete      

		// Key1   map   key

		// Key         ,         ,      tstring    Key,     ,Key1     Key      

		// Add:insert    

		// GetCount :       

		// GetValue   Key   

		// GetValueLine:  iterator     

		// Clear:     ,  Map



template <class Key1,class Key,class OBJ_T, class T, const IID* piid, const GUID* plibid = &CComModule::m_libid, WORD wMajor = 1,

WORD wMinor = 0, class tihclass = CComTypeInfoHolder>

class ATL_NO_VTABLE IDispatchImplMapImpl : public IDispatchImpl<T, piid, plibid, wMajor, wMinor, tihclass>

{

public:

	~IDispatchImplMapImpl() { Clear(); }



private:



	std::map<Key1, OBJ_T*> m_mapParam;



public:

	//  

	STDMETHOD(Add)(Key key,OBJ_T* obj)

	{

		ATLASSERT(obj != NULL);

		obj->AddRef();

		Key1 strRealkey = key;

		m_mapParam.insert(std::make_pair(strRealkey, obj));

		return S_OK;

	}

	

	//    

	STDMETHOD(GetCount)(/*[out, retval]*/ long *pVal)

	{

		*pVal = m_mapParam.size();

		return S_OK;

	}



	STDMETHOD(GetValue)(Key key, OBJ_T** obj, /*[out, retval]*/ BOOL *pVal)

	{

		ATLASSERT(obj != NULL);

        *pVal = FALSE;

		Key1 findstr = key; 

		std::map<Key1, OBJ_T*>::iterator ite = m_mapParam.find(findstr);

		if(ite != m_mapParam.end()){

			*obj =  ite->second;

			(*obj)->AddRef();

			*pVal = TRUE;

		}

		return S_OK;

	}

	STDMETHOD(GetValueLine)(Key key, OBJ_T** obj, /*[out, retval]*/ BOOL *pVal)

	{//         

		*pVal = FALSE;

		Key1 findstr = key; 

		std::map<Key1, OBJ_T*>::iterator ite = m_mapParam.begin();

		for(;ite != m_mapParam.end();ite++){

			if(ite->first == findstr){

				*obj =  ite->second;

				(*obj)->AddRef();

				*pVal = TRUE;

				break;

			}

		}

		return S_OK;

	}

	//    

	STDMETHOD(Clear)()

	{

		OBJ_T* element = NULL;

		map<Key1,OBJ_T*>::iterator ite = m_mapParam.begin();

		for(ite; ite != m_mapParam.end(); ite++){

			element = ite->second;

			if(element){

				element->Release();

			}

		}

		m_mapParam.clear();

		return S_OK;

	}

};


4중괄호 정렬
void fun()

{

	if()

	{

		if()

		{



		}

	}

}



void fun()

{

	if(){

		if(){



		}

	}

}


 
이 두 가지 방법은 모두 일치하고 깔끔한 코드 스타일을 가져올 수 있다.만약 VC 개발을 사용한다면 아래의 이런 효율이 더욱 높고 코드도 더욱 치밀하게 될 것이다.읽기 쉬운 성질은 양자 차이가 많지 않다.만약 하나의 파일이 매우 크다면, 아래의 방식을 채택하면 줄 수를 효과적으로 줄일 수 있다.
 

좋은 웹페이지 즐겨찾기