我用C ++编程。有时有1000种方法可以做某些事情,并且根据当下的灵感/能量等,我可以选择“正确的”或者不使用,并花10分钟或3天时间来解决问题或找到解决方案或做老板的任务。
当你编程时,你如何应对这种“开放”的情况?用你的直觉?之前喜欢计划好吗?
非常感谢
答案 0 :(得分:6)
重复直到我具备实际解决问题所需的功能。
现在检查代码是否足够干净。大多数时候它不会。在这种情况下,重构直到它干净。
足够清洁意味着:要么比项目中的平均代码要干净得多,要么干净,因为我能够写出来。无论之前达成什么。
好的我必须承认,这至少是我尝试编写代码的方式。
选择可测试性作为副作用的解决方案更喜欢精心设计的解决方案。
答案 1 :(得分:2)
尽量减少未完成的工作量。
对于一个开放的问题,我只生成一个反映我当前已知信息的最小代码。
这并不意味着我会生成低质量的代码。如果我不关心代码的质量,那么我将使我的生活变得不必要,以便将来发生变化,这将是一个开放的问题。如果新信息正在下降,我尝试将它们合并到现有代码中。此外,设计/架构将与当前已知的信息保持一致。
答案 2 :(得分:1)
我会:
这对于您第一次攻击的问题尤为有效。如果你担心你的老板会在第2点之后说“停止”,那么在与他/她交谈之前,只需做几次迭代......
答案 3 :(得分:1)
让它运行;改正它;简单。
或详细说明:
答案 4 :(得分:0)
我通常会尝试找到适用于特定问题的众所周知的模式。如果我找不到一个或一个足够接近我的解决方案,那么我就会做我认为最好的事情并完整地记录我正在做的事情。
然后,六个月后,我重构它以应用其他人在类似情况下使用的更好的模式。
然后,十二个月后,我重构了整个该死的东西,并用五行代码替换它。
答案 5 :(得分:0)
可测试性是件好事。
我非常关注的另一件事是可读性。 我通常会支持该代码,因此最好采用最短,最干净的方式,包括最少的非任务相关实体。
本着DDD的精神,这意味着你的任务的几乎自然语言描述被翻译成编程语言。
答案 6 :(得分:0)
嗯,我不想以纯文本形式回答,而是.Net Code-Segment;)
我认为C ++ Dev很容易理解以下内容:
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();
}