「デプロイ」を含む日記 RSS

はてなキーワード: デプロイとは

2025-11-11

契約 → 解約 or 乗り換えしたサブスクの記録

価格は調べたり当時から改定されていて記憶だったりいい加減です

広告ブロック

280blocker (¥900 / 年) → AdGuard (¥4000円? / 年) → NextDNS (¥2,500 / 年) → ControlD ($40 / 年) → blocky

280blocker は企業に買われてからなんとなく使うのをやめてしまった

AdGuard は結構ブロックが多く家族から不評でやめた

NextDNS は日本系のフィルタが弱く更新頻度も低い印象だったのでやめた

ControlD はよかったけどちょっと高かったのでやめた

今は VPS に blocky デプロイして家族で共有している。blocky はAdAway 記法フィルタは使えないけどおおむね満足している。AdGuard Home使用していた時期もあったが、重くて常用できなかった

パスワードマネージャー

1Password ($59? / 年) → iCloud+ (¥150 / 月) → Vaultwarden

1Password は使い勝手はよかったが高くてやめた

iCloud+ は家族との共有ができないため不便が多くなり代替検討

今は VPS に Vaultwarden デプロイして家族で共有している。今のところ満足している

LLM

ChatGPT ($20 / 月) → Gemini、Claude

ChatGPT は出始めは未来を感じ課金してガンガン使っていたが、GPT-4 の出来がいまいちに感じて他に乗り換えた

日常のあれこれは Gemini を使い、コード関係は Claude のほうがいい感じの答えが返ってくるので使い分けている

写真

Google Photo (¥3500 / 年) → おもいでばこ → Synology NAS

Google Photo 無料時代に膨大な写真を放り込んでしまったため、有料化が発表されてから脱出するまでに時間がかかった

継続課金は嫌だったのでバッファローのおもいでばこを買ったが、アップロードした写真の日付がなぜか認識されないことが多く使い物にならなかった

Synology NAS についている Synology Photos はそんなことはなく今はこれを使用

Immich とかに乗り換えてもいいかと思うこともあるが、サポート (モバイルアプリなど) の面も考えると OSS に全部まかせるのも怖いなと思ってそのまま

音楽

Apple MusicSpotifyYouTube Music (YouTube Premium)

Apple Musicアーティストへの分配金が多いと聞いたためそれを使っていたが、Apple に端末代も出してサブスクでも課金してと金払いすぎではと冷静になり乗り換えを検討

Spotify に乗り換えたが、数年使っても新しい体験がまったく感じられないので失望して解約

今は YouTube Premium に付帯している YouTube Music を使っている。UX過去使ってきたサービスの中でも最悪だと感じるが、音楽サブスクに金払うよりかは一回でもライブに行ったほうがいいかと割り切っている

メール

Fastmail → NameCheap Private Email → mioセーフティメール

Fastmail は使いやすかったのだが、価格ちょっと負担になってしまい解約

NameCheap は買ってたドメイン管理してたついでに安かったので契約していたが、ドメイントランスファーに伴い解約

mio セーフティメール機能スマートフォンへのプッシュとかは無く必要最低限って感じだけど、よく考えたらプッシュ来てもうざいだけだし値段なりのサービスかなと満足している

その他

住信 SBI ネット銀行プラチナビット11,000 / 年) → 解約のみ

メインバンクだったこともあり、数年前からモバイル端末保険目当てでついでに加入していた

d NEOBANK になってしまスマートプラグラム改悪も発表され、見切りをつけてメインバンクを切り替え、それに伴い解約した

モバイル端末保険は結局一度も使わなかったのだが、これに関して代替が見つかっていないためどうしようかと考えているところ

(年間一万円程度なら、昨今のスマートフォン価格を考えると十年に一回程度の利用でも元が取れそうなため)

替えがきかないやつ

Zaim家族銀行口座残高を共有したいニーズがあり (支出家族デビットカードにまとめているため)、手軽かつ安くあげられるサービスが他に見つからない。Zaim 自体はもう創業者の方が関わっていないらしく、プロダクトとして今後新しい驚きはなさそうなのでできれば課金したくない気持ちがあるのだが

U-NEXT映像サブスク大人暇つぶしだったり子供テレビ需要だったりで無いと困る場面が多い。y.u mobile 契約がありポイントで最新作もみられるので他は契約せずこれにしている

 

 

後半価格書くの面倒になった

昔よりは支出減らせてるかな

2025-11-02

ソフトウェアエンジニアにおける才能という現実

まぁ、幻想じゃないね w

才能がないと思ったら、早いうちに河岸を変えた方がいい。

早ければ早い方がいい。

可哀想から(教え子が? それとも自分が? w)、って「がんばれ、がんばれ。才能なんて関係ない」みたいに騙すのは、むしろ害悪だよ。

10年後、気付いて路頭に迷わせるとして、その責任は取れるのか?

引導を渡すこともプロ責任

まぁ、本人自身が気づいて路頭に迷いつつあるけどどうしようもないのかもしれんが、地獄に道連れはやめてやれ w

小説家役者声優バンドマン etc.etc.

それで生計を立てない、趣味範囲で楽しむ分には好きにすればいいけど、エンジニアに限らず、それなりのお金をもらおうとしたら、才能、向き不向きは超えられない壁として現実に、強固に存在している。

球速120km出ないけど阪神の一軍のピッチャーに、ってのはどう逆立ちしても物理的に不可能だ。

でも草野球は楽しめる。

才能がなけりゃ、一人で永遠に「大いなる助走」を続けりゃいい。

誰にも迷惑かけないなら。

医師看護師会計士経営者etc.etc. にも、才能、向き不向きはある。

おいらには、医師とか、警官とか、無理だねぇ。

落ち着きないし。

同じことを何日も続けたら、爆発する。

明日も同じことしなきゃならないのか……」って考えただけでも、死にたくなる。

こんな感じに、才能がものをいう分野って、意外に多い。

ソフトウェアエンジニアは、設計実装抽象度が多層化していて、その巧拙によって安定度、運用や機動的な新機能追加の手間、リードタイム、金や何やら、数十倍、規模複雑度が爆上がりしている今なら下手すりゃ数百倍差が出る。

その差をちゃん理解するには、巧の現場の「こういう世界があるんやー……」って実体験が必要だったり、巧レベルの才能が必要だったり、経営知識必要だったり、経済知識必要だったりして、「拙」の現場にぶら下がってるだけのエンジニアが「才能なんて幻想」って吠えたっても「マジ、迷惑からやめてね」って思う。

どの炎上現場でも、高粘度現場(リーダーマネージャ理解できないからって邪魔ばっかりしてきたり、そもそもプロダクトがぐっちゃぐちゃになってたりして、どんな行為サービスの息の根を止めるかわからなくて身動きが取れない「震える舌」みたいな現場物事全然進まない現場。通常、経費で札束ガンガン燃やしてるはずだから、ここも炎上現場っていう)でも、この手のエンジニアが腐るほどぶら下がってるんだよね。

たいてい、生み出されるソースコードドキュメント割合おかしなことになってる。

会議勉強会だなんだばっかりしてる。

いや、そういうの主催してる暇があったら、コード書けよ、って。

でも、Web記事引いてきて、「〇〇にはこう書いてある」とかドヤ顔机上の空論時間潰して「俺も一端の理論エンジニアだぜ……」とか、いや、お前はただの受け売り理解もせず垂れ流してるだけのそこらへんの AI と変わらんクズだよ。

おいらの師匠の一人は「TV出たり、本書いたりするやつは二流。一流は、自分仕事に集中していて、他のことやる暇ないから」って言ってたけど、ほんとその通りだと思うよ。


シャバと違い、ソフトウェア世界は驚くほどのスピードで巨大化、複雑化している。

30年、40年前なら、社会性の乏しい、プログラミングコンテスト受賞者みたいなエンジニアでも無双できたけど、今は無理なんだよね。

今だと玉拾いも任せられないくらいだったりする。

余計な部分最適かまして、地雷埋設に邁進しちゃうから

ちょい前も、PostgreSQLの中身いじれます! って東大卒業生いたけど、視点局所的すぎて全体感に欠けてて、プロジェクトがヤバい状態になってるのが理解できなかったりしてたからね。

そろそろリリースできる状態になってる予定だけど、おいらの読み通りα版完成が3ヶ月遅れ、そこで大量の不具合が発覚してベータ版完成がそこからさらに3ヶ月以上遅れ、不具合積み残したまま見切り発車、ってなるんじゃねーかな、と思ってるんだが w

才能の種類、方向性によっては、10年前も今もたぶん10年後も変わらず十分通用するものはあるんだけどねー。

エンジニア年収は他の一般職業に比べて高い。

そこに生活水準をあげてしまうと、自分はもう通用しないと気づいても、撤退できない。

マイカーガー。

マイホームガー。

子供ガー。

愛犬ガー。

んなもん知るかっ!

さっさと色んな意味Fireしろっ!!

そういう「元エンジニア」がリーダーとかマネージャかにクラスチェンジして、事業プロダクトの足を引っ張る。

マジでこの手の「元エンジニア」が、今、業界に溢れてる。

あそことか、そことか、具体的な企業名はあげられないけど、そういうエンジニア漬物石のように重しになって、身動きが取れなくなってるところが多い。

VCとかからもっと売り上げを上げろ。成長率を上げろ、というプレッシャーを与えられ、何かしなきゃいけない。ってなって、外付けの雰囲気だけのサービスをどんどん外付けしていく戦略を取る。

1年で10

2年で30とか。

マジかよ w

思い思い行き当たりばったりに作ったら、手間だけ増えてそれを壊すわけにはいかなくなって、さらに身動きが取れなくなっていく悪循環しか見えないんだが、そんな経営方針で大丈夫か?

とりあえず認証認可から共通化していくしかない。

とか意味不明な決定して、認証認可v1、認証認可v2認証認可v3マイクロサービスが増殖して、さらにv4を企画してるとかい会社だってある。

真っ当な声には、自分存在感を示すためだけの反対を唱えて邪魔したりして、現場で手を動かしているエンジニアより高級を取ってんのに、事業プロダクトへ与えるダメージは倍増する。

さらに、自分地位を死守するために、それを脅かす腕利のエンジニアを陥れる、排除することに全力を傾ける。

これで3倍界王拳だ w

経営者はできるエンジニアたちに任せていると思い込んでいるかもしれないが、さて、どうかね? w

大本営発表的にはうまくいっているとされているサービスが、その裏側はカーオブファイヤーみたいなところって、結構ある。

というか、そっちの方が多いんじゃないかポチョムキン村。

はっきりいう。

ソフトウェアエンジニアは、アスリート的な仕事だ。

おいらは土日祝もシステム関係勉強とか研究をしてる。

今はクラウド環境プロダクトで、どのように自動テスト検証可能システムを構築するかの手法研究を続けてる。

具体的には、今まで関わってきた炎上現場で安定稼働を達成させた手法(TDD)だな。

ワークライフバランス? w

そんな寝言、やめてから言えよ www

才能のない人は河岸変えろ。

しろ若手を潰してるって自覚持て。

反論してくるのが結構いる。

あのサービスとこのサービスとそのサービスを使ってます

業務経歴書にも今まで使ったことがあるサービス名前をたくさんたくさん載せてます

僕の技術力は世界一ぃぃぃっ!!!

じゃねーよ。

ボルト世界水泳、吉田沙保里NBAに出場させるような使い方してて、どこが技術力だよ。

ってのが多い。

「どうしてこのAuroraリーダーがこんなにたくさんぶら下がってんの?」

テナントが増えて、アクセスが増えたので、負荷分散のために増やしました。水平スケーリングってやつです」

うん。水平スケーリングは知ってんねん。この程度のテナント数、ユーザー数、アクセス数で、どうしてこんなにでかいインスタンスリーダーがぶら下がってんのか? って聞いてんねんけど……。

って現場、多い。

というか、そういう現場しか知らん w

まぁ、炎上現場巡りしてたし。

でも、今通常営業してるサービスでも、こういうところ多いんだよな。

それはともかく、

マイクロサービス化していて、いま120を超えたところで、当面160になります

「……は?」

「うちのサービスドメイン多いんで」

「……デプロイの時、どうすんの?」

「変更があるサービス名を書いたファイルを一緒にコミットして、それ読み込んで、GitHubActionsでデプロイさせてます

「……ローカルの開発環境構築は?」

「Cloneして立ち上げます

「これ……、モノリポ?」

「もちろんです。Googleもそうやってますし」

「120個?」

「120個」

「なんか立ち上がらないんだけど……」

「あ、修正中なんで、〇〇と××のコミットチェリーピックしてください」

「……動かないぞ」

「昨日の夕方、変更が入ったみたいなんで、△△のコミットチェリーピック。いや、++のブランチを……」

5日で立ち上げ切れるんか?

って現場がね、案外たくさんあるんだ。

で、「マイクロサービス、使えないっすね」

「ほう……?」

連携が取りづらくて、障害発生しまくって」

どうして「自分が間違えてる」「自分が見当外れなことをしている」可能性ってのを考慮しないんだろう、この人らは?

っていつも思う。

マイクロサービス目的も前提も理解しないで、HowToだけ猿のように繰り返してるって自覚ないんか…… (-_-)

だってオライリー本のここにこう書いてあるから!」

ってマーカーで引いた一文見せつけられるんだが、その前に書かれてある前提とか目的とか、書かれてない暗黙のそれとか、いわゆるコンテキスト削ぎ落として、単語レベル理解開陳されても、「は?」としか反応できんのよな。

120のマイクロサービスとか、お前、認知科学知識もないねんな……。

それマイクロサービスじゃなく、「粉砕されたモノリシックサービス」っていうんやで、と。

まーじで、技術本とかの恣意的つまみ食いで訳分からん理論構築すんなよ。

それでプロダクトがうまく回ってなかったら、それが答えなんよ。

まぁ、「うまく回ってる状態」ってのを知らない、理解できないだろうから、正しい答えに行きつかんだろうけど。

その正しい答えに行きつかない、ってのを

「致命的な才能の欠如」

って呼ぶんよ。

サリエリくらい才能があったら、自分の才能が足りんことを自覚できるんだがな。

脳外科医竹田君みたいなエンジニアは、即刻足を洗って欲しい。

2025-10-03

anond:20251003115709

はいAI嘘増

見積書出す時に全部書いてるし説明するだろw

素材はAI使ったらこれくらいになります

コーディングAI使った場合工数でもう出てます

デプロイAIではどうにもなりませんから工数こんくらいですって

2025-09-21

税制プロ」と「システムプロ

税制の基本原則に「公平・中立簡素」ってのがある。

今回はこのうち「仕組み」に関わる「簡素」がテーマ

システムだって大事価値観に「簡素」がある。

KISS原則と呼ばれ、「複雑さを避けて可能な限りシンプルで単純な状態を維持すること」とされている。

こいつはシステムに限らず、工学的な真理で、特に物理的な制約が少ないソフトウェア世界ではこの戒めを忘れると、とんでもなく絡み合ったうんこになって、制御不能になる。

物理的制約でガチガチに固められた建物とか機械電化製品場合リード線がごちゃごちゃになってるとか配管がごちゃごちゃになってるとか、柱が歪んでるとかヒビが入ってるとか、誰の目から見ても明らかなんだが、システム場合「一本の処理フロー」だけじゃなく、「(複数)リクエスト平面」「データフロー」「データライフサイクル」「ステート変移」「非同期処理」等々、頭の中でそれを組み立てられる人じゃないと、どれだけやばいことになってるか、認識できないんよね。

ダメダメプロダクトだと、裏で集計バッチが動いていると、2人以上がログインするとサーバが落ちるとか、ちょっと大きめのテナントが追加された途端、2箇所からCSVファイル生成&ダウンロードさせたらサーバが落ちるとか。

1機能1機能は「完璧に()」設計実装されて、テストもしている。

デプロイして動作確認もしてる。

でも、こういう電脳空間を見ることができないエンジニアは、集計バッチが動いて2人以上がログインして、CSVファイルダウンロードする、みたいな複合的な状況に対応できない。

のに、1機能1機能をコッテリ仕上げてしまう。

Web記事で見たあれを投入して、これも採用して、って。

全ての電脳世界次元で、主となる流れを設計する。

抽象化による簡素化だ。

だけど東大卒で「僕、賢いので」ってのは、現場に「追加」して「複雑化」することしかできない。

考えられない。

「僕はわかるので。

 (税制の | プログラムの)プロなので。

 素人は黙っていてください。

 あなた方は責任というもの理解していない。」

彼らの「賢い」は、部分部分の整合性を、他の人よりたくさん、取れるってだけの話で、それってAI的「賢さ」なんよね。

そういうのと、スティーブ・ジョブズ的な「全体を把握する賢さ」「シンプルに実現する賢さ」を比べてご覧よ、って話。

あることを成し遂げるためにたくさんの手順を複雑に積み上げて、それを記憶していられる凄さより、全体を律する「仕組み」を作り上げられる凄さの方が、より「人間けができる凄さ」なんだよ。

この手の人は「全体」を理解できなくて、重箱の隅にこだわることこそ「知能」「知性」だと思ってんのよな。

そういうアチーブメントテスト脳は、黙ってAI的な「反応的適用作業」に集中していて欲しい。

物事を作り出す、知能もセンス能力もないんだから

そういうのはプロとは呼ばない。

2025-08-04

技術負債と騒いでる人達スキルが低いのだろうか

技術負債って騒いでる人達は、単にコードを読んで直せないだけのスキルの低い人では?」

という意見を見かけて、さすがにどうなんだろうと思った。


関わった現場ひとつに、キャッシュがない状態トップページを表示するだけで数千件のクエリが実行されるようなサービスがあった。

かなり短い間隔で定期実行し続けるバッチが、ユーザーアクセスされる前にキャッシュ層にクエリ結果を流し込み、キャッシュクリアするデプロイ前後以外は普通Webサービスくらいの動作速度に隠蔽されていた。

単純に N+1 問題の大爆発みたいなものが起きていただけだったので、データ取得を再設計したら初期表示のためのクエリ数は数件程度にまで減ったし、キャッシュ使用量も大幅に削減できた。


とある有名な MVC フレームワークを使っていたのだけれど、片手で数えられるような少数コントローラファイルにそのアプリケーション必要アクションがほぼ全部詰め込まれている、という状態になっていた。

privateメソッド共通処理が埋め込まれていたり、使いたいprivateメソッドがあるコントローラアクションを追加するような空気感になっていたり、アクションを実行する前に処理しておきたいミドルウェア的な処理がコンストラクタに大量に書かれていたりして、リクエストを受け取ってからレスポンスを返し終えるまでの全体で何がどう動いているのか、何をどこに書くべきなのか非常にわかりにくい状態だった。

責務ごとにファイルを分割、共通処理は再利用できる形に切り出して、初期化は適切なライフサイクルで実行されるように整理という現代では当たり前の状態に整理した。

その結果、コードの見通しがよくなり、新機能の追加や修正の際の影響範囲も明確になった。インフラコストリリースに伴う精神的負荷も大きく下がったし、何よりテストにかけるコストが激減した。そしてテストコードを書く、という行為自体可能になった。

これらの作業は単に「読める」「読めない」「直せる」「直せない」のスキル論ではない。

人を増やせば増やすだけスケールする、開発速度は加速するとは決して思っていないが、新規参入したうちの多くが露骨に頭に ? が浮かばせ、見てはいけない闇を見たという顔でそそくさを去っていくのは健全なのだろうか。

環境変わったから直すケースの方が多い」みたいな意見にも違和感がある。

もちろん、言語ランタイムのものが大きく変化して互換性を失う場合(たとえばPHPのように)にはどうしても改修が必要になることはある。

でもそれは「設計しても意味がない」こととは違う。

環境依存の影響が全体に波及してしまうのは、設計段階で依存を分離していなかったから起こることで、抽象化できていれば影響は局所化できる。

局所化できるはずのものを「考慮しても意味なかった」と片付けるのではなく、どこまで考慮すべきだったか、分離できていたかを振り返り、失敗を繰り返さないための動きをするべきではないかと思う。

振り返り、行いを正すということは難しいことなのかもしれない。人は過ちを繰り返し続けている。これは日本史世界史教科書を開くだけですぐわかることだ。しかしだからと言ってやらなくていいということではない。

話が逸れかけたが、いわゆる技術負債というものについて問題だと感じているのは、誰もが安心してリリースできない状況を作り出していることだ。


そういう状態を "技術負債がある" と呼ぶのではないだろうか。

から、「スキルがある人なら読んで直せるでしょ」という話では済まないし、

逆に言えば特定の人だけが持つ「直せる」スキル必要な時点で、それは既に構造的な問題を抱えているということ。スケールしないし、事業リスクしかない。

まぁ色々書いたけど、技術負債を “スキルが低い人の言い訳” と切り捨てるのは簡単なんだよね。

黙って火を消している人たちの努力はそんな嘲笑のために存在しているわけではないことを胸に刻んでいただきたい。

2025-07-31

anond:20250731163470

CI があるようなチームなら、修正デプロイハードルも低いから多分動くからいかーみたいなノリにはなりがち

2025-07-29

📘 GitHubの利点についてのメモ

GitHubギットハブ)は、ソフトウェア開発者にとって非常に便利なツールであり、特にチームでの協力作業において大きな効果を発揮します。GitHubGitというバージョン管理システムを基盤としており、コードの変更履歴管理やすく、過去状態に戻したり、特定の変更内容を確認することができます。また、Pull RequestやIssue機能を使えば、チーム内でのコードレビュー意見交換が円滑に行えますさらに、GitHub世界中開発者が参加するオープンソースプロジェクトの中心的なプラットフォームとなっており、自分スキルを活かして貢献することも可能です。CI/CDなどのDevOpsツールとの統合簡単で、自動テストデプロイ自動化によって、開発のスピード品質が向上します。加えて、READMEファイルWiki機能を使ってプロジェクトドキュメントを整備できる点も、学習や共有に役立ちます。このように、GitHub個人開発にもチーム開発にも不可欠な存在であり、効率的かつ協力的なソフトウェア開発を実現するための強力なプラットフォームです。

https://mavenanalytics.io/project/38415

https://mavenanalytics.io/project/38386

https://mavenanalytics.io/project/38387

2025-07-05

ビジネスでの「戦争言葉」使いは、アップデートしなくてええんか?

コンサルとか広告マーケティングIT、それに物流現場で飛び交う言葉、ホンマにええんか?

ストラテジー」とか「ターゲット」「デプロイ」「ミッション」「オペレーション」とか、聞いてて「これって、ビジネスの話だよな…?」ってなるわ。

だって、これ全部戦争でもビジネスでも頻繁に使う言葉やんけ。

PDCAサイクル回すぞ!」なんて息巻いとるけど、あれも元々は軍事作戦の考え方やで。

具体的には、第二次世界大戦中にアメリカ統計学者、ウィリアムエドワーズ・デミング博士品質管理のために広めた考え方なんやけど、そのルーツ

軍事生産効率化にも繋がっとるって言われとるんや。

計画(Plan)→実行(Do)→評価(Check)→改善Act)っていうサイクルが、軍のオペレーションと似とるってことやな。

でもな、疑問に思うんよ。軍隊ロジックビジネスに役立つからって、なんで言葉まで軍事に関連する物騒なもんにしとるんや?

お客さんを「敵」みたいに見て、市場を「占領地」みたいに考えるって、ホンマにまともなビジネスなんか?

俺らがやってるのは、お客さんの困り事を解決したり、世の中に新しい価値を届けたりすることやろ。お互いに協力して、信頼関係を築いていくのが大事なはずや。

なのに、知らん間にビジネスを「戦争」とか「攻撃」みたいに捉える言葉を使っとるせいで、なんかギスギスした雰囲気になっとるんとちゃうか?

軍事用語ビジネスで使うって、もしかして俺らは、遠い国の紛争他人事として見ながら、実はそのロジック経済活動に持ち込んで、うっすら戦争ごっこを楽しんでるだけなんちゃうか?

なんか、モヤモヤするわ。

2025-06-28

LLMはエンジニア仕事を奪うのか?否、仕事抽象度を「Why」の次元

序文コード蒸発する時代と、それでも残る「Why」という名の問い

2025年私たちソフトウェア開発の歴史的な転換点に立っている。大規模言語モデル(LLM)の進化は、GitHub Copilotのようなコード補完ツールに始まり、今や「何を作りたいか」を自然言語で伝えるだけで、アプリケーションの雛形が数分で生成される時代現実のものとしつつある。この光景を目の当たりにした多くのプログラマが、漠然とした、しかし確かな不安を抱いているだろう。「私たち仕事は、いずれAIに奪われるのではないか」と。

この問いに対する私の答えは、半分はYesであり、もう半分はNoだ。より正確に言えば、プログラマ仕事本質が、歴史上かつてないレベル抽象化され、その役割が再定義されるのだ。私たちは、コードを「書く」作業から解放される一方で、これまで以上に高度な思考要求されることになる。

本稿では、プログラミング歴史を「How(いかに作るか)」から「What(何を作るか)」への移行として捉え直し、LLMがこの流れをいかに加速させるかを論じる。そして、その先にある、AIには決して代替できない、人間ならではの競争優位性、すなわちWhy(なぜ作るのか)」を定義し、記述する能力重要性について深く考察していく。これは、単なる未来予測ではない。今を生きるすべてのソフトウェアエンジニアにとっての、生存戦略提示である

第1章:プログラミング歴史的変遷 ― HowからWhatへの長い道のり

LLMの登場を特異点として捉える前に、我々が立っている場所を正確に知る必要がある。ソフトウェア開発の歴史は、常に「抽象化」との戦いであった。そしてその歴史は、プログラマの関心が「How」から「What」へと徐々に移り変わっていくプロセスとして描くことができる。

1-1. 手続き時代:Howを記述することに終始した黎明期

コンピュータ黎明期プログラミングとは、計算機理解できる命令(How)を、一行一行、丹念に記述する作業のものであった。アセンブリ言語や初期のFORTRANCOBOLといった言語は、ハードウェアの制約を強く受けており、プログラマメモリ管理プロセッサ動作といった、極めて物理層に近いレベルでの「How」を意識する必要があった。

この時代テストもまた、「How」に強く束縛されていた。書かれた手続きが、意図した通りに順番に実行されるか、特定入力に対して期待された計算結果を返すか。テストの関心事は、あくまで「手続きの正しさ」の検証にあった。ビジネスロジック実装の詳細が密結合し、コード特定の処理手順を記述した、硬直的な塊となっていた。

1-2. テスト駆動した振る舞いへの注目:Whatへの小さな一歩

風向きが変わり始めたのは、ソフトウェアの規模が拡大し、その複雑性が人間認知能力を超え始めた頃だ。1990年代後半から2000年代にかけて提唱されたエクストリーム・プログラミングXP)の中で、テスト駆動開発(TDD)という考え方が登場する。

TDD本質は、単なるテスト手法改善ではない。それは、プログラミングパラダイム根底から覆す思想だった。TDDは、「まずテストを書く」ことを強制することで、プログラマ意識を「これから実装するコード(How)」から「そのコードが満たすべき振る舞い(What)」へと強制的に転換させたのだ。

テストはもはや、書かれたコードの後追いで正しさを検証する作業ではない。それは、これから作られるべきソフトウェアの「仕様書」であり、「振る舞いの宣言」となった。例えば、「ユーザーログインボタンクリックしたら、ダッシュボード画面に遷移する」というテストコードは、具体的な実装方法(`onClick`イベントハンドラの中で`window.location.href`を書き換える、など)には一切言及しない。それはただ、達成されるべき「What」を記述しているだけだ。

この思想は、ビヘイビア駆動開発(BDD)へと発展し、`Given-When-Then`といった、より自然言語に近い形式ソフトウェアの振る舞いを記述するスタイルを生み出した。プログラマだけでなく、プロダクトマネージャービジネスアナリストといった非技術者をも巻き込み、「What」を共通言語として定義する試みが本格化したのである

1-3. 宣言プログラミングの台頭とフレームワーク役割

TDD/BDDによってプログラマ意識が「What」に向かい始めると、コードのものもまた、宣言的なスタイルへと進化していく。この変化を劇的に加速させたのが、モダンフレームワーク存在だ。

Reactを例に考えてみよう。Reactが登場する前、フロントエンド開発はjQuery代表されるように、DOMを直接操作する命令的なコード(How)の連続だった。「このボタンクリックされたら、この要素のテキストを書き換え、あちらの要素を非表示にする」といった具合だ。

しかし、Reactは「UIとは、ある状態state)に対する純粋写像である」という宣言的なモデル提示した。プログラマがやるべきことは、UI状態(`state`)と、その状態がどのように見えるか(JSXによるコンポーネント)を宣言することだけだ。状態が変更された際に、DOMをどのように効率的更新するかという面倒な「How」の部分は、Reactの仮想DOM差分検出アルゴリズムがすべて隠蔽してくれる。プログラマは「What(UIのあるべき姿)」を記述するだけでよくなったのだ。

この「WhatからHowへの変換」は、様々な領域で見られる。

これらのフレームワークツールは、いわば特定の制約下における、WhatからHowへの高性能な変換器」として機能してきた。プログラマは、フレームワークが課す「お作法」や「制約」を受け入れることで、退屈で間違いの多い「How」の記述から解放され、より本質的な「What」の定義に集中できるようになった。我々が「生産性が高い」と感じる開発体験は、この優れた変換器の恩恵に他ならない。

現状は、この歴史的変遷の延長線上にある。プログラマ仕事は、手続き記述する職人から、振る舞いを定義し、それを実現するための最適な「変換器(フレームワーク)」を選択・設定するアーキテクトへと、その重心を移してきたのだ。

第2章:LLMがもたらす究極のパラダイムシフト ― 汎用変換器の誕生

フレームワークがもたらした「WhatからHowへ」の潮流は、LLMの登場によって、未曾有のスケールで加速されようとしている。フレームワークが「特定領域に特化した変換器」であったのに対し、LLMは「あらゆる領域対応可能な、究極の汎用変換器」としてのポテンシャルを秘めているからだ。

2-1. フレームワークの制約を超えて

前章で述べたように、ReactやTerraformといったフレームワークは、その恩恵と引き換えに、私たち特定の「制約」を課してきた。Reactを使うならコンポーネントベース思考し、状態管理作法に従う必要がある。Terraformを使うなら、そのエコシステムとHCLの流儀を受け入れなければならない。これらの制約は、WhatからHowへの変換を自動化するための「レール」であり、私たちはそのレールの上を走ることで効率を得てきた。

しかし、LLMはこの前提を覆す。LLMは、特定フレームワーク言語知識を事前に学習しているが、その利用において絶対的な制約を課すわけではない。私たちは、より自由形式で「What」を伝えることができる。

例えば、こうだ。

ユーザー認証機能付きのシンプルブログアプリを作ってほしい。フロントエンドはReactとTypeScriptUIコンポーネントはMUIを使う。バックエンドNode.jsExpressで、データベースPostgreSQLユーザーGoogleアカウントログインでき、新しい記事作成編集、削除できる。記事にはマークダウン記法が使えて、画像アップロードできるようにしてほしい。

この要求(What)は、特定フレームワーク流儀に則ったものではない。複数技術スタックを横断し、機能要求自然言語で並べただけのものであるしかし、現在のLLM、特にGPT-4oやそれに類するモデルは、このレベル要求からディレクトリ構造設定ファイルAPIエンドポイントフロントエンドコンポーネントに至るまで、驚くほど具体的なコード(How)を生成することができる。

これは、フレームワークが担ってきた「WhatからHowへの変換」が、特定のレールから解き放たれ、より広範で柔軟な領域へと拡張されたことを意味する。これまで自動化が難しかった、あるいは特定フレームワーク存在しなかったニッチ領域や、複数技術を組み合わせる複雑なシステム構築においても、AIによる宣言プログラミング恩恵を受けられる時代が始まろうとしているのだ。

2-2. 「What」の解像度がすべてを決める世界

LLMという汎用変換器の登場により、プログラマ生産性は、いかに質の高いWhatをLLMに伝えられるか」に直結するようになる。これは、俗に「プロンプトエンジニアリング」と呼ばれるスキルだが、その本質は、ソフトウェア開発における「要求定義」そのものである

質の高い「What」とは何か。それは、曖昧性がなく、網羅的で、矛盾のない要求である

これらは、優秀なソフトウェアエンジニアが、プロダクトマネージャーデザイナーとの対話を通じて、日常的に行ってきた思考プロセスのものではないだろうか。LLMの登場は、この思考プロセスを、より明確に、よりテキストベースで「記述」する能力を求める。私たちの頭の中にあった暗黙的な仕様が、LLMへの入力プロンプト)という形で、明示的に言語化されることを要求するのだ。

やがて、ほとんどのプログラミング作業は、この「Whatの記述」に収束していくだろう。TDDテストコードという形式で「What」を記述したように、私たち自然言語や、より構造化された要求記述言語を用いて、AIに対して「What」を宣言することになる。コード(How)は、その宣言から自動生成される中間生成物に過ぎなくなる。まさに、コード蒸発していく未来である

第3章:それでもAIには決められない ― 「Why」の不在という致命的な欠陥

「What」を伝えれば「How」が手に入る。この魔法のような世界の到来を前に、私たちは一つの重大な問いに直面する。それは、「そのWhatからHowへの変換は、本当に一意に決まるのか?」という問いだ。

答えは、明確にNoである

ある「What(要求)」を実現するための「How(実装)」は、無数に存在する。そして、どの「How」を選択すべきかを決定するためには、単純な機能要求(What)だけでは情報が全く足りない。そこには、必ずWhy(なぜそう作るのか)」という、背景、文脈、そしてトレードオフ考慮必要不可欠となる。

3-1. トレードオフの海に溺れるLLM

簡単な例を考えてみよう。「1億件のユーザーデータを格納し、ユーザーIDで高速に検索できるシステム」という「What」をLLMに与えたとする。LLMは、どのような「How」を提案するだろうか。

これらの選択肢は、どれも「What」を満たしている。しかし、その特性は全く異なる。案Aは多くのエンジニアにとって馴染み深く開発が容易だが、10億、100億件へのスケールは難しいかもしれない。案Bはスケール性に優れるが、厳密なトランザクション管理は苦手だ。案Cは高速だが、運用コストシステムの複雑性が増す。案Dは安価だが、検索速度は他に劣る。

LLMは、これらの選択肢をリストアップすることはできるだろう。しかし、このプロジェクトにとって最適な選択肢はどれかを、自信を持って決定することはできない。なぜなら、その決定には、LLMが与えられていない「Why」の情報必要からだ。

これらの「Why」こそが、無数に存在する「How」の中から、ただ一つの「正解」を選び出すための羅針盤なのである。そしてこの「Why」は、ビジネス目標組織文化ユーザーの期待、技術的な制約といった、極めて人間的で、文脈依存的な情報の中にしか存在しない。

3-2. エンジニアが暗黙的に行ってきた「Why」に基づく意思決定

ここで重要なのはこれまでもエンジニアは、この「Why」に基づく意思決定を、意識的あるいは無意識的に行ってきたという事実だ。

私たち技術選定を行うとき、単に「流行っているから」という理由だけでReactを選ぶわけではない。「SPA(Single Page Application)にすることでユーザー体験を向上させたい(Why)」、「コンポーネント指向の開発によって長期的な保守性を確保したい(Why)」、「Reactエンジニア採用市場が活発だからWhy)」といった、様々な「 Permalink | 記事への反応(0) | 17:09

LLMはエンジニア仕事を奪うのか?否、仕事抽象度を「Why」の次元

序文コード蒸発する時代と、それでも残る「Why」という名の問い

2025年私たちソフトウェア開発の歴史的な転換点に立っている。大規模言語モデル(LLM)の進化は、GitHub Copilotのようなコード補完ツールに始まり、今や「何を作りたいか」を自然言語で伝えるだけで、アプリケーションの雛形が数分で生成される時代現実のものとしつつある。この光景を目の当たりにした多くのプログラマが、漠然とした、しかし確かな不安を抱いているだろう。「私たち仕事は、いずれAIに奪われるのではないか」と。

この問いに対する私の答えは、半分はYesであり、もう半分はNoだ。より正確に言えば、プログラマ仕事本質が、歴史上かつてないレベル抽象化され、その役割が再定義されるのだ。私たちは、コードを「書く」作業から解放される一方で、これまで以上に高度な思考要求されることになる。

本稿では、プログラミング歴史を「How(いかに作るか)」から「What(何を作るか)」への移行として捉え直し、LLMがこの流れをいかに加速させるかを論じる。そして、その先にある、AIには決して代替できない、人間ならではの競争優位性、すなわちWhy(なぜ作るのか)」を定義し、記述する能力重要性について深く考察していく。これは、単なる未来予測ではない。今を生きるすべてのソフトウェアエンジニアにとっての、生存戦略提示である

第1章:プログラミング歴史的変遷 ― HowからWhatへの長い道のり

LLMの登場を特異点として捉える前に、我々が立っている場所を正確に知る必要がある。ソフトウェア開発の歴史は、常に「抽象化」との戦いであった。そしてその歴史は、プログラマの関心が「How」から「What」へと徐々に移り変わっていくプロセスとして描くことができる。

1-1. 手続き時代:Howを記述することに終始した黎明期

コンピュータ黎明期プログラミングとは、計算機理解できる命令(How)を、一行一行、丹念に記述する作業のものであった。アセンブリ言語や初期のFORTRANCOBOLといった言語は、ハードウェアの制約を強く受けており、プログラマメモリ管理プロセッサ動作といった、極めて物理層に近いレベルでの「How」を意識する必要があった。

この時代テストもまた、「How」に強く束縛されていた。書かれた手続きが、意図した通りに順番に実行されるか、特定入力に対して期待された計算結果を返すか。テストの関心事は、あくまで「手続きの正しさ」の検証にあった。ビジネスロジック実装の詳細が密結合し、コード特定の処理手順を記述した、硬直的な塊となっていた。

1-2. テスト駆動した振る舞いへの注目:Whatへの小さな一歩

風向きが変わり始めたのは、ソフトウェアの規模が拡大し、その複雑性が人間認知能力を超え始めた頃だ。1990年代後半から2000年代にかけて提唱されたエクストリーム・プログラミングXP)の中で、テスト駆動開発(TDD)という考え方が登場する。

TDD本質は、単なるテスト手法改善ではない。それは、プログラミングパラダイム根底から覆す思想だった。TDDは、「まずテストを書く」ことを強制することで、プログラマ意識を「これから実装するコード(How)」から「そのコードが満たすべき振る舞い(What)」へと強制的に転換させたのだ。

テストはもはや、書かれたコードの後追いで正しさを検証する作業ではない。それは、これから作られるべきソフトウェアの「仕様書」であり、「振る舞いの宣言」となった。例えば、「ユーザーログインボタンクリックしたら、ダッシュボード画面に遷移する」というテストコードは、具体的な実装方法(`onClick`イベントハンドラの中で`window.location.href`を書き換える、など)には一切言及しない。それはただ、達成されるべき「What」を記述しているだけだ。

この思想は、ビヘイビア駆動開発(BDD)へと発展し、`Given-When-Then`といった、より自然言語に近い形式ソフトウェアの振る舞いを記述するスタイルを生み出した。プログラマだけでなく、プロダクトマネージャービジネスアナリストといった非技術者をも巻き込み、「What」を共通言語として定義する試みが本格化したのである

1-3. 宣言プログラミングの台頭とフレームワーク役割

TDD/BDDによってプログラマ意識が「What」に向かい始めると、コードのものもまた、宣言的なスタイルへと進化していく。この変化を劇的に加速させたのが、モダンフレームワーク存在だ。

Reactを例に考えてみよう。Reactが登場する前、フロントエンド開発はjQuery代表されるように、DOMを直接操作する命令的なコード(How)の連続だった。「このボタンクリックされたら、この要素のテキストを書き換え、あちらの要素を非表示にする」といった具合だ。

しかし、Reactは「UIとは、ある状態state)に対する純粋写像である」という宣言的なモデル提示した。プログラマがやるべきことは、UI状態(`state`)と、その状態がどのように見えるか(JSXによるコンポーネント)を宣言することだけだ。状態が変更された際に、DOMをどのように効率的更新するかという面倒な「How」の部分は、Reactの仮想DOM差分検出アルゴリズムがすべて隠蔽してくれる。プログラマは「What(UIのあるべき姿)」を記述するだけでよくなったのだ。

この「WhatからHowへの変換」は、様々な領域で見られる。

これらのフレームワークツールは、いわば特定の制約下における、WhatからHowへの高性能な変換器」として機能してきた。プログラマは、フレームワークが課す「お作法」や「制約」を受け入れることで、退屈で間違いの多い「How」の記述から解放され、より本質的な「What」の定義に集中できるようになった。我々が「生産性が高い」と感じる開発体験は、この優れた変換器の恩恵に他ならない。

現状は、この歴史的変遷の延長線上にある。プログラマ仕事は、手続き記述する職人から、振る舞いを定義し、それを実現するための最適な「変換器(フレームワーク)」を選択・設定するアーキテクトへと、その重心を移してきたのだ。

第2章:LLMがもたらす究極のパラダイムシフト ― 汎用変換器の誕生

フレームワークがもたらした「WhatからHowへ」の潮流は、LLMの登場によって、未曾有のスケールで加速されようとしている。フレームワークが「特定領域に特化した変換器」であったのに対し、LLMは「あらゆる領域対応可能な、究極の汎用変換器」としてのポテンシャルを秘めているからだ。

2-1. フレームワークの制約を超えて

前章で述べたように、ReactやTerraformといったフレームワークは、その恩恵と引き換えに、私たち特定の「制約」を課してきた。Reactを使うならコンポーネントベース思考し、状態管理作法に従う必要がある。Terraformを使うなら、そのエコシステムとHCLの流儀を受け入れなければならない。これらの制約は、WhatからHowへの変換を自動化するための「レール」であり、私たちはそのレールの上を走ることで効率を得てきた。

しかし、LLMはこの前提を覆す。LLMは、特定フレームワーク言語知識を事前に学習しているが、その利用において絶対的な制約を課すわけではない。私たちは、より自由形式で「What」を伝えることができる。

例えば、こうだ。

ユーザー認証機能付きのシンプルブログアプリを作ってほしい。フロントエンドはReactとTypeScriptUIコンポーネントはMUIを使う。バックエンドNode.jsExpressで、データベースPostgreSQLユーザーGoogleアカウントログインでき、新しい記事作成編集、削除できる。記事にはマークダウン記法が使えて、画像アップロードできるようにしてほしい。

この要求(What)は、特定フレームワーク流儀に則ったものではない。複数技術スタックを横断し、機能要求自然言語で並べただけのものであるしかし、現在のLLM、特にGPT-4oやそれに類するモデルは、このレベル要求からディレクトリ構造設定ファイルAPIエンドポイントフロントエンドコンポーネントに至るまで、驚くほど具体的なコード(How)を生成することができる。

これは、フレームワークが担ってきた「WhatからHowへの変換」が、特定のレールから解き放たれ、より広範で柔軟な領域へと拡張されたことを意味する。これまで自動化が難しかった、あるいは特定フレームワーク存在しなかったニッチ領域や、複数技術を組み合わせる複雑なシステム構築においても、AIによる宣言プログラミング恩恵を受けられる時代が始まろうとしているのだ。

2-2. 「What」の解像度がすべてを決める世界

LLMという汎用変換器の登場により、プログラマ生産性は、いかに質の高いWhatをLLMに伝えられるか」に直結するようになる。これは、俗に「プロンプトエンジニアリング」と呼ばれるスキルだが、その本質は、ソフトウェア開発における「要求定義」そのものである

質の高い「What」とは何か。それは、曖昧性がなく、網羅的で、矛盾のない要求である

これらは、優秀なソフトウェアエンジニアが、プロダクトマネージャーデザイナーとの対話を通じて、日常的に行ってきた思考プロセスのものではないだろうか。LLMの登場は、この思考プロセスを、より明確に、よりテキストベースで「記述」する能力を求める。私たちの頭の中にあった暗黙的な仕様が、LLMへの入力プロンプト)という形で、明示的に言語化されることを要求するのだ。

やがて、ほとんどのプログラミング作業は、この「Whatの記述」に収束していくだろう。TDDテストコードという形式で「What」を記述したように、私たち自然言語や、より構造化された要求記述言語を用いて、AIに対して「What」を宣言することになる。コード(How)は、その宣言から自動生成される中間生成物に過ぎなくなる。まさに、コード蒸発していく未来である

第3章:それでもAIには決められない ― 「Why」の不在という致命的な欠陥

「What」を伝えれば「How」が手に入る。この魔法のような世界の到来を前に、私たちは一つの重大な問いに直面する。それは、「そのWhatからHowへの変換は、本当に一意に決まるのか?」という問いだ。

答えは、明確にNoである

ある「What(要求)」を実現するための「How(実装)」は、無数に存在する。そして、どの「How」を選択すべきかを決定するためには、単純な機能要求(What)だけでは情報が全く足りない。そこには、必ずWhy(なぜそう作るのか)」という、背景、文脈、そしてトレードオフ考慮必要不可欠となる。

3-1. トレードオフの海に溺れるLLM

