「 プログラムを開発するのが うまくなったので 少しメモって置こうぜ☆?」
「 うまくなったか へたなのか どうやって検証してんの? 主観?」
「 実践では 考えたり リファクタリングする時間とかないわけだぜ☆
プログラマーがやりたいことは だいたい プログラマーではない人から 無駄だと思われてるんで、
クォリティとか考えていられない☆ ハッカー的な能力を求められるわけだぜ、つまり 脊髄反射で決定して、かつ終わりが速い☆
こう、ほいっ、ほいっ☆」
「 結局、 動的計画法 という古くからある方法以外の ひねった方法 をやってみると 手戻り というミスをする☆
そこで ほとんど こうするしかないという開発の必勝法、 動的計画法 を 簡単に説明する☆」
「 動的計画法って、名前に Dynamic と入れておくと アメリカ政府から予算を巻き上げやすいから Dynamic と入れただけで
深い意味は無いそうよ。
だから 正味の意味は プロジェクトが崩壊しないプログラミングの方法 ぐらいの意味なのよ」
「 多分 ドラクエの ほりいゆうじ が書いたセリフだと思うんだが、 セーブはこまめに という手法だぜ☆
あるいは 塾の数学の授業でよく言われるような、 計算の過程を残せ、式と答えだけ書いてあって答えが間違っていたら どこが悪かったのか指摘できん という手法だぜ☆
それを頭に入れて 詳しく見ていこう☆」
「 ↑まず最初に 何か要望を抱えた依頼者と ミーティングが始まるが、まあ とにかく聞け☆」
「 ↑じゃあ なんか データがどこかに置いてあるとか、インプットの話しと、
最終的に こういうものが欲しい という アウトプットの話しが どこかにあるだろ☆
この間、具体的な仕様とか 存在するかどうかも不明だぜ☆」
「 依頼者と 直接話しできなくない?
話しを持ち帰ってきた中間と話ししてない?」
「 お父んは 人前に出せないんで……☆
まず シャツがズボンから出ていて アウトなんで……☆」
「 ↑インプットしたものを そのままアプトプットすればいいだけなら それ ずっとインプットなんで
そんな都合のいいこともなく、インプットとアウトプットの間には 何かしらの
ゴミの除去なり、まとめ直しなり、データの編集が加わるぜ☆」
「 ↑で、チェンジはだいたい 一発で終わるものではなく、
こんなときは こう、 ただし これだけ例外で こう、
しかも このケースでは 反対になってこう、 とか 比較が 小出し に こまごま出てくる☆ 例外の山☆」
「 小出しの 後だしで 仕様追加されたら プログラムって ぐちゃぐちゃにならない?」
「 依頼者から見れば、元となるデータを、ある形に加工してほしい、ということかもしれないが、
最初に聞いていた話は簡単で、あとに聞く話は 前に聞いていた話しからすれば 規格外になることは よくある☆」
「 依頼者の話しを聞いて、 うまく クラスタリング(おまとめ)して
まとまりごとに 一括処理をする……、といった 丁寧かつ、手際の良さげな方法が プロジェクト崩壊の始まり だぜ☆」
「 ただし このケースは除く、 しかし このケースは 『除く』から除く、 みたいな Except が入ってくる☆
今どういうロジックになっているのか 業務マンは把握しているが プログラムマンが精査すると ぼんやりしているところが出てくる☆
いちいち質問すると、こうあって欲しいロジックではない方が 仕様として戻ってくる☆
人類は if文 がすっきりしていない方が好き☆」
「 クラスタリング(おまとめ)せず、 シリアライズ(1本に ならべる)しろだぜ☆
Source から Destination へ直に変換するのではなく、
Source recipe とでもいうような いったん整列フェーズ を挟めだぜ☆」
「 クラスタをボンと投げるのではなく、
ジブラルタル海峡の橋を渡る勇士に 球が飛んでくみたいに 1発 1発 ぼんぼん投げろだぜ☆」
「 なる☆ データベース上に レシピを作れだぜ☆ 作ったレシピを実行しろだぜ☆
テストがしやすくなる☆」
「 で、新しい仕様の小出しが来たら ロジックは 書かず、 データベース上の レシピ をいじれだぜ☆
ロジックに手を付けるたび 地雷度 が跳ね上がる☆ ロジックを触ってはいけない☆ レシピを触る☆」
「 ↑ ヨコ軸に 依頼者の要望が、 タテ軸に 実行する球 が並ぶわけだぜ☆
SELECT
文で 結果を配列に詰めて foreach文で回せだぜ、1行が1命令☆ 簡単だろ☆」
「 ↑ 気分的には、結局、フェーズ間に レシピが要る☆
いろいろ やってみろだぜ☆」
<書きかけ>
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!