MrM*_*MAG 0 php model-view-controller agile jira laravel
假设您将使用像Jira这样的问题和项目跟踪软件来规划下一个即将到来的项目。
您决定使用像Laravel这样的 PHP Web 框架来开发遵循模型-视图-控制器 (MVC) 架构模式的 Web 应用程序。
您将问题编写为用户故事,添加一些细节,等等。
[用户特定 - 组件]
- 作为用户,我希望能够管理用户。
- 作为用户,我希望能够注册一个新用户。
- 作为用户,我希望能够删除现有用户。
...
[消息特定 - 组件]
- 作为用户,我希望能够进行对话。
- 作为用户,我希望能够向用户发送消息。
- 作为用户,我希望能够接收来自用户的消息。
- 作为用户,我希望能够在消息中使用表情符号。
- 作为用户,我希望能够将文件附加到消息中。
...
[特定任务 - 组件]
- 作为用户,我希望能够拥有一个任务板。
- 作为用户,我希望能够添加新任务。
- 作为用户,我希望能够为用户分配任务。
- 作为用户,我希望能够将任务标记为已完成。
...
你懂了?!目前没有问题。有些故事甚至可以分解成更小的故事,然后再分解成一些任务,然后是一些子任务。
让我们更进一步:您使用像github这样的源代码协作平台,结合Fish-Eye并决定使用智能提交来转换问题。您的问题和提交结构良好且易于跟踪。(美丽的想法)
如果您遵循框架 laravel 中的指南,您将有不同的任务需要跟进:
必须完成此任务,甚至更多任务才能确认组件已完成。我所说的组件是指上面定义的,比如用户、消息、任务。他们都有一些共同点,你会一遍又一遍地重复。但是您仍然希望使用完成问题所需的源代码填充问题。
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');
    }
}
上述代码只是确保组件完成所需任务的一部分。这看起来与其他任务相似。(数据库迁移、控制器、视图、验证、事件等)
那么,如果您计划一个遵循框架指南的项目,您将如何考虑这一点?
目标是确保组件包含所有提到的任务,然后才能确认它已完成。
敏捷的原则之一是:
我们的首要任务是通过早期和持续交付有价值的软件来满足客户。
如何做到这一点取决于开发团队。如果您发现 PHP Web 框架可以帮助您实现有价值软件的早期和持续交付,那就太好了。
敏捷方法中没有任何内容规定您应该使用的技术方法。不过,关键是要专注于提供价值,而不是建立大量的技术基础。正是这一点使您能够快速适应变化(无论是需求变化还是技术变化)。
| 归档时间: | 
 | 
| 查看次数: | 384 次 | 
| 最近记录: |