はてなキーワード: awsとは
個人事業主でソフトウェア開発の仕事をしている。受託中心、請負契約が多めなので、いわゆる「フリーランス」とはちょっと違うと思う(フリーランスと言うと、準委任契約でどこかの企業のソフトウェア開発をお手伝いしてるイメージ。厳密な定義は知らんけど)。
自宅で仕事をするとサボってしまう程度には精神が軟弱なので、オフィスで仕事をした方が効率が良い。今もお世話になっている場所はあるのだが、値段の割には要求仕様を満たしていない面もあって、より良いものを探したいところだ。
長文になってしまい申し訳ないが、この記事は増田の要望を書き連ねておく内容になっている。もしもコワーキングスペースの企画運営側の人の目に止まれば幸いではあるが、同じ考えの人が多く居るのか?という点での保証は致しかねる。
これを見てる皆さんは、どういう条件を重視するのだろう?
第3回でNode.jsのインストールには成功していた。と思う。3時間くらいかかったけど。
ところが、
npm run dev
Error: Your current platform "freebsd" and architecture "x64" combination is not yet supported by the native Rollup build. Please use the WASM build "@rollup/wasm-node" instead.
知らんことは知らん言って調べられること。そしてそれに備えて絶えず学習する事
別にフロントからバックエンドまで一人で出来なくても良いしいろんな言語でコーディング出来なくて良い
むしろ色んな分野に興味持って最低限の知識を得るのを嫌わなければいい
もちろん業界にはテックリードな人が多く、そんな人に「エンジニアなのにそんなのも知らないの?」とか言われるかも知れないが気にすんな。その辺言うのは東大や京大卒の学生企業ベンチャーの社長兼エンジニアで上場ゴールで会社潰すような人くらいだ
なのでこれからエンジニア目指す人はとにかく学ぼう。出来ればソースは公式のを。翻訳がカスなの多いけど頑張って読もう。技術書展とか技術ブログはその後。AWSの最強のマニュアルは公式のドキュメントよ。
間違ってもオフショアの開発に丸投げして自分は作ってもらってるシステムがどんなものかも分からず改善も開発側から提案されるのみの日本の7割のエンジニアにはなるなよ
周りは俺よりもスキルの高いメンバーしかいない。なんと、人間性に問題があって誰も役職持ちになれないチームの管理職になった。
チームの中で1番若くて、スキル低くて、経験も浅くて、社歴も浅い俺がリーダー。メンバーが5人もいる。
放っておくといろんなところで喧嘩する奴らなので、俺が窓口になるんだけど仲裁に入ったところで専門的な話ができるわけでもなく。
相槌とあっそれ俺が確認しておきます以外に返事のバリエーションがない。周りがそんなプログラムの持ち方?とかで言い争いしてるときに、「何言ってっかわからねーけど仲裁せな!」って思って、「それは〇〇ってことですよね?」ってとりあえず議題を繰り返してみたりする。それだけ。でもなんもわからない俺を見たらみんな呆れてクールダウンしてくれるからこの行為に意味はあると信じてる。信じるしかない。
俺は恐ろしいんだ。
チームメンバーもとい部下たちが「まじあいついらねーわ」「管理職って役職ついてるだけ」って囁かれて俺を助けてくれなくなる日が。
まだ問題は起きてない。でも遠くない未来に囁かれてみんなに見捨てられる確信がある。
俺、スキル無さすぎて1人じゃ案件の設計できないからみんなに見放されたらできる仕事ないんだ。見捨てられたら会社辞めるしかねえ。でもそんなひよってたら管理職は務まらねえ。
俺だってAWS初心者本買ったり公式ウェビナーとか見てるよ。でも全然わかんねーのよ。ついてけねぇんだ。入社三年。なにも進歩がない。それなのになんで俺が管理職なんだよ。俺を起用しないといけないほど、うちのメンバーの人間性終わりすぎってことなのか?
ああ嫌だ。家じゃ呑まないようにしてたのに、毎晩酒飲むようになってしまった。おいしい白ワインが安いのにうまくてたくさん入ってて助かる。助けて。
以下はすべてメインで使ってるプラットフォーム・プロダクトです。
俺って異端だよね!!😆
わかってる。ここでLinuxをメインOSに使えてない時点で俺は中等半端なんだよ🥺
でもそれも含めて異端だよね!😆
こういう仕事は割とあるんだがなかなかのヤバさだったので紹介したい
ちなみにサービスの内容は非常に良くてユーザーも万単位で付いているらしい
バックエンドは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を使っていたので大丈夫そうだったが、本当に大丈夫かどうかは自信がもてない
システム内容はゴミのような状態だがサービス的には良いので、幹部やプロダクトオーナーからは追加要望が山盛り来ている
開発チームが「稼働が足りない」という理由で断ったので「じゃぁ支援して」ということで自分のところに来たのだが
「申し訳ないが、そもそもそういうレベルに無いし、全て作り直しが必要」
と伝えてもどうやら伝わっていない様子
ちなみに元々の開発チームは過去にもこんな感じでサービス作ってたらしいが売れないので問題になってなかった様子
ぱっと見は動いているように見えるのが厄介なところ
正直逃げたいところではある