Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

算法 数据结构 #2

Open
liuyangc3 opened this issue Dec 16, 2020 · 0 comments
Open

算法 数据结构 #2

liuyangc3 opened this issue Dec 16, 2020 · 0 comments

Comments

@liuyangc3
Copy link
Owner

https://www.v2ex.com/t/732607#reply73

算法是你想出来解决某些问题的一个解.

数据结构是算法用得比较多之后内化出来的一个模型. 重视数据结构的代码比不重视数据结构的代码清晰易懂好维护, 不过数据结构一般不会让你做出之前不能做到的事情. 你可以把数据结构看作某些算法的沉淀.

Linus, Rob Pike 很多人都说过类似的问题, 这里引用一个 Eric Raymond: http://www.catb.org/esr/writings/taoup/html/ch01s06.html#id2878263
大意是人很难理解简单的过程逻辑, 但是却能理解很复杂的数据结构.

对比一下一个 50 行的 if else for 循环, 和一个 50 行的 class.

或者一个不太恰当的比喻:
只注重算法≈把逻辑全扔到 controller 里: 随着 use case 的增多代码会很难读且有很重复.
重视数据结构≈把逻辑逐渐沉淀到 model 层, 然后想要理解代码的人着重看一看 model 就很快能理解, 而维护代码的人经常能直接用上 model 里已有的很多东西.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant