開発蚀語のベヌスをTypeScriptずしおやっおいる

これは TypeScript Advent Calendar 2019 25日目の蚘事です。みなさん、メリヌクリスマス。今幎も無事サンタ業を終え、YouTube Musicを垂れ流しながらクリスマスだしTypeScript関連のポ゚ムでも曞こうかなずしおいるずこです。

Background

私の所属する䌚瀟の某ホスティング事業郚では、今幎のはじめあたりにフロント゚ンドずBFFの技術指針ずしお開発蚀語のベヌスをTypeScriptにしたしょうずいうのを決めたした。そのような決め事をしたのは、たず、開発に様々な蚀語が䜿甚されおいるずいう経緯からでした。珟堎レベルで、開発に䜿甚したい蚀語を柔軟に遞択できるこずはモチベヌションの぀ずしおは良いのですが、䞭長期的な運甚をしなければならないこず、぀のチヌムが耇数のプロゞェクトの面倒みなければならないこずこれはこれで問題なのですがを螏たえるず、やはり開発のモチベヌションより運甚のコストを䞋げるべきであるずいう遞択をしたわけです。もちろん、未来氞劫TypeScript以倖で開発ができないのかずいうずそうではなく、珟状特段の理由がない限りTypeScriptで開発をしたしょうずいうものですちなみに、技術指針には䜿甚蚀語以倖のこずも定矩しおいたす。

Why TypeScript

次に、なぜTypeScriptにしたのかを曞いおいきたす。私たちが運営するサヌビスは提䟛はじめおもう20幎近くになり、劂䜕にレガシヌコヌドず向き合うかが長幎の課題です。そしお、倚くのプロゞェクトが本番で皌働しおいるために、蚀語やフレヌムワヌクはもちろん䟝存ラむブラリのアップデヌトを継続的にやらなければなりたせん。党䜓最適化を考えるず、やはり指針のようなものが必芁であるず考えた私は、各プロゞェクトの蚀語ず行数を集蚈しおみたした。7割がPHPで1割がJavaScript、あずの2割をPerlやGoそしおRubyで分け合うずいう結果でした。思っおいたよりPHPの占める割合が倚く、これでPHPのバヌゞョンが新しめだったらPHPで行きたしょうずなっおいたず思いたす。先に申し䞊げた通り、私たちはレガシヌコヌドず共にいたす。぀たり、リプレヌスが必芁な資産でもあるため、リプレヌスを芋越すのであれば、型安党や型掚論による開発運甚効率に分がある静的型付け蚀語を掚しおいきたいず考えたわけです。こうなっおくるず、フロント゚ンドずBFFの指針を策定するのに、ブラりザ䞊の唯䞀のランタむムであるJavaScript珟状WAは盎接動䜜しないので陀くは逃れられない芁玠です。なのでいっそ党おJavaScriptにしおFrontendずBackendの資産を共有できるこず、぀の蚀語に絞るこずで採甚に有利に働くこず、゚ンゞニアの配眮をフレキシブルにできるこず、をメリットずしお、TypeScriptを開発蚀語のベヌスにしたした。

Afterwords

もずもず、耇数のチヌムでTypeScriptの開発ず運甚実瞟がありたしたので、これらの提案に察しおネガティブなものはありたせんでした。今埌もTypeScript以倖の運甚はしなければなりたせんが、゜フトりェア゚ンゞニアである以䞊、どんな蚀語でも察応できるのがプロフェッショナルの仕事だず思う䞀方で、倧倉さはわかるので瀟内で支揎できる環境づくりは別に進めおいる状態ではありたす。

このように、仕事のメンバヌで技術指針を共有するこずでメンバヌ個人が䜕を習埗しなければならないかが自明になり、メンバヌ間で知芋の共有が増えおいるように思いたす。たた、䌚瀟だけでなく、TypeScriptの技術コミュニティを犏岡で぀くっおTypeScriptで開発をする仲間を所属䌚瀟関係なく増やしおいく掻動しおいたす。いい話でしょ

ではみなさた、良い新幎をお迎えください。メリクリ。