慢羊羊的空间

无为,无我,无欲,居下,清虚,自然

程序的编写风格(代码格式)可以随心所欲

很多文章都阐述了编写程序时“代码格式”的重要性,甚至还有些硬性的规定。当然,这篇文章并不是否定格式的重要性,初学者甚至应该十分注重格式才对。

但是另一方面,编写程序还应该注重整体,通过代码格式展现出整体的结构。这里举一个例子,EasyX 网站有一个变幻线的源代码:
http://www.easyx.cn/samples/View.aspx?id=42

其中有几行代码是很长的,并且违反了很多条“代码格式”的规定,这里转过来这几行:

	// 判断顶点是否越界
	if		(m_head->pos.x < 0)			{ m_head->pos.x = -m_head->pos.x;				m_step.x =  rand() % MAXSTEP + 1;	}
	else if (m_head->pos.x >= WIDTH)	{ m_head->pos.x -= m_head->pos.x - WIDTH + 1;	m_step.x = -rand() % MAXSTEP - 1;	}
	if		(m_head->pos.y < 0)			{ m_head->pos.y = -m_head->pos.y;				m_step.y =  rand() % MAXSTEP + 1;	}
	else if (m_head->pos.y >= HEIGHT)	{ m_head->pos.y -= m_head->pos.y - HEIGHT + 1;	m_step.y = -rand() % MAXSTEP - 1;	}

如果按照标准格式来编写,应该是这样的:

	// 判断顶点是否越界
	if (m_head->pos.x < 0)
	{
		m_head->pos.x = -m_head->pos.x;
		m_step.x = rand() % MAXSTEP + 1;
	}
	else if (m_head->pos.x >= WIDTH)
	{
		m_head->pos.x -= m_head->pos.x - WIDTH + 1;
		m_step.x = -rand() % MAXSTEP - 1;
	}
	
	if (m_head->pos.y < 0)
	{
		m_head->pos.y = -m_head->pos.y;
		m_step.y = rand() % MAXSTEP + 1;
	}
	else if (m_head->pos.y >= HEIGHT)
	{
		m_head->pos.y -= m_head->pos.y - HEIGHT + 1;
		m_step.y = -rand() % MAXSTEP - 1;
	}

现在请大家比较一下这两段代码,看看哪个更清晰?不仅如此,再点开原文的链接看看源代码,将两者分别替换入原文再看看哪个更清晰?

毫无疑问,是前者更清晰,前者不仅明确显示出几行代码的异同,还很整齐的体现出在全文中这几行所起的作用。

这就是我想说的“随心所欲”的代码编写风格。语言的表述程度有限,还望仔细体会。

分享到

添加评论