2010-02-28 79 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

相關問題