<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>剁椒鱼头 &#187; 代码</title>
	<atom:link href="http://www.yanghui.org/tag/code/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yanghui.org</link>
	<description>像随时要离开一样准备好，像永远要留下来一样用心</description>
	<lastBuildDate>Tue, 31 Jan 2012 13:35:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>分与合</title>
		<link>http://www.yanghui.org/2008/11/15/128.html</link>
		<comments>http://www.yanghui.org/2008/11/15/128.html#comments</comments>
		<pubDate>Fri, 14 Nov 2008 17:28:38 +0000</pubDate>
		<dc:creator>Felix</dc:creator>
				<category><![CDATA[软件开发]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[软件工程]]></category>
		<category><![CDATA[面向对象]]></category>

		<guid isPermaLink="false">http://www.becxo.com/?p=128</guid>
		<description><![CDATA[“话说天下大势，分久必合，合久必分。“ &#8212;-《三国演义》里的卷首语 键盘上有两个键C和V，而Ctrl+C和Ctrl+V是用电脑的人几乎每天都要用到滴，从事软件开发的软件工程师每天用的最多就是键盘鼠标了，而对于软件开发来说CV式的开发早已在面向过程时代就已经被抛弃。 下午跟同事讨论了一些现在开发的一个项目中问题，涉及到如何对现存的CV式的开发模式做一个改进操作。 现阶段我们开发绩效管理软件，由于管理软件的特殊性，会有很多的雷同的表单在系统中流转，为了交互的友好性在这些表单呈现的时候会加上一些其他的信息。如考核过程中最常见的部门和人员的考核表单，在系统看来几乎一样，而为了交互的友好性界面呈现就会有一些差距。就拿打分这环节来看，在打分环节，用户会用到两个页面，一个显示被考核对象的List页面，一个显示每个被考核人每条指标打分想的Detail页面。现在的模式是，现开发测试部门模块，等测试过了后，就会CV一份用到员工模块，添加一些员工模块的比如员工所在岗位所隶属的部门等信息。先不谈这种CV的方式是否符合面向对象的规则、是否丑陋等，单从代码的维护角度来看，比如List页面希望再添加或去除一列非控制字段，至少需要修改两处。更大的噩梦来了，在审核、审批的环境同样使用这个List页面，这样一来修改的地方久更多了。 针对这种CV方式带来的不便，我曾经尝试将这些共同的部分单独抽取成一个一个方法，以供调用（抽取成方法而不是类是由于框架对类的继承有很多的限制），可这种实现亦不是很优雅，将显示的逻辑放到了业务中。 今天讨论得出的结果基本跟我曾经尝试的方式雷同，某种程度上只是对原有的CV模式的一个规范而已。 想到前一阵子学习的ASP.net MVC的框架中，将数据绑定直接写在.ASPX页面上，给了我一些启示，虽然没用到MVC框架，是否也能将现有用于显示的Grid、Grid前的表头等信息做成一个一个控件（ascx），控件中会设定一些参数，根据这些参数来直接访问数据库，返回需要显示的信息，这样就将变化的源头控制在了这个ascx上，一来能已很少的成本来调整显示信息，二来可以将部分的显示逻辑从业务逻辑中分离，三来对以后的控件升级扩展也能更方便。 下阶段将尝试做一个Demo来实现这一想法。]]></description>
			<content:encoded><![CDATA[<blockquote><p>“<font color="#0000ff">话说天下大势，分久必合，合久必分。</font>“</p>
<p>&#8212;-《三国演义》里的卷首语</p>
</blockquote>
<p style="padding-left: 30px;" mce_style="padding-left: 30px;"></p>
<p style="padding-left: 30px;" mce_style="padding-left: 30px;">键盘上有两个键C和V，而Ctrl+C和Ctrl+V是用电脑的人几乎每天都要用到滴，从事软件开发的软件工程师每天用的最多就是键盘鼠标了，而对于软件开发来说CV式的开发早已在面向过程时代就已经被抛弃。</p>
<p style="padding-left: 30px;" mce_style="padding-left: 30px;">下午跟同事讨论了一些现在开发的一个项目中问题，涉及到如何对现存的CV式的开发模式做一个改进操作。</p>
<p style="padding-left: 30px;" mce_style="padding-left: 30px;">现阶段我们开发绩效管理软件，由于管理软件的特殊性，会有很多的雷同的表单在系统中流转，为了交互的友好性在这些表单呈现的时候会加上一些其他的信息。如考核过程中最常见的部门和人员的考核表单，在系统看来几乎一样，而为了交互的友好性界面呈现就会有一些差距。就拿打分这环节来看，在打分环节，用户会用到两个页面，一个显示被考核对象的List页面，一个显示每个被考核人每条指标打分想的Detail页面。现在的模式是，现开发测试部门模块，等测试过了后，就会CV一份用到员工模块，添加一些员工模块的比如员工所在岗位所隶属的部门等信息。先不谈这种CV的方式是否符合面向对象的规则、是否丑陋等，单从代码的维护角度来看，比如List页面希望再添加或去除一列非控制字段，至少需要修改两处。更大的噩梦来了，在审核、审批的环境同样使用这个List页面，这样一来修改的地方久更多了。<img src="http://www.becxo.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" mce_src="http://www.becxo.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" class="mceWPmore mceItemNoResize" title="更多……"></p>
<p style="padding-left: 30px;" mce_style="padding-left: 30px;">针对这种CV方式带来的不便，我曾经尝试将这些共同的部分单独抽取成一个一个方法，以供调用（抽取成方法而不是类是由于框架对类的继承有很多的限制），可这种实现亦不是很优雅，将显示的逻辑放到了业务中。</p>
<p style="padding-left: 30px;" mce_style="padding-left: 30px;">今天讨论得出的结果基本跟我曾经尝试的方式雷同，某种程度上只是对原有的CV模式的一个规范而已。</p>
<p style="padding-left: 30px;" mce_style="padding-left: 30px;">想到前一阵子学习的ASP.net MVC的框架中，将数据绑定直接写在.ASPX页面上，给了我一些启示，虽然没用到MVC框架，是否也能将现有用于显示的Grid、Grid前的表头等信息做成一个一个控件（ascx），控件中会设定一些参数，根据这些参数来直接访问数据库，返回需要显示的信息，这样就将变化的源头控制在了这个ascx上，一来能已很少的成本来调整显示信息，二来可以将部分的显示逻辑从业务逻辑中分离，三来对以后的控件升级扩展也能更方便。</p>
<p style="padding-left: 30px;" mce_style="padding-left: 30px;">下阶段将尝试做一个Demo来实现这一想法。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yanghui.org/2008/11/15/128.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

