English 中文(简体)
鉴于加强和调整企业关键应用的任务,对开发商提出的任何建议?
原标题:Any advice for a developer given the task of enhancing & refactoring a business critical application?

最近,我继承了“加强”工作中的一个商业关键项目。 过去五年来,该法典已经制定并经过了许多手法。 咨询人和全职雇员不再与公司打交道,他们研究了这一非常微妙和过于敏感的申请。 我们大多数人必须处理遗产法或此类项目。 . .

There are zero units and zero system tests. Logic is inter-mingled (and sometimes duplicated for no reason) between stored procedures, views (yes, I said views) and code. Documentation? Yeah, right. I am scared. Yes, very sacred to make even the most minimal of "tweak" or refactor. One little mishap, and there would be major income loss and potential legal issues for my employer.

So, any advice? My first thought would be to begin writing assertions/unit tests against the existing code. However, that can only go so far because there is a lot of logic embedded in stored procedures. (I know its possible to test stored procedures, but historically its much more difficult compared to unit testing source code logic). Another or additional approach would be to compare the database state before and after the application has performed a function, make some code changes, then do database state compare.

最佳回答

我只是重新划定了企业档案系统最复杂的子系统的数千条线,使之具有多面性,因此所有这一切都来自经验。 如果改写法是正当的(如果改写法是为了大大加强能力,或者如果现行法典正在加强,那么的话),那么,这里是:

  1. 你们首先需要相信你们自己的能力。 只有当你在相关技术方面拥有足够的事先经验时,才会这样做。

  2. 交流、交流、交流。 有关各方都知道,这是一件大事,这是危险的,不能在一种磨难中这样做,需要做的是零敲碎打——在某个地区发动攻击。

  3. 绕过该系统。 记录每一细微、trick和黑板。 文件总设计。 找任何老的人,了解你存在任何法典的历史原因,是站不住脚的。 这些地雷是你不想走的——你可能认为这些地雷是无用的法典,然后在排除之后感到遗憾。

  4. 单位测试。 该系统通过已经存在的任何测试程序运作,否则,如果不存在,则首先要写出现行法典的测试。

  5. 沉积法在沉积过程中全处都有,即: asserts、伐木、ole(青年应当有能力将其 on起和脱掉,并具体说明不同的产出水平,即控制船只。 这在我的经验中是必须的,在改写过程中会给予极大的帮助。

  6. 在通过守则时,列出需要做的所有事情——需要找到的东西、需要写测试的东西、你需要问问的问题、提请你注意如何重写某些法典、任何可能影响你改写的东西。 你们不能忘记任何东西! 我利用“展望”任务这样做(我确信,你总是在你面前使用——这是我一坐在桌上就开的第一个信号)。 如果我被打断,我就写了我所想到的任何东西,以及在回到任务后继续工作的背后。

  7. 避免在你手工艺中出现 ha笑(这是你改写的原因之一)。 想想你们遇到的棘手问题。 与其他人讨论这些问题,放弃你们反对他们的想法(不要这样做),并找到干净的解决办法。 看看你列入清单的所有任务——对现有设计进行10 000英尺的描述,然后决定新演奏如何看待(单元、子模块、如何合用等)。

  8. 解决任何其他棘手问题。 这使你无法在隧道接近尾声时解决问题,使你无法采取任何倒退措施。 当然,你需要知道最棘手的问题是什么——同样,最好先把贵节日的所有事情记录到现有的法典中。

问题回答
  1. 找到一份非常坚定的要求清单。

  2. 确保你具有隐含的要求和明确要求,即它必须执行哪些方案以及如何工作。

  3. 撰写所有设想情景,并使用案例说明目前如何使用。

  4. 撰写大量单位测试。

  5. 撰写大量融合测试,测试该方案与现有方案相结合的情况。

  6. 会见利用该方案寻找更含蓄要求的人。

  7. 测试、测试、测试变化,然后转向生产。

  8. CYA :

Ask yourself that this: what are Youtries to achieving? 你的任务是什么? 你们有多少时间? 成功的衡量标准是什么? 有哪些风险? 你们如何减轻和处理这些问题?

除非你知道你想要达到什么目标,否则不要触及任何东西。

守则可能是“坏的”,但意思是什么? 守则是否正确? 因此,如果你改写这部法典,那么你花了很多时间重写一些 along子,这样,法典就是这样吗? 目的何在?

你们所能做的最简单事情是记录该系统的工作。 我不想说字句语气话,没有人会读。 我指的是就关键功能进行书面测试,必要时对守则进行重新定位,以便进行这种测试。

你说,由于法律、收入损失和零文件,你很谨慎地触及法典。 因此,你们是否理解该守则? 你们应该做的第一项工作是记录该文件,并确保你在你们甚至想到令人信服之前理解。 一旦你这样做,并查明问题领域,就列出你以最低变化为顺序提出的令人信服的建议,并逐步加以攻击。 如果:该法典的预计寿命将很长,将添加新的特征,fix积是无数的。 关于数据库状况的测试,我最近开展了一个项目,该项目正是我们的成功。

是否有可能将非行部分分开,以便银行部能够迎接所储存的程序和数据库本身的挑战,使你能够就该系统的其他部分开展工作? 这还假定,有一家德国银行可以加快申请并参加申请。

如果是这样的话,那么我就提出建议,看看一下该规范基础是多么大,如果能够得到某种援助,那么就把它推到了你们身上。 虽然这可视为次要责任,但问题在于,事情只应由一个人掌握,因为他们有时会消失。

亲爱!





相关问题
run unit tests and coverage in certain python structure

I have some funny noob problem. I try to run unit tests from commandline: H:PROpyEstimator>python src estpython est_power_estimator.py Traceback (most recent call last): File "src est...

How to unit-test an enterprise symfony project?

I´m working on a huge project at my work. We have about 200 database tables, accordingly a huge number of Models, Actions and so on. How should I begin to write tests for this? My biggest problem ...

Code Coverage Tools & Visual Studio 2008 Pro

Just wondering what people are using for code coverage tools when using MS Visual Studio 2008 Pro. We are using the built-in MS test project and unit testing tool (the one that come pre-installed ...

Unit testing. File structure

I have a C++ legacy codebase with 10-15 applications, all sharing several components. While setting up unittests for both shared components and for applications themselves, I was wondering if there ...

Unit Testing .NET 3.5 projects using MStest in VS2010

There s a bug/feature in Visual Studio 2010 where you can t create a unit test project with the 2.0 CLR. https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=483891&wa=...

Unit Test for Exceptions Message

Is there a simple (Attribute-driven) way to have the following test fail on the message of the exception. [TestMethod()] [ExpectedException(typeof(ArgumentException))] public void ExceptionTestTest() ...