簡単な例を考えてみよう。「1億件のユーザーデータを格納し、ユーザーIDで高速に検索できるシステム」という「What」をLLMに与えたとする。LLMは、どのような「How」を提案するだろうか。

これらの選択肢は、どれも「What」を満たしている。しかし、その特性は全く異なる。案Aは多くのエンジニアにとって馴染み深く開発が容易だが、10億、100億件へのスケールは難しいかもしれない。案Bはスケール性に優れるが、厳密なトランザクション管理は苦手だ。案Cは高速だが、運用コストシステムの複雑性が増す。案Dは安価だが、検索速度は他に劣る。

LLMは、これらの選択肢をリストアップすることはできるだろう。しかし、このプロジェクトにとって最適な選択肢はどれかを、自信を持って決定することはできない。なぜなら、その決定には、LLMが与えられていない「Why」の情報必要からだ。

これらの「Why」こそが、無数に存在する「How」の中から、ただ一つの「正解」を選び出すための羅針盤なのである。そしてこの「Why」は、ビジネス目標組織文化ユーザーの期待、技術的な制約といった、極めて人間的で、文脈依存的な情報の中にしか存在しない。

3-2. エンジニアが暗黙的に行ってきた「Why」に基づく意思決定

ここで重要なのはこれまでもエンジニアは、この「Why」に基づく意思決定を、意識的あるいは無意識的に行ってきたという事実だ。

私たち技術選定を行うとき、単に「流行っているから」という理由だけでReactを選ぶわけではない。「SPA(Single Page Application)にすることでユーザー体験を向上させたい(Why)」、「コンポーネント指向の開発によって長期的な保守性を確保したい(Why)」、「Reactエンジニア採用市場が活発だからWhy)」といった、様々な「 Permalink | 記事への反応(0) | 17:09

2025-06-22

anond:20250622074302

はてなユーザーって貧乏人どもがほとんどだからなんの参考にもならないんだよね

俺はデータベースオラクルDB2しか触れないし、

開発はIBMRADスタジオしか使ってないから、昔からはてなで紹介されてるMySQLだのLAMP構成だのLinuxだの無駄知識しかなった

なんだよ無料デプロイってwwwって感じ

2025-06-17

早寝する技術 ―持続可能パフォーマンスを実現するスリープマネ

TL;DR

日中生産性は、夜の過ごし方、特に「就寝」というクリティカルタスクいか成功させるかにかかっている。本記事では、つい夜更かししてしまエンジニアのために、早寝を「技術」として体系化し、再現性のある形で実践するための具体的な手法を探求する。これは精神論ではない。あなたQoL生産性を向上させるための、実践的なスリープエンジニアリングだ。

はじめに:なぜ我々はwhile(true)な夜を過ごすのか

我々エンジニアにとって、夜は不思議な魅力を持つ時間だ。日中喧騒から解放され、思考は冴えわたりゾーンに入りやすい。しかし、その魅力的な時間は、往々にして「早寝」という、人間生存に不可欠な基本プロセス犠牲にすることで成り立っている。

「あとちょっとだけ、このバグの原因を調査したい」

リファクタリングが楽しくなってきた」

面白い技術記事を見つけてしまった」

これらの探求心はエンジニア美徳であるが、同時に我々を「睡眠負債」という深刻な技術負債へと導く。本稿は、この負債を返済し、持続可能な開発(と生活)を実現するための「早寝」という技術に焦点を当てる。

アンチパターン:早寝を妨げるBlockerたち

早寝を実装する前に、まずは現状のアーキテクチャに潜むアンチパターン特定しよう。

就寝前のスマートフォンは、まさに同期的なブロッキングI/Oだ。SNS無限スクロール動画プラットフォーム自動再生チャットアプリの通知。これらは我々の意識というシングルスレッドを完全に占有し、本来実行されるべきsleep()プロセスへの遷移を妨げる。

深夜まで続くコーディング問題解決は、脳を極度の興奮状態にする。ベッドに入っても、アドレナリンコルチゾールといったホルモンCacheに残り続け、CPUクールダウンしない。shutdown -h nowを叩いても、プロセスが終了しないのだ。

「夜更かしの供」として注入されるカフェインアルコールは、一見するとパフォーマンスを向上させるように見える。しかし、これらは睡眠の質という重要なmetricsを著しく劣化させる、誤った依存関係だ。特にアルコールは、入眠を助けるように見えて、実はレム睡眠を阻害し、睡眠アーキテクチャ全体を不安定にする。

  • Cronの不備:

規則な就寝・起床時間は、体内時計という最も重要なCronジョブ破壊する。毎日異なる時間に実行されるジョブが安定した結果をもたらさないのと同様に、不規則睡眠スケジュールは、日中パフォーマンス予測不可能ものにする。

Sleep as Code: 早寝を実現するためのプラクティス

では、どうすればこれらのアンチパターン排除し、安定した早寝pipelineを構築できるのか。ここではSleep as Codeの概念に基づき、具体的なプラクティスを紹介する。

1. 環境IaC (Infrastructure as Code)

睡眠環境コード化し、常に理想的状態を維持する。

2. 就寝CI/CDパイプラインの構築

毎晩、同じ手順で就寝プロセスを実行することで、入眠を自動化する。

- PC/スマホシャットダウン: 最も重要ステップ物理的に電源を落とすか、手の届かない場所(別のコンテナ)にdeployする。

- 入浴: 38〜40℃のぬるめのお湯に15分ほど浸かる。これにより深部体温が一時的に上昇し、その後の下降とともに入眠が促される。これはHot-swapならぬHot-bathによるクールダウンだ。

静的コンテンツの消費: 激しい思考を伴わない、静的な情報(紙の読書など)に切り替える。電子書籍ではなく、紙媒体が望ましい。

ストレッチ: 軽いストレッチで、日中のcommitで固まった体をreleaseする。

  • Deploy (就寝):

すべての準備が整ったら、ベッドという本番環境デプロイする。余計な思考git clean -fd強制削除し、呼吸に集中する。

3. MonitoringとRefactoring

例:「夕食後のコーヒーが原因だった」→「カフェイン摂取は15時までというSLAを設ける」

まとめ:早寝は未来自分への投資である

早寝は、単に体を休める行為ではない。日中の高いパフォーマンス、明晰な思考、そして創造性を維持するための、最も効果的で再現性の高い「技術」だ。

我々はインフラコード管理し、CI/CDデプロイ自動化するように、自身睡眠もまた、技術と工夫によってコントロールできる。今夜、あなたのwhile(true)なループbreakし、持続可能パフォーマンスを手に入れるための第一歩を踏み出してほしい。

Happy sleeping!

早寝する技術 ―持続可能パフォーマンスを実現するスリープマネ

TL;DR

日中生産性は、夜の過ごし方、特に「就寝」というクリティカルタスクいか成功させるかにかかっている。本記事では、つい夜更かししてしまエンジニアのために、早寝を「技術」として体系化し、再現性のある形で実践するための具体的な手法を探求する。これは精神論ではない。あなたQoL生産性を向上させるための、実践的なスリープエンジニアリングだ。

はじめに:なぜ我々はwhile(true)な夜を過ごすのか

我々エンジニアにとって、夜は不思議な魅力を持つ時間だ。日中喧騒から解放され、思考は冴えわたりゾーンに入りやすい。しかし、その魅力的な時間は、往々にして「早寝」という、人間生存に不可欠な基本プロセス犠牲にすることで成り立っている。

「あとちょっとだけ、このバグの原因を調査したい」

リファクタリングが楽しくなってきた」

面白い技術記事を見つけてしまった」

これらの探求心はエンジニア美徳であるが、同時に我々を「睡眠負債」という深刻な技術負債へと導く。本稿は、この負債を返済し、持続可能な開発(と生活)を実現するための「早寝」という技術に焦点を当てる。

アンチパターン:早寝を妨げるBlockerたち

早寝を実装する前に、まずは現状のアーキテクチャに潜むアンチパターン特定しよう。

就寝前のスマートフォンは、まさに同期的なブロッキングI/Oだ。SNS無限スクロール動画プラットフォーム自動再生チャットアプリの通知。これらは我々の意識というシングルスレッドを完全に占有し、本来実行されるべきsleep()プロセスへの遷移を妨げる。

Cacheされた覚醒状態:

深夜まで続くコーディング問題解決は、脳を極度の興奮状態にする。ベッドに入っても、アドレナリンコルチゾールといったホルモンCacheに残り続け、CPUクールダウンしない。shutdown -h nowを叩いても、プロセスが終了しないのだ。

「夜更かしの供」として注入されるカフェインアルコールは、一見するとパフォーマンスを向上させるように見える。しかし、これらは睡眠の質という重要なmetricsを著しく劣化させる、誤った依存関係だ。特にアルコールは、入眠を助けるように見えて、実はレム睡眠を阻害し、睡眠アーキテクチャ全体を不安定にする。

  • Cronの不備:

規則な就寝・起床時間は、体内時計という最も重要なCronジョブ破壊する。毎日異なる時間に実行されるジョブが安定した結果をもたらさないのと同様に、不規則睡眠スケジュールは、日中パフォーマンス予測不可能ものにする。

