はてなキーワード: フロントエンドとは
カウンセリング 元増田と重複 ブランディング ブランドの価値を高めるための施策 チャンピオンズ ゲームのドラゴンクエストチャンピオンズ、欧州サッカー大会のUEFAチャンピオンズリーグ、テレビ東京系列とBSジャパンで放送されたTVチャンピオンの後続バラエティ番組、 魚乃目三太による週刊少年チャンピオンの歴代編集長取材記マンガ コメンスメント 本来は始まりの意だが米国では卒業式をさす。また日本の同名ファッションブランド アイン・ランド ロシア系アメリカ人の小説家、思想家、映画脚本家。リバタリアンやアメリカの保守主義に大きな影響を与えた バインディング binding:結びつける、縛り付けること。またラグビー、スノボ、ITなどで用語化している フロントエンド WebサービスやWebアプリケーションで直接ユーザーの目に触れる部分 コリンチャンス ブラジル・サンパウロを本拠とするサッカークラブ オレンジレンジ 日本の男性5人組ロックバンド ポインティング pointing:指し示すこと。また彫刻、ITなどで用語化している
にさんかたんそ 元増田と重複 こてんこてんこ 上野あつこによる日本の漫画作品 にほんのぶんか 日本の文化 かうんせりんぐ 上と重複 いでんしけんさ 遺伝子検査 ぶりんこうんこ 辻希美と加護亜依による非公式ユニット ぶらんでぃんぐ 上と重複 ちゃんちゃんこ 元増田と重複 おてんとさん社 童謡雑誌『おてんとさん』の発行と児童文化運動のための結社 しゃんしゃん火 天火の異称。日本各地に伝わる怪火の一種
こてんぐテン丸 かぶと虫太郎による日本の漫画作品 たらんたランタ 槙ようこによる日本の漫画作品 ぺぺんがペンゴ セガのメガドライブ用ゲームソフト。Wiiのバーチャルコンソールでも配信
ブリンぶりん家 2004年TBS系列から放送されたアニメ・バラエティ番組
こういう仕事は割とあるんだがなかなかのヤバさだったので紹介したい
ちなみにサービスの内容は非常に良くてユーザーも万単位で付いているらしい
バックエンドはAWS EC2で動作しているがログインアカウントは共通化されていてパスワードを全員で共有している
ユーザーを追加しようとしたら「そのような勝手な行為はセキュリティ上許可されていません」とのこと
本番環境とStagingはインスタンスが分かれているが運用は同じ方法
Staging上で5人ぐらいが作業しているが、ホームの下にそれぞれのユーザーが自分の名前でディレクトリを作って作業している
バックエンド側のシステムは詳細は伏せるが、某システムで動いている
仮にNode.js系だとすると、package.jsonがあってnpm run installでインストールするのだが、普通にインストールしようとするとエラーになる
内容は依存関係で失敗しているのだが、本番も同じソースで動作している
動作させるにはnode_modulesをまるっとコピーして、とのこと
さっきの自分の名前のディレクトリ配下にコピーしてきて、適当なポート番号でサーバを立ち上げれば一応は動く
このため、新しいモジュールを入れようとすると依存関係で失敗するため、便利なモジュールがあってもインストールできないし
セキュリティアップデートも当てることはできない(現にバージョンがすごく古い)
ソースコードはGitHub管理されているがセーブポイント感覚でcommitされているのでコミットログを見ても何が起きているのかさっぱり分からない
おまけにPRも使わずにmainにマージしまくっていてわけがわからない
加えてソースコードはコメントアウトの嵐でどこに何が書いてあるのかさっぱりわからない
データベースはPostgreSQLだが山ほどテーブルがあるのに外部キー依存は入っていないしVIEWも作られていない
まぁ、他にもテーブルを見ていくとアンチパターンのオンパレードで、EAV、ジェイウォークあたりは確認できたしHTMLやSQLが格納されているテーブルも見つけた
ソース上でクエリを作ってAPIを作っているが、ザッと見ただけでもインジェクションし放題の状態になっていた
フロントエンドも詳細は伏せるが、いわゆるReact的なものを利用している
こちらは npm run installでインストールできるし npm run devでちゃんと動く
ただ前述の通りバックエンドはローカルで構築できないのでEC2を利用するしかなく、CORS対応のためのプロキシを自前で用意する必要があった
バックエンド同様にGitHub管理されているが、管理しているだけ
バックエンドは5人ぐらいが利用しているが、ソースコードを編集するのは実質1人なのでコンフリクトはほとんど起こさないらしいが
フロントエンドは5人ぐらいが編集するのでコンフリクトしまくっている
解消するときにデグレすることが日常茶飯事でその都度Hotfixしている
コードもコメントアウトだらけなのに加えて、不必要なコードが大量にあるので可読性が著しく低い
(難しい処理を読み解いて追いかけていったら最終的に使われていない、などが大量にある)
2000行ぐらいあるコードとかChatGPTに突っ込んだら20行ぐらいになる予感がある
また、DBがご覧の状態なので取得されるデータも全然抽象化できておらず、コードが膨れ上がっている
例えばProductの一覧データをサーバから取得して、ユーザーがクリックしたProductをCartに投入するのだが、投入する情報はProductではなく、CartItemにする必要があるし
OrderするときはOrderItemにしてAPIを叩く必要がある
ほとんど同じ情報なのだが微妙に変わっていたりKey名が違っていたりするのでそれぞれ変換する
他にも数え上げればキリがないが、コピペして少しだけ改変している部分などが大量にあってバグがあるのかどうかすら判別できない
DBにHTMLやSQLが入っていると言ったが、調べて見るとDBから取得したHTMLをそのまま埋め込んで表示していたりした
SQLについてはフロントエンド側でSQL生成しており、そのテキストをAPIに送り込んでサーバ側で実行して貰った上で格納とかしていたので
「ここにDROP TABLEとか書けばTABLE消えるんですか?」
と聞くと
とか言われたのでことの重大さを伝えたが、まだ対処できていないようだった
認証等はOAuth2を使っていたので大丈夫そうだったが、本当に大丈夫かどうかは自信がもてない
システム内容はゴミのような状態だがサービス的には良いので、幹部やプロダクトオーナーからは追加要望が山盛り来ている
開発チームが「稼働が足りない」という理由で断ったので「じゃぁ支援して」ということで自分のところに来たのだが
「申し訳ないが、そもそもそういうレベルに無いし、全て作り直しが必要」
と伝えてもどうやら伝わっていない様子
ちなみに元々の開発チームは過去にもこんな感じでサービス作ってたらしいが売れないので問題になってなかった様子
ぱっと見は動いているように見えるのが厄介なところ
正直逃げたいところではある
あれはあれでgoroutine除けばシンプルすぎて他の言語に入りづらくなるかもしれんけどな
やっぱ初心者はフロントエンドから入るのが日本じゃ一般的じゃないか?
つまりjavascriptもしくはtypescriptから入る。