初学者软件设计学习方法
@ 大宽宽 | 星期一,二月 17 日,2020 年 | 2 分钟阅读 | 更新于 星期一,二月 17 日,2020 年

相关资料

可阅读王垠的 解密“设计模式”,不远要辩证地从历史角度去看,现代程序语言中加入了很多特性,不必刻意去使用某种设计模式。 先好好写代码,有了较多实践后,结构的东西其义自见 既然是初学者,就不要怕走弯路,吃的苦越多,才能走的越远 模式都是前人的总结,只能用来参考 书嘛,可以去网上搜索

初学软件设计最好不要先看书,或者说可以大概看看,但不要认真。

设计这个东西不像是做二元一次方程,给出来,给出固定解法和步骤就能得到唯一的解。设计的精髓在于“在多个相互矛盾的目标中找到权衡”。设计的上下文对设计非常的重要,上下文变一点点,都有可能造成设计方案完全不同。

设计就像是乐队指挥,要对大量的乐器很熟悉、对于乐曲要表达的感觉要很熟悉、对观众的反应要很熟悉。如果你什么都不熟悉,那就做不了这个指挥。

回到软件设计,要熟悉领域知识,业务需求,主机硬件,云服务,编程语言,网络,数据存储等。这些都能摸熟,再来谈设计。再强调一次,设计是权衡的艺术。如果连要权衡什么东西都不知道,那就是瞎扯。

而一般设计初学者最喜欢干的事情,就是直接读GoF这种的书,自以为天下的设计模式只有23种,然后拿着这23个锤子去满世界找钉子。

如果一定要有个入门,我觉得比较好的方案是:

在你工作的领域中,找到最常用的设计模式。比如做Web的,MVC、MVVM这类应该很常见思考和分析,为什么这种模式适合这个场景,好处在哪里,代价在哪里。针对你更小一个级别的领域(比如做电商的Web,或者做社交的Web),是否存在一些设计是专门针对这类场景的阅读一些设计的书籍,与你面临的现实对照。如果不符,就找高人问问为什么。比如系统上用的是MVC的某种变体,那么为啥要“变”呢?到底是当时的程序员脑子抽了,还是有个什么特别的需求。进一步阅读一些设计模式的资料,分析他们出现的上下文和背景。思考下你用的编程语言,那些设计思路编程语言可以帮助你快速完成;那些只能自己手工堆出来再回到第1步反思,重来一遍1~6过了3~5遍后,开始看其他领域和其他编程语言的设计

当然,为了面试,还是把23种设计模式背牢,毕竟这个世界中二的面试官有很多。

© 2011 - 2023 lsq 的博客

Powered by Hugo with theme Dream.

avatar
关于我

lsq 的 ❤️ 博客

记录一些 🌈 生活上,财务相关技术上的事

毕业于 🏫 东北财经大学

空闲时间会做分享财务工作上相关技术

主要分享是:

  • VBA & Power Query
  • Excel 图表制作
  • LaTeX

写着玩:

  • Ruby
  • Bash shell
  • Python

目前在深圳工作

– 2021 年 04 月 11 日更新