财务管理资料2023年整理-多币种资金.docx
《财务管理资料2023年整理-多币种资金.docx》由会员分享,可在线阅读,更多相关《财务管理资料2023年整理-多币种资金.docx(6页珍藏版)》请在第壹文秘上搜索。
1、多币种资金瑞士法郎美元1.5源币种兑换币种我们就从Ward在WyCash相关系统中创建的多币种资金(multi-currencymoney)这个对象(参见“导言”)开始谈起吧。假设我们有这样的一个报表:票据股份股价合计IBM10002525000为了使其变成一个多币种的报表,我合计GE40010040()00合计65()00们需要加上币种单位:票据股份股价IBM100025美元25000美元当然,我们还需要为此指定汇率Novartis400150瑞士法郎60000瑞士法郎合计65000美元(exchangerate):汇率当瑞士法郎与美元的兑换率为2:1的时候,5美元+10瑞士法郎=IO美元5
2、美元*2=10美元我们要怎么做才能产生上面经过修订的报表呢?或者说,哪些测试一旦通过,就能够说明目前我们信赖的这些代码可以正确地计算出报表了呢? 在假设已经给定汇率的情况下,要能对两种不同币种的金额相加,并将结果转换为某一种币种;3要能将某一金额(每股股价)与某一个数(股数)相乘,并得到一个总金额。为此,我们将建立一个计划清单(to-doIisi)以提醒我们需要做哪些事情,它将使我们始终保持注意力集中,同时它也可以告诉我们什么时候可以完工。当我们开始某一项工作时,我们用粗体来表示它,就像这样。当我们完成某项工作时,我们将其划去,就像这样。如果我们想起其他要做的测试,就将其加入清单。正如前面的计
3、划清单所讲的一样,我们就从实现乘法这个功能开始。那么,我们首先需要建立什么对象呢?什么对象也不需要。记住,我们不是从建立对象开始,而是从测试开始。(我一直都在提醒自己注意这个相关问题,希望你也能时刻记住提醒自己。)既然如此,那么我们首先应该进行什么测试呢?清单中的第一个测试看起来很复杂,我们需要从比较简单的开始。第二个测试不过是实现乘法功能而已,能难到哪儿去呢?我们就从它开始吧。在编写测试的时候,我们总是为我们的操作设想最完美的接口(interface)我们总是告诉自己这些操作在外界看来应该是个什么样子,尽管很多时候我们的设想并不能化为现实,最好是从一种尽可能优秀的应用编程接口(叩PIiCat
4、iOnPrograminterface,API)开始,然后再倒着进行设计,这要比从一开始就把一切都搞得很复杂、拙劣而“现实”好。下面是一个关于乘法功能的简单实例:publicvoidtestMultiplication()Dollarfive*newDollar(三);five.Vi三es(2);assertEquals(l,five.amount);)我知道,我知道!这段代码有很多相关问题:公共域相关问题,副作用相关问题,货币金额用整数来表示的相关问题,等等。别急,一步一步来。我们将这些毛病记录下来,然后继续前进。显然,测试没有通过,但是我们希望测试能够尽快到达可运行状态(greenbar)
5、当瑞上法郎与美元的兑换率为2:1的时候,5美元+10瑞士法郎=10美元5美元*2=10美元将“amount”定义为私有DOlIar类有副作用吗?钱数必须为整数?我们刚才键入的测试程序甚至还不能通过编译。我会在后边讲测试框架(testingframework)JUnit的时候解释在什么地方键入以及怎样将其键入。修改这样的测试非常简单。即便是编译后也无法运行,但为了使其能够编译通过,我们至少要做哪些工作呢?我们存在以下四个编译错误: 没有Dollar类 没有构造函数 没有times(int)方式方法没有amount域让我们逐一改正(我总是在寻找某种度量进度的数值化方式方法)。我们可以通过定义Dol
6、lar类来去掉一个错误:DollarclassDollar一个错误已经解决,还有三个。现在我们需要一个构造函数,但是单单为了让测试能够编译通过,它不必实现任何功能:DollarDollar(intanount)还有两个错误。我们需要times()的存根实现(StUbimPIementation)。同样仅做可以使测试程序通过的最少的工作:Dollarvoidtimes(intMultiplier)JUnil测试工具运行测试时,如果测试全部运行通过,那么状态条是绿色的:如果存在没有通过的测试,那么状态条就是红色的.本书作者大盘使用包含green或*d的字句,我们以后统一将其译作测试运行通过或没有通
7、过.译者注仅剩下一个错误。最后,我们需要一个amount域:Dollarintanount;好了,现在我们可以运行测试程序,结果如图1-1所示,失败了。图1-1虽然测试失败,但有进步!可以看出测试程序没有运行通过(redbar)o我们在测试框架(在该例中为JUnit)中运行了这个作为开篇所编写的一小段代码,可以发现,尽管我们希望结果是“10”,事实上却很不幸,我们看到的结果是“0”。没有关系,失败也是一种进步。我们已经对这次失败有了一个具体的衡量,这要比只是模模糊糊地知道自己要失败的好。我们要解决的编程相关问题已经由原来的“实现多币种”转化为“让这个测试程序能够工作,然后让剩下的测试程序也能够
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 财务管理 资料 2023 整理 多币种 资金