Re: [请益] 如何选择适合的设计模式

楼主: JohnRoyer (Zero 日落)   2021-11-08 01:27:37
我对看到的其中几句话有一些其他想法和想补充的地方
和大家分享
※ 引述《strlen (strlen)》之铭言:
: .....
: ..... 非到必要时刻不要使用
不是只有 SOLID 原则、设计模式非必要时不要用到
我觉得包括 clean code 里面提到的东西、重构
甚至到 Effective SQL、CI/CD、SRE 之类的东西也一样
没有需要用到
表示手上的工作可以用最简单的方式解决掉
但这些东西之所以会被整理成册、流传多年,甚至有些还被喻为必读圣经
就是因为这些东西都是在特定领域最常被使用来解决问题的方法、流程
而且想逃避不用还不一定逃得掉
最好的方法是边做、边学、边讨论
上面几句话提到的东西其实不少
再加上自己前一段讲的名词加起来
这辈子要学到透彻、学到精通应该蛮难的 (我想自己是做不到)
但建议把这些专有名词都看过、知道有这个东西
因为可以大幅降低沟通成本、避免讨论上不小心造成的误解
“觉得这边做 method extraction 以后再来用类似观察者模式下去调整,应该就
可以解决 ......”
听到“method extraction”和“观察者模式”可能没办法理解流程、程式调整方式
但若有听过、知道这些名词的概要、特性
就可以很快的了解需要重构、并让类别提供一些特定的 method 供使用
觉得也不是说业界没在用、或是不重视
只是这些东西默默融入生活中
讨论的时候不一定会以专有名词的方式出现而已
“试试看走下路,然后在森林出口和草丛附近种香菇”
: 没有所谓的正确的模式
书上整理出来发法、设计方式
大多是遇到问题比较通用的解决方法,或是可以参考的常见设计方式
我目前几乎没有遇到刚刚好可以一模一样完全照着做就能解决问题的问题
就和人生一样,多数的问题都没有最佳解,只有可能的较佳解
但有件事情是肯定的:站在巨人的肩膀上能少走一些冤枉路
累积更多的经验、了解更多人的思路和解决方案
可以让你在决策时做出更适当的选择
作者: pjwck (pjwck)   2021-11-08 18:57:00
clean code 跟能不能简单解决没太大关系吧
作者: MatTZerS (Matt)   2021-11-09 11:46:00
回楼上 看完clean最痛苦的我 就是明明只是写一个简单的资料夹文件整理的程式 一个写在main就能完成的事 我却还要想怎么抽出函式 怎么命名...
作者: strlen (strlen)   2021-11-09 19:00:00
clean讲得东西其实要分两种 一种是所有地方皆通用的建议一种是所谓的“招式” 通用建议就是好好命名 一个method只做一件事 这些不管你什么写法都应该最好要知道的东西另一个“招式”就是SOLID和设计模式 这个就是你不只要会用还要会“选择对的时机用” 后者比前者更困难
作者: jej (晃奶大馬桶)   2021-11-09 19:26:00
clean code参考而已吧 你看阿里巴巴的开发guidelines有些根本就和clean code背道而驰举exception为例子 clean code认为抛exception让接收错误的处理器用多型处理阿里巴巴却是强调要精确的exception再来说程式撰写的颗粒度 clean code不会和你说那些物件有坑阿里巴巴会明确叙述 例如SimpleDateFormat多看看几本书 每本互相参考才比较好吧
作者: qscesz1456 (soloud)   2021-11-09 19:51:00
越简单越好 ... 也不用假想太多未来的状况 9成都不会
作者: ZakuSIN (SIN)   2021-11-09 21:22:00
看完clean跟怎么写应该是两回事? 没有一定要这么做程式没有唯一解 只有适合的解法
作者: viper9709 (阿达)   2021-11-10 00:09:00
越简单越好+1
作者: strlen (strlen)   2021-11-10 09:37:00
多型事实上就是属于“招式”的那一边 有时间多看当然是好事 看越多你越能斟酌你目前的现况使用这些工具我只是说clean code有一些基本不能再基本的东西 DRY之类的不管你是写什么毛都应该要注意

Links booklink

Contact Us: admin [ a t ] ucptt.com