软件定制重要标准:编码良好
添加时间:2020-03-27 15:15:28
来源:
为了理解软件定制问题解决者的思考过程,我们必须注意以下问题:
1)为什么喜欢解决问题?
这个 问题的答案值得考虑:“参赛者保证他们会喜欢数学/算法并设计数据结构。我只看到很少有人说“哦,是的,我喜欢检查整数溢出”或“在数组中搜索元素是如此酷”。而且,我们经常一遍又一遍地坚持做这些相同的事情,直到我们的头脑试图集中精力处理原始的问题陈述,而我们的手指却疯狂地键入代码。
因此,第一个问题的解决方案是:
我们解决问题
挑战我们的思想,
通过观察绿色的勾号来舒缓我们的自我
当我们陷入困境时,尝尝肾上腺素在血管中流动。
相反,检查整数除法似乎是一项单调的任务,这不是我们来这里的原因。
有一种解决方法,但是现在让我们集中精力寻找另一个问题的答案
2)实施解决方案时面临的最大挑战是什么?
这通常被误认为是琐碎的:编写代码当然是最困难的任务!哦,我们如何加快速度?我们得到的通常答案是,在检查显示器以调试其程序之前,请更加努力地练习“聪明地工作,为他人提供建议”。
不能。对算法进行编码可能是最重要的任务,但是不起作用的代码与不存在的代码没有太大区别。您的大部分宝贵时间将被调试占用。尤其是在算法难以实现的情况下。
3)在解决问题的同时,您可以同时提高技能中的哪个关键领域?
最后一个问题还不清楚。我们可以同时享受什么呢?吉他课。健身房。体育,电视节目等。但是作为软件 工程师,数据 科学家 或算法 设计师,我们还有另一个通常不强调的职责,即传达思想的工作。很多时候,人们必须了解我们的代码思想。
竞争对手通常被告知:“ 懒惰 ”。不。懒惰不是一种强迫。就像其他任何技能一样,必须仅在需要时使用。在设计算法和命名变量时比较懒惰,可以节省3分钟的编码时间,但是通过罚款/调试可能会额外花费20分钟。当然,我们需要更好的方法。
现在让我们看一下更好的方法:
在我们的代码中使用工具,库和模式不仅使解决问题变得容易,而且还回答了本文开头提到的所有三个问题。
1)专注于面对编程/数学挑战,而不是其他枯燥的任务。
2)使用库函数和以下编码实践,可以大大减少测试和调试时间。
3)目的是要玩得开心,同时也要学习很多东西。在竞争性编程领域之外,还存在软件开发。在磨练算法设计和数据结构使用技巧的同时,我们可以学习如何编写简洁的代码。
干净代码的特征是:
适当的缩进
好的命名变量可以节省时间,您可以在下一个问题上进行投资。
最后,编程需要逻辑思考和正确思考的能力。程序员应始终具有创造力,想象力和创新能力。如果程序员不能解决特定的问题,则不应激怒他/她。但是与此同时请尝试另一个问题。