bia*_*ias 9 tdd unit-testing scientific-computing
我很忙!我的大部分时间都花在使用分析技术或课程工作上,当我切换到编程模式时,我需要快速生成代码.因为,我所在的实验室的主要调查员并不关心我是否使用TDD或算盘,只要我得到快速的结果.
我读过"TDD示例"并发现它非常有用.我后来买了"重构:改进现有代码的设计","设计模式:可重复使用的面向对象软件的元素",以及"有效地使用遗留代码"但这些书很大,现在进入它们的前景令人生畏!
"TDD by example"的会话风格和流程使我很容易融入我的日程安排.但是,我不知道如何在这些其他书籍中以及以何种顺序工作; 似乎每一个都是相关的(我是一种餐饮哲学家的死锁 - 我正在等待我的编程工具包的每个方面都要改进,但他们的相互依赖性让我要么陷入僵局,要么失去上下文切换的时间 - 对不起类比:)).例如,我有遗留代码需要重构并用测试覆盖,我需要使用TDD向前推进(但我从来没有这样做),我需要使用设计模式进行编码,所以我不再重新发明轮子.
是否有一种很好的方法可以将这些必需的读取分解为字节大小的块,以及在将它们的技术应用于当前项目时的一种方法(个人而言,如果我不能立即应用它,我会丢失信息)?我是否专注于一本书并完成它?我是否首先需要TDD然后重构和设计模式技能(但是'鸡和鸡蛋'所有这些单元测试书都谈论设计模式和重构,好像我知道它们是前后的)?
我已经为初学者阅读了最好的教程,但它没有解释我如何将其整合到繁忙的日程中.而且,我在科学环境中阅读编程,但是当你已经落后时,它又错过了如何添加这些技术的标记.
鉴于您所做的事情的描述,我首先会质疑这个假设。我对程序的复杂性一无所知,但是如果您的编码严格包括生成计算并且它是一种“脚本级”,这意味着对于给定的代码片段,您可以轻松地将其扔掉并将其重写为 keep it,那么很多这些技术就显得大材小用了。我认为 TDD(也许是集成测试中结合的配对版本)总是有价值的,但除此之外,就不一定了。
然而,如果你真的在设计软件系统(并且至少你可能正在做的一些事情可能合格,即使所有这些都不合格,例如数据库模型、输入屏幕、结果分布)那么我会说读足够多的这些书开始时,不要担心初学者总是做得不好,只需确保每周都取得可衡量的进步即可。
顺便说一句,设计模式对于了解如何解决类似问题很有用,但不要“使用它们进行设计”而不是其他东西。您的设计本身可能并不好,但模式来自现实世界的设计,而不是相反。因此,您当然可以看到比您正在做的更多面向对象的解决方案,但不用担心您正在做的是否符合设计模式。确保您正在做的事情本身就是良好的可维护设计,并且模式将由此产生。
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |