「YAGNI」を含む日記 RSS

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

2021-11-26

YAGNI原則You ain't gonna need it(そんなの必要ない)」の略語で、「機能は実際に必要となるまでは追加しないのがよい」とする原則

バーゲンからといって 今すぐ遊ばないゲームは買わない

2020-10-22

anond:20201021210748

若い女性の脳内ロジックに「不甲斐ないおっさんを余すところ無く喜ばせる」ってロジックを組み込むと、デグレード起こすぞ。

次元DRYだし、SOLIDだし、いいことづくめだぞ。

生身の女を欲しがる気持ちYAGNIを!

2020-06-23

オレオレフレームワーク百害あって一利なし

こんなことは、コンピュータサイエンスのあらゆる観点から明確に答えが出ている。つまり車輪の再発明だし、YAGNI原則にも反する。

オレオレフレームワークメリットとして挙げられる「フレームワーク自体トラブルに遭遇したときに、独自フレームワークなら対処やすい」というのは完全な嘘。

まず、そのトラブルの発生頻度が圧倒的に異なる。特定会社の数人にしかチェックを受けていないオレオレフレームワークと、世界中開発者によってテストフィードバックがされている有名フレームワークとでは、バグの発生率も情報の量も雲泥の差。

そもそも、「オレオレフレームワークからトラブル対処やすい」のは、作った奴だけであって、その他のチームメンバーにとってはただのバグだらけの使いにくいフレームワークしかない。

2020-06-19

センスのない奴はプログラマになってはいけない

センスの無い奴の問題は、知識がないことではなく、頭がおかしことなんだ。

これは後天的に直せない。そして、センスのないプログラマ他人迷惑をかける。だからセンスのない奴はプログラマになってはいけない。

たとえば、BMI計算するプログラムを作るとしよう。

こんなのは誰でも書ける。身長(m)と体重(kg)を受け取って、(体重)÷(身長*身長)を計算して出力するだけだ。

GUI等をつけたとしても、総コード行数10数行で実装できるだろう。

ところが、センスのないやつは全く違うことを考える。

彼らの一部は、BMI計算するプログラムを作るのに、なぜかユーザー登録画面を作ろうとする。

そして、身長体重のほかに、年齢や性別などの様々なパラメータ管理できるようにし、それらのパラメータを日ごと、あるいは週ごと、あるいは月ごとに入力できるようにし、指定期間での推移をグラフで表示するシステムを作り出す。

ユーザーごとに管理するパラメータの種類は増減するため、BMI計算する場合、「身長体重はどのフィールドに格納されているか」というような間接的な情報必要になり、それを記載した設定ファイル等を読み取る別のプログラムを作り出す。

BMI以外の様々な指標計算させるために、設定ファイルに書ける独自DSLのようなものを作り、パラメータ同士の加減乗除や、指定した期間の移動平均などを計算できるようにする。

データ定義にもとことん拘る。単位を何にするかとか、グラフで表示したときに何色にするかとか、軸に単位を表示するかとか、スケールからはみ出したときにどう表示するか等のありとあらゆる情報を各パラメータに対して定義できるよう設計する。

こうして出来上がった巨大なシステムは、身長Hと体重Wを入力すると、W/H*Hの結果を表示するためだけに使われる。

既に述べたように、ここで問題なのは、彼がYAGNIYou Ain't Gonna Need It.)という原則を知らないことではない。

普通開発者ならあえてそんなことはしない」ということを自然に行ってしまうこと。これが本質的問題なのだ

ちなみに、センスのない奴の頭のおかしさというのは、本当に常軌を逸している。だから、読者がすっと腑に落ちるような例を挙げることは極めて難しい。

たとえば、「数学ができない生徒がいる」という現象説明するためには、「計算問題は解けるが、文章問題は解けない」というような類型を示すことができる。しかし、「センスのないプログラマ」は、常人世界観を超越しているので、そういうシンプルな例示や説明ができない。上に書いたたとえ話ですら、実在する彼らに比べれば、まだマシなのである

2019-10-16

anond:20191016181403

YAGNIっていうんだっけ。後で使うだろうと予測して実装したけども、実際は10%も使ってなく、費やした時間無駄になるってやつ。

2019-01-10

新元号ホッテントリの件で、いつ何が起きても対応できるようにしとけよっていう当然の主張を、YAGNI原則オーバーエンジニアリング発注側が無能だとか言い訳してる奴らなんなの?無能なのは変わらないはずなのにね。

2017-08-11

https://anond.hatelabo.jp/20170811174835

YAGNIってのは不必要であるかも知れない拡張性を云々するなやって話でしょう。違いません?

2017-04-26

東大京大無能問題

新卒入社した会社研修で、新卒だけで議論をしてプレゼンをするという課題が出た。

なぜか今年は高学歴が集まっていて、東大京大をはじめ筑波など、マーチという動物園卒の自分では中々お目にかかれない学歴を眺めることができた。

が、東大京大卒が極めて無能である

無能と感じだポイントは以下の通り

1. 無限リソース突っ込みたがる

2. 他人から批判を極端に嫌う

3. 非常に楽観的な目標を立てる

1. リソース突っ込みたがるに関しては、新卒に求められている成果に対して、膨大な時間をかける。

他にもタスクを受け持っていて、数あるタスクの一つであり、うまくやったところで給料も上がらないし、会社利益にもならない課題に対して、10時間以上時間外労働をしている。(そして、それを僕にも強要させようとしてくる)

最小限のリソースで求められる最低限の成果を出すことを良しとする僕には、全く理解できない話だ。

2. 他人から批判を極端に嫌う。

