「アーキテクチャ」を含む日記 RSS

はてなキーワード: アーキテクチャとは

2022-01-01

ゲームやるよりゲーム作る方が楽しい

でも、ちゃんゲームとして完成させるのは超難しい

楽しいのは描画系とか、操作とか、シューティングだと色んな装備実装したりとか、そういうのは楽しい

敵の行動あたりから雲行きが怪しくなる

今でも敵の動作が単純な判断の積み重ねというか、

カッコよく言うならサブサンプションアーキテクチャというか、

要はパックマンとかスーパーマリオの延長線がなんだかんだ多いのではないか

シューティングなんか、同じ動作パターンの繰り返しであり、それが幾重にも積み重なる、

例えば、同じ画面内に様々な敵が登場するが、それぞれの敵の行動パターンは非常に単純であるが、

それがミックスされたり、自機に向かってどんな感じで弾を撃つとか、自機と無関係レーザーを放つとか、

そういう従来の方法でもまあ面白いんだけど、

結局は凝ったイライラ棒みたいなもんで、意外性がないというか面白くない

敵が、生きてるのではないか?と思うぐらいちゃんと考えてるように見せるというのは難しい

特にFPSにはそういう敵が要求される気がする

例えば監視兵士がいるとして、兵士巡回ルートを回りつつ、ときどき他の監視員とだべって、

しかし、プレイヤーが誰かに見つかると半数がプレイヤー位置急行する、

みたいなことをいちいち裏で計算してしまうと破綻してしまうし、

といっても、近接戦闘になって、目の前の敵が2Dシューティングのような動作をされても非常に機械的というか、

まあ、それでも初代doomみたいなのでも面白いっちゃあ面白いんだけど、

要はパズルゲーだから、初代doomとかquakeは、

敵が単純動作するという前提があって、それで敵を利用したり、ロードランナーみたいなところがある

でも、今の時代ちょっとしたニューラルネットとか使わないとつまらん気もするんだよなぁ

その落とし所というか、どうやったら面白くなるのか、が未だに分からない

そう、ゲームみたいなものを作るのは誰でもできるんだけど、どうやったら面白くなるのか、を実現するのは非常に難しい

レトロゲーでも、最初考えたルール実装したが面白くないのでルールを足した、

ルールを足したが矛盾が生じたので、最初ルールの一部を削った、みたいな試行錯誤が見えることがある

その結果としてできたゲーム面白いちゃんと新しいルールが成立している

特にレトロゲーは、ゲーム=新しいルール発明、みたいなところがあった

最近はそういう感じではなく、FPSならFPSを突き詰めていく方向になっている気がする

しかし、いずれにせよ、面白くなければならない

面白ければなんでもいいということでもある

ゲームを作るのは楽しいが、完成させるまでは非常に苦痛だ、困難な茨の道だ

一方でプロゲーマーとかゲーム実況というのは、他人の作った手の上で踊るだけではあるが、

フリーライドであり、楽な立場でカネがもらえるというか、

昨今の世の中は、そういういかに楽な立場でカネを得るかという方向に向かってるので、

何が言いたいのか分からなくなってきたが、

まあ、プログラムなんて書かない方がいいと思うんだよね

人生で他に大切なこともっとあると思うんだ

それしか選択肢がなかった人以外はやらなくていいと思うんだ

から子供プログラミング教育なんて必要ないと思うし、

それよりもプロゲーマー教育とかYouTuber教育の方が、特にDQNヤンキー系の親の子供とかは喜ぶと思うし、

仮にそれで人生が失敗しても、俺の知ったことではないし、

やっぱり人生は勝ち負けだし競争だし、端的に一言で言うならカネだと思うので、

まり子供プログラミング教育するぐらいなら、FIRE()とかほざいてないで大金稼げという話であって、

2021-12-31

ゼロトラストネットワーク」を見据えた抜本的な刷新「VDI と FAT PC


リクルートにおける VDI の導入、運用コロナ対応、そして今後の ICT 環境を紹介する連載。

最終回は、現在取り組んでいる VDI と FAT PCマルチ環境についてお伝えする。

石光直樹,リクルート(2021 年 06 月 04 日)

28 →目次に戻る

ただし、そうしたユーザーに対して環境が変わることについてきちんと説明しないと、混乱につながってしまいま

す。そこで、「なぜこのような環境に切り替えることに至ったのか」や、目的、狙いについてプロジェクト内で改め

議論しました。ユーザーに対して納得感ある形で社内説明資料などをまとめて、各部署の主要なユーザーに向

けて情報を発信していきました。

 今後の移行時には、さらに分かりやす資料の共有や移行マニュアルの整備などを行い、社内広報体制も整

えていきたいと考えています

VDI と FAT PCマルチ環境の実現に向けた検討

マルチ環境の実現は簡単なことではありません。特に FAT PC環境をどう作るのかについては、時間をかけ

検討しました。まずは、VDI 導入により大幅に解消された “3 つの課題 ”、すなわち「セキュリティの向上」「PC

管理コストの削減」「働き方変革への貢献」の対応策を FAT PC でどのように実現するか。これが次の課題です。

 「セキュリティの向上」については、高セキュリティ業務にはセキュア VDI を提供し続け、FAT PC に対しては従

