はてなキーワード: TypeScriptとは
去年から稼働している現場で、以前からあったReact Nativeの面倒を見ているんだがまあこれがひどい出来なんだ。
jQuery時代に見かけたようなコードをやたら見かけたので思わず懐かしくなってしまった。
リファクタリングしようとしたけど直す範囲が広すぎてアプリを壊しかねなかったので、早々に諦めてだましだまし保守をしていた。
そんな中今年に入ってアプリのリニューアルの話が出てきた。React Native捨ててSwift/KotlinやらFlutterに書き換えるとかそういうのではなく、デザインの刷新といくつかの機能改修。
このままだとアプリが更に魔窟化するので、マネージャーに色々相談したところいくつかの事実がわかった。
ということだった。
結局現状のまま進めるわけにはいかず、要件定義の傍らリファクタリング作業をしている。
そういう経緯もあったので、リファクタリングとテストの工数も積んだ上で見積もりだしてもらってる。
「レガシーアーキテクチャをモダンアーキテクチャに刷新」なんてよく聞く話しだけど、
実態は「長年の増改築とだましだましのリフォームが限界になってきたので新築で建て替えます」何だと思う。
最近は「Vue.jsからRemixにマイグレーション」なんて見かけるけど、悪いのはVue.jsじゃなくて禄に設計しないでコード書いてるエンジニアと、
リファクタリングには予算でないけどマイグレーションなら予算取れるという悪しき風習。
年がら年中フロントエンド刷新しているような会社は地雷なので行かないほうがいい。
キミたちがすでにReactやVueやTypeScriptを鮮やかにコーディングできることはよく知っている。
だが、弊社が運用更新保守業務を請け負っているサイトの中には、いにしえの「XHTML」で書かれたものがまだちらほら残っている。10年以上リニューアルしていないような古めかしいサイトに多い。
そのうちのどれかを、君たちの誰かが担当することがあるかもしれない。
その時はぜひ気をつけてほしい。
<img />、<br /> のように自分で自分を閉じるスラッシュを必ず書くのがXHTMLのルールだ。
もちろんこんなルールに丁寧に従わなくても表示は正しくされる。
だが、ソースをバリデータに通せば閉じスラッシュのない空要素はすべて文法エラーとされる。
納品先の意地悪な情シスがいちいちバリデーションして結果にケチをつけてくることだってある。
そういう隙のない納品物を目指してくれ。
なお、いくつかのXHTMLサイトは君たちの先輩が組んだものだ。CSSには君たちの知らない謎のテクニックがたくさん書かれているだろうが、それを参考にする必要はない。当時はそうするしかなかったが、もはや無用のものばかりだ。
だが、それを見てキモいとかダサいとか大きな声で嘲笑してはいけない。それを組んだ人は案外近くの席に座っていたりするからだ。傷つくんだ、けっこう。
どれだけ頑張って型定義しても
最終的に
ああ、こいつも結局、JavaScriptになっちゃうんだなあって
娘をどれだけ大事に育てても
最終的に見知らぬ男のちんぽを知ってしまうような
人生の虚無を見ているようだ
Typescriptで、クラスを書くべきかクロージャを書くべきか分かりません。
>スキル
JavaScript / jQuery / TypeScript / HTML / CSS / Sass / WordPress / ActionScript / Flash / PHP / grunt / gulp / webpack
自分には6年付き合った年上の彼女がいた。名前はPHP。学生の時からの付き合いで、自分にとっては初めての彼女だった。付き合った当初は全てが新鮮で、オブジェクト指向やSOLID原則、大事なことは全て彼女から教えてもらった。(そう思われるかもしれないが、)時間が経って彼女の魅力が感じられなくなってしまったということはなくて、彼女は歳をとっても魅力的なままだった。むしろreodonlyプロパティやEnum、null safe演算子など、新しい機能が導入されてますます綺麗になっていったように思う。最近ではジェネリクスさえ導入されたようだ。彼女は本当に努力家だ。
(褒められた話ではないが一応、彼女以外の女性を全く知らなかったわけではなく、TypeScriptという若い子と少し遊んでいたこともある。TypeScriptは昔からの知り合いのJavaScriptの妹で、大雑把な姉と違って几帳面で、少しオタク気質もある個性的な子だった。よく新しい型パズルを考案して楽しそうに話してくれたが、自分には正直よく分からなかった笑。)
そんな中でも基本的には6年間PHPとずっと一緒に過ごしてきた。前述の通り彼女に何か不満があったわけではない。ただ、彼女との将来に不安を覚えるようになってしまっていた。周囲に彼女と付き合っていることを話すと、「え、まだPHPと付き合ってたんだ?(昔は人気だったけど、最近はそうでもないよね)」みたいなことを、彼女のことをよく知らない人から言われたりもした。そこまで直接的ではなかったけれど。自分も、彼女以外の女性のことをほとんど知らずにずっと彼女と付き合っていて大丈夫なのかななんて思ってしまったりしていた。
結局自分はPHPと別れて、新しい女性と付き合う決断をした。新しい彼女の名前はGo。彼女は若いのに自分の芯がしっかりしていて、みんなの憧れの格好良い女性といった人だった。そんな彼女と付き合いだして、最初は戸惑うことも多かった。
例えばこんな感じだ。
また、今まで当たり前だと思っていたPHPの良さに気づくことも多い。PHPStanを使えば静的型付け言語と同じように型安全性を担保できていたし、彼女のWeb FWには歴史が長いだけあって痒いところまで手が届く様々な機能が完備されていた。経験豊富でこちらの要望をなんでも受け止めてくれるような包容力があったことに今更気づいた。
とはいえ、いつまでも昔の彼女を引きずっていてもしょうがない。Goにはこちらに積極的に合わせてくれるような包容力はないが、彼女なりの哲学を持っていてそれ故の美しさがあると思う。そして正直、まだ彼女の10分の1も理解できていない。彼女が得意だという並行処理や、実行速度が求められるような処理も、自分はまだ実際に実装したことはない。でもこれからしっかり向き合って、Goのことをもっと理解して、実りのある交際にしていきたいと考えている。PHPと別れてGoと付き合う決断したのは自分なのだから。
TypeScriptの「==null」が話題になっているけど、こういうほんの些細な認識の違いから全てが崩壊していくのがTypeScriptの辛いところだな。
あれはあれでgoroutine除けばシンプルすぎて他の言語に入りづらくなるかもしれんけどな
やっぱ初心者はフロントエンドから入るのが日本じゃ一般的じゃないか?
つまりjavascriptもしくはtypescriptから入る。
プログラミングをサッカーに喩えると、巷にいるプログラマーは小学生サッカーレベルからJ1レベルの選手まで全部いるんよ
他の人から見たら
だけど普通に会社とかフリーランスとかでドヤ顔でプログラマーとして働いてるわけ
面接でそれを見抜くのはそれなりの能力を持った人、つまりはスカウトじゃないと無理なので小学生レベルでも普通に採用される
その結果リフティングしかできないやつがJ3のチームに普通に所属してしまう
小学生の昼休みサッカーでそこそこ上手いって言われてるレベルなのにJ3の試合に出てくるっていう地獄ね
いざ試合になってボールが回ってきたらリフティングばっかしてて、いきなり敵にパスするみたいなことを平気でやって
「パスミスはしょーがないでしょ」
具体的に言うとオブジェクト指向を理解できてない状態でTypeScriptでanyを連発してバグだらけのクソコードを量産しておいて
とか言うくせに
「別にオブジェクト指向で書く必要はないけれど、だったらどこでメンテナンス性と堅牢性を担保してるのか教えて?」
って言うとフガフガ言いながら逃げるっていうね
Wasmを中心としたエコシステムが普及し始めたら、JavaScriptに縛られているTypeScriptはレガシー扱いされるようになるだろうな。
JavaScript/TypeScript だけ出来ても仕方がないんだけど、全くのプログラミング初心者がプログラミングというものをかじるための入り口として勧める人は割と居るように思う。SCRATCH的な意味でのプログラミング入門用として。
まあ、俺は勧めないけどね (^^;
TypeScriptはまだ「生き残るのか不安な技術」側だと思うよ
TypeScript sucked out much of the joy I had writing JavaScript. I’m forever grateful that @yukihiro_matz didn’t succumb to the pressure of adding similar type hints to Ruby. May we forever enjoy this beloved language without 🙏 https://t.co/KqttpLzo8B— DHH (@dhh) May 7, 2023
そうそう、そうなんだよ。
それなのにはてなに巣食うエンジニアどもはよってたかってJavascriptだTypescriptだと初心者殺しを薦めてきやがる、許せねぇよなぁ?
大して金にもならねぇしよ。
今時PHPでもRubyでも言語単体だと徐々に仕事減っていくはずなので
フロントエンド(JavaScript/TypeScript)かクラウドインフラ(AWS)どっちかとセットで勉強してますって体裁は欲しい
TypeScriptみたいにAltPythonも流行ってくれ...
ワイのチームもTypeScript使ってないやで。