次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137
http://mevius.5ch.net/test/read.cgi/tech/1531558382/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part138
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スフッ Sd9f-fGne)
2018/08/05(日) 18:02:36.57ID:DigzqJtZd359デフォルトの名無しさん (ワッチョイ be7c-p7Vf)
2019/09/07(土) 12:07:36.88ID:Xl8GtuMF0 LL風にって動機でVector使うなんて筋が悪すぎ
Dequeueやろ
Dequeueやろ
360デフォルトの名無しさん (ササクッテロラ Spf1-LwsT)
2019/09/07(土) 12:26:52.91ID:hOghDJasp delコマンドをCreateProcessで実行するとファイル削除できないが、
そのコマンドをファイル出力させてそのままコピーして張り付けるとファイル削除できるって現象に見回れているのだけど、
delコマンドって実行できない??
ファイルが存在するかのチェックはしたのちに、そのファイルパスを利用しているからファイルパスに関しての間違いはない模様
そのコマンドをファイル出力させてそのままコピーして張り付けるとファイル削除できるって現象に見回れているのだけど、
delコマンドって実行できない??
ファイルが存在するかのチェックはしたのちに、そのファイルパスを利用しているからファイルパスに関しての間違いはない模様
361デフォルトの名無しさん (ワッチョイ be7c-p7Vf)
2019/09/07(土) 12:28:59.10ID:Xl8GtuMF0 built in
362デフォルトの名無しさん (ワッチョイ 4de3-8D6z)
2019/09/07(土) 13:37:29.58ID:d7CxuB710363デフォルトの名無しさん (ワッチョイ 4d61-8D6z)
2019/09/07(土) 13:42:24.25ID:SVPBVucP0364デフォルトの名無しさん (スッップ Sd62-ZQuI)
2019/09/07(土) 15:44:50.48ID:iCWAqY8Wd365デフォルトの名無しさん (ワッチョイ 4de3-8D6z)
2019/09/07(土) 16:09:20.07ID:d7CxuB710 del コマンドは内部コマンドで、del.exe というプログラムがある
わけではないため、CreateProcess() で直接実行することは出来ない。
実行したければ、>>362 のように、CMD.EXE を介して
使用する。
わけではないため、CreateProcess() で直接実行することは出来ない。
実行したければ、>>362 のように、CMD.EXE を介して
使用する。
366デフォルトの名無しさん (ワッチョイ 71f6-fUZA)
2019/09/10(火) 16:37:51.83ID:2ev/aWUC0 > 9割以上の箇所で全走査するんだから、
> 常にイテレータを指定しろというインタフェースがそもそもナンセンスだ。
あれ? コイツrange-based-for知らねえの?w
> 常にイテレータを指定しろというインタフェースがそもそもナンセンスだ。
あれ? コイツrange-based-for知らねえの?w
367デフォルトの名無しさん (ブーイモ MMb6-LwsT)
2019/09/10(火) 18:41:13.43ID:YAPHBQMFM 横からだが
それforだけじゃん
それforだけじゃん
それforだけじゃん
それforだけじゃん
368デフォルトの名無しさん (ワッチョイ 9fe8-e0wG)
2019/09/18(水) 02:11:49.04ID:GIOjMe2C0 祈れ!Unified Call Syntaxが導入される日まで!!!
369デフォルトの名無しさん (ワッチョイ 597b-qp7R)
2019/09/19(木) 00:07:42.51ID:T2nYB1sZ0 C++の糞な部分が修正されるのならよいことだ。(使うか使わないかは別)
ただ俺はググって出てきた以下記事で、
> ドワンゴは本物のC++プログラマーを募集しています
https://cpplover.blogspot.com/2014/11/cunified-call-syntax-n4165-n4174.html
ってことの方に興味が行った。「本物のC++プログラマ」って何ぞ?
同様に引っかかった奴も居たようだが、ドワンゴの基準は分からない。
この点、googleなら自社有名プロジェクト、例えばchromeで
「このコードを将来にわたりメンテナンス出来る人を募集しています」
と出来るので、差が埋まらないのだな、とも思った。
プログラミングなんて手段でしかないのだから、本来は、
・将来的にもメンテナンスする価値のあるプロジェクトを --- (A)
・ずっとメンテナンスしていける能力 --- (B)
を実力とすべきで、つまり、
・OSSで生き残っているプロジェクト(A)をメンテ出来る能力(B)
というのは素晴らしく分かりやすい。
社員なら(A)は会社が指定するので(B)だけ出来ればよく、
ドワンゴ内で非プロプライエタリに出来るソースがあれば積極的に出して世に問うべきだと思うんだがな。
プログラミングの実力を面接で見抜ける奴なんて居るとは思えないし、
ドワンゴ社員が気に入るスタイルで書ける能力は、プログラミングの実力ではないし。
いずれにしてもアマチュアC++erは文法に過度にこだわるのを止めた方がいい。
文法で修正出来るのは精々数行の範囲での複雑さでしかなく、
「そもそも何でこんな構造にしたんだよ?」みたいな大域の複雑さには文法は関係ない。
そして問題になるのは常に大域の方だ。
というより小域のは大概は「書き方が気に入らない」だけであって、
必要であればラップ関数一つで大体収まることでしかないからだが。
勉強するのが目的になってるのなら本末転倒だ。
さっさと実現したい何かを書くべきだ。
ただ俺はググって出てきた以下記事で、
> ドワンゴは本物のC++プログラマーを募集しています
https://cpplover.blogspot.com/2014/11/cunified-call-syntax-n4165-n4174.html
ってことの方に興味が行った。「本物のC++プログラマ」って何ぞ?
同様に引っかかった奴も居たようだが、ドワンゴの基準は分からない。
この点、googleなら自社有名プロジェクト、例えばchromeで
「このコードを将来にわたりメンテナンス出来る人を募集しています」
と出来るので、差が埋まらないのだな、とも思った。
プログラミングなんて手段でしかないのだから、本来は、
・将来的にもメンテナンスする価値のあるプロジェクトを --- (A)
・ずっとメンテナンスしていける能力 --- (B)
を実力とすべきで、つまり、
・OSSで生き残っているプロジェクト(A)をメンテ出来る能力(B)
というのは素晴らしく分かりやすい。
社員なら(A)は会社が指定するので(B)だけ出来ればよく、
ドワンゴ内で非プロプライエタリに出来るソースがあれば積極的に出して世に問うべきだと思うんだがな。
プログラミングの実力を面接で見抜ける奴なんて居るとは思えないし、
ドワンゴ社員が気に入るスタイルで書ける能力は、プログラミングの実力ではないし。
いずれにしてもアマチュアC++erは文法に過度にこだわるのを止めた方がいい。
文法で修正出来るのは精々数行の範囲での複雑さでしかなく、
「そもそも何でこんな構造にしたんだよ?」みたいな大域の複雑さには文法は関係ない。
そして問題になるのは常に大域の方だ。
というより小域のは大概は「書き方が気に入らない」だけであって、
必要であればラップ関数一つで大体収まることでしかないからだが。
勉強するのが目的になってるのなら本末転倒だ。
さっさと実現したい何かを書くべきだ。
370デフォルトの名無しさん (ワッチョイ 51f6-ACnl)
2019/09/19(木) 06:23:39.88ID:1k0/HGmS0 上から目線だがてめー自身は何なんだ
371デフォルトの名無しさん (ワッチョイ 3d5f-9GzD)
2019/09/19(木) 10:52:43.71ID:nEj2AKuG0 川上さんに聴け
372デフォルトの名無しさん (ワッチョイ 022c-plfC)
2019/09/19(木) 11:49:33.66ID:RkndgPZq0 本物のC++ とは、数年以上、山籠もりすべし!
C++テンプレートテクニック 第2版、επιστημη(えぴすてーめー)・高橋 晶、2014
C++11/14 コア言語、江添 亮、2015
組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006
Linux プログラミング・インタフェース、Michael Kerrisk、2012
Go, Rust, Ruby → Elixir, Python → Julia
C++テンプレートテクニック 第2版、επιστημη(えぴすてーめー)・高橋 晶、2014
C++11/14 コア言語、江添 亮、2015
組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006
Linux プログラミング・インタフェース、Michael Kerrisk、2012
Go, Rust, Ruby → Elixir, Python → Julia
373デフォルトの名無しさん (アウアウカー Sac9-NYPQ)
2019/09/19(木) 13:29:31.02ID:Pj1IM8vga >>369
言語文法で保守性が変わらないならCOBOLやPASCALで書かれた遺物システムはモダン言語に即効置き換えられるべきでしょ
言語文法で保守性が変わらないならCOBOLやPASCALで書かれた遺物システムはモダン言語に即効置き換えられるべきでしょ
>>372
MISRA とかいう聳え立つ糞ルールの山を挙げられても…(困惑)
MISRA とかいう聳え立つ糞ルールの山を挙げられても…(困惑)
375デフォルトの名無しさん (ワッチョイ 597b-qp7R)
2019/09/21(土) 01:16:25.90ID:56SH7QzZ0 >>371
その通りだが、例題くらい用意してくれた方がお互いに助かるだろ。
それが解けない奴は最初から受験するなでいい。
有料化もありだとは思うが。
ハフィントンポストの/yuuya-adachi/post_7054_b_4928430.html
.ネーバー纏めの/odai/2142728139568393601
(URLはNG->自動BBXになるようだ)
>>373
コミュ障はプログラマを止めろ。
何が言いたいのか分からん。
どうせ発狂するのだろうが、その前に
・具体的に俺の書き込みのどの部分から
・俺がどう具体的に考えていると読みとれ、
・それに対して>>373がどう繋がるのか
を答えてからにしてくれ。
それが出来ないなら、お前は企業が嫌がるコミュ障そのものだ。
とはいえ当の企業もこれを認識出来てないのも事実だが。
その通りだが、例題くらい用意してくれた方がお互いに助かるだろ。
それが解けない奴は最初から受験するなでいい。
有料化もありだとは思うが。
ハフィントンポストの/yuuya-adachi/post_7054_b_4928430.html
.ネーバー纏めの/odai/2142728139568393601
(URLはNG->自動BBXになるようだ)
>>373
コミュ障はプログラマを止めろ。
何が言いたいのか分からん。
どうせ発狂するのだろうが、その前に
・具体的に俺の書き込みのどの部分から
・俺がどう具体的に考えていると読みとれ、
・それに対して>>373がどう繋がるのか
を答えてからにしてくれ。
それが出来ないなら、お前は企業が嫌がるコミュ障そのものだ。
とはいえ当の企業もこれを認識出来てないのも事実だが。
376デフォルトの名無しさん (ワッチョイ 827c-tKbs)
2019/09/22(日) 21:28:03.17ID:UNI5np6A0 凄いのが現れたな
何拗らせたらこうなるんだろうな、知りたくもないが
何拗らせたらこうなるんだろうな、知りたくもないが
377デフォルトの名無しさん (アウウィフ FF85-9GzD)
2019/09/23(月) 11:09:00.39ID:3qdqqJ07F これが朝鮮半島メンタルか
378デフォルトの名無しさん (ワッチョイ 51f6-ACnl)
2019/09/23(月) 11:13:35.70ID:f1jovMGd0 発狂してるのはてめーなのに
自分を客観的に捉えることができないやつだな
自分を客観的に捉えることができないやつだな
379デフォルトの名無しさん (ワッチョイ 0dda-8FBz)
2019/09/23(月) 22:10:13.16ID:DlI41VV80 設計レベルになるのだけどクラス分けが苦手でなにかおすすめのほんない??
380デフォルトの名無しさん (ワッチョイ 2215-jgJV)
2019/09/24(火) 02:16:04.56ID:50WmMSgT0 >>379
本買わなくてもネットで調べればいろいろ出てくるじゃん
初心者にありがちなよくない実装としては、
・1万ステップとかの神クラスを作る(ほとんどの主要な処理がこのクラス内)
・クラス同士が密結合だったり、依存関係が複雑すぎてデバッグ不能
・機能を追加するために継承使う(そのため継承レベルが深すぎ)
とか、他にもいろいろ
本買わなくてもネットで調べればいろいろ出てくるじゃん
初心者にありがちなよくない実装としては、
・1万ステップとかの神クラスを作る(ほとんどの主要な処理がこのクラス内)
・クラス同士が密結合だったり、依存関係が複雑すぎてデバッグ不能
・機能を追加するために継承使う(そのため継承レベルが深すぎ)
とか、他にもいろいろ
381デフォルトの名無しさん (ブーイモ MM22-VXuS)
2019/09/24(火) 08:18:16.34ID:svO4/0B3M >>379
つGoF本
つGoF本
382デフォルトの名無しさん (ワッチョイ 6e49-jgJV)
2019/09/24(火) 12:12:38.05ID:LAj+4L0e0383デフォルトの名無しさん (ササクッテロ Sp51-XEoH)
2019/09/24(火) 15:03:21.53ID:XC0ntArnp >>380
一つ目はともかく、後の2つは場合によるだろ
一つ目はともかく、後の2つは場合によるだろ
384デフォルトの名無しさん (エムゾネ FF22-9GzD)
2019/09/24(火) 15:07:49.06ID:oiN+60axF iostreamですね判ります
385デフォルトの名無しさん (ワッチョイ 46ad-Ms+D)
2019/09/24(火) 15:08:02.64ID:otzwnRmY0 最近はクラス設計とかじゃなくて名前の付け方が一番大事だと思うようになったわ。
386デフォルトの名無しさん (ワッチョイ 7901-9GzD)
2019/09/24(火) 19:37:13.28ID:bRBDEgqh0387デフォルトの名無しさん (ドコグロ MM89-hoFX)
2019/09/24(火) 19:45:54.32ID:AjZ3Ahz8M388デフォルトの名無しさん (ワッチョイ 6e49-jgJV)
2019/09/24(火) 20:20:10.21ID:LAj+4L0e0389デフォルトの名無しさん (ワッチョイ 51f6-ACnl)
2019/09/24(火) 20:25:02.77ID:3E9gAKbz0 自分を大きく見せようとするやつが殺到するのがオブジェクト指向
つーか新しいプログラミングパラダイム
ところでオブジェクト指向って新しいか?
つーか新しいプログラミングパラダイム
ところでオブジェクト指向って新しいか?
390383 (ワッチョイ 6101-XEoH)
2019/09/24(火) 22:20:17.01ID:GLFX8H/60391デフォルトの名無しさん (ワッチョイ 0261-2XqO)
2019/09/24(火) 22:56:30.06ID:6JlrKQx10 逆に is-a の時にしか継承しないことにこだわりすぎると、それ以外の場合
でも敬称を使えばせっかく便利になる場合があっても機を逃してしまう事
がある。個人的には、普段使いする部分においての記述量が減ることが
大切だと思っている。ライブラリや基礎部分の記述量を多くしてでも、
普段使いする部分(応用部分)の記述量を減らした方がバグが減り易いから。
なぜなら、基礎部分については予め徹底的にバグを取ればよいが、
応用部分はテストをするのが難しかったりして事情が異なるから。
でも敬称を使えばせっかく便利になる場合があっても機を逃してしまう事
がある。個人的には、普段使いする部分においての記述量が減ることが
大切だと思っている。ライブラリや基礎部分の記述量を多くしてでも、
普段使いする部分(応用部分)の記述量を減らした方がバグが減り易いから。
なぜなら、基礎部分については予め徹底的にバグを取ればよいが、
応用部分はテストをするのが難しかったりして事情が異なるから。
392デフォルトの名無しさん (ワッチョイ 597b-qp7R)
2019/09/24(火) 23:43:18.61ID:WQDKNZdM0 >>379
本でプログラミングを学ぶのは、止めた方がいい。
理由は、入門書を書いている奴はほぼ「本を書くこと」に特化しており、ろくなコードが書けないゴミだからだ。
江添は認めているだけかなりまし。
> 残念ながら、今仕事用のコードを書くといっても、未経験者とそれほど変わらない程度の能力しかない。
> https://cpplover.blogspot.com/2014/02/blog-post_13.html
入門書ではない本は、それなりの人が書いたものもあるが、例えば禿本4部には、
禿のプログラミング思想とそれに対するC++での解が書いてあるが、
それじゃ分からないんだろ。
(俺が初めて読んだときには感動したが)
ネット記事は「初心者上がりのイキった奴」が書く傾向があるが、
それでも彼等はコードを日々書いている分、本しか書いてない奴よりいい。
実際、ググって上から数個読んでみたけど、悪くないと思ったが。
クラス分けを学びたいのなら、C++ではなくLL言語を使った方がいい。
C++は体感3倍ほど手間がかかるから、
逆に言えば、LL言語を使えば3倍の量を同じ手間でこなせ、当然、上達も3倍速になる。
本でプログラミングを学ぶのは、止めた方がいい。
理由は、入門書を書いている奴はほぼ「本を書くこと」に特化しており、ろくなコードが書けないゴミだからだ。
江添は認めているだけかなりまし。
> 残念ながら、今仕事用のコードを書くといっても、未経験者とそれほど変わらない程度の能力しかない。
> https://cpplover.blogspot.com/2014/02/blog-post_13.html
入門書ではない本は、それなりの人が書いたものもあるが、例えば禿本4部には、
禿のプログラミング思想とそれに対するC++での解が書いてあるが、
それじゃ分からないんだろ。
(俺が初めて読んだときには感動したが)
ネット記事は「初心者上がりのイキった奴」が書く傾向があるが、
それでも彼等はコードを日々書いている分、本しか書いてない奴よりいい。
実際、ググって上から数個読んでみたけど、悪くないと思ったが。
クラス分けを学びたいのなら、C++ではなくLL言語を使った方がいい。
C++は体感3倍ほど手間がかかるから、
逆に言えば、LL言語を使えば3倍の量を同じ手間でこなせ、当然、上達も3倍速になる。
393デフォルトの名無しさん (ワッチョイ 597b-qp7R)
2019/09/24(火) 23:43:56.88ID:WQDKNZdM0 駄目なクラス分け=保守出来ないクラス分け、なのだが、これに関しては、
・とにかくそれなりの規模のプロジェクトを立ち上げる(3000行以上)
・そしてそれをひたすら保守する
事をやれば自然に上達する。ありがちな間違いは
・全部書き直す
事を安易に選択してしまうことで、
これをやっている限り(書けるようにはなるが、良いクラス分けという意味では)上達はしない。
・何でこんな事になってしまったのか
・その原因はどこにあり、どのコードがどこにあるべきなのか
考えながら修正すれば自然と上達する。結局のところ、あれは、現実で言う、
・動線を考えて配置しろ
・道具は使う順に纏めて、並べておけ、
程度のことでしかないからだ。
間違ったクラス分けをしているとやりにくいだけであり、それは自然と気づける範囲だ。
書いてないことを実行してくれるはずもないので、「クラス分け」だけで差が発生するとしたら、
・どのコードがどこにあるか
の配置の違いでしかなく、これは、例えば
・車のパンク対応用のスペアタイヤを、車内ではなく、家の冷蔵庫の中に保管する
みたいな意味不明なことをやっていれば当然気づく範囲だからだ。
ただし最低限の規模は必要で、俺が思うに3000行がクラス分けが有効に機能し始める最低の規模だ。
それ以下ではベタで転がしていた方がましな場合も多く、
そこに初心者は無駄にクラス分けを持ち込んで余計に複雑にしてしまう事も多い。
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
・とにかくそれなりの規模のプロジェクトを立ち上げる(3000行以上)
・そしてそれをひたすら保守する
事をやれば自然に上達する。ありがちな間違いは
・全部書き直す
事を安易に選択してしまうことで、
これをやっている限り(書けるようにはなるが、良いクラス分けという意味では)上達はしない。
・何でこんな事になってしまったのか
・その原因はどこにあり、どのコードがどこにあるべきなのか
考えながら修正すれば自然と上達する。結局のところ、あれは、現実で言う、
・動線を考えて配置しろ
・道具は使う順に纏めて、並べておけ、
程度のことでしかないからだ。
間違ったクラス分けをしているとやりにくいだけであり、それは自然と気づける範囲だ。
書いてないことを実行してくれるはずもないので、「クラス分け」だけで差が発生するとしたら、
・どのコードがどこにあるか
の配置の違いでしかなく、これは、例えば
・車のパンク対応用のスペアタイヤを、車内ではなく、家の冷蔵庫の中に保管する
みたいな意味不明なことをやっていれば当然気づく範囲だからだ。
ただし最低限の規模は必要で、俺が思うに3000行がクラス分けが有効に機能し始める最低の規模だ。
それ以下ではベタで転がしていた方がましな場合も多く、
そこに初心者は無駄にクラス分けを持ち込んで余計に複雑にしてしまう事も多い。
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
394デフォルトの名無しさん (ワッチョイ 597b-qp7R)
2019/09/24(火) 23:44:32.80ID:WQDKNZdM0 だから、まずは、3000行の規模のコードを書けるようになるまで上達しないといけない。
それ以下なら、クラス分けなんて考えずに、ひたすら書いてまずは修行することだ。
クラス分けは、その後で学んでも全く問題ない。
そもそもOOPは大規模コードの整理術であって、
のべ1000時間もプログラミングをしてない初心者が理解出来る物でも、また、すべき物でもない。
「OOPはCみたいな手続き型とは別物だ」みたいな事を言う奴もちらほらいるが、これは老害の間違いで、
Cでも大規模になるとどうしてもstructが増え、何となくOOP化してくるのも事実で、
CのstructとC++のOOPは完全に連続的に繋がっている。
その証拠にstructとclassの区別がほぼ無いだろ。
「OOPは手続き型とは別物だ」というのはOOPを学びたくない老害か、
OOP本を売りたい糞ライタが嘘を言っているだけだから、そんな連中は無視でいい。
なお、「クラス分けが苦手」というのが本当にそうなのか?というのも少し疑問で、
「初心者上がりのイキった奴」がデタラメ言ってるのが多い昨今だから、
勘違いさせられている可能性もある。
いわゆる「コードを綺麗に」というのはつまり「長期保守可能なコード」にする為であって、
「正しいクラス分け」もその一端でしかない。
逆に言えば、それなりの規模で長期保守可能なら、「綺麗なコード」には出来ている、と言っていい。
具体的に言うと、10,000行以上で数年保守して来れており、本人もさほど問題を感じてないのなら、
少なくともそれなり以上の水準であることは保証出来ている。
結局のところ、Linuxのコードもこれに該当し、CにはOOP文法こそ無いが、
それなりにモジュール分割出来ている筈なんだよ。
そして余談だが、これがCや、或いはC++が今後も死にきらない理由でもある。
保守されてきているOSSは、それなりに「綺麗なコード」になっている。
だから、Rustみたいな「駄目な書き方が出来ないC++」ではOSSのC++プロジェクトを殺せない。
同様に、Cで「綺麗なコード」になってしまっているLinuxはC++では殺せない。
それ以下なら、クラス分けなんて考えずに、ひたすら書いてまずは修行することだ。
クラス分けは、その後で学んでも全く問題ない。
そもそもOOPは大規模コードの整理術であって、
のべ1000時間もプログラミングをしてない初心者が理解出来る物でも、また、すべき物でもない。
「OOPはCみたいな手続き型とは別物だ」みたいな事を言う奴もちらほらいるが、これは老害の間違いで、
Cでも大規模になるとどうしてもstructが増え、何となくOOP化してくるのも事実で、
CのstructとC++のOOPは完全に連続的に繋がっている。
その証拠にstructとclassの区別がほぼ無いだろ。
「OOPは手続き型とは別物だ」というのはOOPを学びたくない老害か、
OOP本を売りたい糞ライタが嘘を言っているだけだから、そんな連中は無視でいい。
なお、「クラス分けが苦手」というのが本当にそうなのか?というのも少し疑問で、
「初心者上がりのイキった奴」がデタラメ言ってるのが多い昨今だから、
勘違いさせられている可能性もある。
いわゆる「コードを綺麗に」というのはつまり「長期保守可能なコード」にする為であって、
「正しいクラス分け」もその一端でしかない。
逆に言えば、それなりの規模で長期保守可能なら、「綺麗なコード」には出来ている、と言っていい。
具体的に言うと、10,000行以上で数年保守して来れており、本人もさほど問題を感じてないのなら、
少なくともそれなり以上の水準であることは保証出来ている。
結局のところ、Linuxのコードもこれに該当し、CにはOOP文法こそ無いが、
それなりにモジュール分割出来ている筈なんだよ。
そして余談だが、これがCや、或いはC++が今後も死にきらない理由でもある。
保守されてきているOSSは、それなりに「綺麗なコード」になっている。
だから、Rustみたいな「駄目な書き方が出来ないC++」ではOSSのC++プロジェクトを殺せない。
同様に、Cで「綺麗なコード」になってしまっているLinuxはC++では殺せない。
395デフォルトの名無しさん (ワッチョイ 597b-qp7R)
2019/09/24(火) 23:45:12.48ID:WQDKNZdM0 俺はネット記事を勧めるが、クレクレ君は死ねという思想なので、良い記事を探してやることはしない。
ただ、お前に学ぶ意志があり、その上でネット記事を数本読み、
・この記事のこの部分に疑問がある。俺はこう思う。
という具体的な議論なら受け付ける。
3,000行のコードも書けない初心者なら、まずは何でもいいからガシガシ書くことだ。
クラス分けなんてその後でいい。
ただし仕事場でこれをやられると困るのは事実なので、結果、
新人(≒初心者プログラマ)に対してもOOPを徹底させる必要があり、
その辺が歪みの発生原因になっていることは認める。
ただ、ここで尋ねてくるのはほぼアマチュアだろうから、これに囚われずに、
まずは3,000行規模を書けるようになることを目指すべきだ。
なお、プロ(新人)なら上司に聞いたほうが早いからそうすべきだし、逆に、わざわざここで聞くなら、
「上司はこう言っているが、俺は違うと思う」という具体例をコードと共に出すべきだ。
その場合、俺らがどっちが正しいか判断してやるよ。
https://mevius.5ch.net/test/read.cgi/tech/1467992113/10-
ただ、お前に学ぶ意志があり、その上でネット記事を数本読み、
・この記事のこの部分に疑問がある。俺はこう思う。
という具体的な議論なら受け付ける。
3,000行のコードも書けない初心者なら、まずは何でもいいからガシガシ書くことだ。
クラス分けなんてその後でいい。
ただし仕事場でこれをやられると困るのは事実なので、結果、
新人(≒初心者プログラマ)に対してもOOPを徹底させる必要があり、
その辺が歪みの発生原因になっていることは認める。
ただ、ここで尋ねてくるのはほぼアマチュアだろうから、これに囚われずに、
まずは3,000行規模を書けるようになることを目指すべきだ。
なお、プロ(新人)なら上司に聞いたほうが早いからそうすべきだし、逆に、わざわざここで聞くなら、
「上司はこう言っているが、俺は違うと思う」という具体例をコードと共に出すべきだ。
その場合、俺らがどっちが正しいか判断してやるよ。
https://mevius.5ch.net/test/read.cgi/tech/1467992113/10-
396デフォルトの名無しさん (ワッチョイ 597b-qp7R)
2019/09/25(水) 00:22:07.28ID:PPpANkx40 >>391
個人的には〜以降の後半部分は同意。
前半部分は、反対でもないが賛成でもない。
理由は評価軸が異なるから。
俺はhas-a/is-aという形式論よりは、最終的にコードが目的に沿うかが重要だとしている。
それは大半の場合に於いて「長期的保守の為の可読性」だが、場合によっては「速度」だったりする。
(速度が必要なアプリなら遅いと存在価値がなくなり、長期的保守する意味がないから)
そして疎結合化には大抵の場合間接参照を一度噛まして当該コードを集めることになるので、
どこまで疎結合化するかも判断の一つだと思っている。
(というより疎結合化して問題がない場合は当然疎結合化するので、
残った物は速度等何かトレードオフがある物になるだけだが)
なおC++はクラス単位でしか継承出来なくてその辺不便だが、
JavaScriptは関数単位で継承出来る。
(というか、親クラスを自前で組み立てるだけで、その時に関数単位で引っ張ってこれるだけだが。
おそらくこれは動的言語の特性で、知らないがPythonやRubyも同様の筈。
Goが継承を廃止したと聞いたので俺は当然この機能がGoにもあると思っていたのだが、
無かったので愕然とした。
そしてもやもや考えているうちに、多分これは動的言語の特性なのだと(今のところは)結論づけている。
ただ、そうならGoって継承出来ないだけの糞でしかないのだが)
そしてこれがよいかどうかはまた別なのだが、
いろんな構造を試すという試行錯誤が簡単に出来るのは上達にはいいと思っている。
だからクラス配置を学びたい場合は、C++ではなくてLL言語を勧める。
個人的には〜以降の後半部分は同意。
前半部分は、反対でもないが賛成でもない。
理由は評価軸が異なるから。
俺はhas-a/is-aという形式論よりは、最終的にコードが目的に沿うかが重要だとしている。
それは大半の場合に於いて「長期的保守の為の可読性」だが、場合によっては「速度」だったりする。
(速度が必要なアプリなら遅いと存在価値がなくなり、長期的保守する意味がないから)
そして疎結合化には大抵の場合間接参照を一度噛まして当該コードを集めることになるので、
どこまで疎結合化するかも判断の一つだと思っている。
(というより疎結合化して問題がない場合は当然疎結合化するので、
残った物は速度等何かトレードオフがある物になるだけだが)
なおC++はクラス単位でしか継承出来なくてその辺不便だが、
JavaScriptは関数単位で継承出来る。
(というか、親クラスを自前で組み立てるだけで、その時に関数単位で引っ張ってこれるだけだが。
おそらくこれは動的言語の特性で、知らないがPythonやRubyも同様の筈。
Goが継承を廃止したと聞いたので俺は当然この機能がGoにもあると思っていたのだが、
無かったので愕然とした。
そしてもやもや考えているうちに、多分これは動的言語の特性なのだと(今のところは)結論づけている。
ただ、そうならGoって継承出来ないだけの糞でしかないのだが)
そしてこれがよいかどうかはまた別なのだが、
いろんな構造を試すという試行錯誤が簡単に出来るのは上達にはいいと思っている。
だからクラス配置を学びたい場合は、C++ではなくてLL言語を勧める。
397デフォルトの名無しさん (ワッチョイ 022c-plfC)
2019/09/25(水) 00:41:02.91ID:JEZ9mBal0 Ruby は、デザインパターン・疎結合の宝庫!
is-a/has-a, Duck Typing, Page Object, Test Double(依存性の注入), TDD/BDD(RSpec)など
is-a/has-a, Duck Typing, Page Object, Test Double(依存性の注入), TDD/BDD(RSpec)など
398デフォルトの名無しさん (ワッチョイ 7901-9GzD)
2019/09/25(水) 08:48:48.39ID:J2adDr870 ruby書いてる奴、言うほどまともにテストしてねーじゃん。
399デフォルトの名無しさん (ワッチョイ ad61-2XqO)
2019/09/25(水) 10:44:33.62ID:ekILy0SR0400デフォルトの名無しさん (ブーイモ MM4d-8FBz)
2019/09/25(水) 12:00:37.34ID:SmUxqnJ3M プロトタイプのことだろう
継承とは言わない
継承とは言わない
401デフォルトの名無しさん (ワッチョイ 51f6-ACnl)
2019/09/25(水) 12:37:26.12ID:p0DVbWLo0 あれ? こいつインターフェイス知らねえの?w
402デフォルトの名無しさん (ワッチョイ 827c-tKbs)
2019/09/25(水) 13:48:34.57ID:dXN3nOmu0 あーでもこれあれだな
長文はキモイな、やっぱ
OOは整理整頓術ってのはその通りだけど、長々と書かずにそれだけ書き込めばよい
あとは、プログラムにはデータ構造と制御構造の二つがあるんだけど
この別々のものを一纏めにするのがOOの悲劇の始まり、ってのを教えといてあげればよい
この辺ベテランでも割とモゴモゴする
長文はキモイな、やっぱ
OOは整理整頓術ってのはその通りだけど、長々と書かずにそれだけ書き込めばよい
あとは、プログラムにはデータ構造と制御構造の二つがあるんだけど
この別々のものを一纏めにするのがOOの悲劇の始まり、ってのを教えといてあげればよい
この辺ベテランでも割とモゴモゴする
403デフォルトの名無しさん (ワッチョイ 51f6-ACnl)
2019/09/25(水) 14:02:26.76ID:p0DVbWLo0 データ構造と制御構造を対応づけようなんて話は
ジャクソン法やワーニエ法、つまり構造化プログラミングの時代に
もう出てきてた話なんだが
ジャクソン法やワーニエ法、つまり構造化プログラミングの時代に
もう出てきてた話なんだが
404デフォルトの名無しさん (ワッチョイ 827c-tKbs)
2019/09/25(水) 14:32:32.56ID:dXN3nOmu0 それを構文で取り入れたのがOO
405デフォルトの名無しさん (ワッチョイ ad61-2XqO)
2019/09/25(水) 14:43:06.95ID:wIawdvpd0 結局、「作る側(実装)」と「使う側(関数を呼び出す側)」を分けて、
前者を後者から隠すという事が class の概念の最も重要な部分で、
それによってさまざまなメリットを受けられる。
「オブジェクト指向」という概念は、実は、それとはかなり違うもので、
参考にするのはいいがそっちを重視しすぎるとそれはそれで問題を来たす
気がする。
前者を後者から隠すという事が class の概念の最も重要な部分で、
それによってさまざまなメリットを受けられる。
「オブジェクト指向」という概念は、実は、それとはかなり違うもので、
参考にするのはいいがそっちを重視しすぎるとそれはそれで問題を来たす
気がする。
406デフォルトの名無しさん (ワッチョイ 6101-XEoH)
2019/09/25(水) 14:57:19.16ID:5aP+8CuP0 メッセージングがどうとかの話だと思うけど
あれは確かにC++では忘れた方がいいだろうね(そういう風にわざと実装する場合はともかく)
Objective-Cなんかだと言語レベルでメッセージ送る形になってるけど
あれは確かにC++では忘れた方がいいだろうね(そういう風にわざと実装する場合はともかく)
Objective-Cなんかだと言語レベルでメッセージ送る形になってるけど
407デフォルトの名無しさん (アウウィフ FF85-9GzD)
2019/09/25(水) 15:06:40.03ID:sdHp2tVCF メッセージと名が付いてるから送り合ってるように見えるだけ
スレッド分けすらされてないシロモノ
スレッド分けすらされてないシロモノ
408デフォルトの名無しさん (ワッチョイ ad61-2XqO)
2019/09/25(水) 16:57:24.56ID:wIawdvpd0409デフォルトの名無しさん (ワッチョイ ad61-2XqO)
2019/09/25(水) 17:01:27.68ID:wIawdvpd0 classが入って便利になったもう1つのことと言えば、同じ種類のオブジェクトを
簡単にいくつでも作れるようになったこと。pure Cのグローバル変数と
ローカル変数だけを使ってそのようなことをしようとするとなかなか大変だったが、
C++ の場合、new CMissile のようにするだけで、ミサイルがいくつでも
追加できて、しかも、それぞれの位置や速度などがオブジェクト・インスタンス
の中にきっちり分けて入ってくれるのでとても便利。
簡単にいくつでも作れるようになったこと。pure Cのグローバル変数と
ローカル変数だけを使ってそのようなことをしようとするとなかなか大変だったが、
C++ の場合、new CMissile のようにするだけで、ミサイルがいくつでも
追加できて、しかも、それぞれの位置や速度などがオブジェクト・インスタンス
の中にきっちり分けて入ってくれるのでとても便利。
410デフォルトの名無しさん (ササクッテロ Sp51-XEoH)
2019/09/25(水) 17:04:42.69ID:fQKyMrFpp いやすまん、C++のクラスがいわゆる本来のオブジェクト指向には沿ってないって話だと思って
メッセージングなんかには全く沿ってないよねと言いたかっただけw
他にも色々あるんだろうけど、C++のクラスと本来のOOとは切り分けた方がいいのは同意
メッセージングなんかには全く沿ってないよねと言いたかっただけw
他にも色々あるんだろうけど、C++のクラスと本来のOOとは切り分けた方がいいのは同意
411デフォルトの名無しさん (ワッチョイ 7901-9GzD)
2019/09/25(水) 20:02:30.30ID:J2adDr870 オブジェクト指向にこだわるよりかはSOLIDにこだわる方がまだまともだわ。
あんな用語にこだわらなくてもできてるやつはできてるし、
理解しないでこだわる奴は糞押し付け始めるし害悪でしかない。
あんな用語にこだわらなくてもできてるやつはできてるし、
理解しないでこだわる奴は糞押し付け始めるし害悪でしかない。
412デフォルトの名無しさん (ブーイモ MM4d-8FBz)
2019/09/25(水) 20:20:38.86ID:SmUxqnJ3M SOLIDよりYAGNIだな
オブジェクト脳のやつはありもしない拡張性を考えて無駄に複雑にする
それif分岐で十分だから
オブジェクト脳のやつはありもしない拡張性を考えて無駄に複雑にする
それif分岐で十分だから
413デフォルトの名無しさん (ワッチョイ 51f6-ACnl)
2019/09/25(水) 20:54:49.21ID:p0DVbWLo0 >>404
で、ベテランがモゴモゴって何のことだ?
で、ベテランがモゴモゴって何のことだ?
414デフォルトの名無しさん (ワッチョイ ad61-2XqO)
2019/09/25(水) 22:33:49.67ID:wIawdvpd0 OOPにおけるSOLIDという言葉は初めて聞いたけど、何を言ってるのかよく分から
ない部分が多くて、すぐには理解できそうに無い。
ない部分が多くて、すぐには理解できそうに無い。
415デフォルトの名無しさん (ワッチョイ 5f3d-HmT3)
2019/09/26(木) 06:40:00.74ID:HRGKiBoF0416デフォルトの名無しさん (ワッチョイ 5f3d-HmT3)
2019/09/26(木) 06:41:14.19ID:HRGKiBoF0 OOは継承と多態性のしくみに夢を抱きすぎた
継承は当初差分プログラミングによる省力化がやたらと喧伝されたが、
多くの人がやったら効果など無く混沌が広がるだけだったので
結局>>402な見解に戦線が縮小して現代に至る
データ構造と制御構造(振る舞い)を(オブジェクトの名前).(メソッドの名前)という
単純な表記で呼び出せるように一緒くたにあえてまとめたために、
テンプレートによるメタプログラミングの道が開けた
結果さらなる破壊と混乱がもたらされた
継承は当初差分プログラミングによる省力化がやたらと喧伝されたが、
多くの人がやったら効果など無く混沌が広がるだけだったので
結局>>402な見解に戦線が縮小して現代に至る
データ構造と制御構造(振る舞い)を(オブジェクトの名前).(メソッドの名前)という
単純な表記で呼び出せるように一緒くたにあえてまとめたために、
テンプレートによるメタプログラミングの道が開けた
結果さらなる破壊と混乱がもたらされた
417デフォルトの名無しさん (ドコグロ MM1f-Gn+r)
2019/09/26(木) 07:10:46.20ID:++EmWszpM バカが使うと混乱して仕組みが良くないとわめき出す
って言ういつもの流れw
って言ういつもの流れw
418デフォルトの名無しさん (ワッチョイ 0701-srNF)
2019/09/26(木) 08:46:10.69ID:XJFd2dlx0 何回言っても言い過ぎでないくらいまた馬鹿が出てくるからな。
419デフォルトの名無しさん (ワッチョイ 5f7c-Yj7W)
2019/09/26(木) 11:18:51.43ID:jZpo+Xv90 OOの根本的な思想的な問題点は凝り固まったカプセル化の考え方にあるかもしれない
カプセル化って自分の仕事しかしない頭の悪いアスペみたいな存在で
そんなのだけが寄せ集まっても集団として何もできないという
人間でも同じでアスペだけの会社なんて無理だろうに
電気回路でも電子部品はコンポーネントかもしれないけど回路が無いと動かない
回路はどこに書くんだっていうね
だからC++はマルチパラダイム言語になってて
無論OOもあるが、非OOな部分が存在することも許容している
1+1は1に"+1"というメッセージを送る、とか解釈するどこかのアホの言語とは違う
カプセル化って自分の仕事しかしない頭の悪いアスペみたいな存在で
そんなのだけが寄せ集まっても集団として何もできないという
人間でも同じでアスペだけの会社なんて無理だろうに
電気回路でも電子部品はコンポーネントかもしれないけど回路が無いと動かない
回路はどこに書くんだっていうね
だからC++はマルチパラダイム言語になってて
無論OOもあるが、非OOな部分が存在することも許容している
1+1は1に"+1"というメッセージを送る、とか解釈するどこかのアホの言語とは違う
420デフォルトの名無しさん (ワッチョイ 5f7c-Yj7W)
2019/09/26(木) 11:21:52.79ID:jZpo+Xv90 これはあくまで思想的な話で、ものすごく大まかに言えばOOは左翼的な思想に属してて
本当にこれでよいのか?という疑問は常に付きまとう
こんなものを使っていると頭がおかしくなるんじゃないかという
実際プログラマは精神病になりやすいイメージがあるし
OOに染まったプログラマの言うことは回りくどくて聞いてられない
実際頭おかしいでしょ
本当にこれでよいのか?という疑問は常に付きまとう
こんなものを使っていると頭がおかしくなるんじゃないかという
実際プログラマは精神病になりやすいイメージがあるし
OOに染まったプログラマの言うことは回りくどくて聞いてられない
実際頭おかしいでしょ
421デフォルトの名無しさん (ブーイモ MMcf-ZxQK)
2019/09/26(木) 12:51:41.19ID:GNqrTsXZM すっこんでろ
422デフォルトの名無しさん (ワッチョイ c7e8-upKm)
2019/09/26(木) 14:06:22.33ID:+Tr9Y75r0423デフォルトの名無しさん (ワッチョイ 5f7c-Yj7W)
2019/09/26(木) 17:00:36.25ID:jZpo+Xv90 まぁ部品作るのには向いてると思うよOOは
ただ、部品なんてものは会社で言えば非正社員みたいなもので
そんなところに注力してもな
大事なのはそこじゃないからな
簡単なことをより簡単に出来るようにして
それ以外の難しいことに集中できるのがOOの利点か
ただ、部品なんてものは会社で言えば非正社員みたいなもので
そんなところに注力してもな
大事なのはそこじゃないからな
簡単なことをより簡単に出来るようにして
それ以外の難しいことに集中できるのがOOの利点か
424デフォルトの名無しさん (ワッチョイ c7e8-upKm)
2019/09/26(木) 18:55:11.69ID:+Tr9Y75r0 >>423
カプセル化してユーティリティ作るにはクラス構造はかなり良い。
カプセル化してユーティリティ作るにはクラス構造はかなり良い。
425デフォルトの名無しさん (ワッチョイ e7da-ZxQK)
2019/09/26(木) 21:06:32.34ID:CMDn7Hom0 クラス分けはやっぱりデザインパターン見とけって感じなのね
どういうときに使えば便利かってのがいまだによくわからんのよなぁ
どういうときに使えば便利かってのがいまだによくわからんのよなぁ
426デフォルトの名無しさん (ワッチョイ 077b-88hv)
2019/09/26(木) 22:35:47.43ID:VMy+NeQU0 >>425
デザインパターンはゴミ。
ところでお前は何万行のコードを書いていてクラス分けが分からないの?
知りもしないのに嘘情報を垂れ流すのは止めろ。何の得にもならない。
お前はデザインパターンの有効性を判定出来るレベルではないだろ。
なら、その点については黙っておけ。
結果的に、お前らが知ったかぶりで嘘情報を流すからお前ら自身が迷惑を被るループになってる。
いい加減これに気づいてわきまえろ。
デザインパターンはゴミ。
ところでお前は何万行のコードを書いていてクラス分けが分からないの?
知りもしないのに嘘情報を垂れ流すのは止めろ。何の得にもならない。
お前はデザインパターンの有効性を判定出来るレベルではないだろ。
なら、その点については黙っておけ。
結果的に、お前らが知ったかぶりで嘘情報を流すからお前ら自身が迷惑を被るループになってる。
いい加減これに気づいてわきまえろ。
427デフォルトの名無しさん (ワッチョイ e77c-yXpG)
2019/09/27(金) 11:53:00.94ID:oLJPEcmZ0 >>デザインパターンはゴミ。
同意はするが
>知りもしないのに嘘情報を垂れ流すのは止めろ。何の得にもならない。
>お前はデザインパターンの有効性を判定出来るレベルではないだろ。
>なら、その点については黙っておけ。
>結果的に、お前らが知ったかぶりで嘘
ここまで言うならお前がクソ言う理由も書くべき
同意はするが
>知りもしないのに嘘情報を垂れ流すのは止めろ。何の得にもならない。
>お前はデザインパターンの有効性を判定出来るレベルではないだろ。
>なら、その点については黙っておけ。
>結果的に、お前らが知ったかぶりで嘘
ここまで言うならお前がクソ言う理由も書くべき
428デフォルトの名無しさん (ワッチョイ 077b-88hv)
2019/09/27(金) 18:46:28.25ID:uQlfggdX0 >>427
何についてだ?
425についてなら、糞だと自明でないお前も糞でしかないだろ。
むしろお前が425みたいなゴミを擁護する価値があると認めた理由を先に聞こうか。
それが妥当と判断したら、俺が425がゴミな理由を述べてやる。それでフェアだろ。
何についてだ?
425についてなら、糞だと自明でないお前も糞でしかないだろ。
むしろお前が425みたいなゴミを擁護する価値があると認めた理由を先に聞こうか。
それが妥当と判断したら、俺が425がゴミな理由を述べてやる。それでフェアだろ。
429デフォルトの名無しさん (ワッチョイ 0701-srNF)
2019/09/27(金) 21:02:00.04ID:7AQBen6M0 >クラス分けはやっぱりデザインパターン見とけって感じなのね
>どういうときに使えば便利かってのがいまだによくわからんのよなぁ
さすがにこれだけ読んでこいつがデザインパターンを過剰に持ち上げてるとは
ふつう思わんだろ。
普通に考えればよくわからんやつがよくわからんがやってみるかって言ってるだけの文章だろ。
>どういうときに使えば便利かってのがいまだによくわからんのよなぁ
さすがにこれだけ読んでこいつがデザインパターンを過剰に持ち上げてるとは
ふつう思わんだろ。
普通に考えればよくわからんやつがよくわからんがやってみるかって言ってるだけの文章だろ。
430デフォルトの名無しさん (ワッチョイ 077b-88hv)
2019/09/27(金) 21:35:59.08ID:uQlfggdX0 >>429
そもそもデザインパターンはクラス分けについての話ではない。
よって425は知らない癖にそれがさも「クラス分けに役立つ」と取れるような嘘情報を述べている。
もっとも、本人が積極的に嘘をついていると言うよりは、
過去誰かが425と同じようなことを書いたのを読んでいて、それを再度垂れ流しただけだと思うが、
それが425自身も既に嘘情報の垂れ流しループに組み込まれている証明となっている。
そして結果、自身も勘違いさせられ、また、勘違いした馬鹿を再生産して行っているわけだ。
そんなことは止めろ、と言っている。
過剰に持ち上げている事を咎めているのではない。
(というよりそもそも俺は過剰に持ち上げているとは捉えていない)
(結果的であれ、回避出来る)嘘情報を垂れ流すな、と言っている。
クラス分けについては、分からないのではなく、クラス分けが必要になる規模のコードを書いたことがないだけだ。
初心者は全員これだ。だから何度も規模を聞いている。
10行しか書けないのにクラス分けなんて分かるわけがない。全く必要ないからだ。
逆に、10,000行フラットに転がしてみろ。いやでもクラス分けが分かるようになる。
ただ最近の傾向として、425みたいな奴は増えている。
これは単純に、「ネットに書く」ということに関して前世代よりは若者世代の方が抵抗がないからだ。
だから知りもしないことをボソッとつぶやいたりしてしまう。そして本人に悪気があるわけでもない。
ただ、それでも間違った情報が拡散され、結果、それを読んだ奴が被害被るのもまた事実だ。
だから、知りもしない事柄についてはもうちょっと慎重に書け、ということでしかない。
同じ事はDeNAのキュレーションサイトでも起こったろ。
医者がうんちくや意見を(それなりに注意しながら)語るのはいいが、
医療知識が全くない奴がそれをコピペして適当に編集するからおかしな事になる。だから禁止された。
https://www.itmedia.co.jp/news/articles/1703/13/news114.html
同様に、プログラミングについての知識がない/まだまだ初心者の奴が知ったかぶって書くな、ということだ。
そして結果的にお前ら自身が被害を被っていることにも気づけ、ということ。
そもそもデザインパターンはクラス分けについての話ではない。
よって425は知らない癖にそれがさも「クラス分けに役立つ」と取れるような嘘情報を述べている。
もっとも、本人が積極的に嘘をついていると言うよりは、
過去誰かが425と同じようなことを書いたのを読んでいて、それを再度垂れ流しただけだと思うが、
それが425自身も既に嘘情報の垂れ流しループに組み込まれている証明となっている。
そして結果、自身も勘違いさせられ、また、勘違いした馬鹿を再生産して行っているわけだ。
そんなことは止めろ、と言っている。
過剰に持ち上げている事を咎めているのではない。
(というよりそもそも俺は過剰に持ち上げているとは捉えていない)
(結果的であれ、回避出来る)嘘情報を垂れ流すな、と言っている。
クラス分けについては、分からないのではなく、クラス分けが必要になる規模のコードを書いたことがないだけだ。
初心者は全員これだ。だから何度も規模を聞いている。
10行しか書けないのにクラス分けなんて分かるわけがない。全く必要ないからだ。
逆に、10,000行フラットに転がしてみろ。いやでもクラス分けが分かるようになる。
ただ最近の傾向として、425みたいな奴は増えている。
これは単純に、「ネットに書く」ということに関して前世代よりは若者世代の方が抵抗がないからだ。
だから知りもしないことをボソッとつぶやいたりしてしまう。そして本人に悪気があるわけでもない。
ただ、それでも間違った情報が拡散され、結果、それを読んだ奴が被害被るのもまた事実だ。
だから、知りもしない事柄についてはもうちょっと慎重に書け、ということでしかない。
同じ事はDeNAのキュレーションサイトでも起こったろ。
医者がうんちくや意見を(それなりに注意しながら)語るのはいいが、
医療知識が全くない奴がそれをコピペして適当に編集するからおかしな事になる。だから禁止された。
https://www.itmedia.co.jp/news/articles/1703/13/news114.html
同様に、プログラミングについての知識がない/まだまだ初心者の奴が知ったかぶって書くな、ということだ。
そして結果的にお前ら自身が被害を被っていることにも気づけ、ということ。
431デフォルトの名無しさん (ワッチョイ 077b-88hv)
2019/09/27(金) 21:36:17.08ID:uQlfggdX0 何度も言っているが、OOPは初心者が分かるものではないし、分かるべき物でもない。
それは単に、大規模コードを扱ったことがないからだ。
だから、その程度の奴らがOOPに対して何か書くこと自体が不適切なんだよ。
>>402みたいな糞も含めてな。理解出来てないのなら語るな、でしかない。
それは単に、大規模コードを扱ったことがないからだ。
だから、その程度の奴らがOOPに対して何か書くこと自体が不適切なんだよ。
>>402みたいな糞も含めてな。理解出来てないのなら語るな、でしかない。
432デフォルトの名無しさん (ワッチョイ 0701-srNF)
2019/09/27(金) 22:25:57.89ID:7AQBen6M0 >10行しか書けないのにクラス分けなんて分かるわけがない。全く必要ないからだ。
>逆に、10,000行フラットに転がしてみろ。いやでもクラス分けが分かるようになる。
これはまったくその通りだとは思うが、しかしその機会のない連中が
とりあえずデザインパターンやってみっかってのがそんな悪いこととも思わんがな。
過剰な反応に思う。
医療問題のような致命的な問題がデザインパターンやることで生じるとは思わん。
確かにデザインパターン魔がシングルトン振り回してグダグダにしてったという歴史はあるが
そういうアンチパターンも最近は紹介されとる。
それでもカスな知識を振り回す輩は結局何やってもカスなことをやる。
>逆に、10,000行フラットに転がしてみろ。いやでもクラス分けが分かるようになる。
これはまったくその通りだとは思うが、しかしその機会のない連中が
とりあえずデザインパターンやってみっかってのがそんな悪いこととも思わんがな。
過剰な反応に思う。
医療問題のような致命的な問題がデザインパターンやることで生じるとは思わん。
確かにデザインパターン魔がシングルトン振り回してグダグダにしてったという歴史はあるが
そういうアンチパターンも最近は紹介されとる。
それでもカスな知識を振り回す輩は結局何やってもカスなことをやる。
433デフォルトの名無しさん (ドコグロ MM7b-Gn+r)
2019/09/27(金) 22:28:30.87ID:rXwbxG7NM434デフォルトの名無しさん (ワッチョイ 077b-88hv)
2019/09/27(金) 23:03:44.15ID:uQlfggdX0 >>432
> しかしその機会のない連中が
だからこれがナンセンスだと言ってるんだよ。
OOPは大規模コードの整理術なのだから、
コードが大規模になったときにやればいいのであって、
逆に、大規模になったら、やる以外の選択肢はないんだよ。
(OOP文法を使うかどうかは別だが、「分割」はやるしかない。だからみんなやってる)
逆に、コードが精々500行程度、
つまり一般的なスクリプトの用途なら、OOPなんて一生必要ない。
だから知る必要もないし、また、この規模で適切に学ぶ方法もない。
つまり初心者レベルだとどうあがいても空回りする。
だから俺はグダグダ言わずにコードを書け、と言っている。
それがOOPが有効に機能する規模になれば、
余程馬鹿でない限り、自然に分かるようになる。それだけだ。
それはさておき、お前がサポートしたいのなら勝手にやればいい。
お前がデザインパターンを極めているつもりなら、422に講評つけてやれよ。
俺はお前らとは違う評価を付けている自信があるから、後出ししてやる。
もし俺と同じ評価をしている奴がいて、俺が何も言うことが無くなれば、俺の負けでいい。
(なお一応言っておくが、俺が賢いからではなく、
お前らが馬鹿(=下手)だから俺と同じ評価を付けられないだろう、と見ている。
つまり俺はお前らを技術的には数段下だと見ている。それを「負け」たら見直す、ということ。)
我こそは、と思う奴は422に講評付けてみろ。
俺を伸したがっている馬鹿共もかかって来いよ。チャンスだぜ。
> しかしその機会のない連中が
だからこれがナンセンスだと言ってるんだよ。
OOPは大規模コードの整理術なのだから、
コードが大規模になったときにやればいいのであって、
逆に、大規模になったら、やる以外の選択肢はないんだよ。
(OOP文法を使うかどうかは別だが、「分割」はやるしかない。だからみんなやってる)
逆に、コードが精々500行程度、
つまり一般的なスクリプトの用途なら、OOPなんて一生必要ない。
だから知る必要もないし、また、この規模で適切に学ぶ方法もない。
つまり初心者レベルだとどうあがいても空回りする。
だから俺はグダグダ言わずにコードを書け、と言っている。
それがOOPが有効に機能する規模になれば、
余程馬鹿でない限り、自然に分かるようになる。それだけだ。
それはさておき、お前がサポートしたいのなら勝手にやればいい。
お前がデザインパターンを極めているつもりなら、422に講評つけてやれよ。
俺はお前らとは違う評価を付けている自信があるから、後出ししてやる。
もし俺と同じ評価をしている奴がいて、俺が何も言うことが無くなれば、俺の負けでいい。
(なお一応言っておくが、俺が賢いからではなく、
お前らが馬鹿(=下手)だから俺と同じ評価を付けられないだろう、と見ている。
つまり俺はお前らを技術的には数段下だと見ている。それを「負け」たら見直す、ということ。)
我こそは、と思う奴は422に講評付けてみろ。
俺を伸したがっている馬鹿共もかかって来いよ。チャンスだぜ。
435デフォルトの名無しさん (ワッチョイ 47f6-rP+5)
2019/09/27(金) 23:55:19.48ID:9XlD8/+E0 72行程度の長文でさえしどろもどろなアホが
何がOOPの必要性だw
何がOOPの必要性だw
436デフォルトの名無しさん (ワッチョイ 5f3d-HmT3)
2019/09/28(土) 00:07:57.26ID:aUCB7XSh0 デザインパターンは掃き溜めの鶴ではないか
何を言っているんだ
何を言っているんだ
437デフォルトの名無しさん (ワッチョイ 5f3d-HmT3)
2019/09/28(土) 00:19:01.32ID:aUCB7XSh0438デフォルトの名無しさん (ブーイモ MMab-ZxQK)
2019/09/28(土) 00:21:20.58ID:nD8IZGftM 目的が不明なコードに講評だってさ
439デフォルトの名無しさん (ワッチョイ 077b-88hv)
2019/09/28(土) 00:51:32.95ID:8mEfdn9E0 一応言っておくと、24時間は待つ。
状況によってはこの土日全部=48時間待ってもいい。
イキってるだけの馬鹿共はいい機会だから講評付けてみろ。
匿名なんだから失う物はないだろ。それが匿名掲示板の良さだ。
イキるだけだからお前らは馬鹿なままなんだよ。
イキる元気さをちゃんとプラスの方向に転化しろ。
イキっているのにここで参戦しないのはチキン過ぎるぜ。
デザインパターンを「言葉で」擁護するのではなく、「コードで」擁護してみせろ。
つまり、デザインパターンを極めたお前だからこそ書ける素晴らしいコードを提示し、
俺みたいにデザインパターンを馬鹿にしている奴との差を見せつけてみせろ。
>>438
ぼくはあのこーどがなにをするのかさっぱりわかりません、か。
はい、お前は負け決定。
そのレベルでイキってるからお前は馬鹿のままなんだよ。少しは自覚しろ。
状況によってはこの土日全部=48時間待ってもいい。
イキってるだけの馬鹿共はいい機会だから講評付けてみろ。
匿名なんだから失う物はないだろ。それが匿名掲示板の良さだ。
イキるだけだからお前らは馬鹿なままなんだよ。
イキる元気さをちゃんとプラスの方向に転化しろ。
イキっているのにここで参戦しないのはチキン過ぎるぜ。
デザインパターンを「言葉で」擁護するのではなく、「コードで」擁護してみせろ。
つまり、デザインパターンを極めたお前だからこそ書ける素晴らしいコードを提示し、
俺みたいにデザインパターンを馬鹿にしている奴との差を見せつけてみせろ。
>>438
ぼくはあのこーどがなにをするのかさっぱりわかりません、か。
はい、お前は負け決定。
そのレベルでイキってるからお前は馬鹿のままなんだよ。少しは自覚しろ。
440デフォルトの名無しさん (ワッチョイ 5f01-S/NQ)
2019/09/28(土) 01:24:50.38ID:xM8alBMg0441デフォルトの名無しさん (ドコグロ MM7f-Gn+r)
2019/09/28(土) 01:28:35.64ID:adXsKLupM イキってるって言いたいだけやん…
てか本人が一番イキってるしw
てか本人が一番イキってるしw
442デフォルトの名無しさん (ワッチョイ 5f52-k+Ie)
2019/09/28(土) 05:58:28.49ID:DGAUo+960443デフォルトの名無しさん (ワッチョイ 47f6-rP+5)
2019/09/28(土) 07:59:27.08ID:atv/D1Wn0 酔っ払いの独り言は誰も面白いと思っていない
駅前で不特定多数を叱り飛ばしている危ないオヤジと同じだ
駅前で不特定多数を叱り飛ばしている危ないオヤジと同じだ
444デフォルトの名無しさん (ワッチョイ 5f61-81Gp)
2019/09/28(土) 10:11:46.22ID:EwMBvois0 >>419
それは一理ある。実際、
自分の場合、1つのアプリの場合、ほとんどのclass メンバをpublicにしてる
場合がある。
しかし、class 分けすることで new CXxxx としただけで同じ種類のオブジェクトが
簡単に作成できる事や、似た働きを基礎に持っているが、基礎を発展させた応用的な
オブジェクトや同じ系統だが少しずつ働きの違うオブジェクトを、共通の基礎部分を
CBase クラスで書いておいて、それを継承したクラスで書ける事が便利になる。
だから、内部データにはアクセス禁止という意味でのカプセル化は達成したくても
なかなか達成できない事があるが、上記の様な意味で便利に使えてる。
それは一理ある。実際、
自分の場合、1つのアプリの場合、ほとんどのclass メンバをpublicにしてる
場合がある。
しかし、class 分けすることで new CXxxx としただけで同じ種類のオブジェクトが
簡単に作成できる事や、似た働きを基礎に持っているが、基礎を発展させた応用的な
オブジェクトや同じ系統だが少しずつ働きの違うオブジェクトを、共通の基礎部分を
CBase クラスで書いておいて、それを継承したクラスで書ける事が便利になる。
だから、内部データにはアクセス禁止という意味でのカプセル化は達成したくても
なかなか達成できない事があるが、上記の様な意味で便利に使えてる。
445デフォルトの名無しさん (ワッチョイ 5f61-81Gp)
2019/09/28(土) 10:16:07.55ID:EwMBvois0 >>435
それは思う。
それは思う。
446デフォルトの名無しさん (ワッチョイ 5f61-81Gp)
2019/09/28(土) 10:22:21.06ID:EwMBvois0 >>444
補足しておくと、protected に出来るメンバはできるだけ protectedにしている。
例えば、ポインタで保持している何らかのデータなどは、ちょっとしたことで
間違って削除してしまう可能性があるので、そこにデータを書いたり、
ポインタが指す先を付け替えたりする関数は出来る限り protected にしてる。
そして、それはなるべく基本クラスの方にくくり出す。もし、別の関数でも
これと同じような処理が必要になったら、既にある関数を組み合わせてなんとか
ならないかを考える。そうすることで、ポインタのつけ間違いや誤ったオブジェクトの
削除を防ぐことが出来る。
ポインタ以外でも、データの整合性に関して慎重さが必要な場合は、上記と
同じようなことをやっている。
補足しておくと、protected に出来るメンバはできるだけ protectedにしている。
例えば、ポインタで保持している何らかのデータなどは、ちょっとしたことで
間違って削除してしまう可能性があるので、そこにデータを書いたり、
ポインタが指す先を付け替えたりする関数は出来る限り protected にしてる。
そして、それはなるべく基本クラスの方にくくり出す。もし、別の関数でも
これと同じような処理が必要になったら、既にある関数を組み合わせてなんとか
ならないかを考える。そうすることで、ポインタのつけ間違いや誤ったオブジェクトの
削除を防ぐことが出来る。
ポインタ以外でも、データの整合性に関して慎重さが必要な場合は、上記と
同じようなことをやっている。
447デフォルトの名無しさん (アウアウカー Sa9b-4W5P)
2019/09/28(土) 11:00:36.13ID:LlqNH2NPa >>444
structで良いじゃん
structで良いじゃん
448デフォルトの名無しさん (ワッチョイ 5f61-81Gp)
2019/09/28(土) 11:38:05.06ID:EwMBvois0 >>447
純粋な構造体なら struct にして、名称も TXxxx にしている。
一方、メンバ関数があるものについては、原則的に必ず classにしている。
理由は、クラス定義を grep 検索する祭、必ず class CXxxx をキーワード
にすればよくなるから。これがもし、一部でも struct CXxxx というものが
混じっているなら class CXxxx では見落としてしまうことになる。
型名の頭文字が T の場合は、struct TXxxx と検索する。
純粋な構造体なら struct にして、名称も TXxxx にしている。
一方、メンバ関数があるものについては、原則的に必ず classにしている。
理由は、クラス定義を grep 検索する祭、必ず class CXxxx をキーワード
にすればよくなるから。これがもし、一部でも struct CXxxx というものが
混じっているなら class CXxxx では見落としてしまうことになる。
型名の頭文字が T の場合は、struct TXxxx と検索する。
449デフォルトの名無しさん (ワッチョイ 5f61-81Gp)
2019/09/28(土) 11:40:37.11ID:EwMBvois0 >>448
それから、その時はたまたま public: 属性ばかりなだけで、
後から protected: 属性のメンバもできてくる可能性も有るから、
純粋なデータ構造体以外は、必ず class に統一することにしている。
それから、その時はたまたま public: 属性ばかりなだけで、
後から protected: 属性のメンバもできてくる可能性も有るから、
純粋なデータ構造体以外は、必ず class に統一することにしている。
450デフォルトの名無しさん (ワッチョイ 47f6-rP+5)
2019/09/28(土) 11:50:17.24ID:atv/D1Wn0 システムハンガリアンにしがみついてる化石w
451デフォルトの名無しさん (ワッチョイ c7c3-+MBy)
2019/09/28(土) 12:22:40.96ID:X/zAGzhO0 MSVCはstructとclassの扱いが違う糞
452デフォルトの名無しさん (ワッチョイ 5f6e-kLFp)
2019/09/28(土) 14:13:38.93ID:LuoDMBWx0 >>451
どう違う?
どう違う?
453デフォルトの名無しさん (ワッチョイ c7c3-+MBy)
2019/09/28(土) 14:15:56.72ID:X/zAGzhO0 宣言と定義で変えたらlink出来ない
454デフォルトの名無しさん (ワッチョイ 47f6-rP+5)
2019/09/28(土) 14:23:25.73ID:atv/D1Wn0 んなことするやつこそ糞だと思うが
455デフォルトの名無しさん (ワッチョイ bfad-S/NQ)
2019/09/28(土) 14:31:07.26ID:zNn3MVf20 コンパイラによる解釈の違いを「そうきたか」と微笑みつつ解決するも楽しいものだよ。
456デフォルトの名無しさん (オイコラミネオ MM1f-NfUm)
2019/09/28(土) 14:50:38.12ID:CrZkyiYlM >>453
デフォルトのアクセス修飾子違うんだから当たり前じゃないのそれ
デフォルトのアクセス修飾子違うんだから当たり前じゃないのそれ
457デフォルトの名無しさん (ワッチョイ 5f61-81Gp)
2019/09/28(土) 15:09:19.89ID:EwMBvois0 >>456
そういえばそうだね。
そういえばそうだね。
458デフォルトの名無しさん (ワッチョイ c7c3-+MBy)
2019/09/28(土) 15:18:29.76ID:X/zAGzhO0 >>456
宣言にデフォルトのアクセス修飾子関係ないだろ
宣言にデフォルトのアクセス修飾子関係ないだろ
459デフォルトの名無しさん (ワッチョイ 5f61-81Gp)
2019/09/28(土) 15:27:08.75ID:EwMBvois0 >>458
一見そう思うかもしれないが、
class/struct の完全定義で、public: や protected: などを全く書かずにいきなり最初の
部分に書いたメンバに対しては関係ある。
本来の設計では class Aaaa だったのに、使う人が struct Aaaa で宣言してしまうと
Aaaa の完全定義の最初の部分に書いたメンバは、本来は private 属性で禁止されていた
はずなのに、使う側ではアクセスできてしまうことになる。
一見そう思うかもしれないが、
class/struct の完全定義で、public: や protected: などを全く書かずにいきなり最初の
部分に書いたメンバに対しては関係ある。
本来の設計では class Aaaa だったのに、使う人が struct Aaaa で宣言してしまうと
Aaaa の完全定義の最初の部分に書いたメンバは、本来は private 属性で禁止されていた
はずなのに、使う側ではアクセスできてしまうことになる。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★7
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【朗報】維新「高市さんは約束を守ってくれている」連立継続へ [519511584]
- ハロワって客層悪すぎるだろwwwwwwwwwwwww
- オナニーするか😔
- VIPスクリプトだらけでワロタwwwwwwwww