来よりもセキュリティを強固にすることにして、この課題クリアしました。

 続いて「PC 管理コストの削減」では先述の通り、VDI 化によって大きなメリットを得られた部分でした。例え

ば、夜間にパッチを当てたりできるのは、システム管理担当者からすると非常にメリットになります。ところが、FAT

PC に切り替えると、このメリット享受できなくなってしまうことから、VDI 導入時に刷新した PC 管理システム

FAT PC にも導入することで一定解決を図るのに至りました。VDI の導入前に使っていた “ お手製 ” の PC

管理システムでは、パッチ当てや OS 更新などが大変でしたが、最新の PC 管理システムを導入することで、かな

り容易になっていたからです。とはいえ、VDI の管理性には劣ります。この点は、中長期視点でのより良い環境

目指すために、優先度を下げた部分といえます

そして「働き方変革への貢献」については、先述の通り、昨今の状況を踏まえると、ビデオ会議をより活用

きる FAT PC の方がメリットを引き出せるのではないかと考えました。ただし、FAT PC に切り替えることで、い

ままでとはネットワークの流れ方が変わってきます。VDI では、データセンターと端末の間でやりとりされるのは

VDI 画面のデータが中心でしたが、FAT PC ではさまざまな実データがやりとりされることになります。また、社

外などから社内に VPN 接続をする必要があり、その部分がボトルネックになりがちです。その問題に対しては、

ネットワークを再検討することで解決を図ることにしました。われわれの社内ネットワークは VDI に最適化されて

いたので、FAT PC の増加に合わせて拠点ネットワークを増強したり、VPN を増強したりすることを検討しま

した。これにより、働き方変革で求められていたテレワーク要件に対しても十分応えることができると考えてい

たのです。

29 →目次に戻る

しかしながら、この方針は大きく変更を余儀なくされることになります。その理由は 2 つあります。1 つ目はコ

ロナ禍の影響、2 つ目はネットワーク技術動向の影響です。

 社内ネットワークの再検討コロナ禍の影響を強く受けることになりました。在宅勤務の方針が示されたこ

で、社内から接続が減る一方、リモート接続が増え、社内のネットワークトラフィックの在り方が大きく変わって

しまたからです。コロナ禍が続く中で、そしてアフターコロナでそういった状況がどうなるのかについては予測

難しく悩みました。単純に拠点ネットワーク特に WAN を増強したとして、使われなくなるなら投資無駄

なってしまます。また、ネットワークにおいては今後のトレンドとして「ゼロトラストネットワーク」が注目されて

きています。おそらく、われわれの目指す「クラウドマルチデバイス環境」を支えるネットワークは「ゼロトラス

ネットワーク」になることでしょう。

では、いま「ゼロトラストネットワーク」のようなネットワークを入れるべきなのか。それともいまは暫定構成

して将来的に「ゼロトラストネットワーク」に移行できるようにするのか――。

コロナ禍で勤務の環境が急速に変わってきていることも踏まえて、この点を検討しなければならなくなりました。

いまもまさに検討しているところで、いまだに完全な結論は出ていませんが、現時点では PC 環境と同じく、将来

的には「ゼロトラストネットワーク」に移行できるように、いまのネットワーク構成を考えるべきと思っています

変化に対応して、かつ自ら変化を引き起こす

さらに、FAT PC 導入においては大きな変化があります。それは「SAC」(Semi-Annual Channel、半期チャ

ネル)の導入です。

VDI 環境においても「Windows 10」の導入は完了していましたが、「LTSB」(Long Term Servicing Branch※)

を導入していました。頻繁な更新を望まないユーザー向けに作られた、機能更新がない固定的な Windows 10 のモ

デルです。これに永続ライセンス版の「Microsoft Office」を組み合わせて利用していました。

