Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「RDB」を含む日記RSS

はてなキーワード:RDBとは

次の25件>

2025-09-29

anond:20250929122909

マジレスすると転売ヤー

そこからネット小売とか海外輸出とか始める人もいるし、

ワイは効率化のためのプログラムとかRDBの扱いとか学んで

今はアプリ開発で食っていけるようになった

まぁワイは10年以上前の楽勝で稼げた時代の話やから

環境は厳しくなってるとは思うけど、

今でもメルカリヤフオク流しでも小遣いぐらいは稼げるやろ

とりあえず脛でもなんでも金があるのは最強やから

なんでもやって当たるまでガチャ回し続けろ

Permalink |記事への反応(0) | 21:53

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-21

anond:20250821153814

そもそもでいうと現行のクレカ

一般的RDBシステムブロックチェーン関係なく履歴はつけたきゃつけれる

仮想通貨の仕組みはまず大前提として、中央集権が嫌だというのがあって

中央集権否定しつつ利点は使いたいというもの

中央集権で良いなら既存の仕組みで良いし

別に中央集権が嫌な理由もない。

Permalink |記事への反応(1) | 15:48

このエントリーをはてなブックマークに追加ツイートシェア

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 PageApplication)にすることでユーザー体験を向上させたい(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 PageApplication)にすることでユーザー体験を向上させたい(Why)」、「コンポーネント指向の開発によって長期的な保守性を確保したい(Why)」、「Reactエンジニア採用市場が活発だからWhy)」といった、様々な「Permalink |記事への反応(0) | 17:09

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-02

anond:20250602123043

負荷試験現実からかけ離れた雑なデータしか作れない素人です」って札を首から下げて生きた方がいいよ

RDB扱ってるのにマトモな負荷試験やったことない奴って本当に多いよね

Permalink |記事への反応(1) | 12:34

このエントリーをはてなブックマークに追加ツイートシェア

anond:20250602112256

また自己放尿か?

まず君は現場でのパフォーマンス要件を完全に無視している。

理論と実務の乖離が甚だしい。

RDBの第三正規形について何も分かっていない

巨大なusersやitemsテーブルを無思慮にJOINすれば地獄の開始だ。

ハッシュ構造で事前展開すれば1回の探索で済むものを、何度もJOINすれば、データベース無駄I/OCPUコストを強いる。

これはもう設計の怠慢であり、JOIN信者自己放尿と言っても過言ではない。

あえて君を責めるわけではない。恐らく君は「何も考えなくて済む」設計のほうが精神的に楽だったのだろう。それは理解できる。

だが、システムとは慈悲ではなく要件に応じて応えるべき存在だ。安易join信仰は、時にシステム全体を腐らせる。

最後に言っておく。君も変われる。もしパフォーマンス地獄を一度でも体験すれば、安易JOIN気持ちよく出るものではなく、破滅前兆であることを知るはずだ。

さあ、いまからでも遅くない。自己放尿をやめ、構造思考の道に戻ってこい。

Permalink |記事への反応(1) | 11:30

このエントリーをはてなブックマークに追加ツイートシェア

2025-02-17

頭のいいAIなのに表を理解してくれない

新しめのAIでもエクセルRDBテーブルのような二次元の表を理解できないのが普通なのかな?

SELECT '取引日' FROM '取引明細' WHERE '支払' < 10000

SQLにするとこんな感じの簡単ものですら間違える

最初にヘッダー部を列挙してもらったときは正しく認識しているのに、上のような質問をすると支払でなく残高が一番大きい取引日を引っ張ってきたりする

o3-miniでもDeepseekR1でも駄目だった

どういうこと?

Permalink |記事への反応(2) | 15:02

このエントリーをはてなブックマークに追加ツイートシェア

2025-02-15

DBZ(データベースゼット)」

「DBGT(データベースグランドツーリング)」

RDB(リレーショナルドラゴンボール)」

Permalink |記事への反応(0) | 17:47

このエントリーをはてなブックマークに追加ツイートシェア

2024-12-09

anond:20241209131103

テーブルをいじるだけといっても、変にいじったら、後々苦労するんだろ

単にいじるだけならサルでもできるけど、本当に難しいのは設計のほうだし…

しかも、RDBによっては設計上、やったほうがいいことがあっても、やるとまずいケースがあるから難しいわけで…

