完蛋了,为什么我感觉 PHP 的语法这么优雅呢

1 天前
 florentino

temporal 官网示例

python:

@workflow.defn
class SleepForDaysWorkflow:
    # Send an email every 30 days, for the year
    @workflow.run
    async def run(self) -> None:
        for i in range(12):
            # Activities have built-in support for timeouts and retries!
            await workflow.execute_activity(
                send_email,
                start_to_close_timeout=timedelta(seconds=10),
            )

            # Sleep for 30 days (yes, really)!
            await workflow.sleep(timedelta(days=30))

ruby:


# Send an email every 30 days, for the year
class SleepForDaysWorkflow < Temporalio::Workflow::Definition
  def execute
    12.times do
      # Activities have built-in support for timeouts and retries!
      Temporalio::Workflow.execute_activity(
        SendEmailActivity,
        start_to_close_timeout: 10
      )

      # Sleep for 30 days (yes, really)!
      Temporalio::Workflow.sleep(30 * 24 * 60 * 60)
    end
  end
end

C#:

[Workflow]
public class SleepForDaysWorkflow
{
    // Send an email every 30 days, for the year
    [WorkflowRun]
    public async Task RunAsync()
    {
        for (int i = 0; i < 12; i++)
        {
            // Activities have built-in support for timeouts and retries!
            await Workflow.ExecuteActivityAsync(
                (Activities act) => act.SendEmail(),
                new() { StartToCloseTimeout = TimeSpan.FromSeconds(10) });

            // Sleep for 30 days (yes, really)!
            await Workflow.DelayAsync(TimeSpan.FromDays(30));
        }
    }
}

PHP:

class SleepForDaysWorkflow implements SleepForDaysWorkflowInterface
{
  // Send an email every 30 days.
  public function sleepForDays(): void
  {
      for ($i = 0; $i < 12; $i++) {
          // Activities have timeouts, and will be retried by default!
          $this->sendEmailActivity->sendEmail();

          // Sleep for 30 days (yes, really)!
          Workflow::sleep(30 * 24 * 60 * 60)
      }
  }
}

感觉对于 java 程序员 php 的心智负担好小啊

2727 次点击
所在节点    PHP
32 条回复
x86
22 小时 2 分钟前
@chendy #15 右手小拇指;键
lvsp95
21 小时 58 分钟前
@maigebaoer #12 从 PHP 切到 Java 也很简单
4ark
21 小时 56 分钟前
@june4 #13 也没毛病,毕竟 js 也是抄的 java
liKeYunKeji
21 小时 32 分钟前
php\javascript\java 都很相似。
jimmzhou
21 小时 24 分钟前
好多年没写 php 了 看到 php 的代码 感觉好亲切
wogogoing
21 小时 2 分钟前
op 怎么没把 Go 的贴出来呀。哈哈哈。
florentino
21 小时 0 分钟前
@wogogoing 因为 go 我也能看懂
florentino
20 小时 59 分钟前
@ccc008 $符号我一看就知道是变量,跟 shell 一样
wogogoing
20 小时 56 分钟前
@florentino 哈哈哈哈 不错不错
mx1700
3 小时 21 分钟前
看到 PHP 就感觉到左手小拇指有点抽筋
NewYear
2 小时 23 分钟前
PHP 最大的问题不是$,而是设计一塌糊涂,例如我要处理一个字符串,我要把这个字符串放在第几个参数?每个处理函数还不一样。

这导致要单独记忆,很多人都是懂多种语言,没谁想单独为某个语言记一些垃圾玩意。

另外就是 JS 这种可以链式调用,自动补全啥的都很优秀,php 这种……语法也不优美,函数套函数,函数套函数,眼睛都看不清楚引号和括号是哪个函数的(当年我写 vb 也有这个问题,烦)


这也是为什么很多人说别学 C#,学了之后学不会其他语言了,因为设计是真的好,由奢入俭难。
realpg
1 小时 56 分钟前
@urlk #17
但是 java 不支持$$

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1177111

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX