• 卢泽华
    2024-04-18 来自陕西
    我理解的软件设计就是 给软件里面某些元素(服务、组件、模块、对象、函数)分配职责,也就是这些元素要干什么,然后这些元素如何配合。也就是概念及其关系。软件要应对复杂度和需求的变化,所以就需要对软件元素进行抽象。关键在于如何抽象,抽到哪个层次上,比如把变化原因一样的对象放在一起(单一职责),把变化频率一样的放在一起(也就是分层)。面向对象建模里面也就是名词和动词,有哪些对象(名词),这些对象的职责是什么(动词)。

    作者回复: 你好, 蛮生动的理解。如果让你用一句话来表达(比如,50个字内),你又会如何组织呢?我相信这个任务给到你,你得再对自己的理解做梳理和抽象才行,这也话也算是一次设计任务吧。

    
    
  • SMTCode
    2024-04-18 来自辽宁
    我理解的软件设计是:通过理解项目或产品的需求,对需求进行抽象,选择合适的技术,然后进行拆分,先通过最小原型去验证与需求的契合度和设计的合理性,然后再同过不断迭代,完善项目机能,同时还要考虑如何进行测试和确保质量的方式,在合适的时间对小部分代码进行再拆分和重构,让代码有一个易维护、可扩展的基础底座。

    作者回复: 你好, 你的这个理解给我最大的感受是非常接地气,如果用团队效能动力模型来说,就是你有很好的业务技能,这是非常难得的。 就软件设计这个概念,我觉得你还可以更聚焦于自己的工作过程中,哪个过程你是真正在做软件设计,放到那个场景你在思考什么、纠结什么,将这种感觉给表达出来,可能就对了。 当然了,每个人对于软件设计的理解是不同的,这并没有标准答案。无论如何,我期待你在未来能更多地关注这个问题,我相信当有一天你看清楚了,有自己的见解了,那能力也一定得到了很大的增加。 我们一起加油!

    
    