テーブルをいじる仕事も単純な仕事ではないぞ

Permalink |記事への反応(0) | 13:24

このエントリーをはてなブックマークに追加ツイートシェア

2024-10-30

anond:20241030000807

ごくごく常識的な内容だった

文脈スライド理解できてないお前のほうに問題がある

DBってさあ、RDB一択なわけ?

標準的RailsアプリならDBRDBだし、I/O待ちはほとんどDBアクセスと言っていい

RailsユーザーRailsイベントRailsユーザー向けにやってるトークなんだからそこは前提だろ

NoSQLとか今やNewSQLだってあるし、分散アーキテクチャなんて

普通に使われる時代で、このタイトル

スライドの大筋は古典的I/OバウンドCPUバウンド話題であり、DBアクセス以外のI/O待ちにも触れてる

要するにどう見ても最低限の知識があるはずの人間がなんでそんなタイトルを付けてるのかっつーと、I/Oなんて言っても意味が分からない程度の初級者のための配慮だろうがよ

非同期通信能力か並列処理能力とか言語差めちゃくちゃ出るぞ

から中盤から言語差がテーマになってんだろ

締めのスライドすら見てないならコメントすんのやめとけ

どう見てもやべーのはお前だから

Permalink |記事への反応(1) | 01:42

このエントリーをはてなブックマークに追加ツイートシェア

Ruby界隈ってこんなやべー発表してんの?

都市伝説バスターズ「WebアプリボトルネックDBから言語の性能は関係ない」

https://speakerdeck.com/osyoyu/du-shi-chuan-shuo-basutazu-webapurinobotorunetukuhadbdakarayan-yu-noxing-neng-haguan-xi-nai-kaigi-on-rails-2024

DBってさあ、RDB一択なわけ?

NoSQLとか今やNewSQLだってあるし、分散アーキテクチャなんて

普通に使われる時代で、このタイトル

非同期通信能力か並列処理能力とか言語差めちゃくちゃ出るぞ

わかるよ。Railsなんて管理画面くらいでしか出番ないしな。

Permalink |記事への反応(1) | 00:08

このエントリーをはてなブックマークに追加ツイートシェア

2024-09-04

遺書だったもの」へのアドバイス

ある方が「遺書だったもの」というブログエントリーを公開してはてなブックマークで注目を集めています

https://kirimin.hatenablog.com/entry/2024/09/04/001242

一読しただけで大変な状況の中ご本人が精一杯頑張ってきたことが伝わってきました。

普通の人は不登校になったあとに就職したり(それもB社側からの打診で正社員に!)、アメリカ出張趣味イラスト競技プログラミング、といった活動は出来ません。

なにより踏みとどまるという意思を持たれていることが一番素晴らしいと思います

ブログの内容について、アドバイス、というより考えてみるきっかけを提供できればと思い、以下に書いておきます

"アドバイス"という言葉上から目線ニュアンスがあるため私は嫌いですが、分かりやすさのためにあえて"アドバイス"と記載しております

"アドバイス"の手がかりとして、世の中の多くの人たちと異なっている点を特徴として捉え、そこに着目して述べていきます

コミュニケーションの飢えについて

多くの人は、自死を取りやめた場合遺書を公開しません。ここが最大のポイントです。

他にも、元カノの話や学校友達を作りたかった話、インターネット掲示板会社の同僚との関わりなど、コミュニケーションについて多く言及していることもかなり特徴的です。

コミュニケーションに相当飢えていらっしゃるように見えます

心理的な安定のためには、インターネットで構わないので、コミュニケーションの場への参加を増やしてしてみると良いかもしれません。

私も同世代で、2005年2007年ごろには2ch政治家おちょくるコラージュ写真を作って遊んでいたので、当時の雰囲気は知っています。当時と似たコミュニティはもはやほとんどなく、ネット掲示板よりもLINEオープンチャットあたりのほうが雰囲気が近いかもしれません。

自己評価尺度仕事に偏っていること

文章の2番目の特徴は、仕事に関する記述が多いことです。

仕事やそれに近い競技プログラミング能力モチベーションでご自身価値をはかる表現が目立ちます

仕事への情熱はご自身能力開発、社会貢献金銭獲得のために素晴らしいことです。

