
ソフトウェア向けPTC:ウェブサイトと製品で一貫性を保つプレミアムAI翻訳
WordPressサイトと一緒にソフトウェアやモバイルアプリを開発していますか?WPMLのAI翻訳エンジンであるPTCが、それらの翻訳にも対応するようになりました。
最近、開発者の間で関数型プログラミングが話題になっていますが、それには理由があります。WPMLのバージョン4.5は、ウェブサイトを自動的に翻訳するオプションを導入した大規模なプロジェクトでした。私たちにとっても、これは関数型プログラミングに移行する絶好のタイミングでした。このプロセスで私たちが学んだことをご紹介します。
関数型プログラミングにより、コードが読みやすくなり、テストが容易になるという話を聞いたことがあるかもしれません。しかし、関数型プログラミングを完全に理解するには、それに関連する概念を理解することが重要です。
まず、関数型プログラミングは、関数を使用してソフトウェアを構築し、関数を組み合わせてより複雑な関数を作成することに重点を置いたプログラミングパラダイムです。関数型プログラミングにより、コードは本質的により宣言的になります。プログラムの状態を更新する一連のステートメントを記述するのではなく、何をしたいのかを表現します。
そこで使用される関数、特に純粋関数に注目することが重要です。純粋関数はデータを受け取り、データを返しますが、その他の副作用はありません。同じパラメーターを与えれば同じ結果が得られるため、関数のテストが非常に簡単になります。
簡単に言えば、関数型プログラミングでは出力が入力に依存します。
WPMLは大規模で複雑なプロジェクトです。最近まで、この複雑さを管理するためにオブジェクト指向プログラミング(OOP)を使用していました。主な課題の1つは、すべてのプロジェクトのテストコード(単体テスト)を記述することです。テスト可能なコードを記述する際は、加えた変更によって既存のコードが壊れないことを確認する必要があります。
OOPコードの単体テストには限界があります。クラスを独立してテストできるように、コードの依存関係をモック化する必要があります。その結果、テストは大規模で複雑なものになってしまいます。
関数型プログラミングの主な焦点は、「何を解決するか」であると言われています。対照的に、オブジェクト指向プログラミングは「どのように解決するか」というアプローチをとります。これを念頭に置くと、関数型プログラミングは私たちの課題のいくつかを克服するのに役立つと思われました。
関数型プログラミングについて話すとき、PHPは真っ先に思い浮かぶ言語ではありませんが、関数型のスタイルを導入することは可能です。たとえば、WordPressを拡張できるフックやフィルターは、関数を使用してWordPressの機能を上書きします。
残念ながら、PHPでより関数型に近いパラダイムを使用するための標準ライブラリはありません。多くのライブラリを検討しましたが、関数型のスタイルで表現力豊かなコードを記述するために必要なものを正確に備えているものはありませんでした。そのため、代わりに独自のライブラリを作成することにしました。さまざまなソースからインスピレーションを得ましたが、その多くはより成熟していると感じたJavascriptライブラリからのものでした。
関数型プログラミングは他のパラダイムとは異なるアプローチをとるため、関数型プログラミングのパラダイムへの移行は実際には大きなステップです。コードの記述や問題解決に対する考え方を変える必要があります。明確で簡潔な表現力豊かなコードを記述するには、多くの練習が必要です。
間違いなく効果があったと考えています。関数型プログラミングには、私たちに有利に働く多くの機能があります。
しかしもちろん、完璧なものはありません。関数型プログラミングはより簡潔で予測可能ですが、特に慣れていない場合には欠点もあります。
関数型プログラミングの人気が単なるトレンド以上のものであることは言うまでもありません。その性質上、関数型プログラミングは機械学習やデータ分析などのタスクに最適です。その結果、あらゆる規模の企業が関数型プログラミングに関心を示し始めたり、移行を開始したりしています。これはオブジェクト指向に永遠の別れを告げるべきだという意味ではありませんが、関数型プログラミングを試してみる価値はあります。最終的に使用しなかったとしても、開発者としてのスキルアップにつながる可能性が高いです。
さらに詳しく知りたい場合は、Composing Softwareのブログ記事シリーズから始めることをお勧めします。
さらに深く掘り下げる準備ができたら、私たちのFPプロジェクトのリポジトリをご覧ください。
私たちはチームに加わってくれる優秀な開発者を常に探しています。もしあなたがその条件に当てはまるなら、今すぐご応募ください。