从哪里开始编写软件?

时间:2010-02-19 13:15:00

标签: java architecture coding-style

我要开始的项目是我的第一个项目,它非常大。虽然这对我来说是一个很好的机会,但我不希望我最终陷入混乱的代码中,所以我将软件(软件架构)的整体设计分为三层:

  1. Presentation Tier ----(将通过Java Swing实现)
  2. BusinessLogic Tier - (将通过EJB技术实现)
  3. DatabaseLayer -------(将在Hibernate的帮助下实现)
  4.   

    Q1。我应该从哪个层开始选择?

    我没有标准产品开发环境的经验,但我确信有一些比其他更好的特定订单。

      

    Q2。我认为这些都属于良好设计原则和最佳实践。我已经在互联网上搜索了这些资源并找到了一些很好的资源但是如果你推荐我一些你知道的资源很短,有点和质量的内容,我将不胜感激?

7 个答案:

答案 0 :(得分:25)

“我的第一个项目,它非常大”

请不要那样做。

请先做一个小项目。

  1. 首先编写“模型”(业务逻辑)。这将是非常困难的,因为这是你的第一个项目。保持它小,专注于您可以测试并证明它有效的业务逻辑。

  2. 扔掉它。

  3. 现在再做一个项目。

    1. 首先编写“模型”(业务逻辑)。根据第一个项目中的经验教训,这将更好。这很难,因为这是你的第二个项目。保持它小,专注于您可以测试并证明它有效的业务逻辑。

    2. 写第二个持久性和对象关系映射。添加数据库持久性将非常困难,因为它只是您的第一个数据库项目,而且只是您的第二个项目。

    3. 扔掉它。

    4. 现在,您已经了解了自己在做什么。开始第三个项目。

      1. 首先编写“模型”(业务逻辑)。根据前两个项目的经验教训,这将更好。到现在为止,这仍然需要做很多工作,因为你终于明白了自己在做什么。但是,这项工作将不再涉及技术问题,现在将涉及用例和应用程序实际执行的真正的问题。

      2. 写第二个持久性和对象关系映射。根据第一个项目中的经验教训,这将更好。这仍然很难。没有什么比这更容易了。这只是你第二次,所以你仍然会犯错误;错误会更少。

      3. 最后写一下演示文稿。总是

      4. 当您还不了解该技术时,这实际上是执行大型项目的最快方式。

答案 1 :(得分:4)

垂直条纹中执行:从三层实现项目的一项功能,以便设计可以从端到端验证

首先可以跳过数据库层,数据可以是硬编码的,也可以是持久的,或者只是先存储在测试文件中。

答案 2 :(得分:1)

这有两种方法,两者都有优点和缺点:

  • 自上而下
    首先开发UI并实现UI所需的数据访问和商务逻辑。

  • Bottum式
    首先开发数据库层,然后再添加UI功能。

第一个优点是你有一个(至少部分)快速工作的UI,这是客户喜欢的,所以它是事实上的行业标准。后者提供了一个稳定而完整的数据库和业务逻辑层,但它们通常会有一些开销,因为不清楚以后如何需要/访问数据。

答案 3 :(得分:1)

我认为你应该从业务逻辑层开始,因为这个层应该决定其他层应该具有哪些功能。如果从数据访问层开始,那么您将面临很多YAGNI代码的风险,而且任何应用程序都应该以业务逻辑为中心,而不是持久性或表示逻辑。

您应该研究DDDTDD这样的最佳做法,您也可以从有关MVVM或类似模式的知识中受益。

答案 4 :(得分:1)

我会补充现有答案:

不要使用许多你不熟悉的技术或只有基本的不足之处; EJB,Hibernate等等。它们不会让你对正在进行的内容有所了解,并且会增加学习曲线,推迟你的截止日期。相反,寻求更简单的事情;例如具有JDBC或Spring / JDBC的RMI客户端 - 服务器应用程序,用于持久性。你总是可以在以后重新编写元素,但最好是逐步递送元素。

答案 5 :(得分:0)

Q1。拿一支笔和大量纸张开始设计。这样你就可以在编写代码之前制定“计划”。

Q2。使用纸张首先帮助设计质量;定期细化,重构和审查有助于保持质量。

答案 6 :(得分:0)