なぜそこまで時間をかけるのか聞いたところ、課題に対して上司批判されるのが嫌だったり、最高の成果を出したいそうだ。

僕なんかは、批判されたら、その後に考えて修正した方が効率がいいと思うのだ。YAGNI

3.そんで、時間をかけて出てきた答えは、実現不可能なほど、希望的観測に満ちたものだった。

彼らの高い能力を持ってすればうまくやれるのか、それとも単に成功体験を積めば高い目標も達成できるのか。凡人には謎である

彼らが無能である理由として、いくつか考えられるのは

1. そもそも持ってるリソース量が半端ない

2. 成功体験しか積んでこなかったので、失敗することはありえない。(能力的にも)

3. 一流企業じゃないウチに入るのは、そもそもハズレ

過去出会った東大京大の人はもっと有能(コストに対してリターンが大きい)だったので、3である可能性が高そうなんだけど、一流大卒の多いはてなーの皆さんはどう思う?

そして、この話にはオチがあって、なんとこの非効率会社IT企業なのだ

2016-03-24

http://anond.hatelabo.jp/20160323210254

非っ常によく分かる。自分も何年も何年も同じような思考ルートでハマっていたし、今も油断するとハマし、ある部分ではまだハマってるところがあるかもしれない。

この現象については、技術書の積み本している初心者への指針について書いた内容が結構参考になると思う。http://note.chiebukuro.yahoo.co.jp/detail/n156280

ハマりそうになったとき自分道標としてるのは、

「今自分とり得ることが可能な手段を使って、ボロボロでもいいので、最低限の目的(ソフトの振る舞い)を達成するにはどうすればいいか?」を考えることだ。

一番有名で情報豊富そうな開発環境デフォルト設定のままで使い目的を達成するために近いコード前例ネットで散々探して、近いコード記載されてれば有り難くコピペコードする。

もし目的とあるライブラリを使って関数1つでできるって情報を得たならば、そこで初めてライブラリの取り入れ方を調べる。分厚い入門書1冊をあらかじめ写経しておく必要はない。あとで目次からライブラリの使い方」が辿れれば十分だ。

のもの必要になったら、その都度必要な道具を追加するし、ついに開発環境の設定を弄る必要が出てくる時があるかもしれない。でもそれはその時だ。今ではない。

どうしても分からないことがあれば、散々馬鹿にしていたyahoo知恵袋に恥を忍んで質問を投げる場面があるかもしれない。女子小学生を装って有名プログラマーに@を投げてみろ。最速で返事が来るはずだ。

トップレベルソフトウェア開発者ならレイピア+10が最強だと常識のように知ってるけど、こっちはそもそも手持ちのクラブしか存在を知らないし、持ってないが、まぁ小さな冒険はできるはずだ。

こういう必要になったらその時やろうって態度はソフト開発だどYAGNI原則って奴らしい。世界のみんなも悩んでるんだよ。心強いわ。 https://ja.wikipedia.org/wiki/YAGNI

目的の達成」それだけが最も大事約束で、他はすべて余計なフレーバーだ。

エレガントなコード書き方や最新のテクニックベストな開発環境、新しい言語の利用などは全て目的達成するためのただの道具だ。初手から天才の振る舞いに惑わされてはいけない。

コピペコードオンパレード冗長ミスの発生しやすい古い表現方法、今では話題にもされない開発方式言語自分が知っている小さな手段

今の装備で目的が達成できる見通しがあるならまずはそれでいこう。見通しでわからない部分・足りない部分に気づけば、そこを明るくする方法を探すことをまずは一歩目にしよう。

ボロボロ状態目的が達成できたそのあと、じっくりとエレガントにすればいい。そして納得の行く仕上がりになったら、さも最初からエレガントだったように振る舞う(重要)

古い増田だが、事務方の人がエロサイト作ったケースが初心者の振る舞いの参考になるかもしれん。http://anond.hatelabo.jp/20101203150748

そして最短距離の測り方・とり得ることが可能な手段技術力が上がるに連れて変わってくると思う。ソウルレベルが上がってくると、天才の振る舞いが最短距離に対しての合理だと気づく部分がある。

最先端ツールを使えば、人的ミスを減らし、使用するリソースを最小限に抑え、変更しやすく、また問題特定も早い。それら全てに伴い、なによりやる気が削がれにくくなる!なんと素晴らしい。

Gitのおかげで破壊的な変更も気楽に試せるし、新規プロジェクトフォルダ(7)が何だったか思い出す作業から開放された!(※)

とにかく初手から最新の道具が必要かどうかと言われると恐らく必須ではないし、むしろ単に学習コストの支払いが上積みされて、目的達成への道を遠ざけるだけだろう。

そして支払いの負債が積み上がって行くにつれ、諦める率が上昇していくことを恐れないといけない。そしてついには諦めて亡者化する。

諦めに取り憑かれないためには自分が走り抜けられる最短距離を常に気にしないといけないし、実は回り道して当初気にかけていた天才が紹介してたツールを使いこなすことが結果的距離を短くする方法だったかもしれない。

回り道するか否か、このバランスの取り方は常に難しいし、自分も未だに失敗することが多い。これどうしたらいいんですかねえ。

まぁ締まらない終わり方ですが、元増田の良き冒険が始まることを期待しています

so the world might be mended...

※個人でやる分にはGitソース管理煩雑で開発効率が落ちてきたなと思ったら入れてもいいし、もちろん入れなくても良いと思う。(でも個人的には入れたほうが良いと言いたい。が、これにも惑わされるな。自分絶対必要かを判断しないと亡者化が近づく

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