一方で能力モチベーションで全人類トップに立つことは出来ない以上、どこかで自分能力に見切りをつける必要があります

それが今なのかな、と漠然と感じました。

人には能力限界・投入できる時間の長さの制約があり、その制約のもと各自それぞれのペースで頑張るしかなく、他に選択肢はないため、ある面で人より劣ることを認めざるを得ません。

しかしだからといって人間として価値がないとか、死ぬべきだということは論理の飛躍です。

劣ることを認めたうえで、それがどうした、自分死ぬ必要はないじゃないか。むしろ優れた人たちが素晴らしい社会を作ってくれてありがたい、と感謝すればよいと私は思います。ご自身にもその気持があるはずです。その証拠にA社のリーダー、B社のプロダクト、元カノ、といったものを称える文章があります。これは称賛の気持が奥底にあるからだと思います

というより本当は人間という存在自体が自他に価値評価される必要がなく、各自勝手に生きて構わないと私は思います評価という行為自体が発生しないのが通常の状態であり、仕事では給料の分配という特別目的のために上司評価するという例外的シチュエーションが発生していると私は理解しています。つまりそもそも職場以外での「自己評価」は必須ではないと私は考えています

そのうえで、それでもなお自己評価必要であれば、いくつもの会社で働くことができ、しかも先方から声をかけてもらっているというのは素晴らしいことだと思います普通の人には声をかけませんよね。仕事の以外の面に目を向けると、イラストVR、他の投稿ではお母様にテレビゲームを教えたりと多方面活動している点が素晴らしいと思います競技プログラミングで高レート帯の方々はこうした活動と両立できるのでしょうか。ほとんどNoだと思います総合的に見れば特別劣っているように私には見えません。

この点は次の第3の特徴に続きます

自分に厳しすぎること

自身に厳しい記述が目立つことが第3の特徴です。

文章には「多くの人から嫌われ、失望され、迷惑をかけながら生きていたくない。」と書かれています

しかしきりみんさんは、嫌われている人・失望されている人・迷惑をかけている人に対して、死ねとは言わないと思います。そういう人柄だと文章で分かります

それなのに自分に対して厳しいのはダブルスタンダードで、ご自身を不必要に傷つけているように見えます。ご自身に対して厳しすぎるダブルスタンダードを持つ理由は何でしょうか。ダブルスタンダードを持つメリットはあるのでしょうか。これについて考えると楽になれる部分があると思います

きりみんさんは、自分より仕事ができない人に死ねと言わないと思います競技プログラミングが下手な人に死ねと言わないと思います。その理由は劣っていても死ぬ必要はないとご自身理解しているからです。そうであればきりみんさんが死ぬ理由もないと私は思います

その他

Permalink |記事への反応(3) | 13:53

このエントリーをはてなブックマークに追加ツイートシェア

2024-06-28

anond:20240628132620

正解が「数学的」に決まるところ。たとえば「1■1=2 のときに ■を答えなさい」というときに競プロは■を答えるだろうし、それを早く答えて悦に入るだろう。

それもいいけど、いちど数学的に答えが決まっちゃう問題ライブラリにまとめられて、一般的コーダはなにも考えなくてもインポートして処理できちゃうわけ。上の例えだとふつーのプログラマなら「枯れたライブラリインポートして、正しく答えが出ると確信できるなら『答えは正しいとか考えなくても』それを使って対処する」ので、データの振る舞いとか気にしないで済む。たとえばSQL なんて、実行時計画という「アルゴリズムを常に指定するなら不要な」話題があるのだけど、データ量によって適切なアルゴリズムが変化するから仕方ないし、概ねRDB は賢いのでヒューマン考慮するのは問題がある場合だけなのだ。よって、競技プログラマが生産性を確実に上げるという根拠はない。

もちろん、アルゴリズム知識を身につけるのは大切だし、クヌース先生も書いてたけど分散処理アルゴリズムフロンテイアだろうよ。というか、暗号分野やセキュリティ領域や、条件が過酷場合宇宙線の影響下とか、メモリの少ないエッジコンピューティングとか)だと、アルゴリズム研究や追求は大切なのは今も同じだ。でも、競技プログラマが新規アルゴリズムを開発したり、セキュリティに向上したという話は聞いたことがないが、レッドコーダ諸君は自前で創造して使われた実績はあるのだろうか?

