如何规划和构建使用框架的敏捷项目?

时间:2016-08-10 19:39:14

标签: php laravel model-view-controller jira agile

假设您将使用问题&项目跟踪软件,如Jira,用于规划下一个即将开展的项目。

您决定使用像Laravel这样的PHP Web框架,用于遵循模型 - 视图 - 控制器(MVC)架构模式开发Web应用程序。

您将问题编写为用户故事,添加一些详细信息等。

[用户特定 - 组件]

  
      
  • 作为用户,我希望能够管理用户。      
        
    • 作为用户,我希望能够注册新用户。
    •   
    • 作为用户,我希望能够删除现有用户   ...
    •   
  •   

[消息特定 - 组件]

  
      
  • 作为用户,我希望能够进行对话。      
        
    • 作为用户,我希望能够向用户发送消息。
    •   
    • 作为用户,我希望能够接收用户的消息。
    •   
    • 作为用户,我希望能够在消息中使用表情符号。
    •   
    • 作为用户,我希望能够将文件附加到邮件中   ...
    •   
  •   

[特定于任务 - 组件]

  
      
  • 作为用户,我希望能够拥有一个任务板。      
        
    • 作为用户,我希望能够添加新任务。
    •   
    • 作为用户,我希望能够为用户分配任务。
    •   
    • 作为用户,我希望能够将任务标记为已完成   ...
    •   
  •   

你明白了吗?!这一点没问题。有些故事甚至可以分解为较小的故事,然后分解为某些任务,然后执行一些子任务。

让我们更进一步:您使用像github这样的源代码协作平台,结合Fish-Eye并决定使用smart-commits来过渡问题。您的问题和提交结构合理,易于跟踪。 (美丽的想法)

如果您遵循框架规则中的指南,您将有不同的任务要跟进:

  • 数据库(有关系)
  • 模型(有关系)
  • 的Controler
  • 路线(API)
  • 观看(UI)
  • 验证
  • 活动
  • 验证
  • 错误/例外/记录
  • ...

必须完成此任务以及更多任务才能确认组件已完成。通过组件,我的意思是上面定义的,如用户,消息,任务。所有这些都有一些共同点,你会一遍又一遍地重复。但是,您仍然希望使用完成此问题所需的源代码来填充该问题。

User.php (模型关系)
    

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * Get the message record associated with the user.
     */
    public function message()
    {
        return $this->hasOne('App\Message');
    }

    /**
     * Get the task record associated with the user.
     */
    public function task()
    {
        return $this->hasOne('App\Task');
    }
}

Task.php (模型关系)
    

use Illuminate\Database\Eloquent\Model;

class Task extends Model
{
    /**
     * Get the user that relies the task.
     */
    public function user()
    {
        return $this->belongsTo('App\Task');
    }
}

Message.php (模型关系)
    

use Illuminate\Database\Eloquent\Model;

class Message extends Model
{
    /**
     * Get the user that relies the message.
     */
    public function user()
    {
        return $this->belongsTo('App\Message');
    }
}

上述代码只是确保组件完成所需任务的一部分。这看起来与其他任务类似。 (db-migration,controller,view,validation,events等)

那么,如果您计划一个遵循框架指南的项目,您会如何考虑这一点?

目标是确保一个组件包含所有提到的任务,然后才能确认完成。

1 个答案:

答案 0 :(得分:3)

敏捷的原则之一是:

  

我们的首要任务是满足客户   通过早期和持续交付   有价值的软件。

如何做到这一点取决于开发团队。如果您发现PHP Web框架可以帮助您尽早和持续地交付有价值的软件,那么这很棒。

敏捷方法中没有任何内容可以决定您应该使用的技术方法。关键是,重点是提供价值,而不是建立许多技术基础。正是这样,您可以快速调整以适应变化(无论是需求变更还是技术变更)。