マーチン・ファウラーのプログラミングバンザイ [無断転載禁止]©2ch.net

1仕様書無しさん2017/01/30(月) 23:33:00.67
関数の適切な長さとは? マーチン・ファウラー氏は、長さより意図と実装の分離、そしてよい関数名が重要だと指摘
http://www.publickey1.jp/blog/17/post_262.html

45>>342017/02/04(土) 01:12:45.62
>>43
はい?
1000行以上もあって「門外漢の人間が見てわかるものじゃない」のに、「コードの品質も高い」んですか?
メソッドの頭であなたが使ったローカル変数を、誰か別の人がメソッド末尾で触ってしまったら、あなたの作業は全て無意味ですよ。そのローカル変数が参照型の場合は特に。
そんなことだから収集つかなくなるんですよ、みずほさんみたいに(笑)

46仕様書無しさん2017/02/04(土) 01:18:14.50
>>45
ローカル変数のスコープは小さくするのが基本
批判しやすい状況を想定して批判するのはバカがすること
お前の脳ミソのキャパシティが疑われる

47仕様書無しさん2017/02/04(土) 01:24:08.48
結局この程度のバカがハゲコンサルのお花畑詐欺に引っかかってるんだよ
水素水も飲んでそう、オブジェクト指向はすごくこれから人間を救っていくと思ってそう
ちげえから世の中そんなに甘くねえから、現実的なマジモンのプログラムっつーのは
泥臭いコードの中に存在するものだから

48仕様書無しさん2017/02/04(土) 01:29:22.91
昨今の雑魚厨どもはコンパイラも書いたことがない分際でプログラムを語りやがるからいけねえわ
本格的なプログラムに片足の小指の先っちょでも突っ込んでから語ってほしいわ
オブジェクト詐欺のコンサルハゲに騙されるような貧弱プログラマで一生を終えたいのか

49仕様書無しさん2017/02/04(土) 01:44:21.91
有名なファウラーが言ってたからそれに乗っかっておこうという
ミーハー根性丸出しでプログラマを名乗るのをやめていただきたい
プログラマなら自分で試して判断してもらいたい
ファウラーの戯言を正しいと仮定したときどういう結論が導かれるか
ファウラーのご託宣を間違いだと仮定したときどういう結論が導かれるか
実際に試して検証しないといけない
お前らがやってるのは小保方以下
ファウラーが言ってたやったと言ってるようなもの
まったく現実を見れてない
どっかの誰かが作ったなにかを盗んできて割烹着着て発表してるようなもの

50仕様書無しさん2017/02/04(土) 01:56:15.97
まあ俺は今は製薬系の大手企業でプログラマやってるから白衣着てプログラム書いてっけどな
SIにもいたことがあるが勉強になったぞ、お前らも食わず嫌い止めて
ハゲコンサルに騙されないだけの知恵を獲得したがいいぞ

51仕様書無しさん2017/02/04(土) 02:24:17.96
このスレで俺が一番声がでかい
俺が正しいってことなんだよ
体中から自信が溢れてくる

52仕様書無しさん2017/02/04(土) 03:18:18.72
>>49
有名なファウラーが言ってたからそれに反発する
俺クールっていう考え?w

53仕様書無しさん2017/02/04(土) 03:43:47.21
違うね
ファウラーより俺の方が優れているという確信がある
自分の頭で考えない奴を俺はプログラマとは認めない

54仕様書無しさん2017/02/04(土) 03:59:13.81
> ファウラーより俺の方が優れているという確信がある

確信じゃなくて根拠を知りたいんだがw

55仕様書無しさん2017/02/04(土) 04:07:26.54
俺の中にみなぎるこの自信が根拠だね
それ以上の説明がいるのかい

56仕様書無しさん2017/02/04(土) 04:17:56.55
つまり実績はないってこと?

57仕様書無しさん2017/02/04(土) 04:37:29.60
PoEAAは良書だったわ

58仕様書無しさん2017/02/04(土) 04:39:46.01
>>52
違うけど、俺がクールなのは否定できない

59仕様書無しさん2017/02/04(土) 04:43:40.57
>>56
バカかお前、頭の中にひなあられでも詰まってんのか
自信があるってことは自信を持つだけの人生経験を
積んできたってことは自明だろうが

60仕様書無しさん2017/02/04(土) 04:48:02.91
自信に満ちた俺の熱いハートは外からみれば逆にクールに見えるだろうな
お前らに俺の余りあるクールさを分けてあげたいくらいだ
悪徳コンサルの手からお前らを救いたい

61仕様書無しさん2017/02/04(土) 05:01:57.71
頭がクール
頭がクール
クール・クール・クルクルパー

62仕様書無しさん2017/02/04(土) 12:13:28.24
>59
ダニング=クルーガー効果って知っているかい?

63仕様書無しさん2017/02/04(土) 12:32:55.62
>>62
大規模開発もコンパイラの実装もやったことがない
雑魚がクソ禿げコンサルの戯言を金言として
無根拠に自分が優れたプログラマだと思い込むことでしょうか?わかりませんはい論破

64仕様書無しさん2017/02/04(土) 12:48:19.96
1000行ひたすらループやら分岐やらが続いてるコードと
意味ある単位で、何してるのか自明な名前の関数にバラされてるコードだったら
考えるまでもなく後者のほうがわかりやすいな

65仕様書無しさん2017/02/04(土) 13:57:07.23
ActiveRecordの提唱者?

66仕様書無しさん2017/02/04(土) 15:12:57.43
Railsのあれとは違うけどな

67仕様書無しさん2017/02/04(土) 23:07:57.01
>>15
10000行超えててもコンパイルできるの?CompiledMethodの制限超えそう

68仕様書無しさん2017/02/04(土) 23:08:40.00
>>67
1000行だった。あとコメント抜いた行数?

69仕様書無しさん2017/02/05(日) 10:13:14.79
>>68
#linesOfCode のソースはこんな感じ。コメントは含むが空行は除く。

CompiledMethod >> linesOfCode
 "An approximate measure of lines of code.
 Includes comments, but excludes empty lines."
 | lines |
 lines := 0.
 self getSource asString lineIndicesDo: [:start :endWithoutDelimiters :end |
  endWithoutDelimiters > start ifTrue: [lines := lines+1]].
 ^lines

70仕様書無しさん2017/02/05(日) 10:16:32.44
>>69
念のためこの #linesOfCode というメソッド自身の linesOfCode は 8 を返す

(CompiledMethod >> #linesOfCode) linesOfCode "=> 8 "

71仕様書無しさん2017/02/05(日) 15:21:13.62
自分をバカだと自覚していないバカが最も成長しない
熱意のあるバカは企業とって最も足手まといになる

72仕様書無しさん2017/02/05(日) 15:30:25.00
>>71
よおバカ

73仕様書無しさん2017/02/05(日) 18:48:40.93
英語できない日本人は、ちゃんとした名前の関数やメソッドを大量に作る心理的ハードル高いし
余計にダラダラ書いちゃいそう

74仕様書無しさん2017/02/06(月) 03:13:47.30
>>5の"highlight"メソッドの中身が"revese"というのは
ダイレクトにsmalltalkの流れを汲んでるObjective-Cなどをやってると
『クラスに命令(メッセージ)を送って動作させる』という思想が徹底してるから
ロボットに命令したら終わり(後は任せて追わなくていいように作れ)という
投げっぱなし前提思想と"人間が"何を自分で命令したか
後で明確にわかるように命令コマンド名を決めておけという
わかりやすい前提に基づいているのだけど、
まったく異なる思想でクラスや関数を捉えてる言語の側に住んでいると
「A=B=Cなら全部Aと書けばいいではないか!」で意図そのものが伝わらない。

そもそも自分がこいつに何をさせたか?という状態とコマンドの記述の話なので。

75仕様書無しさん2017/02/06(月) 09:43:57.41
> まったく異なる思想でクラスや関数を捉えてる言語の側に住んでいると
どの言語のどの関数の話?

76仕様書無しさん2017/02/06(月) 21:05:09.73
smalltalkって見た目が最高にキモイな(褒め言葉)

77仕様書無しさん2017/02/06(月) 21:38:25.30
>>31
そもそも、>>1に長さが問題なんじゃないって書いてあるのにね。

78仕様書無しさん2017/02/06(月) 21:44:16.35
長さが問題だっていうのなら単に関数を細切れにして
短くすれば問題解決になるはずだが
もちろんそんなことはありえないしな

ただ意図と実装の分離をちゃんと行えば
自然と関数は短くなる

短いからと言って良いと言い切れるわけではないが
長い関数であれば殆どの場合ダメと言っていいということ

79仕様書無しさん2017/02/18(土) 17:19:12.20
古い言語だと短いけど訳がわからないコードもあるよね
昔のプログラマはオナニストばかりだったからコードが臭い

80仕様書無しさん2017/04/08(土) 09:21:41.78
smallTalkって初見で読めないのな

81仕様書無しさん2017/04/08(土) 10:35:08.41
>>74ってリーダビリティの一言で済む話じゃね?

82仕様書無しさん2017/04/08(土) 11:33:35.65
>>80
たんに英語が読めないだけとかそういうことじゃなく?

83仕様書無しさん2017/04/08(土) 14:26:46.33
CやC++ができる人がObjective-Cのコード見て
「なにがなんだかわからん!変態だ!」って言ってたのといっしょじゃね?
そのまま永久に「Objective-Cは変態だかダメ!」って言い続けてたし。

84仕様書無しさん2017/04/08(土) 14:31:19.58
長さが絶対的基準ではないだろうが長すぎるのはやはり問題。

85仕様書無しさん2017/04/08(土) 21:21:18.14
変態はダメだろ

86仕様書無しさん2017/04/08(土) 21:46:43.20
Smalltalkのメッセージ式はお世辞にも短いとはいえないが、英語として読むにはぎり許容範囲
ただObjective-Cはそれに型情報も入れてさらに英語としても成り立たせようとする慣習があって長すぎ
それなのにXcodeにはつい最近まで補完がなかったってんだから信じられない

87仕様書無しさん2017/04/09(日) 14:19:38.44
>>82
Cしか知らないから、ぱっと見 >> と ^ がわからん
|a|は引数かローカル変数に見えた

88仕様書無しさん2017/04/09(日) 19:30:17.91
>>87
>> はそのメソッドが属するクラスを示すのに慣習的に用いられるものでメソッド定義時には使いません。
^ はリターンで Smalltalk 唯一の制御構文でもあります。
| a | がローカル変数宣言というのは合っています。

Smalltalk の式の文法は receiver message で、message は引数がないときはメソッド名そのまま、
引数があるときは、メソッド名に引数の数だけ含まれるコロンの場所で分断して、そこに引数を挿入する記法をとります。
たとえば、普通の言語(ただしメソッド名にコロンを含むことができると仮定)で obj.x:y:z:(a, b, c) という式は
obj x: a y: b z: c となります。ちなみに、Smalltalk ではメソッド名をメッセージセレクタ、あるいは短くセレクタとも呼びます。

メソッド定義は メッセージパーターン テンポラリ変数宣言 式 で構成されます。
メッセージパターンというのは、前述の式の message 部分と同じ記法でセレクタと仮引数を宣言するための部分です。
したがって、x: a y: b z: c | t1 t2 | t1 := a + b. t2 := c. ^t1 * t2 は、x:y:y: というメソッドを仮引数 a b c で定義したものになります。
このメソッドを定義を文字列で、たとえば compile: メソッドの引数としてクラスに送ってやることで、メソッドを定義できます。

Integer compile: 'x: a y: b z: c | t1 t2 | t1 := a + b. t2 := c. ^t1 * t2'.
1 x: 2 y: 3 z: 4 "=> 20 "

[:a :b | a + b] などというのはブロックと呼ばれる無名関数で、
引数はコロンを頭に置いたブロック引数宣言と処理内容を表わす式を | で区切って [ ] で括って記述します。
ブロックは第一級オブジェクトなので、代入やメソッドの引数にすることができます。

89仕様書無しさん2017/06/12(月) 22:07:25.69
意味が分からない

90仕様書無しさん2017/06/20(火) 10:09:05.97
1000行の処理がザラとか言ってるやつ、registとか書いてそう。

91仕様書無しさん2017/12/29(金) 20:11:10.17
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

CMRDMROXHN

92仕様書無しさん2018/02/16(金) 01:14:08.28
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

93仕様書無しさん2018/03/29(木) 18:16:13.29
ttps://martinfowler.com/articles/201803-refactoring-2nd-ed.html

94仕様書無しさん2018/05/22(火) 12:08:52.63
とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

8GEWS

95仕様書無しさん2018/05/22(火) 14:02:57.64
age

新着レスの表示
レスを投稿する