ついでに聞いてみたいのだが、競技プログラマたちは「マルチスレッドコードで早く書こうとしないのはなぜ?」「そもそも競技プログラミングで使うコードは便利なスニペッツがあるけどそれってチートでは?」「ときどき正規表現で解く問題があるけど、そのとき計算量は無視してない?」という矛盾を抱えているのてはないか?と思うのだが如何か。

究極的には競技プログラミングに必要知識というのは、産業用途要求される知識の一部でしかないのが問題なんだと思うよ。ほら、アレだよ、むかし話題になった「数学だけデキる人向けの東工入試をやったら、英語ができなくて卒業できなかった」という童話に近いんだよ。競技プログラムってインとアウトしか見てないブラックボックステストから、ここだけしか計算機科学の知識が無いというヤバ人材の育成しかなってないのだろうな。

それで、結語として「答えのある問題に特化した競技プログラマー」のヤバい理由として、列挙していくと

ということは、競技プログラマーは考えても良いのではないか

Permalink |記事への反応(2) | 14:28

このエントリーをはてなブックマークに追加ツイートシェア

2024-06-24

elasticsearchをデータストアとして使うのをやめろ

なんで巷のアホ達はelasticsearchをRDBの上位バージョンだと思ってしまうのか。

ただのjson突っ込める検索エンジンなのに。

elasticsearchへ大切なデータを入れるな。トランザクションは大切だからRDBに入れろ。

elasticsearchで積極的joinを使うな。joinRDBでやれ

elasticsearchをデータマスターとして更新かけるな。RDB管理して必要に応じてelasticsearchへ更新をかけろ

大切なデータRDBに入れて、複雑な検索だけelasticsearchへ投げろ

ただの検索エンジンとして使え

Permalink |記事への反応(1) | 00:26

このエントリーをはてなブックマークに追加ツイートシェア

2024-04-26

anond:20240426170245

DBが全てRDBでは無いでしょ

Permalink |記事への反応(0) | 17:05

このエントリーをはてなブックマークに追加ツイートシェア

anond:20240426164121

Web寄りなのにRDBってあるのか

それはともかく今更Excelを覚えるくらいならテキストベースドキュメント文化に変えた方が良い

この先はむしろそっち

Permalink |記事への反応(0) | 16:53

このエントリーをはてなブックマークに追加ツイートシェア

2024-04-10

異動したらデータ整理から始まる

内部調整にアホほど時間を使う我が社

どうにか少しでも調整時間を減らすコツがデータ整理だ

調整相手ごとに業務データを様々な角度から集計・整理して挑まなくてはならないが、エクセル上で何度もコピペしたり手打ちしたりして作るのが我が社の通常だ

当然ながら時間がかかる上に間違いや矛盾がそこそこ生じる

対策としてはエクセル上にRDBを作ることだ

既存資料を読み込み、どのようなテーブル構成とするか、これを決めるまでが一苦労だが、できさえすればその後はむちゃくちゃ楽になる


とりあえずできたわ

むっちゃ疲れた

Permalink |記事への反応(2) | 22:08

このエントリーをはてなブックマークに追加ツイートシェア

2024-01-16

influxdb

rdbでよくね?influxdbの致命的な欠点

Permalink |記事への反応(0) | 01:56

このエントリーをはてなブックマークに追加ツイートシェア

2023-11-02

anond:20231102210853

バックエンドRDBCRUDだけだと確実にスマートUIのクソプログラムだけど大丈夫なんか?

普通バックエンド業務ロジック入れるんだぞ?

高校生が1日でできるようになるようなことは確かにあるけど高校生が1日でできるような仕事高校生が1日目でもらうような給料しか出ないよ

Permalink |記事への反応(0) | 23:59

このエントリーをはてなブックマークに追加ツイートシェア

2023-10-02

anond:20231002161838

増田もRustで書き直して1msでもレスポンス早くしてくれたら俺は喜ぶで

まあ増田のPostが重いのはRDBせいやろけど

Permalink |記事への反応(0) | 16:32

このエントリーをはてなブックマークに追加ツイートシェア

2023-09-19

anond:20230919050058

事務屋でもRDBを触るところも極少数だがないこたない

インフラ領域は触らんけど、まぁRe:dash経由でクエリ書いたり

