2010-02-28 72 views
3

我用C++编程。有时有1000种方法可以做某些事情,并且根据当下的灵感/能量等,我可以采取“正确的”或者不采取任何行动,花费10分钟或3天的时间来解决问题或找到解决方案或做老板的任务。在编程中处理打开问题的最有效方法

当你编程时,你如何处理这种“开放”的情况?使用你的直觉?以前有更多计划吗?

感谢所有可能的解决方案有很多

+0

你实际上被支付找到最佳解决方案?可能不会。做你正在付钱的事情。 – 2010-02-28 20:10:39

+0

您需要提出更多问题,直到问题更加狭义。如有疑问,请与同事谈谈。 – 2010-02-28 20:37:11

回答

6
  1. 请选择一个容易测试。
  2. 执行测试
  3. 执行代码。

重复,直到我有我需要的功能来真正解决问题。

现在检查代码是否足够干净。大多数情况下不会。在那种情况下,重构直到它是干净的。

足够清洁意味着:要么比项目中的平均一段代码更清洁,要么尽可能干净,因为我能写出它。无论什么是早先达成的。

好吧,我必须承认,这是至少我如何写我的代码。

选择可测性作为副作用的解决方案更喜欢精心设计的解决方案。

+0

+1优秀的总结。 – 2010-02-28 20:59:25

1

我想:

  1. 写单元测试,检查关闭的问题
  2. 预期的解决方案中实现我想到的
  3. 重构和重复

这第一算法特别适合你第一次攻击的问题。如果你担心你的老板会说“停” 2点后,只是做了几个迭代你跟他/她面前......

0

我通常试图找到一个众所周知的模式适用于一个特定的问题。如果我找不到一个或者足够接近我的解决方案的人,那么我会做我认为最好的,并且完全记录我正在做的事情。

然后,六个月后,我重构它以应用其他人在类似情况下使用的更好的模式。

然后,十二个月后,我重新整理了整个该死的东西,并用五行代码替换它。

2

尽量使未完成的工作量最大化。

对于一个开放的问题,我只是产生一个反映我目前已知信息的最小代码。

这并不意味着我产生低质量的代码。如果我不关心代码的质量,那么我将在未来的变化中不必要的努力,这些变化将会发生,当它是一个开放的问题时。如果新信息正在下降,我尝试将它们合并到已有的代码中。此外,设计/体系结构将与当前已知的信息保持一致。

0

可测性是一件好事。

另一件我很关注的事情是可读性。 我通常会支持该代码,所以最好是最简单,最简洁的方式,包括最少与非任务相关的实体。

本着DDD的精神,这将意味着将您的任务翻译成编程语言的几乎是自然语言的描述。

1

让它运行;改正它;使其简单。

或者阐述:

  1. 构建一个有可能会涉及到一个解决方案是最简单的事情。
  2. 优化它以符合要求。设计和积累单元测试;当所有测试运行时,您的项目完成。
  3. 不,等等!直到代码为这么简单,它显然没有错误。如果代码太复杂以至于没有明显的缺陷,那么你就不会忠于你的技巧。
0

嗯,我不想回答,因为纯文本,但.NET代码段;)
我认为它容易让C++开发,以了解以下信息:

SolutionRefining() 
{ 
    result= Requirements.Brianstorming(Current_Experience_Knowledge); 
    if(!result.Equals("Its Time To Design and Code"))//Assuming analysis is already done! 
    { 
     do 
     { 
      this.TakeRest_Break_HaveFun();//Multi-Processes OS ;) 
      result = QuickResearchSession(searchEngine Google, softwareCommunity StackOverflow, inHouseGuru Anonymous); 
     } 
     while(!result.Equals("Its Time To Design and Code")); 
    } 
    else 
    { 
     while(Testing().MajorBugs >= 1 && !Coding().Finished) 
      Develop().Review_UnitTesting().Commit();//artificial .NET! Don't try it in VS 2010. 

     SubmitProject().GetMoney().GetLaid(); 
     WakeUp().GoToWork().BeReadyForNewFeaturesAttack(); 
    } 


    MeanWhile (!Solution.Equals("Standard & Best Practice")) //MeanWhile can be found in .NET Framework 11.7301 Beta RC.45 

    { 
        //this method shall always invoked during the developer journey in the Software Life Cycle. 
     Study("Design Patterns").Understand().UnderstandMore().Apply(); 
     UpdateTheToolKit(); 
     SearchFor("Standard & Best Practice").Consume(); 
    } 

    finally("Write your own A-Z framework").GetRetired(); 
} 
+0

请告诉我们为什么你的第一条线突出了? – 2010-02-28 21:38:17

+0

VS2008到StackOverflow Editor QA Bug! – 2010-02-28 21:53:35

+0

@jadook:你能更具体吗?我一直希望能够在几个月内重现此错误,但一直未能。 – 2010-02-28 21:56:49

相关问题