はてなキーワード: バックエンドとは
知らんことは知らん言って調べられること。そしてそれに備えて絶えず学習する事
別にフロントからバックエンドまで一人で出来なくても良いしいろんな言語でコーディング出来なくて良い
むしろ色んな分野に興味持って最低限の知識を得るのを嫌わなければいい
もちろん業界にはテックリードな人が多く、そんな人に「エンジニアなのにそんなのも知らないの?」とか言われるかも知れないが気にすんな。その辺言うのは東大や京大卒の学生企業ベンチャーの社長兼エンジニアで上場ゴールで会社潰すような人くらいだ
なのでこれからエンジニア目指す人はとにかく学ぼう。出来ればソースは公式のを。翻訳がカスなの多いけど頑張って読もう。技術書展とか技術ブログはその後。AWSの最強のマニュアルは公式のドキュメントよ。
間違ってもオフショアの開発に丸投げして自分は作ってもらってるシステムがどんなものかも分からず改善も開発側から提案されるのみの日本の7割のエンジニアにはなるなよ
phpの場合、<?php 処理 という具合に書くが、この中身にはhtmlやjavascriptも包含することができてしまう
MVCフレームワークを使わないにしろ、基本的にビューとバックエンド処理は分割しておくべき。
さらにDB処理、ビジネスロジック、プログラム処理と言ったものがあるが、
DB処理はdbhandler専用のモジュールに分けておき、さらにそのモジュールを処理するテーブルごとに分けておいた方が良い(MVCではモデルと言う)
特にビジネスロジックとプログラム処理の区別だが、「商品名にアダルト商品と思わしき文字列があった場合は登録を拒否する」という例外は「ビジネスの例外」であるのに対し、「商品名の文字列がDBで用意されたvarcharの可変文字範囲を超えた」という例外は「技術の例外」であるということを明確に区別するようにコードを書く。
オンラインで活動するということは、自分に何が起こっているのか全く理解できていないことを意味する。
なぜこんな検索結果が出るのか?
俺はプラットフォームやウェブサイトによって常に操作されているという感覚があり、時には陰謀論に駆られることもある。連中は俺を購買へとそそのかす。
エンゲージメントのために最適化されたアルゴリズムは、SNSで人が見るものを形作り、強い感情的反応を引き起こすものを見せて、参加を促す。
しかし、そういうことがわかっていても、大手テクノロジー企業が生活にどのような影響を与えているかを具体的に知るのは困難である。
Googleはユーザーの検索クエリを改ざんして、より儲かるキーワードを含めるようにしている。
Googleはユーザーを結果ページの有利なショッピングリンクに誘導するために、バックエンドで「子供服」のクエリを「NIKOLAI ブランドの子供服」に密かに置き換えている。
Google検索チームとGoogle広告チームが協力して商業クエリを密かに増やし、それによってより多くの広告を発生させることで、収益増加したいらしい。
Googleのビジネスに対する広範な懸念、つまり製品の有用性や楽しさを低下させるような収益化の決定をGoogle が行っているということが、同社に対する政府の訴訟の中心となっている。
ビッグテック製品に関する証拠は逸話や曖昧なものになる傾向があり、事実よりも雰囲気に基づいたものになってしまう。
Googleは広告や独自のウィジェットをフィードに挿入しながら、人々が目にするものを常に微調整してランク付けし、それによってエクスペリエンスを変えている。
こういう仕事は割とあるんだがなかなかのヤバさだったので紹介したい
ちなみにサービスの内容は非常に良くてユーザーも万単位で付いているらしい
バックエンドは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を使っていたので大丈夫そうだったが、本当に大丈夫かどうかは自信がもてない
システム内容はゴミのような状態だがサービス的には良いので、幹部やプロダクトオーナーからは追加要望が山盛り来ている
開発チームが「稼働が足りない」という理由で断ったので「じゃぁ支援して」ということで自分のところに来たのだが
「申し訳ないが、そもそもそういうレベルに無いし、全て作り直しが必要」
と伝えてもどうやら伝わっていない様子
ちなみに元々の開発チームは過去にもこんな感じでサービス作ってたらしいが売れないので問題になってなかった様子
ぱっと見は動いているように見えるのが厄介なところ
正直逃げたいところではある
バックエンドがRDBのCRUDだけだと確実にスマートUIのクソプログラムだけど大丈夫なんか?
高校生が1日でできるようになるようなことは確かにあるけど高校生が1日でできるような仕事は高校生が1日目でもらうような給料しか出ないよ
業務内容に触れない時点で嘘だと丸わかりなんだよな。
普通、どんなフレームワークにどういう手を加えてCICDやってるかって話になるでしょ。
そういう具体性がない時点で給料1000万を信じてもらおうなんて無理無理w
ちなみにrailsが流行ってた2015年頃、railsとruby本体のコミッターを並行しながらC社のバックエンドやってた人が給料1380万で話題になってたね。
でもその人は技術顧問の立ち位置で、シニアリードアーキテクトが800切るくらいだった。わかる?その水準だと技術と組織のマネジメントも自然とやるのよ。
バックエンドのリードだけで1000万出すなんて経営判断はありえないってエンジニアからしたらわかるわけw
まぁこの増田が唯一当ててる所は、三角関数はバックエンドでそこまで使わないって所かな。
あとは全部的外れだねw
RDBのCRUDが書ければ今どき中高生でもできる仕事なんだよ。
ゴタゴタ言ってるやつはまずはやってみなさい。
指導者がいたら1日あれば書けるようになる。
ほんとそう
やってることはめちゃくちゃ単純
クライアントから電文が来るから、電文に応じて入れ物に入れたり出したりする
マジでこれ
3流大学文学部出身で年収1000万超えたプログラマーだ、プログラミングはハローワークの職業訓練で初めてやった
今はバックエンドエンジアをやっている、リードエンジニアってやつらしい
それに実験演習卒論学会とかたくさん勉強しないといけないらしい
そんな俺が不思議に思うのはなぜそんな数学ができてたくさん勉強した理系の人たちで、年収1000万超えないようなしょぼい仕事している人がいるのかだ
自動車を作ったり列車を作ったり電機を作ったり、とても難しいものを作っているらしい
なのに年収600万とかで働いている理系の専門職がいるなんて信じられない
うん、給料は属している企業業界で変わるってのは聞いたことあるよ
でもだったらプログラマとか需要の強い職業で働けばもっと給料上がるじゃないか
俺みたいな3流大学文学部出身でも年収1000万のプログラマに成れたんだから
俺には分からない