現在名称は、「LTSC」(Long Term Servicing Channel、長期サービスチャネル

これは、「レガシーアプリ存在するので、機能更新がない OS の方がいい」と思っての選択でした。しかし、機

能が更新されないので、OS Office の最新機能が利用できないなど、将来的には「Microsoft 365」への接続

制限されるような状況でした。

30 →目次に戻る

 他方、SAC なら OS Office が常に最新の状態になります。そのため、半期あるいは 1 年に 1 回程度のペー

スで機能が大きく更新されますIT 部門としては、機能更新時に社内アプリケーションの動作確認などをする必

要があり、PC 管理タスクが増えてしまうことになりますPC 運用コストの増大につながり得るので、VDI から

FAT PC に切り替える際の検討ポイントの一つでもありました。しかし、ここでもわれわれは中長期視点大事

しました。

 今後の「クラウドマルチデバイス環境」においては、環境が常に最新になる世界普通になるでしょう。いま

スマートフォンを見てもそうですが、OS はどんどん更新されて、次々と新たな機能サービスが利用可能にな

るのがむしろ普通であり、その波が PC世界にも到来しているのです。PC 運用コストが上がったとしても、わ

れわれもこの波に乗って、ユーザーに対しても新機能サービスを次々に提供していき、より良く業務を行っても

らえるようになればすてきだなと思いました。

そこで、VDI から FAT PC への切り替えに際して、OSモデルLTSB(LTSC)から SAC に変更すること

しました。PC が最新に変わっていくSAC のような世の中の変化に対応しながら、われわれの環境においても

変化を引き起こし業務を変えることができればと思い、現在、導入を進めています

VDI 基盤の抜本的な刷新

ここまでは大多数のユーザーが利用することになる FAT PC のことを中心に述べてきましたが、セキュア VDI と

特定用途 VDI として利用する VDI 基盤のリプレースも大きな仕事です。

VDI 基盤リプレースにおいてもいままでの構成踏襲せず、一からあるべき姿を検討することにしました。まず

検討したのはクラウドの導入です。将来「クラウドマルチデバイス環境」になれば、VDI 自体クラウドのサー

ビスの一つという位置付けになるだろうと考え、クラウドでの VDI 利用を検討しました。

しかし、残念ながら今回クラウド VDI の採用には至りませんでした。われわれの試算ではオンプレミスに比べて

コストが見合わなかった点と、管理機能がまだまだのように思えた点が見送り理由でした。クラウドますます

発展する領域なので、今後は状況が変わるかもしれません。われわれも引き続き状況を観察し、一部の環境には

クラウドトライアル的に導入してみることも視野に入れて、現在検討しています

 当面の方針としてオンプレミスの VDI を構築することにしましたが、いままでの構成をそのまま踏襲するような

ことはしませんでした。必要としたのは、運用性やコスト拡張性に優れたアーキテクチャでした。

31 →目次に戻る

 議論検討を重ね、さら比較検討した上で、われわれは HCI(Hyper Converged Infrastructure)構成

を選びました。HCI はサーバ中心のアーキテクチャで、SAN(Storage Area Networkスイッチストレージ

を省くことができ、構成シンプルになり、運用性やコストメリットがある他、リソース拡張サーバを追加する

だけでよいので、拡張性にも優れています。われわれが望んでいた点を満たすアーキテクチャ評価しました。

いままでは「サーバネットワークストレージ」のいわゆる「3Tier」構成で安定運用できていたので、これを

変えるのは大きなチャレンジでした。とはいえチャレンジしないことには運用性もコスト拡張性も勝ち取れませ

ん。「新たなことに挑戦するのが、われわれのエンジニアリング方針だ」と考え、HCI 構成を選びました。

 加えて、VDI 基盤のデータセンターネットワークSDNSoftware Defined Network)に切り替える決断

しました。従来の構成比較し、運用性や管理性を鑑みて、より優れているという結論に達したからです。また

中長期視点でも、「ネットワークにおける Software Defined の方向性は変わらない」とみています

2021-12-04

anond:20211203154548

クリーンアーキテクチャとかドメイン駆動設計とかそういう思想のものは読んでも分からない。デザインパターンも読んだことあるけど理解できたことない。底辺プログラマには高尚すぎて頭に入らない。

難しいことはいいから、今俺が悩んでいることを具体的に解決してくれる本が欲しい。答えが欲しい。難しいことは分からない。お前が非エンジニアなのになぜそんなに詳しいのかも分からない。

世界は俺が理解できる世界ではないのかもしれない。バグが埋め込まれている。俺か世界のどちらかに

2021-12-03

anond:20211203140112

アーキテクチャの本もあるじゃん

非エンジニアの身からすると、クリーンアーキテクチャとかドメイン駆動設計とか古いやつだとMVCとかそういうデザインパターンの本も結構色々あると思うけどそういうので不足するようなもんなん?

というかアーキテクチャに関しても抽象化すれば

・どこに着目して分割するか

疎結合と密結合でどの部分を分離してどの部分をどちら方向に依存させるか

みたいな話だと思うから、そういうのを意識すればブログとかでも情報十分拾える気がする。

あくまでも非エンジニア目線だけど。

anond:20211203133037

需要あるんだ。俺的にはアルゴリズムとかよりもアーキテクチャの本を書いてほしい。

コードはこうやって分割するのがいいよとか、状態遷移が多様な場合はこういう風に考えると実装やすいよとか、非同期の場合機能をこういう風に組み立てると保守性が上がりますよとか。

ぶっちゃけ普通底辺プログラマライブラリに頼ること多いから、アルゴリズムについては計算量ぐらいしか気にしない。

2021-11-27

anond:20211127170835

ドメイン駆動とかクリーンアーキテクチャ最先端技術だと勘違いした、低学歴が一杯テックキャンプあたりからなだれ込んできたせいなんじゃないかな。シリコンバレーでは10年以上前に終わったトレンドがようやく日本フィーバーして、オンラインサロンとか商材ビジネスコンサルビジネスネタにされて、結局みんなけむに巻かれている間に、彼らがカネを握りしめて行方不明になった

2021-11-26

ソフトウェア開発の進歩完全に止まったような気がする

(ゲームの話は一切知らん)

つのまにか「Webフロントエンドの動きが速い」とか誰も言わなくなってることにふと気付いた。なんというかソフトウェアをどう作るか、という問題にたいして大枠の部分では完全に固まってしまって、あとは個別事情をどうやっていくかみたいな話しか残ってないように見える。

端的にいえば、宣言UIkubernetes聖杯だったのではないかな。

k8sにかんしては「Cloud Runみたいのでいいじゃん」みたいな話はあると思うんだけど、Envoyほしいとかなってくると結局事実上k8s必須だし、今新しくアプリ作るとき宣言UIじゃないフレームワーク使うこととかほぼ考えられんよな。で、こういう構成定番ですね、みたいになってなんかもう数年は経つ気がする。結果として日本語ソフトウェア開発の話になるとチームビルディングがどうのみたいな話しかなくなってきていて、なんかつまんねーな、と思う。

wasm+エッジコンピューティング進化でまたもっと全然新しいアーキテクチャが出てくるんだろうか。ぼくは今のところあんまりそんな気もしてなこないんですがどうでしょうか。結局そこでチマチマやって得られるユーザー体験の向上の果実って小さくねえか。とはいいつつ Cloudflare Workers でなんかできないかと遊ぶ日々なのだが。

2021-11-19

anond:20210922130624

目的によるんじゃないの?

壊れた自動車を直したり、新しい自動車を作ったりするには自動車の仕組みを理解しないといけないけれど、ただ乗るだけなら別に中の仕組みなんて知らないでも乗れるでしょ?

ツールを単に使うだけなら、別にツールの中身なんて知る必要はない。便利な使い方さえ知っておけばいい。

ツールを直したり、新しいツールを作ったりしたいと思ったら、どうやってツールが作られているか理解しないといけないから、コンピュータサイエンス必要になってくる。

まあ、コンピュータサイエンスとざっくり言ってもいろいろ含まれるよね。

自分学生時代に習ったもの記憶に残っているのだと、アルゴリズムデータ構造プログラミング言語処理系オペレーティングシステムコンピュータアーキテクチャネットワーク分散システム符号理論...くらいかなぁ。

今時はマシンラーニングソフトウェア開発手法なんかも学ぶのかもしれない。

それぞれどの辺を作ったり直したりしたいかで重点的に学ぶところが変わるかもしれないけれど。

2021-10-27

アンドロイドJavaなのがね...

ここ10年でさらレガシーなっちゃった

まあ今ではKotlinフレームワーク使うから生でJava触ることはあんまないんだろうけど、

VMがある分のオーバーヘッド永遠にiPhoneに勝てないんだよね。

もともといろいろなハードウェアに載せたいという趣旨Java採用したんだろうけど、

実際はARM一強になっちゃったし、たまにx86アプリ動かそうとすると動かなかったりで、

結局アーキテクチャに合わせたチューニング必要という、中途半端な状況になってる。

まあ後知恵諸葛亮なんですけどね。

2021-10-05

anond:20211004123017

嘘を書きすぎ。

ちなみに両方使ってるユーザーです。Pixel 5 もiPhone 13 Pro MaxXiaomiも。

コストiPhoneは9万でXiaomiは3万円。話にならない。

 → 自分自身説明にも書いてますが、スペック同等だとAndroid価格そこまで変わらない(厳密にCPUアーキテクチャ違うので評価しにくいが)

カメラ…僅差でXiaomiのほうがいい。

 → それは「カメラの性能」であって、「中のイメージセンサ」や「画像の変換技術」部分が違いすぎる。

 → と言いながら、別に私はiPhoneカメラ性能は全然どっちでも良い。スペック良すぎとも思う

バッテリー持ち…Xiaomiの勝ち

 → 個人的にこれは嘘。同じぐらいの作業をしてると明らかに13Pro Maxのほうが持ちがいい

  (PCWatch連携させて、動画見て、バックグラウンド地図系の情報掴んだりさせてる・・・という普段利用状況に合わせると。特にちょっと頑張らせるとAndroidは減る速度が大きい)

ディスプレイ…発色はほぼ同等だけどXiaomiのほうが大きく見やすい。

 → 絶対これもない。iPhone 13 Pro Maxのほうが見やすい。

 → でもじゃあそれに価格差がありますか?と言われるとこれだけではなんとも

コネクタ…Lightningは不便すぎて捨てたい。USB-Cでパソコンタブレットスマホイヤホンも充電できる便利さを知ってしまうと、アップルはアホかと思う。

 → よくこれ言う人居るんだけど、もうすでに家にいっぱいコードあるからもうどっちでもいい。

 → むしろUSB-CだとPCの充電に使えるレベルの給電できるコードだったりPD対応してるかだったり、チェック項目むしろ多いよ。Lightningだったら確実なんだけど。

 → iPad Proも持ってるのでUSB-Cで充電速度がまちまちやなと思う感はある。まぁ不便ではないどっちでも良い。

指紋認証Xiaomiあり、iPhone12はなし。これも信じられない。この時代指紋認証はあったほうがいいに決まってるじゃないかアップルはドケチなのか、ユーザーを舐めてるのか、実装する技術がないのだろう。

 → 指紋認証価値を覚えない。顔のほうが早いし、Androidも顔にしてる。反応が悪かったり、濡れてると使えないとかあるのでマジで指紋じゃなくていい。

 → ちなみに顔認証Apple WatchiPhoneあれば連携してるのでマスクしてようが解除しますよ・

アプリ内購入…Xiaomi…というかAndroidはみんな電子書籍動画アプリ内で買える。アップルはわざわざSafari立ち上げて検索し直して買うというバカみたいな手間がかかる。アップルが頑なにアプリ内購入に3割のマージン要求するからだ。

 → これは事実Amazon Kindleの本を買えないのはマジでクソ。いちいちブラウザなのだマジで苦痛。これだけでも価値はある。

デザイン…好みだがガスコンロみたいなiPhoneカメラデザインはクソだと思う。そしてiPhone画面サイズの割に重たい。軽くする技術がないのだろう。

 → これも事実iPhone 13 Pro Maxカメラ出っ張りすぎ。

画面分割…画面分割でYoutube動画を表示させ下でLINEチャットするとかAndroid普通に出来るが、iPhoneは無理。マルチタスク技術がないのだろう。

 → できるよ?YouTube側の対応もあってまだできないけど技術的にはもうできる。でも正直つかわん。動画見ながらチャットとかしたかったらPCとかタブレット使えば?

  (画面分割とかAndroid使ってても一度もつかわんわ。)

ちなみに、「ウィジェット機能」「フォルダ機能」とか別にどうでもいい。Androidのほうでも使わんしiPhoneの方も殆ど使っとらん。

それのもとがAndroidから〜って言われて、じゃあAndroidって決める理由にもならん。どっちでも使えるならどっちでも良いってことでしょ。

(そんなに開発元原理主義過激派なんですか?)

で、どっちが良いの?って言われたら100%Apple

だってAppleの端末のほうが問題起きにくいもん。初心者も使えるし。Androidだとイレギュラーなことが起きたりカスタム前提なので。

あと明らかにゲームアプリをやっててもiPhoneのほうが動きが快適。マジでAndroidのほうがおかしくなること多い。

からカスタムしたい」「何でもできるようにして欲しい」「安く買いたい」ならAndroidでいい。

私も2〜3台目の適当スマホAndroid。数万なら無くなっても痛くないし。

でも普段使っててストレスかかりにくいのはマジでiPhoneからiPhoneがメインなのは変わらん。

2021-09-26

触れてはいけないIT用語一覧

Twitterブログで触れても何の得にもならない単語を並べる

2021-09-11

jQueryWebアプリケーションに使っている会社は滅びゆく(前編)

いまもjQueryWebアプリケーション大事ライブラリとして使っている会社は少なくないと思う。

jQuery会社で使っていると何が問題なのかを語っていこう。独断偏見によるものなので、jQueryを使っていても問題ない会社も当然ある。たとえばペライチのサイトを作る会社とか小規模サイトなんかでは全く問題ない。

フロントエンドエンジニアjQueryを嫌うので入社しない

退職理由: jQuery

採用困難で売り手市場になっている時代、そして「jQueryを触らなければならない環境 vs モダンフロントエンド環境」という選択肢がある中で、あえてjQueryを選ぶフロントエンドエンジニアは少ない。

また、新人はもはやjQueryを学ぶことはない。彼らはES6以降のJavaScript / TypeScriptを書く。よしんばjQueryを学ぶことになった新人がいたとしても、それはただその新人可哀想なだけで、現役なわけではない。ラガード(遅滞者)の仲間入りをさせているだけだ。新人でもキャリアデザインできる新人は「jQueryオワコン」という情報には触れているので、よほど就活で失敗しない限りはjQueryのところにたどり着かなくなっている。

そもそもバックエンドエンジニアでもモダンフロントエンドを書くような環境が増えてきた中で、2世代も前のjQueryだけでアーキテクチャに関する一考もないコードメンテしなければいけないので、「jQuery」という言葉だけでフロントエンドエンジニアでなくとも入社を避けがちだ。(jQueryアーキテクチャがしっかりしている可能性は低い。アーキテクチャがしっかりしているならばjQuery依存しておらず、jQuery依存していないのであれば簡単jQueryから脱却できるはずで、簡単jQueryから脱却できるならもう脱却しているはずだからだ)

メインストリームの部分はほとんどリプレイスが終わっているというでもなく、すべて現役でjQueryなのであれば尚更問題で、誰もメンテしたがらないコードの出来上がりだ。「弊社はCOBOLで書いてます!」とにこやかに言うようなものだ。

(ただし、さすがにjQueryだけでフロントをやっているという会社求人ほとんど見かけることはない。無意識スクリーニングで落としているのかもしれない)

jQueryを使っている会社には、フロントエンドエンジニアは一人もいないと言いきってもいいかもしれない。もしくは、今まさにjQueryをやめようとしているかたまたま入ってきたフロントエンドエンジニアが今まさに辞めようと迷っているかのどれかだ。

jQueryを使っていました」というエンジニアは、他社からフロントエンドスキルが0とみなされる。つまりフロントエンドエンジニアではないという意味だ。jQueryは、jQueryを使っている会社に対してしか武器にならないのだ(逆はできる)

jQueryが書ける人材は縮小傾向にある

jQueryを書ける人口自体は増えているだろうが、労働市場から撤退し始めている。昔jQueryを書いていた人材の人数が上限で、そこから新たに学ぶ人の絶対数が減っているため、全体としては減っている。

私もjQueryは以前業務で書いていたが、もう数年書いていない。特にメリットを感じないからだ。遊びで、生のJavaScriptを書くことはある。

jQuery入社するのは、昔からjQueryを使っている高齢エンジニアか、なぜかjQueryを学ぶことになってしまった新人である可能性がある。

そのため、需要供給に応じて、昔いたようなスキルレベルの人を今の市場で見つけようとすると費用がかかってしまう。jQuery書けますという人材が高年齢化しているのだ。そして世継ぎはいない。

jQueryを使っている会社にはフロントエンド知識が高い人がいないのでjQueryから抜け出せない

リプレイスはハッキリ言って難しい。モダンフロントエンド学習するだけでは足りなくて、それを使いこなせた上でしかjQuery使用したカオスイベントコードも読めて、そしてアーキテクチャを考えてリプレイスしなければいけない。

時代が下るにつれて、そうしたハイスキル人材はより高価値になっていき、レア度も単価も高くなる。今そういう人を雇うという判断をしない会社が、どうして今後もっとハイスキルの人を雇えようか。

jQueryを使ったサービスがしっかり利益を出している点もリプレイスを難しくしている。全廃もできない。かと言ってコストに見合わなければリプレイスという経営判断も難しい。経営が困難な状態ならより厳しい。

何も理由がなくjQueryを使い続けたいという奇特な人は多くないはずだ。何か理由があってそうなっているわけだ。カッコよく言うと『ナッシュ均衡』という状態だろう。今会社にいる人材もいわゆる『jQuery人材』が多いため、そこを打破するのはとても困難な道だろう。

jQueryから抜け出すには、すでにいる人材がなんとかしてリプレイスするか、外から連れてきて改革するしかない。しかし大抵の場合既存従業員にとってはそんな大変なことをするよりも転職したほうが楽な道だ。(もちろん、「jQueryしかなかったサービスモダンフロントエンドにした」というのが実績としてある人材はかなり魅力的な人材で引くてあまたなことだろう。その意味ではピンチをチャンスに変えるときの『チャンス』ではある)

ReactやVue.jsに変えたいと思ったとして「じゃあお前それですぐに利益出せんのかよ?」と詰められたら、その論争をクリアしてまで変えるのはほとんど無理に近い。通常、リプレイスそれ自体価値を生み出さない。リプレイス後に運用コストが低下したり、人材獲得がしやすくなるために利益が出るのだ。リプレイスとは長期の投資であるため、短期的には必ず損失になる。経営が困難な状態リプレイスしようとするのは、生活困窮世帯リボ払いをやめさせるぐらい難しい。そのため、まず自分が身銭を切ってリプレイスするしかない。そしてリターンがあるかもわからない身銭は切りにくい。そして同僚は容易に『抵抗勢力』になる。

ちなみにこのヤバい状態を『jQueryの崖』と言う。

jQueryを使っている会社フロントエンド周りのCI/CD等、エコシステムが構築できていない可能性がある

jQueryを今も使っているということは、裏を返せば「これまでリプレイスをしてこなかった」「リプレイスしようとしたが無理だった」という実績にもなる。

jQueryを使っている会社は、昔からあるコードをもとに書いているため、今もES6以前の文法で書いている可能性がある。そうしてどんどんと情報が少なく、古く、現代通用しにくいものになっていく。

bundlerを使っていない可能性が高いし、もしかするとCI/CDも無いかもしれない。そうすると、モダンインフラエンジニア(もしくはモダンインフラ知識のあるエンジニア)がいないかもしれない。SREという概念がないかもしれない。

世間一般から見ると会社の中が古いのだが、古い会社にいると「自分が古い」とはなかなか思えないものだ。太っちょの集まりの中にいたら「自分はそんなに太ってない」と思うのと同じことだ。

すべては憶測なので、実際は違うかもしれない。

jQuery自体が悪いわけではない

さんざんdisってきたが、そもそもjQueryは何も悪くないし、大変優れたライブラリだ。ちょっとしたプロトタイプを作るときには良いものであるかもしれない。しかも今もjQuery自体メンテされている。そのため、状態管理さえうまくできていればjQueryだろうがなんだろうが問題ない。

問題は、jQueryというライブラリを使ってきた時代からアーキテクチャ前進していない点にある。何年もずっとその状態だということだ。そこを今日に至るまで誰1人として変えられなかったということだ。特に経営陣は何の問題視もしていない可能性が極めて高い。そうした社内のしがらみが反映された結晶体、それが『使用技術: jQuery』という言葉になっているのだと思う。また、ヤバさは、jQueryバージョン反比例する。

jQueryを使っているアプリケーションには、jQuery担保していなかったアーキテクチャ部分に問題があることが多い。また、どこから呼ばれているか誰もわからない複雑なイベントSPAもクソもないページ遷移ごとのリロード、誰もどこもテストできず、HTMLベタ書きで書かれたJavaScriptコード、その場しのぎでデタラメに書かれた関数無視される変数スコープサポートが終わったライブラリドキュメントを見つけるのすら困難なよくわからないライブラリ高齢しか知らない伝説機能伝説のハック、などもある。これらはモダンフロントエンドではほとんど発生しないものだ。

そのため、一定基準として「jQueryを使っているかどうか」で、フロントエンドエンジニアとしてのやりがいがあるかどうかを判別できる。

そうして、フロントエンドエンジニアというのはもうjQueryに見向きもしていない。書けるけど書きたくない。パラレルワールドのようなものだ。

そういうようなことを「使用技術: jQuery」という文言から感じ取ってしまうのだ。

(そしてこれは、実際の仕事の中身が違うかどうかは関係ない。jQueryとは、そういうふうなブランドと化しているのだ)

前編のおわりに

jQueryを使っている会社からしたら「そんなことはわかっている」という部分で、「じゃあどうすればいいのか?」という部分が気になるところだと思う。

そこで、後編では「どうやってjQueryを全廃すればいいのか?」「実際にどのように全廃したのかの事例」について、だいたい来週ぐらいに書くつもりだ。

お楽しみに!

2021-08-26

anond:20210826102920

足りるかどうかは製造研究をしたいのか、設計アーキテクチャ研究をしたいのかによる

設計だけやってTSMC製造ぶん投げるだけなら10億あれば十分なんじゃね

TSMCがそんな小口相手にしないと思うかもしれないが、あそこは産学連携で割と柔軟に対応してくれる

とは言っても俺が学生だった5年前と比べるとTSMCもめちゃくちゃ忙しくなっただろうから今どうなってるのかは知らないが

2021-08-08

プログラミング言語関数型言語ってOOPを含めた命令言語に劣る理由

Scala や Elm と Lisp やら HaskellOCamlSML関数型のプログラミング言語勉強したけど、これらが命令言語に劣る理由解説しよう。

解釈自由関数言語アセンブリレベル最適化ができない

これは、SQL も同じ問題を持っているが、関数言語は「こういうふうに動いてね」という解釈インタープリターやコンパイラが「推測する」必要があるのだ。つまり、書いているときパフォーマンスプログラマー想像できない。

ハイパフォーマンスを出す関数言語コンパイラを作れば良いじゃん?

それが、現実的に厳しいのだよ。マジでコンパイラ関連は金にならない領域になってきたので、関数言語のための独自コンパイラを作る持続可能組織が無い。確かにLLVM を使えば x64arm といった最新のアーキテクチャ対応できるかもしれないけど、フロントエンドレベルすら応対が辛い。よって、関数言語C言語にてチューリング完全な同等なコードだと「いくら最速に書いても」遅いのである

人間は「命令するほうが楽」なので、関数言語は負けます

例えば if と書いたら、関数言語は else が必須ですが、命令言語は else 無しでも動いちゃうのですね。文系の連中が数学的な背景を加味して要件定義できると思うか?違うだろ。毎回、上に else のことについて聞いたら、プログラマー生産性は下がるだろ。関数言語は、上が文系だとますますだが、分岐もきっちりとおさえる必要があるから生産性命令言語に劣るよ。

2021-08-06

Railsからプログラミング始めた人ってプログラミング能力低くない?

Railsしか書けないおじさんというのがいる。

RubyRailsでどう書くかを知っているか知っていないかだけでそれがプログラミング能力だと勘違いしてる人が多い。全員というわけではないが……

「このライブラリでこう書ける」とか「こういう書き方がある」とか「こっちに書くとここがこうなる」とか、そういった規約覚えゲー的なところに目を取られて、どれだけRuby on Rails関連の規約をたくさん覚えているかプログラミングスキルが高いかいかを考えてる人が多い。もちろんそうした覚えゲーもある種プログラミング能力の一部なのだが、一方でライブラリを単に入れただけでは実現不可能パフォーマンスを考えたコードを書くときアーキテクチャ設計の段階では、何年も経験しているはずなのに役立たずになる。

ググるのが面倒なシンタックスシュガーや、ライブラリを導入した人しか辿り着けないconfigなど、規約(笑)かい発見非可逆なルールによって、それを導入した人だけが知っていて既得権益を得られるような構造になっている。そのために、ある機能を新しく利用したときに、それを知らない人にRails知識マウントを取れるようになっている。この気持ち悪さは、例えるなら、刑法を全部読んでからじゃないと街を歩くだけで逮捕されて、しかも何の罪で逮捕されているのか教えてもらえないようなものだ。

それで、全員というわけではないが、そういったRailsしか書けないおじさんは別言語で書くときに平気で今までプログラミングしたこといかのようなレベルの最悪のクソコードを生み出してくる。そもそも言語が書けないおじさんも多い。

なぜなら、Rails知識こそがプログラミングスキルだと考えていて、Rails知識すごいワールドしか生きてないからだ。覚えゲーをやっていただけで、スキルとしてはポケモン名前を覚えただけにすぎない。社内スキルのようなものだ。

自分としてはRubyRails直ちに滅びるとは思っていないが、Railsをメインで使ってる会社からしても、こうしたRailsしか書けないおじさんは今後不要になってくると思う。

2021-08-05

一次ソースにあたれ

情報一次ソースに当たることは昨今の情報社会において当然のことのように思うが、情報が氾濫している以上そうしなくても満足してしまうこともしばしば。

アプリケーション開発においても全くその通りで、QiitaGitHubで拾ってきたサンプルコードベストプラクティスと思い込んでしまう人がいる。

DDDだ、クリーンアーキテクチャーだ言い始める前に、エリックエヴァンスアンクルボブの本を手に取ろう。

そして会社プロジェクト情報の入手へ投資を惜しまないようにしよう。本を買おう。

本を読んだ人はまずチームメイトに共有しよう。議論してあなた会社・チームにとってのベストプラクティスを見つけていこう。

2021-08-01

anond:20210801013057

そういうプロジェクト成功する「何か」なんて存在しないの。色々 PMI なり、PMBOK なり、努力はされたけど、歴史的に「こうしたらうまく行った」という決定打は見つかってなくて、ただ「動くコード」だけが計算機が受け入れてくれたのでが世の中にあふれている。設計とかも「確固たる開発したいもの」ができないのだったら、KPI だけは決めて、PostgreSQLAWSRailsNext みたいなアーキテクチャKPI相談しつつチョイスして、まずは堅いエリアを構築していくという、XPスクラムの方が速くて良いと思うよ。

2021-07-20

呪われてるっていうけど

組織委員会の話ね

 

https://mainichi.jp/articles/20210719/k00/00m/050/325000c

呪われてるってからには、組織委員会を呪う人がいるはずなんだけど、だれ?

 

平将門東京呪いって言えばこの人

    ただ五輪関係の開発で首塚荒らしたという話は聞かない

②周期…麻生さんの説 1940年東京五輪1980年モスクワ五輪ボイコットを「40年ごとに問題が起きた、呪われたオリンピック」と発言 当たり過ぎて怖い

    40年周期を1年ずらした程度では呪いから逃げられなかった(2年ずらしが正解?)

ザハ・ハディッド競技場コンペ案でお馴染み 呪う資格がある

    インポッシブルアーキテクチャー展 https://bijutsutecho.com/exhibitions/5030 で展示された競技実施設計図集には、設計チームの巨大な情熱(もしくは呪い)がたしかに込められていた

    ただ御本人は香港ピー時代からボツには慣れてる模様

 

よって、呪いを鎮めるため、くまっちの便座競技場は即取り壊し、ザハ案を40年ごとに建て替えて首塚を祭るしかない

2021-07-16

国が半導体技術者の育成はできるのか

仮に予算を十分につけたとする。

半導体エンジニアも、様々な分野があり、

  1. CPUGPUSoCなどのアーキテクチャを作るアーキテクト、
  2. Verilog、SystemVerilogVHDLなどのハードウェア記述言語でRTLコーディング検証する論理設計
  3. レイアウトタイミング検証、電源検証をする物理設計
  4. PLL、アナログ回路設計者、
  5. 光プロセス設計するプロセスエンジニア
  6. ウェーハのダイシング、パッケージ組み立てなど後工程

など多岐に渡る。

問題なのが書籍電子書籍がない分野であり、国が本気になったとして、教科書作りから始めるわけで、出来るのか?

2021-06-06

「わからない」の一個下の言葉がほしい

ある事柄について、「わからない」人と「とてもわからない」と言っている人がいるとする。

僕は大抵の事柄において後者だ。前者をA,後者をBとする。

Aの人にとっての「わからない」はこうだ。

これらは、僕、ひいてはB側からすると十分わかっている側なのだ

対して、Bの人にとっての「(とても)わからない」はこうだ。

  • 求められている条件・要件そもそも理解できない・解釈しきれていない
  • 仮に理解できたとして、それをどう作品に落とし込めばいいかからない
  • 頑張ってなんとか落とし込んだところで、直後の自分から見てもアラが目立つ
    • 時間が経ってみるとなおのことひどい
  • 説明して」と言われたとき、うまく説明できる自信がないし、実際できない

ひどいものだ。

でも初めてやることや慣れてないことに対してだとこうなる場合も多いのではないだろうか。

そういうときに、Aの人が予防線的に使う「わからない」という言葉で、Bの人の本当にわからない人たち側の「わからない」が埋もれていく。

これらは、Bの人が向き合っている現場で出せる最後アラートなのだ。これが埋もれたり、出しづらくなっていくと、ただでさえわからない問題を抱えているのによりストレスが溜まる。

から、A側の人は気軽に「わからない」と言わないでほしい。もしくは、僕たちB側の人のための「わからない」の一個下の理解度を指す言葉がほしい。

2021-05-28

anond:20210527102709

論文の数式を理解したいという点でいうと、例えばLSTMの数式が出てきて数式だけみて「はい理解できた」という人は稀で、普通はLSTMとはどういうアーキテクチャなのかってことを事前に概念図とかを使って学んでいて、それで「あ、この式か」とわかったりする。(そもそもLSTMの数式が論文に出てきたら多分コピペで引っ張ってきたものだろうし)

基本的数学知識を身につけるために自分がやったのは、大学院入試数学問題集をひたすら解く方法

ただ、それだと離散数学知識が身につかんのでそっちはMITOCWで勉強した。

ログイン ユーザー登録
ようこそ ゲスト さん