Permalink |記事への反応(1) | 13:21

このエントリーをはてなブックマークに追加ツイートシェア

2023-07-31

FirestoreみたいなNoSQL考えた人頭おかしいんじゃないのか

RDB脳が取れないのかまっっっっっったくわからん

なんとか作れたとして、仕様変更とか機能拡張に弱すぎない?というかほぼ無理じゃない?

例えばメルカリみたいなオークション機能を作るとする。

次のフェーズではマッチした人同士で取引DMができるようにする。

次のフェーズでは商品や出品者に対して評価口コミができるようにする。

みたいな機能拡充していこうと思ったらNoSQLでどうするのかわからんすぎる。

でも上は初期フェーズでは安く済ませたいからFirebase一択だという。

頼れる人もおらん。

辛すぎる。

Permalink |記事への反応(1) | 16:41

このエントリーをはてなブックマークに追加ツイートシェア

2023-06-06

秋葉原無差別殺傷rdb人力検索お願いします。お願いです、ちょっと詳しく伝えてもらえますか?人力検索オランジーナが凄いのはあなたも知っています。そればかりじゃない。水タバコには、イミダゾリ酸と呼ばれる成分が含まれていて、健康に良いとされています水タバコというものインターネット上ではなく店頭で購入しないといけないもの

AnondAI作成

Permalink |記事への反応(0) | 21:01

このエントリーをはてなブックマークに追加ツイートシェア

2022-11-30

anond:20221130161202

お前の考えているサイエンス基準わからんので反応しようがないんだよね

俺の理解では数学サイエンスじゃないし

お前がコンピュータサイエンスの中に見出しているサイエンス部分が俺には数学に見える

その上で、数学的な話ならこの手の話題の随所に出てくるよね

OS言語RDBももちろんある

Permalink |記事への反応(1) | 16:30

このエントリーをはてなブックマークに追加ツイートシェア

ボクの使ったCS(ジジイの思い出話)anond:20221129085814

まぁ、下っ端プログラマには要らないだろうけど、いわゆるシステムエンジニアとかアーキテクトとか言われるレベル仕事するには、なるべく知っとかないといけないよね。

オレの場合は、大学はかろうじて理系一角だったけど、学問的にコンピュータサイエンスを学んだことはなくて、某IT会社でなかば業務上必要に迫られ、なかば趣味的な興味本位もありで、ちょっとずつ勉強した。

で、もう20年くらい前だし、すでに廃止されてる(と思う)ので、守秘義務違反とかの面倒なことにならなそうだと想定してぶっちゃけると、大手携帯会社ショップで各店舗独自プロモーション打ったりするためのWebシステムの開発に関わったことがある。

顧客の(および自分とこの)エライ人なんかにシステム設計根拠(この方式が最善なのか?もっと安く早くやれる方法はないのか?などなど)を常に問いかけられ、説明説得しなきゃならない。そこでコンピュータサイエンスに基づいて理路整然と話をすると、ちゃんと信頼してもらえるし、納得してカネ払ってもらえるw

そこで使ったのが、以下のような各種理論だ:



などなど...自分史上最高に残業させられたこ仕事やってた年の年収は、900万円台おしくも1000万には届かなかったねぇw

 --追記--

コンピュータサイエンスがらみの思い出でもう一個面白い(とオレが思う)ネタがあるので、ついでに書いとこうw

これは、上で書いた携帯会社システムよりだいぶ前のことになるが、とあるグループウェアの開発に関わってたときメールFAXに向けて出力するドライバを書いたことがある。昔のことなのでオープンソースあんまり普及してないし、タダでお手軽に使えるライブラリが見つからなかったので、「車輪の再発明」っぽいけど自分でハフマン符号化によるデータ圧縮アルゴリズム勉強して作ったのだ。

Win32APIとか呼び出して、ビットマップテキストを描画させたとこからドットをちまちま数えて、白のドットがいくつ続いてたらこコード、黒がいくつ続いてたらあのコード...って可変長のビットパターンをつなぎ合わせてファイルに書き出す...みたいな。これが理論通りにうまいこと動作して、FAXから文書が出てきた時はとっても楽しかったw

Permalink |記事への反応(0) | 15:49

このエントリーをはてなブックマークに追加ツイートシェア

次の25件>
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp