假设您将使用问题&项目跟踪软件,如Jira,用于规划下一个即将开展的项目。
您决定使用像Laravel这样的PHP Web框架,用于遵循模型 - 视图 - 控制器(MVC)架构模式开发Web应用程序。
您将问题编写为用户故事,添加一些详细信息等。
[用户特定 - 组件]
- 作为用户,我希望能够管理用户。
- 作为用户,我希望能够注册新用户。
- 作为用户,我希望能够删除现有用户 ...
[消息特定 - 组件]
- 作为用户,我希望能够进行对话。
- 作为用户,我希望能够向用户发送消息。
- 作为用户,我希望能够接收用户的消息。
- 作为用户,我希望能够在消息中使用表情符号。
- 作为用户,我希望能够将文件附加到邮件中 ...
[特定于任务 - 组件]
- 作为用户,我希望能够拥有一个任务板。
- 作为用户,我希望能够添加新任务。
- 作为用户,我希望能够为用户分配任务。
- 作为用户,我希望能够将任务标记为已完成 ...
你明白了吗?!这一点没问题。有些故事甚至可以分解为较小的故事,然后分解为某些任务,然后执行一些子任务。
让我们更进一步:您使用像github这样的源代码协作平台,结合Fish-Eye并决定使用smart-commits来过渡问题。您的问题和提交结构合理,易于跟踪。 (美丽的想法)
如果您遵循框架规则中的指南,您将有不同的任务要跟进:
必须完成此任务以及更多任务才能确认组件已完成。通过组件,我的意思是上面定义的,如用户,消息,任务。所有这些都有一些共同点,你会一遍又一遍地重复。但是,您仍然希望使用完成此问题所需的源代码来填充该问题。
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等)
那么,如果您计划一个遵循框架指南的项目,您会如何考虑这一点?
目标是确保一个组件包含所有提到的任务,然后才能确认完成。
答案 0 :(得分:3)
敏捷的原则之一是:
我们的首要任务是满足客户 通过早期和持续交付 有价值的软件。
如何做到这一点取决于开发团队。如果您发现PHP Web框架可以帮助您尽早和持续地交付有价值的软件,那么这很棒。
敏捷方法中没有任何内容可以决定您应该使用的技术方法。关键是,重点是提供价值,而不是建立许多技术基础。正是这样,您可以快速调整以适应变化(无论是需求变更还是技术变更)。