php 将相同代码,别写重复代码 (DRY)

别写重复代码 (DRY)

试着去遵循DRY 原则

尽你最大的努力去避免复制代码,它是一种非常糟糕的行为,复制代码 通常意味着当你需要变更一些逻辑时,你需要修改不止一处。

试想一下,如果你在经营一家餐厅并且你在记录你仓库的进销记录:所有 的土豆,洋葱,大蒜,辣椒等。如果你有多个列表来管理进销记录,当你 用其中一些土豆做菜时你需要更新所有的列表。如果你只有一个列表的话 只有一个地方需要更新。

通常情况下你复制代码是应该有两个或者多个略微不同的逻辑,它们大多数 都是一样的,但是由于它们的区别致使你必须有两个或者多个隔离的但大部 分相同的方法,移除重复的代码意味着用一个function/module/class创 建一个能处理差异的抽象。

用对抽象非常关键,这正是为什么你必须学习遵守在类章节写 的SOLID原则,不合理的抽象比复制代码更糟糕,所以务必谨慎!说了这么多, 如果你能设计一个合理的抽象,那就这么干!别写重复代码,否则你会发现 任何时候当你想修改一个逻辑时你必须修改多个地方。

坏:function showDeveloperList(array $developers): void

{

foreach ($developers as $developer) {

$expectedSalary = $developer->calculateExpectedSalary();

$experience = $developer->getExperience();

$githubLink = $developer->getGithubLink();

$data = [

$expectedSalary,

$experience,

$githubLink

];

render($data);

}

}

function showManagerList(array $managers): void

{

foreach ($managers as $manager) {

$expectedSalary = $manager->calculateExpectedSalary();

$experience = $manager->getExperience();

$githubLink = $manager->getGithubLink();

$data = [

$expectedSalary,

$experience,

$githubLink

];

render($data);

}

}

好:function showList(array $employees): void

{

foreach ($employees as $employee) {

$expectedSalary = $employee->calculateExpectedSalary();

$experience = $employee->getExperience();

$githubLink = $employee->getGithubLink();

$data = [

$expectedSalary,

$experience,

$githubLink

];

render($data);

}

}

极好:

最好让代码紧凑一点function showList(array $employees): void

{

foreach ($employees as $employee) {

render([

$employee->calculateExpectedSalary(),

$employee->getExperience(),

$employee->getGithubLink()

]);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值