• 术子米德
    2022-05-23
    🤔☕️🤔☕️🤔 * 📖:结构化设计,如何提升? * 🤔:设计,只要不给别人看,自己总是无比满意,尤其是刚完成的时候,得意得不行。过几天来看,这都是啥,怎么这么奇怪。这时候,就会问自己,怎么没点结构感,都不知道怎么看起。如果拿给别人看,大概率对方很雾水一头,即使解释再三,还不如自己拿起马克笔,在白板上画起来,效果略好,但是依然会越画越乱,只能擦掉重来,这次先主要的,再针对某个点细化,先取对象名字,不能这个那个乱点兵。 * 🤔:回头想想,为何现场画的效果好一点,原因是有个时间顺序,那为何自己画图的时候,不提前加上时间轴的思考维度,包括在图上标注出序号,提示阅读人关注的顺序。结构化的时间维度,我就是这么实践并反思出来。 * 🤔:再想想看,为啥要整体再局部,才能好理解,为啥非得取个名字,才能讲得顺,这不就是在空间里,指着什么喊出名字,然后远看怎么样,走进看又如何嘛。结构化的空间维度,我也反思中顿悟。

    作者回复: “设计,只要不给别人看,自己总是无比满意,” 太精辟了!

    
    7
  • 罗均
    2022-05-18
    东白老师的课程,总是可以给学生全新的技术视角,为学生们打开了更大的思考空间。 作业第三题,回顾写代码的历程,最大的障碍还是自身的认知局限。例如,有些场景command pattern与strategy pattern的选择,或者mediator pattern或subscription pattern的选择,在implementation过程中,因为自己的水平有限,没办法融汇贯通达到最优效果。也没有什么好的克服方法,就是多总结多实践(重构),更多地与业务方讨论深入理解业务——学生比较好,七八年前从类似产品的角色开始写代码。另外的“捷径”就是多向东白老师这样的顶级大牛学习,这节课的singleton案例,实在是“美妙”之极,至心感恩老师的课程! 要再尝试推荐老师的课程给一些朋友!

    作者回复: 谢谢!

    
    3
  • 花花大脸猫
    2022-12-29 来自美国
    第三个问题:最大的阻力还是在于上层不care,别人3天,你要5天。。。。结果不骗人。短平快与结构化设计,在这一段至少对上而言。是劣势!对于只管业务的人来说,越快的结果越ok

    作者回复: 很遗憾的是。 事实也的确是这样的。 我应该也属于你指的 “上层”。 不过我期望的是你投入3.5天, 做一个对结构性破坏性最小的设计。 这种额外的投入我认为从有巨大资源压力的上层来看也是理性的。

    
    2
  • Michael
    2022-06-19
    老师有没有什么推荐的书?

    作者回复: 我还真的一时想不出什么特别好的书籍。 我感觉有些非常大的开源软件的设计还不错, 可以从里面看到不错的封装的思想。 另外大公司内部的成功项目也不错,不知道你能不能接触到。 外面能看到的是AWS的设计, 也很好。 可以学习一下。

    共 2 条评论
    2
  • spark
    2022-05-17
    郭老师,take away~~~结构性是一个结果,追求结构性是需要思考、路径,追求结构的思考需要系统性~~~ a.编程维度,面向对象、面向过程,设计原则,设计模式,代码规范(Google Java Format),重构~~~ b.思考维度,架构思维和结构的因果关系,架构思维是因,结构是果???计算机系统需要自顶向下设计,分治思维是关键,如何定义问题和拆解问题。递归思维是关键,如何确定递归调用的第一步,很关键。因为递归思维和分治思维会引导我们得到一个结构性的、多层网络状的、嵌套调用的模块关系~~~

    作者回复: 谢谢总结!

    共 2 条评论
    2
  • 罗杰
    2022-05-22
    第三个问题:在当前的公司干了五个年头了,当时加入的时候,整个后端就我一个人,整体后端架构的设计与客户端的交互都是我基本上是我在主导。说起来比较尴尬,我其实水平真的很一般,在做这些架构之前,也就三年的工作经验。追求结构化的过程其实是相当痛苦的,最开始最大的疑惑是怀疑自己是不是对的。但是随着需求的不断变化,你会发现真的多虑了,因为没有正确的设计。所有的设计都是 trade-off。在心理上解决了这个问题之后,接下来的问题就是别人的质疑了。首先正确表达自己的观点,其实多去学习。解决是不是自己视角太窄,别人的想法我们不能左右,尽可能去说服,有时候无法说服,只是因为该有设计理念我还没有内化。对于正确的理论,正确的观点,践行就好了。他人的埋怨与不解,我只能说:“求仁而得仁,有何怨”。

    作者回复: 这个成长过程很赞!

    
    1
  • Steven
    2022-06-08
    分享一个小例子:参与过的一个表单项目,临时组的这个团队成员在类命名,数据库表命名上,习惯采用的是拼音首字母的方式,比如【暂停人口-ZZRK】,当然一些简单的还是用英文。 一个原因是他们以前都是这么用的,另一个他们的英文也确实都比较差。 在这部分,我的要求就是必须要有中文注释/对照

    作者回复: 哈哈哈, 我见过中英文混合的简写模式。 直接懵圈了。

    
    
  • softbaddog
    2022-07-20
    软件上结构化设计最大的好处就是可以不断演进,甚至推到从来。罗马不是一天建成的,需要不断地迭代优化再优化。当然很多时候演进是随着业务的调整而进行的,也没有必要过度使用设计模式,KISS,SOLID等架构原则更有用。
    
    