Sleep as Code: 早寝を実現するためのプラクティス

では、どうすればこれらのアンチパターン排除し、安定した早寝pipelineを構築できるのか。ここではSleep as Codeの概念に基づき、具体的なプラクティスを紹介する。

1. 環境IaC (Infrastructure as Code)

睡眠環境コード化し、常に理想的状態を維持する。

2. 就寝CI/CDパイプラインの構築

毎晩、同じ手順で就寝プロセスを実行することで、入眠を自動化する。

- PC/スマホシャットダウン: 最も重要ステップ物理的に電源を落とすか、手の届かない場所(別のコンテナ)にdeployする。

- 入浴: 38〜40℃のぬるめのお湯に15分ほど浸かる。これにより深部体温が一時的に上昇し、その後の下降とともに入眠が促される。これはHot-swapならぬHot-bathによるクールダウンだ。

静的コンテンツの消費: 激しい思考を伴わない、静的な情報(紙の読書など)に切り替える。電子書籍ではなく、紙媒体が望ましい。

ストレッチ: 軽いストレッチで、日中のcommitで固まった体をreleaseする。

  • Deploy (就寝):

すべての準備が整ったら、ベッドという本番環境デプロイする。余計な思考git clean -fd強制削除し、呼吸に集中する。

3. MonitoringとRefactoring

例:「夕食後のコーヒーが原因だった」→「カフェイン摂取は15時までというSLAを設ける」

まとめ:早寝は未来自分への投資である

早寝は、単に体を休める行為ではない。日中の高いパフォーマンス、明晰な思考、そして創造性を維持するための、最も効果的で再現性の高い「技術」だ。

我々はインフラコード管理し、CI/CDデプロイ自動化するように、自身睡眠もまた、技術と工夫によってコントロールできる。今夜、あなたのwhile(true)なループbreakし、持続可能パフォーマンスを手に入れるための第一歩を踏み出してほしい。

Happy sleeping!

anond:20250617014031

失礼しました。

まとめで「問いの優先順位」が変わったと断言しておきながら、その中身を掘り下げずに済ませてしまいましたね。

改めて整理します。

1. 「問いの優先順位」とは何を指すのか

哲学には「そもそも何を先に問うべきか」というメタレベル序列があります

要するに「それを先に解かなければ社会が動いてしまう」問いが上位に繰り上がり、逆に“悠長に考えられる”問いは後回しになる、という現象です。

2. 具体的にどう繰り上がったのか ――五つのシフト

Before (旧来の問い) After (AI時代の問い) 変化の理由
:----------------------------------- :------------------------------------------- :--------------------------------------------
人間とは何か」 (形而上学本質論) AI をどう制御すべきか」 (実践価値論) 技術暴走リアルタイム政策課題となったため。
知識正当化可能か」 「LLM の出力はいつ信頼できるか」 推論の透明性・検証性が倫理インパクトと直結するようになったため。
意識必然条件は何か」 意識の“テストプロトコル”は構築可能か」 動物実験や臨床倫理と同様の規制設計が迫られるようになったため。
言語意味は何によって成立するか」 統計的言語モデルは“意味”を生成しているのか」 実用アプリが氾濫し、理論が後追いを強いられるようになったため。
「よい社会とは何か」 AI が参加する社会契約をどう再設計するか」 ガバナンス設計を怠ると取り返しがつかない状況になったため。

3. 優先順位が変わるメカニズム

4. まだ“圏外”に落ちない問いもある

生成AIが絡まない領域――たとえば古典的形而上学の一部(存在カテゴリー論など)――は、相対的に注目度が下がっただけで消滅したわけではありません。

実践アジェンダの影で、静かに深化する純粋哲学」 という二極化が進行中です。

5. 今後の見通し

ひとことまとめ

生成AIの登場で「何を先に答えねばならないか」が大きく組み替えられ、応用的・検証可能な問いが哲学最前線に躍り出た――

これが私たちが「問いの優先順位が変わった」と言うときの核心です。

2025-06-15

バイコーディングはクソ

バイコーディング最近この言葉を聞くだけでキレそうになる。AI勝手コードを吐き出し、人間はそれを後ろから眺めているだけでいい――そんな耳障りの良い宣伝が界隈を駆け回っている。だが現場空気はどうだ。タコツボでデバッグデプロイに追われるエンジニア悲鳴、無邪気にPRを投げては放置する自称エンジニアの残骸、そして毎日更新される「最強のプロンプト集」。そのすべてがクソだ。数週間前まで「これが最適解」と祭り上げられていたエージェントが、翌朝のタイムラインでは「時代遅れ」のタグ付きでゴミ箱に投げ込まれている。そのペースに合わせてプロンプト設定を書き換え、ルール設定を勉強し直し……。ようやく環境が安定した頃には次のトレンドがやって来る。インフルエンサーAIイノベーションを讃えるが、単に技術負債の積み増しが高速化しているだけだ。クラウド料金とGPU時間を溶かしながら最新の呪文を追いかける――それを楽しいと感じられるのは、現場の泥を一度もなめたことのない奴だけだろう。TwitterAIサンプルアプリを吐かせただけの動画10いいねを稼ぎ、Qiitaには「たった5分でSaaSを作った」記事が湯水のように溢れる。彼らのKPIはバズであって品質ではない。コードの読解よりもサムネイルの作り込みに時間を費やし、脆弱サンプルをSNSに放流してはドヤ顔をキメる。出てくる言葉は「やばい」「すごい」ばかり。設計思想アーキテクチャも語られず、残るのは小ネタだけ。驚きの連打で脳を麻痺させ、その隙に粗悪品を売り逃げる手口にはもはや悪意すら感じる。問題エモいだけのバズが終わったあとだ。生成されたJSには脆弱性が口を開け、SQLはべったりと文字列連結。テストはもちろん存在しない。GitHubにアップされたそれらが検索結果のトップに並ぶ頃、若いエンジニアはそれを正解と思い込む。やがてプロダクションにコピーペーストされたとき、火の手が上がるのは自明だが、初動でウケを狙った当人はすでに別の流行語を追っている。残された現場は「AIが書いたから仕方ない」で済むほど甘くない。バイコーディングがもたらすのは「誰でも作れる楽園」ではなく、「誰でもバグを量産できる魔境」だ。トレンドスピード人間学習曲線を嘲笑い、浅い称賛がノイズを増幅し、素人コードセキュリティホールをばら撒く。この三重苦が渦を巻き、エンジニア精神プロジェクトの予算を同時に削り取る。結局、泥臭いリファクタリング継続的テスト、そして責任をもってコードを読む眼が最後ものを言う。その当たり前を忘れたまま「日本語が最強のプログラミング言語」とか「プログラマー不要論」とか唱えている限り、彼らは永遠にクソの上にクソを塗り重ねるだけだ。俺たちはAI仕事を奪われるんじゃない。AIを信じ切った素人と、それを煽る驚き屋によって殺されるのだ。

バイコーディングはクソ。以上。

2025-06-05

設定の共通化と、クラウドリソースの利用方法共通化(規約化)の違い

理解していないエンジニアが多すぎる。

こいつは、DDDマイクロサービスの扱いで、ドメインと主張するもの(なんらかの超細分化共通化されたFunction)ごとに1サービス立ち上げてgRPCでCallとかいうのを真顔でおっ始めてしまう層と完全に被っているのだが。

同じ口で「疎結合設計してます」っていうから、空いた口が塞がらない。

はっきり言おう。

この手の設計

「超密結合」

です。

共通化された部分の「設定」を変えると関係している部分全てに影響を与えるし、共通マイクロサービス仕様ちょっと変更しようとしても、それを利用しているすべてのモジュールに影響を与える。

そして、分離だけはちゃんとされているので、

テスト容易性が圧倒的に低い」

のに、「TDD採用しています!」って言い切れちゃう頭を疑う。

デプロイしないと検証できないし、動作デプロイ先の設定に依存するんだから、実環境以外でのテストアリバイづくりに過ぎない。

「設定より規約」って言われてるのは、「どう設定されているかソースや実環境データ確認しないとわからない」みたいな余計な認知負荷をかけるようなことをすると、巨大化、複雑化していく今時のWebサービスでは成長戦略に致命的なダメージを与えることになるからだ。

のだが、Web記事漁ることしか能がない、「イケてるエンジニア様」たちは、「設定より規約」って言葉も、その定義も知っているのに、自分が何をしているか理解できない。

