哪种计算机科学概念最重视?

Rob*_* H. 22 computer-science

出于某种原因,我注意到我最终在工作中使用了很多有限状态机.特别是,当我实现自定义TCP /串行协议时,它们非常有用并且产生非常强大的输出(在我看来).

我在CS课上的日子远远落后于我.因此,我对那里学到的东西的回忆是模糊的.我很好奇是否有其他人在利用我已经忘记的概念.

没有正确的答案.投票包含您最常使用的概念的答案.我们最终会得到最常用的概念.对我来说,这将是一个要研究的东西清单.

- 罗伯特·

Joe*_*ips 32

力求低耦合,高内聚力.

低耦合,高内聚力http://www.codeodor.com/images/from_spaghetti_code_to_better_code.jpg

(我从上面链接的网站上偷了这张图片)

  • 我只希望每个软件开发人员都能理解这个原则的重要性. (4认同)
  • 您使用什么包来制作该图表?用于提升解耦的+1. (2认同)
  • 该图表是使用黄色法律垫上的Sharpie标记完成的. (2认同)

Jas*_*ams 30

把事情简单化.如果可能的话,让它更简单.

  • 这是CS概念吗? (13认同)
  • 隐藏复杂性!=简单 (4认同)
  • ..但不是更简单. (2认同)

Zoi*_*erg 18

模型视图控制器模式是我使用的模式比任何其他模式更多.

  • 或者,或许更一般地说,关注点分离.MVC实际上只是该概念的良好扩展. (13认同)

Ste*_* B. 14

大O符号

  • 只是为了澄清 - 大O不是一个复杂的类,而是一个具有数学意义的符号...... (2认同)

Lan*_*rts 13

复制和修改现有代码.

  • 表面上有多么真实,但有趣. (2认同)

Pas*_*TIN 12

我认为,将问题分解为更小的子问题是我经常做的事情,即使没有真正考虑它:

  • 它有助于获得解决方案
  • 它还有助于获得更清晰的代码(更小的函数/方法,例如"单位东西")

不过,也许它不是一个真正的"概念"...如果我记得一些算法课程我们被教导"分而治之"的事件^^


如果你想要更具体的东西,我会选择:

  • 测试 ; 当我们刚刚离开学校时,这是我们不做的事情......而且我们学到了很多东西,这是我们必须做的更多,更好!
  • 一些设计模式,可能
  • 在编码之前思考 - 也许是我们工作中最重要的事情^^


Dav*_*vid 12

面向对象的程序设计与数据结构


ala*_*ode 11

不要重复自己.

  • 嘿,我想我上过两次课. (7认同)

Lan*_*rts 9

复杂.


Cal*_*ers 8

时间/空间复杂性.


Mic*_*tta 7

并发和并行计算.多年来我一直没碰过它,但每过一年它就变得更有意义了(每个核心数都翻了一倍).


gal*_*tor 5

单身人士,模板和战略模式.

另外:YAGNI - 你不需要它
KISS - 保持简单,愚蠢


Dou*_*oug 5

抽象化

Aho和Ullman在" 计算机科学基础"的介绍中写道

但从根本上说,计算机科学是一门抽象科学 - 为思考问题创造了正确的模型,并设计出适当的可机械化技术来解决问题.