はてなキーワード: メソッドとは
「プログラマー」と名乗っている人をあんまり信用しないほうがいいというのはよく言われる話だが、最近そのことを痛感している。今やってる仕事の一環として、「ほかのプログラマーにプログラムを書いてもらって、それをレビューする」という作業があるのだが、この「ほかのプログラマーが書いたプログラム」というのがひどい。クズみたいなプログラムばっかりだ。
ってな、黒夢の『C.Y.HEAD』という曲の歌い出しですけど、最近この部分がぐるぐるぐるぐると頭を回るものだよ。
ええ、わかってますよ。仕事相手の悪口を公的な場で言うなんて、問題があるって言うんでしょう。まあ、それもそうなんだけど、たいしたプログラムも書けないくせにプログラマー名乗ってる奴らに本当に腹が立つからせいぜい堂々と書きますよ。
「忙しくってコードの質が下がってる」っていうような事情もあるでしょうが、まともに納品が出来ないなら仕事なら受けるべきでないわけだし、ビジネスの世界は「結果責任」を負うものですから、「事情」なんてのは知ったこっちゃないね!
……っていうふうにね、「仕事」というのは基本的に「事情」を無視するものなんですね。だから基本的にはあんまり僕は「仕事」が好きじゃない。とはいえ、今いっしょに働いている人たちはかなり「事情」というものを意識していて、おかげでそれほど辛くはないんだけれども。ただ「ほかのプログラマー」みたいな、外部の人たちは、事情を共有することができないので、「あー! クズみたいなコード送ってきやがって!」ということにしかならない。「事情」を共有できるような、近しい距離の人たちとのみ、仕事をしていたいものですよ。
で、そのコードがどういうふうにダメなのかというと、主に2つの側面がある。
【1】文法が正しくない、プログラムが読みづらい
【1】はもう、そのまんま。文法がおかしいとか、同じ様な処理をコピペで5回かいてるとか、1メソッドが長すぎる上に変数が"hoge"とかでわかりにくく、意味を取るのに困難があるとか。「こんなプログラムに金を払わなければならないのか……」と思うとめまいがする。何せ、それを「まともなプログラム」にレビューするのは僕なのだ。で、その作業に対してお金は一銭も入ってこないのだ。
不具合・先祖返りなんかは誰にでもあるミスだし、それを点検するために僕がチェックしているわけなので、そのあたりはいい。しかし文法の狂っているプログラムを修正するというのは、時には全体を書き換えなくてはならなくて、非常に労力である。それに、受け取ったコードは「ほかのプログラマー」さんの「成果物」であるので、あまり手を加えすぎるわけにもいかない。それが「仕様書」をもとにしたコードの場合、あまり修正するとクライアントに「自分はこんなこと言っていない」と思われてしまう可能性もある。だいいち、こんな作業にあんまり時間をかけたら、ほかのもっと大切な作業をする時間がなくなってしまうのだ。こういった様々な事情を考え合わせ、うまいことバランス取りながら、修正の妥協点を探していくわけだが、これはとてつもない頭脳労働である。疲れる。
【2】は例えば、「バリデートチェック」のためのコードなのに、「intは2バイト」ということばっかり書いて来るとか。「intは2バイトはわかったけど、いつからバリデートチェックになるのだろう」と思って読み進めても、最後までintは2バイトしかチェックしていない。依頼主であるからSIerは、そんなプログラムに金を払いたがるだろうか?
もっと具体的な例。ゲーム会社が、「我が社のキャラクタ版権を利用して、凄く売れるSNSゲームを作ってくれ」と依頼してきたとする。プログラマーが打ち合わせに行くと、企画者は「動的フラッシュも使って、100万ユーザーが遊べる。。。」という話を延々とする。プログラマーは「了解しました」と言って安請負する。そのプログラムはメイン処理だけで1000行というもので、memcachedの「mem」の字もないし、「オブジェクト指向」といった概念も勿論ない。これでは仮にSNSゲームがリリースされたとしても、100人さえも遊べない。
このくらいならマシなほうで、ひどいのになるとフリーランス会社から紹介されたプログラマーで、「SQLはselect文くらいしかやった事がない」とか平気で送りこんでくる。たった一人で。
また、意味のないコメントも多い。ループ処理に、「イントのiに3を代入する」と書いて、何の意味があるのだ? せめて「処理速度改善の為にIntegerは使わずにプリミティブのintを使う!」というふうに書くのが本来だと思う、まぁ嘘なんだけど。だって、そんなコメントみて、「なるほど」って誰が思いますかね?
コメントには必ず「目的」というものがあって、次にソースを読む人は処理の概要を知りたいのだから、「プログラム」をそのまんまコメントにしてもダメなんですよ。そういう単純で、最も重要なことが意識できないで、どうして堂々と「プログラマー」なんて名乗れるのか知らん、と思うぜ。
一番、腹が立つのは「偽SE」ですね。「プログラムはだれでもできるでしょ、重要なのは業務知識でしょ!」みたいなのが偽SE。こういうのを本当に思っているのがいる。業務の画面遷移さえ理解してないSEがだよ。
上の例はさすがに大げさでも、「僕は、プログラムが好きでソフト開発者になりました」とか言ってまともにプログラムが書けない奴は、頻繁にいる。自分でサーバ建てろよ。自分で簡単なサービスつくる事もできないなら、向いてないから辞めてしまえ。
「オレはサーバエンジニアじゃないからコマンド打てない」みたいなね。
世も末だ!
ここに挙げたのは「最低限」のことで、「より読みやすく」「より自然に」「より美しく」というところを、自分の能力の限界まで突き詰めてこそ、プロってもんじゃないんかね。もちろん時間や諸々の事情と相談してのこととはいえ、「26歳の若造が吐き気を催すような拙いプログラム」を送ってくる、30代40代のプロプログラマーってのはいかがなもんでしょう?
身の程を知れというか。
なんでプログラム書けない人がプログラマーなんかやってんだろ?
んで、なんでそういう人に「仕事」があるんだろうか?
身の程を知れよ。
自分の欲望ばっかり考えやがってね。
弁証法的思考ってどういうものかご存じだろうか?
弁証法的思考とは、矛盾を解決したり、矛盾を矛盾のまま受け入れたりすることだよ
その一例を御覧にあげよう
まあこんな感じだ
...
...
...
『あらゆるものごとは、もしそれが意味を持つとしたら、それは矛盾を含んでいるからである』 - ヘンリー・ミラー[北回帰線]
偉人たちが散々に述べているように、世の中の真実というものは、たいてい矛盾をきたしているものなんだ
で、その矛盾を見出すということが、いわゆる弁証法的思考法なんだな
メンバメソッドとは違うもの。JavaScript では
Public なメンバメソッド → prototype チェインなどで付加した関数
となっている。
わざわざ外に出して関数化するほどのことでもないよな、とか
この関数からしか呼ばないのに、並列に関数を置きたくないな、とか思うことがあるでしょう。
JavaScript ならこんな思いに見事に答えてくれます。
たとえば個人情報が云々なので文字列のマスク処理を作ろうとしましょう。
String.prototype.mask = function() { var maskedText = ""; for(var ix = 0; ix < this.length; ix++){ maskedText += mask1(this.substring(ix, 1)); } return maskedText; function mask1(character) { var maskedCharacter = ""; swith(chr) { case 数字: 処理A, 個別処理 case 英字: 処理B, 個別処理 case 全数字: 処理A, 個別処理 case 全英字: 処理B, 個別処理 case ひらがな: 処理C, 個別処理 case カタカナ: 処理C, 個別処理 case 漢字: 処理D, 個別処理 default: 未処理 } return maskedCharacter; } };
こういうメソッドを作った時、処理A、処理B、処理Cは冗長な処理になっているわけです。
個別処理があるのでbreakしなければいいや、というわけでもありません。
しかしこの処理A,B,Cはこの関数外に置くような処理でもないわけです。
この関数内でしか使いませんし、むしろ使って欲しくないわけです。
function mask1(character) { var maskedCharacter = ""; swith(chr) { case 数字: shoriA(), 個別処理 case 英字: shoriB(), 個別処理 case 全数字: shoriA(), 個別処理 case 全英字: shoriB(), 個別処理 case ひらがな: shoriC(), 個別処理 case カタカナ: shoriC(), 個別処理 case 漢字: 処理D, 個別処理 default: 未処理 } return maskedCharacter; function shoriA() { 処理A } function shoriB() { 処理B } function shoriC() { 処理C } }
こう書けるのです。
JavaScript で一番好きなのはこの内部関数です。
まー、そうかもなぁ。過去の自分を見ているようでなんか元増田がいたたまれないんだけど。
そりゃそうだよなぁ、渦中にいる人間からしてみりゃそうだよなぁ。
とりあえず、これだけはいえるんだけど。
我々にとって、世界中の大抵の学習はカンタンなもんだよ。俺、現在では司法書士持ってるけども。
あんなんサクっと受かっちゃうぜ。そんな俺より難関を潜った元増田さんなんだから、恐らく弁理士いけんじゃね?
数字も強いだろうから、会計士もいけちゃう気がするよ。英語なんて当然のように出来るだろ?
俺は官僚辞めた後、色んな仕事を転々として自営の道に入ったわけなんだけども。
世の中に難しい仕事なんて一つもなかったよ。必要なら勉強する、スケジュールを組んで素早く頭に突っ込む。
この基礎メソッドが出来上がっているなら、世の中そんなに怖いものはないよ。必要なら勉強すりゃいいし、
勉強している間は教育業界がテキトーに食わせてくれる。国立医大出てりゃ、余裕でそこそこ稼げちゃうからな。
理数系の講師って常に不足してるし。後はタラッタラ自分はなにしたかったんだっけなー、と考えればいい。
医者になる過程で身についたものって、元増田が考えてるより遥かに大きいし
それを冷静に認識できれば、仮に医学の道をブン投げたとしても君はモノスゲーいいスタートを切れるんだよ。
そりゃ、君も俺もドロップアウターかもしんないし、当初の目的には挫折したけどさ。
でもさ、それやりたかったことじゃないだろ。元々さ、小中高と変に頭が良くて、俺は文系だけどさ。
まぁ、そんな感じで特に楽しいことも夢中になれることもなかったから、そりゃもう何も考えずに進んだらそーなったわけだ。そんなんどーでもいいじゃんよ。
まー、当初の目的には挫折した!それは認めちゃっていいんだよ。でも、君は既に色々便利アイテム持ってるじゃん。
素晴らしい経歴と資格と能力を、いつの間にか手に入れちゃってるわけじゃないですか。俺より上でしょ、ずっと。
http://anond.hatelabo.jp/20110202035306
元増田が「論理操作能力」という造語で表現しているものは、(A)論理的思考能力と(B)修辞能力のごった煮ではないか。
(あ、俺も東大、理Ⅰから工学部→修士。だから何って話だけど、ぶっちゃけルオーのカレー大好きです^^でもいつもは根津吉野家です><;ぐらいの意味しかない。元増田個人に対する挨拶だから他の人は流してくれ、すまん。)
話を戻す。
元増田は、(A)論理的思考能力と(B)修辞能力の区別が付いておらず、それ故にストレスを感じてるのだと思う。
まず(A)(B)の共通点から行こう。
この2つは、先天的でも遺伝的でもない。だが早期からの訓練によって、スピードと正確さを磨くことができる。
どちらも、既知のパターンに当てはめて理解し、それを自分流に応用するものなんだ。こう書くと抽象的だけど、スポーツの練習と何も変わらない。違うわけないんだよね。脳は誰でもそういう風にできているんだから。要は訓練。
最近では、おおよそのレベルは大学に入る前に決まる(大学入ってから死ぬほど努力する人が減った所為かもしれないし、早期訓練のメソッドが発達しただめかもしれない)。
じゃあなぜ、(A)論理的思考能力と(B)修辞能力を、区別する必要があるのか?
ここで大事なのは、(A)と(B)は結局のところ相反する、という事。
両方に優れた人はほとんどいない。学者でもどちらか片方に偏る。
(A)成分多めな人を論理屋、(B)成分多めな人を修辞屋、と呼ばせてくれ。
誰も気付かなかった事を発見するのは、(A)論理的思考能力の高い人、論理屋。
論理屋は、無数の要素を網羅的に検証し、それらを因果関係で繋ぎ、論理で構築しなおす。この人たちは最良の解を求める事を優先するので、自分に都合の悪い事も認めてしまう。苦しんだ末に、最良の解に辿り着けない場合もある。だから、ディベートではあまりパッとしない。昔は学者と言えばこの論理屋が多かった。
逆に、ディベートで強いのは口がうまく(B)修辞能力に強い人、修辞屋。
状況に応じた方法論が必要だと思ってる、状況志向。
修辞屋は、必ずしも高い論理的思考能力があるわけではなく、自分に都合の良い構造に周りを嵌め込む能力に優れている。無数の要素の中から自分にとって重要な要素だけを効率よく抜き出し、それを既知の修辞に代入して、相手が反論できない方向に持っていくんだ。修辞屋は、最良の解とか考えてない場合も多い。政治家や芸能人にこちらの能力が要求されるのはもちろんだが、実は最近学者でもこの修辞屋が増えてきている(ビジネス社会が云々言ってる増田はいつの時代と戦ってるんだ?学界でも変わらんぞ)。
俺の見る所、おそらく元増田は(A)論理的思考能力に優れている、論理屋だ。
なのに、(B)修辞能力が足りないために、ディベートでは修辞屋に負けてしまう。不条理だよね。でも、だからって元増田の(A)論理的思考能力を否定する事はない。
元増田は一般の人に理解できるような論文は書けないかもしれない。でも、誰も気付かなかった事や、普遍的に最良の解を導く事は、君しかできないかもしれないよ。
だから長い目で見て頑張れ。あと、自分の土俵に篭るにしたって、少しは(B)も身につけろ。今からでも効率は悪いが訓練可能だ。
ちなみに俺は、見ての通りの修辞屋だ。器用貧乏って言うな畜生。元増田も俺も、東大卒だってほとんどは、こうやってコンプレックス抱えて生きてる人間なんだぜ。
日本の英語教育の悪いところは ハードルを糞高く上げて英語教育をフルイに使っていること。だから、落ちこぼれができる。
しかし、本来、英語なんて移民でも何でも年寄りでもできるし、小学生でも出来る程度に簡単な物。
本当に日本教育がタチが悪いよ。できて当たり前の英語を、わざと出来なくなる人が増えるような教育メソッド使ってるんだから。
エリートさんたちが、自分達の出来る度を高めるために、ハードル上げて、わざわざ国全体の英語レベルを下げてるんだから・・・バカじゃないのか?と思う。
Google newsなんかで英語新聞が無料で読めるし、英語の掲示板にも無料で書き込み放題。英語のソフトも無料。無料の教材もたくさん。
あとは、本人がもう1度やる気出すだけ。
親切なトラックバック、指摘に感謝します。プログラム改良を思いついたのですが書き方がわからないので忘れないように書いておきます。
上のプログラムでは素数か判定する数を既知の素数を格納した配列にある全ての素数で割ることで素数か判定していました。
初心者としてはなかなかいいアイディアと思っていたのですが、大幅に比較回数を減らせる方法があることに気がつきました。
割る数と商は入れ替え可能なので、素数の2乗でできていて割られる数より大きくて最も小さい数の平方根の素数までを
割る数として使えば事足りると気がついたのです。つまり113は11まで割って割れなければ素数として確定するという事です。
私のプログラムだと、13から109までの素数ので割るという比較をしなくて良くなります。
プログラムに落とし込むには配列内の全てに実行するsosuu_hairetu.each do |waru|を指定回数実行するという形に直す必要があります。
array = [1,2,3,4,5,6,7,8,9] n = 0 5.times do puts array[n] n = n + 1 end
うん、だから。
そこで取り扱う「文法的な正しさ」というのは、矛盾なく日本語を構築できる体系を目指そうというものであって、「正しい文法と間違った文法」を振り分けるものではないでしょ?
もちろんこれは単語や音韻イントネーションにも同じように言えるわけで。
教育学的アプローチがあるというのは、数ある国語理論が教育として有用なものか(というわけでいまだ橋本文法が権威を持っているわけなんだが)という話でしかなく、「「正しい」日本語を教えるための」アプローチではない。
あなたの言うそれはずいぶん前にあった算数教育の、掛け算どっちが先かって議論と同じ。
多人数教育に便利なメソッドが欲しいだけ。そういうものはどんな学問にだって要請されてる。何も保守的だからという話じゃない。
表層的にはあたるの行いの因果応報、
元の話題である、
男性が女性に無意味にいじめられる(CMで一方的に「お父さん臭い」と言われるような)
傾向やその影響の話とは別のものである。
(高橋留美子作品ではあたるがしばかれるのと同じメソッドで女性キャラもズタボロになります。)
作品は表層より下まで見るべきです。
生まれてこなければよかった。
posted at 03:35:01
だから私はダメなんです。そういうことに思いいたらずこのような発言をする人間のクズなのですクズだから死んだ方がいいのですけど死ぬ勇気もないどうしようもない人間なのですこんなどうしようもない人間だからこそ死.. http://togetter.com/li/87141
posted at 03:30:46
私が間違っているのは自明です。みんながそういっているんです。だから私は全て間違っているのです。死んだ方がいいです死んだ方が私はダメな人間であってダメなにんげんなのはひっていなのです。私の親の失敗は私を生.. http://togetter.com/li/87141
posted at 03:27:21
私が間違っていたんです。本当に申し訳ありませんでした。全て私は間違っています根本的に存在からすべて私は間違っているのです。みんながそういうのですだから私は間違っているのです。バカでクソでどうしようもない.. http://togetter.com/li/87141
こいつも有村も犯罪予告と嘘ばっかで人を食い物にすることしか考えてねえ。太宰を悪用しやがって
http://anond.hatelabo.jp/20110102095211
補足 横ネタ
ホメオパシー は 科学的か? という 命題に対する2つの答え
1 科学的の意味は多様であるが、非専門家においては、科学的に証明されていない、効果がない という意味で非科学的という言葉が使われることがある。
2 ホメオパシーには諸説あるが、ブラセボ効果のような心理学的効果は存在する。
3 ホメオパシーには、薬学的効果は現段階では、有意義に証明されているとは言い難たい。(少し譲って、議論中である)
4 よって、ホメオパシーは、十分に証明されてない、否定されている学説が主流であるという事を前提として
日常会話で ホメオパシー は 非科学的と使われる分には 一定の合理性がある。
A ホメオパシーは 医学が発展途上の際に 薬を飲めば直る という誤った知識が広まっていたことを1つの背景にしている。(以後 暗黙的にホメオパシーはという前提でを省略する)
B 貴族の奥様方などが、善意から 高価な薬を他人に飲ませる 飲ませたいという要望があった
C しかし、医薬品・医薬部外品などの分類が十分に出来ていなかった時代、薬の投与を素人が行うことは危険であった。
D しかし、善意の薬の配布という事は、禁止しても科学的知識がないから行っているという層なので、実施されてしまう
E こう言った自体を防ぐために、偽薬を配布することには一定の合理性がある。
F 偽薬の配布には偽薬であるので、偽薬に効果があると虚偽の申請をする必要があるが、それは科学的である。
回答2 ホメオパシー は 科学的(薬物の乱用を防ぐための偽薬配布という目的に対して)
元来、薬物の乱用を防ぐための偽薬配布メソッドであるホメオパシーに対して、薬理的効果を追求することは合目的性という観点から非科学的であるし、必要悪の世界なので、悪い行為であるという指摘はナンセンス。
よって、ニセ科学の合目的性を考えず、異なる合目的性を主張して非科学的という行為そのものは非科学的である。
ニセ科学その物は、パニック防止、誤用防止などの心理学的な分野から施工されている事があるので、そういった、分かってやっているものに対して
「日本的謙譲の美徳は一切通用しない。
やりたいことがあったら主張する、少しでも解らないことがあったら質問する、自分の意見を持つが当たり前」と
言うが、
しかしそれらの人たちが日本に帰ってきて、後進の指導をするときは
“日本的”礼儀作法当たり前、空気を読んで自分で考えろ、合奏中に解らないことがあったら練習が終わったら聞きに来い(と言っても練習が終わったら指導者は幹部と会議とかさっさと帰る)等々日本人気質まっしぐら。
(ヨーロッパ人がパヴァロッティに指導を受けるとき、学制が「ハイ、ルチアーノ!」と挨拶するのは基本中の基本)
「あなたたちは日本人なのに、何故私たちの音楽を演奏するのですか?あなたたちの音楽をやればいいのに」という質問に
「日本人ならではの視点でクラシック音楽を演奏するとこうなるんですよ、クラシック音楽の可能性を提案したいのです」と答えるが、
これ、童貞に対する素人童貞なみに絶妙なネーミングセンスだと思った。
「新しい言葉で差別が生まれる」というのは大袈裟かも知れないが、
いずれにせよ、そこまであえてカテゴライズして貶めてやりたくなる程度に
ウザがられる何かが彼らにあるということだろう。
こういうこと書くと「何その『いじめられる奴にも問題がある』メソッド」とか言われそうだが、
そもそも人の好感度なんて貯金の残高と同じで、相手を楽しませれば残高が増え、
ムカつかせれば減っていき、マイナスになったら相応の帳尻合わせに
なんつーか、仕方ないと思う。
ちなみにこの手のネーミングで個人的に気に入っているのは、
初めて目にしたときはVIP辺りで流行らそうという衝動に駆られたくらいだ。
そのいろんな意味で無駄にかっこいい響きに目下やられっぱなしである。
響きがかっこいい分、キョロ充や素人童貞よりも表面上は殺伐としていない。
そしてかっこいいけど彼らを微塵も称賛していない。
こういう単語は好きだ。
まず、言葉を正確に使ってくれ。
求めているのは、教科書か?それとも、(高校でいう)参考書or問題集か? 参考文献か?
教科書については正に講義している教授が執筆した物とか、講義している人が尊敬している人が執筆した物とか、いうレベルがあるから
一般の本屋じゃどうにもならん。一般教養レベルでも教授ごとに多種多彩な趣味・なんかがあるからどうにもならん。
参考書や問題集は、なぜそんな物が必要になると思ったのか良く解らんが・・・
大学は原則 応用を実践するところで 高校みたいに基礎を習うところじゃないからなぁ
過去問といてどうこうというのは・・・テスト対策にはなるが・・本質から言うと、あんま意味のある行為じゃないし・・・
テストで高得点採ることに意味はなく、 自力で法則を見つけ出すってところが重要だからなぁ・・・
参考文献って意味では、それこそ分野が多岐に渡りすぎて無理だ。最近は図書館がネット化されてるから、渡り歩くしか無い。
あえて言うなら、
言われたとおりに他人の作ったメッソドどおりにやるのが 高校
自分でメソッドを作って、文献を書いて 他人に読んでもらう 大学~大学院~博士の教育
そう You 書く番なんだよ・・・まぁ、研究室入りしてからだが・・・。
一般?原則 授業聞いとけばなんとかなんだろ。
思い当たるのは
“それはその人の戦略”だと思いますよ.
その人があなたを気に食わない.とかだったら
まず,あなたをぶっ潰すには,まずわかりにくいように仕事の説明をする
(そもそも,嫌な人に仕事の説明を丁寧にするのが嫌なのかもしれない)
それで,わからない,潰れてきた,となればしめたものですよ.
“前に教えたじゃん,それ”メソッドの発動ですよ.
こっちも,下から突き上げられそうになったらそういう思考回路の攻撃を検討しますよ.
あなたは自分に能力がないとおっしゃってるけど,この文章ではそうは読めない
詳細わからないけど
思い当たるフシがあるので...
説明悪くて申し訳ない
「馬に蹴られて死ぬ」メソッドはどうだろうか。