design bigger/more complex applications
当你说“设计更大/更复杂的应用程序”时,我想你心里想的是通常被称为“企业级应用程序”的东西。
您可以查看
这个问题,其中讨论了各种标准,以帮助尝试客观地确定是什么使应用程序成为企业级应用程序。
谈到这些问题,
小型应用程序可能不一定有很多这些相关问题。
即使是企业应用程序,由于需要解决的诸多问题,区别在于哪些问题更重要。此外,在出现冲突问题的情况下,选择哪一个问题比另一个问题更重要。
在设计应用程序时,如果您考虑到这些问题并根据这些问题做出设计决策,那将是一种朝着正确方向前进的方式。
然而,这比说起来容易。尽管这个列表看似简单,但对于初学者来说,设计正确通常非常难以实现,经验丰富的架构师也会因此失去睡眠/头发/生命。
其中一些决定只能通过经验学习。在我个人的经验中,对我有很大帮助的是与有经验的架构师一起工作并接受他们的监督。能够学习和获得他们的知识和经验的好处是您可以学到书籍/博客无法教授的东西。
But no matter what i try, how long i try: i just can't get it right.
My designs always seem wrong to me somehow.
坦率地说,你完全不是判断的合适人选。你怎么知道你的设计是错的呢?唯一真正能说明设计错误的方法是如果你的应用程序不能实现它的预期功能。
如果你想对你的设计进行一些验证,那我建议你找一个曾经参与过与你所拥有的类似规模项目的人,并请他们从他们的角度审查你的设计。这样会给你一个很好的想法,告诉你你的设计到底在哪里。
Cause of that i never drawn through a bigger project, i'm kinda never satisfied
with the structure of my program.
很不幸,设计企业应用程序的一些真正复杂性是由于各种其他情况的影响而无法模拟的。有些可能是组织约束,例如我的客户的首席技术官不允许使用X技术,还有一些是我们需要将我们的应用程序与某个供应商正在使用的自制MS Access应用程序集成。这些应用程序和其设计的复杂性是必须要经历的,通常可以从中学到很多东西。
为了获得这样的经验,您必须在提供此类机会的地方工作。通常我所看到的是,公司越大,他们的IT环境就越复杂,这就给了出现复杂场景的最好机会。