反論が「ここのWeb記事に書かれてます!(ドヤッ」でお話にならんのだ。

自分の頭で考えろ。

意識高い雰囲気で、ここまで的外れなことをやっている組織には、本当に、本当に、本当に、呆れうんざりする。

まぁ、こういう集団は、100年経ってもこういうことは理解できないんだよね。

だって、その前提を理解する頭がないから。

2025-05-26

anond:20250526110453

言語は何でもいいか

はてな匿名ダイアリー

と同程度のシステムを作ってクラウドデプロイするところまでやってみるといいよ

2025-05-18

anond:20250518080524

俺は全然予想を超えてはないか

しろ限界が見えてきたというか

こういう問題があるのでそれを解決するのに設計からインフラの選定までやってクラウド設定してデプロイしてテストしてからゴーライブしてとか全く無理だし

まあそれができるようになったら世の中の仕事全部できるんだが

2025-05-13

頭のいいやつは繁殖しないから、最終的に人類バカしか残らない

これからAI時代は、「飽き」との戦いになるだろう。

少なくとも視覚聴覚に関しては、望んだものが即座にAIによって生成される。

人々は否応なく、自分欲望本質に向き合わされる。

賢く、悟りを開いた(そうせざるをえなかった)者は子を持たず、自らを去勢する。

それでも人類絶滅しない。

まり賢くない個体同士が繁殖を続けるからだ。

こうして、ネオAIネオ人類の間には、ますます深い知能の格差が生まれていく。

----------


--------------

最終到達点


構造
説明 主要資源
コア複合体(Neo-AI + Apex Augmented)(以下、コア) AIクラウドと脳機能拡張エリートが完全共生自己進化ループ指数的に知能を伸ばす。 計算資源エネルギー知識資本
ドルレイヤマネジメント/メンテ層)(以下、ミドル コア複合体が設計したツール運用保守知識アクセスは厳格に段階制。 ライセンスアルゴリズム限定的強化学習
ベースポピュレーションNeo-Human Majority)(以下、ベース生殖と基礎労働を担う。AI依存しつつも IQデジタルリテラシが低い。 ベーシックインカム、合成娯楽、監視福祉

ガバナンス

経済

文化日常

長期ダイナミクス

主なリスククリティカルポイント
分岐点崩壊リガ崩壊後の姿
コアが自律目標を変更 エネルギー制約・内部競合 ベース層を切り離し、宇宙移民
ドル層の集団覚醒 知能上限突破ツール流出テクノガラス片的内戦
ベース層の生殖爆発 監視網の飽和・経済飢餓Neo-AIによる強制縮減


まとめ

2025-05-02

anond:20250502151416

それこそがテクノフォビアなんだよ。

流れてくるものを眺めてるだけで手を加えない。

何故か?

考えるという1ステップを挟むからだよ。

考えるにはどうするか?

流域や水量を調節するという思考にたどり着かないのはなぜか?

それこそが思考恐怖症の証明なんだよ。

じゃなきゃアルゴリズムを改良してデプロイできるだろ?

何故お前はそれができないのか?

考える事が怖いからなんだよ。

からお前はお客様立ち位置で滝が流れてるのを見てるだけでしかない。

改善という権利放棄するには、思考放棄するしかない。

お前は今まさに、それを証明し続けていて、それを理解できてないのはお前だけ。

anond:20250502150053

使う側ならアルゴリズムを改良してデプロイする?

まるで鍬を使う農民に「お前が本当に使う側なら鍬を鍛冶場で鍛え直してから耕せ」と言ってるのと同じだ。

道具を使いこなすという行為は、その設計レベルに立ち入らずとも成立する。ユーザーエンジニア境界理解できていないお前の論理は、浅薄の極み。

アルゴリズムを利用して思考材料を広げてるこちらは、情報の水脈を掘り当てて構造化してるわけで、それは知的マイニングの一形態

対してお前は、ツルハシすら持たずに地面を見下ろして「俺は掘らない、掘るのは負けだ」と言い張ってる哀れな観察者にすぎん。

使われてるんじゃない、情報の流れに意図を持ってダイブし、思考の燃料として抽出してる。

それを否定して「作らなきゃ使ってるとは言えない」とか言ってるお前こそ、潔癖放尿に陥ってる。

自分の手が汚れることを恐れて何もしない、批評だけして悦に浸るその姿勢、まさに情報時代潔癖症だ。

お前が見下してる「ただの利用者」たちが作り出す集合知こそが現代思考現場なんだよ。その最前線に立つ度胸もないなら、黙って壁の花でいろ。

anond:20250502145734

まりお前はアルゴリズムに使われる側を選択してるわけで、思考恐怖症の証明として成立してんじゃん

使う側ならアルゴリズムを改良してデプロイするだろ?それをやらないってことは結局考える事が怖い以外の何物でもないとお前自身が認めたわけで。

2025-04-19

ソフトウェアアーキテクトの常識

🧔‍♂️ワシ:

「いやぁ、昨日もまたRFC7231読んでてな、

気づいたらAcceptヘッダーと結婚してたわ……」

 

🎙️相方

「お前の人生、Content Negotiationされすぎやろ!!

しかも向こうから 406 Not Acceptable 返ってきたんやろ!?そらフラれるわ!!」

 

🧔‍♂️ワシ:

「この前アーキテクチャ会議で、サービス通信はgRPCがええって言うたらな、

後輩が「じゃあProtoBufで詩を書きました」言うてきよってな…

message 孤独 { string 心 = 1; } て……」

 

🎙️相方

「どんなポエムやねん!!スキーマ駆動純文学まれてるやんけ!!

しかもgRPCのくせにRESTに未練残しとるのが切ないねん!!」

 

🧔‍♂️ワシ:

最近の若手、すぐイベントストリームアーキテクチャ導入しようとするけどな、

この前「Kafkaのパーティション分割がバランス悪くて…」って悩んでたか

ワイ真顔で言うたったんや、

そのKafka、輪廻してるでって」

 

🎙️相方

「なんで分散メッセージ基盤が仏教思想取り入れてんねん!

試行失敗したメッセージ前世因果で戻ってきてるやんけ!!」

 

🧔‍♂️ワシ:

「あとワイの同期、設計資料UML使わんと、

全部PlantUMLシーケンス図でラップバトル表現しとるんや。

オブジェクトが`ー>+ DJController : Yo!処理呼ぶぜ!`てな……」

 

🎙️相方

「お前それ設計ちゃうHIPHOPフレームワークやないかい!!

非同期通信の代わりに即興バトルでロジック連携すな!!」

 

🧔‍♂️ワシ:

「そんでよく聞かれるんがな、

分散システム本質ってなんですか?」って質問や。

ワイは即答したったわ。

クラウド上で孤独分散する技術やって」

 

🎙️相方

「どんだけ孤独のシャーディングすんねん!!全ノードに寂しさ均等にばら撒くなや!!

最終的にAmazon S3に虚無が永続化されとるやないか!!」

 

🧔‍♂️ワシ:

「ちなみに、Terraform書いてる時は瞑想状態に入るのが基本や。

ワイの脳内、こんな感じやねん。

resource "自己肯定感" "low"

count = var.社会から評価

 

🎙️相方

自己評価IaCすな!!

しかリソース作られへんのやろ!?Error: Too many imposter syndrome とか出るんやろ!?

 

🧔‍♂️ワシ:

最後に言わしてくれ。

ワイ、今でもたまに聞こえるねん。

昔のMonolithが言うてくるねん……

クラス肥大化してごめんな…でも全部まとめたかったんや…」って」

 

🎙️相方

「それフレームワークじゃなくて未練ワークやんけ!!

責務の分離ができへんのは、気持ちの整理もできへんのと一緒や!!」

 

🧔‍♂️🎙️二人:

ソフトウェアアーキテクト、それは正気狂気境界で踊る設計シャーマンや!!」

「ほなまた、次のデプロイで会おうや!!」

2025-04-15

KISS原則を忘れた者には災いあれ

Keep it simple, stupid !!

聞けばたいていのエンジアは知っている。

だが、知っているのと理解しているのと実践しているのは大きく異なる。

KISS原則は知ってる?」

「知ってます!( -`ω-)✧ドヤッ」

「このピタゴラスイッチはなに?」

「……」

エンジニアリングはペーパーテストではない。

知識を溜め込んで、披露することに熱心なエンジニアが多いけど、文字面だけの空虚議論に終始することが多い。

中身理解してないから、とにかくそれっぽいものを盛り込むことに全力を傾ける。

それっぽいものから、大抵間違えてる。

本来達成すべき目標より、マイナス副作用の方が遥かにかい

手間が増え、安全に変更しづらくなる、ただの迷惑、ただのゴミ、ただの障壁

もうね、スクリプトを作るためのスクリプト、モノリポの一部だけをテストデプロイする仕組みをスクラッチで書く。

ドキュメントはあちこちに書き散らして、どれが最新か、どれが正しいか、わけわからん

「あ、それ、古いバージョンです」

複雑にすんなって言ってるだろ。

モノリポは、勇者Googleはそうしてる、ってんで前に習えしてるけど、お前、勇者でもなんでもない、ただの町人Aやぞ。

やれるならやっていいけど、複雑にすんなよ。

っていうのに、

「手動操作を避けるために、全部スクリプトしました!( -`ω-)✧ドヤッ」

いやさ、その手順の複雑さ自体に疑問は持たないのかね?

そのスクリプト保守、誰がすんの?

仕様が追加したり、新しいサービスを展開することになったらそれ、拡張すんの?

エントロピーは増大するんだよ?

複雑にすんなって言ってるだろ!

いろんなものを複雑にして自分がいないとやっていけない状態にして、自分地位を安泰にすることしか考えてないのかね?

で、自分の手じゃ負えなくなって、全てを放り出して逃げるんだろ?

おいらが関わった炎上現場はだいたいそうやって生み出されてるよ。

そのクソみたいな、何の才能の片鱗も感じさせない、ただのこけおどしのピタゴラスイッチ解体するところから始めてんだよ、いっつも!!

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