X



業務でにわかプログラミングやってんだが「クラス」ってこれ必要か?関数でいいじゃん
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@涙目です。(京都府) [EU]
垢版 |
2018/08/20(月) 18:27:12.56ID:jTM0wlvZ0?2BP(2072)

functionで出来ることをイキってクラスとか難しくしてんの?
NewとかOverridesとかInheritsとか覚えれんわ使いも千野に


NexSeed、小中高生向けのプログラミング×英語スクール「ヴィムテックキャンパス by NexSeed」を9月3日に開校
https://edtechzine.jp/article/detail/1271
0003名無しさん@涙目です。(禿) [KR]
垢版 |
2018/08/20(月) 18:29:29.72ID:r+Usv5oA0
マリオでもドラクエでもボンバーマンでもいいからそれぐらいのゲームを設計してみろ。ありがたみがわかるから。
0004名無しさん@涙目です。(庭) [FR]
垢版 |
2018/08/20(月) 18:30:12.05ID:khhnre3y0
コメント読んでコピペで大丈夫
簡単だよな
0005名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/20(月) 18:31:14.69ID:kgk1pFiX0
phpやってるけど一覧の数字
合計したりするだけで大変なのに
ファミコンのマリオとかどんだけ
プログラムかかなきゃいけないんだ
ゲームプログラマーってすごい
0006名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/20(月) 18:31:56.83ID:FYlsHuuk0
まぁ、君の言ってることは、
「東京から大阪まで歩いていけるじゃん」
と同じ。
どうぞどうぞ、好き勝手にやれ。
聞く耳持たんヤツは、自滅するだけ。
0007名無しさん@涙目です。(京都府) [EU]
垢版 |
2018/08/20(月) 18:32:03.84ID:jTM0wlvZ0
>>3
初代ボンバーマンはBASICだぞ
クラスなんてない頃だぞ
0010名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/20(月) 18:36:36.95ID:BAJi9qNF0
まあ難しいことはどうでもええ
全く関係ない関数がバラバラになって存在するなら
クラスに突っ込んで管理したくなるわな
0011名無しさん@涙目です。(茸) [ニダ]
垢版 |
2018/08/20(月) 18:37:42.02ID:/PS338iC0
クラスも使うし関数も使う
lambdaも使う
甘えんな
0012名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 18:38:09.70ID:vFHvefB+0
美少女クラスの排便メソッドがうんぬん
0016名無しさん@涙目です。(アラビア) [US]
垢版 |
2018/08/20(月) 18:39:22.53ID:jN3YqTus0
クラスはPGじゃない限り使う必要ないだろうな
構造体程度かね
0022名無しさん@涙目です。(庭) [IT]
垢版 |
2018/08/20(月) 18:42:14.50ID:OaYazhcX0
nameA=カツオ
ageA=12
speedA=3
nameB=ワカメ
ageB=10
speedA=1
time=0
name=カツオ
if(name==カツオ)
speed=speedA
else
speed=speedB
walk_distance=speed×1
time=1
0024名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 18:43:33.32ID:iL0vHyXt0
>>3
ハードウェア制約がきつくてパフォーマンス重視の要件で oop は採らんだろ
ps2ぐらいから oop 主流?
0028名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/20(月) 18:49:35.82ID:2uqOxeHz0
プログラミングのクラスに関しては英語圏特有のネーミングセンスの弊害的産物で在って
本来はルーチンの類に含められるべき
0032名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 18:53:24.75ID:WCpFxipx0
//おにいちゃん…キスしていい…?/////////
0033名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/20(月) 18:53:39.33ID:vi4QhpQx0
ラムダ式なんか関数に関数を詰め込むのを許可してるようなもんだし
クラスとの境がようわかんなくなった
0034名無しさん@涙目です。(庭) [ID]
垢版 |
2018/08/20(月) 18:54:32.07ID:Divb/8Y20
俺もにわかだけどVBAのsubとfunctionなんで一緒にしねーのかと思った
あと配列を定数に出来ないのが納得いかん
0035名無しさん@涙目です。(新疆ウイグル自治区) [EU]
垢版 |
2018/08/20(月) 18:55:50.76ID:+VdTbyNj0
>>9
恋をした〜
0036名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 18:56:13.40ID:iL0vHyXt0
クラスはメソッドだけじゃなくて、プロパティもあるんやで
ていうかプロパティにメソッドが付いてるイメージ

アルゴリズムにデータを渡すのではなく、
データにアルゴリズムを持たせて、データの振る舞いはデータに聞け、ってイメージ
0041名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/20(月) 19:01:46.97ID:Xu0KD2nG0
なんでもいいからさっさとキチガイ大出品して死ね新宿古着屋ワタナベダイバクショウ
0042名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/20(月) 19:01:51.68ID:dzQ9Q9nW0
抽象的な仕事ができない人には不要です
0043名無しさん@涙目です。(禿) [US]
垢版 |
2018/08/20(月) 19:02:31.56ID:t0NP2n340
クラス何ていらねーよ。何でいっぱつでアクセスできるのに何十もの関数通さないと出来ないのが意味不明、おなに言語
0045名無しさん@涙目です。(東京都) [EU]
垢版 |
2018/08/20(月) 19:03:43.48ID:YFrtrSWP0
大規模システムで固定変動設計しようとするとあった方が楽という程度
0047名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 19:05:57.14ID:iL0vHyXt0
まぁ、ポリモーフィズムの恩恵に浴さないと、oop の良さはわからんわなぁ
0049名無しさん@涙目です。(公衆電話) [US]
垢版 |
2018/08/20(月) 19:07:02.85ID:HXIeyAig0
カーゴカルトプログラミング

実際の目的には役に立たないコードやプログラム構造を儀式的に含めておくプログラミングのスタイルである。
カーゴ・カルト・プログラミングは主に、プログラマが解決しようとしているバグか解決策のいずれかかまたは両方を理解していない場合に見受けられる。

他にも、スキルの低い、ないし新人プログラマが、そのコードが何をしているか理解が足りないまま、またはもしかしたら新しい場所にも必要なのではないかと、別の場所から関係ない部分も含めてコードをコピーしてしまうことで発生する可能性がある。
0051名無しさん@涙目です。(公衆電話) [US]
垢版 |
2018/08/20(月) 19:07:39.52ID:HXIeyAig0
カーゴ・カルトという語句は、元々は第二次世界大戦後の南太平洋で見られた先住民の宗教に由来している。

これらの人々は、戦時中素晴らしい積荷をもたらしてくれた神のような飛行機を呼び出そうと、一心不乱に精巧な飛行機の模型や滑走路を作り上げた。

コンピュータプログラミングにおいてこの語句が使用されるようになったのは、
おそらくリチャード・P・ファインマンのカーゴ・カルト・サイエンスから派生したものと考えられる
0058名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/20(月) 19:36:01.09ID:vi4QhpQx0
>>56
それやってからそのまんまクラスに変更したら動かなくてビビったわ
0061名無しさん@涙目です。(庭) [FR]
垢版 |
2018/08/20(月) 19:40:14.06ID:mmznPLFW0
>>60
そこより上がヤバいけどね
0062名無しさん@涙目です。(兵庫県) [ニダ]
垢版 |
2018/08/20(月) 19:42:25.12ID:s21r3NTs0
まあ、>>1の言ってることも解らんでもない。
小難しいことはコンピュータが勝手にやってくれればいいのに、
なんのためのコンピュータなんだよとは思う。
0065名無しさん@涙目です。(庭) [ニダ]
垢版 |
2018/08/20(月) 19:44:34.53ID:oypPi3dF0
30歳でプログラミング学びました。アプリ作って稼ぎます
って言語を舐めてるw
0066名無しさん@涙目です。(静岡県) [US]
垢版 |
2018/08/20(月) 19:46:40.81ID:H8i9/BwO0
クラスは便利だぞ、元のクラスを変更すればそれを使ってる派生クラスが全部変更されるからな。
クラスがないと、いちいち全部を変更しなければならない。
0068名無しさん@涙目です。(庭) [CA]
垢版 |
2018/08/20(月) 19:47:17.03ID:YUOPfj8J0
発想の原点はLOGOの亀
亀に移動や描画を命令する
その方法を一般化して
あらゆるオブジェクトを亀みたいにしちゃおう
これがオブジェクト指向プログラミングです(適当)
0071名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 19:48:19.73ID:iL0vHyXt0
>>65
エンタメアプリなんて、動けば良いやってなもんだから
5000時間もかければそれなりのもん出来んじゃね?
本気でやればね。
まぁエンタメはグラフィックのセンスないときびしいがな
0074名無しさん@涙目です。(静岡県) [US]
垢版 |
2018/08/20(月) 19:52:55.78ID:H8i9/BwO0
>>70
まあ「構造体に関数のポインターを用意して」でも出来るけど、
これをやると超醜くて、追いかけにくいプログラムになる。決してやるな。
0077名無しさん@涙目です。(大阪府) [CN]
垢版 |
2018/08/20(月) 20:00:44.77ID:6+g8hO7H0
プログラム作成も初期は、データ構造と処理関数の
分類だった。ただしプログラムの規模がデカくなると
バカが多くて管理出来ない状況になったんだよ
0080名無しさん@涙目です。(大阪府) [TR]
垢版 |
2018/08/20(月) 20:07:23.72ID:o6L1srs+0
クラスはなぁ。便利だけとメモリーのリークが怖い。パソコンソフトならいいけど、高信頼の組み込みじゃつかわらいなぁ。
0081名無しさん@涙目です。(SB-iPhone) [ES]
垢版 |
2018/08/20(月) 20:08:56.47ID:wDFOODvd0
学校のクラスと同じなんだって。
文系と理系はクラスが違うだろ?履修する教科も違えばセンコーも違うし、それぞれが使う教科書も違う訳だ。
じゃあクラスを分けて管理したほうが楽だろう?そういうことだよ。
0082名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 20:10:46.33ID:KkC9ZZTI0
>>73
うーん、自分も正確なことをいえるか難しいが、
オブジェクト指向をフルに活用するにはクラスが必要なんや

例えばあらゆる機能で使うような処理を静的な関数としてもっておいた場合、
その関数を変更した時あらゆる機能のコードに多大な影響が生まれ著しく保守性が悪い
また、大部分は共通しているが微妙に異なる処理をしたい場合、条件分岐が複雑になりコードの見通しが悪くなる

一方、共通している部分を基底クラスとして作り、それぞれの機能の実装は継承先に委ねておくと、
一つの機能を変更した時に変更するクラスは継承先のサブクラスだけで良くなる

クラスの理想はそのクラスの中身を利用者が知らなくても安全に簡単に使えることだ
エクセルのVLOOKUP関数は引数だけ正確にいれれば利用でき、
セルの値を指定範囲の中で検索するアルゴリズムなどユーザーは全く知る必要がないがあんなのを自分はイメージしてる

オブジェクト指向の実装方法はデザインパターンやSOLID原則を参考にすると分かりやすい
自分もマスターしてるわけではないので偉そうなことはいえないが
0083名無しさん@涙目です。(東京都) [VN]
垢版 |
2018/08/20(月) 20:11:42.48ID:jhpCTICu0
>>74
それを駆使して、ただのCでC++的なことをするのが昔流行った
会社でやらされたけどクソみたいなトレンドだった
誰だよあんなの流行らせたの・・・・
0084名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 20:12:06.85ID:iL0vHyXt0
>>79
お題目的には再利用性が主眼だと思うんだな
名前空間はクラスじゃなくても実現できるし
0085名無しさん@涙目です。(やわらか銀行) [FR]
垢版 |
2018/08/20(月) 20:12:07.92ID:oZnne3V50
俺もクラスの概念がわかってない
全て関数で対応してるわ
一人で作って一人で管理してるから
今のところこれで問題ないし新たに覚えるつもりもない
0088名無しさん@涙目です。(SB-iPhone) [ES]
垢版 |
2018/08/20(月) 20:18:00.06ID:wDFOODvd0
>>84
そうだよね。インスタンスが並列になるから、状態もデータも並列管理ができる。
0089名無しさん@涙目です。(東京都) [ニダ]
垢版 |
2018/08/20(月) 20:20:19.19ID:K/8YThFt0
機種の基本設計に対して機種固有の変動部分の対応をするときに
オーバーライドして置き換えれるので機種展開はしやすいな
0090名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/20(月) 20:22:35.81ID:KtX5r15X0
クラスも関数も管理してないとゴミになる
忙しくなると似たようなもんが増殖していく
0091名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 20:24:04.45ID:iL0vHyXt0
>>88
インスタンスの並列だけじゃなく、
インスタンスの並列を横の再利用とするなら
継承やポリモーフィズムという仕組みは設計の再利用として
縦の再利用性を目的としている
0093名無しさん@涙目です。(東京都) [NZ]
垢版 |
2018/08/20(月) 20:27:20.09ID:CiQtLy0h0
>>87
具体的にどんなことをやったの?
0094名無しさん@涙目です。(庭) [CN]
垢版 |
2018/08/20(月) 20:32:20.42ID:l73H26ye0
>>75
はぁ?Kotlinつかわんのか?
0095名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/20(月) 20:35:40.39ID:oKH/gvvU0
>>73
一連の動きをする命令に汎用性を持たせるって言えばいいのかな
基本は同じ動きでプロパティで内容を帰る
それを何層にも出来るから一つのクラスが
値を自由に付ける事の出来る関数のように使える
0096名無しさん@涙目です。(空) [US]
垢版 |
2018/08/20(月) 20:36:32.70ID:NEGqIots0
>>7
サブルーチン集だな
0097名無しさん@涙目です。(catv?) [CN]
垢版 |
2018/08/20(月) 20:36:52.23ID:NwbiooQX0
必要かどうかは、プラットフォームやフレームワークや規模によるよ
AndroidやMFCやらでAPIがクラスを前提とするし、ユーザーコードも規模が大きくなってくるとクラス等のOOP的な仕組みのありがたみがわかる
0100名無しさん@涙目です。(SB-iPhone) [ニダ]
垢版 |
2018/08/20(月) 20:43:33.88ID:Iogimy3h0
うるせえよ馬鹿
0101名無しさん@涙目です。(東日本) [US]
垢版 |
2018/08/20(月) 20:47:10.88ID:hZbURITv0
クラス内が独立してるからグローバル変数モドキとか何も考えずに脳死状態で作れて楽ちんなんや
依存関係の有るサブルーチンとかも内部関数として持たせとけばいちいち覚えとかんでもええんや
優秀な人はクラス活かしてより高度な事してるのかもしれんが
俺みたいなのは自分がどんどん馬鹿になってるなーと思ってるぞ、でも楽だからやめられぬ
0102名無しさん@涙目です。(東京都) [NZ]
垢版 |
2018/08/20(月) 20:49:00.54ID:CiQtLy0h0
中傷メソッドとかわかんねーんだよハゲ!
0103名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 20:51:33.60ID:iL0vHyXt0
>>102
そこて、
>>12 ですよ
0105名無しさん@涙目です。(東京都) [NZ]
垢版 |
2018/08/20(月) 20:54:04.16ID:CiQtLy0h0
>>103
それ書いたの俺だハゲ!
0106名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 20:55:48.59ID:KkC9ZZTI0
>>102
ファイルダイアログを立ち上げて「選択されたファイルを読み込む」
例えばこんな動作があったとして抽象クラスとしてファイルを選択するコードは実装しておき、
ファイルを読み込む部分は抽象メソッドにしておく

実際に読み込むファイルはエクセルやcsvやXML,JSONかもしれない
ファイルの種類によってどうやって読み込むかは抽象クラスを継承したクラスで
抽象メソッドをオーバーライドして書けばいろいろなファイルに対応できる
それにエクセルファイルの読み込みメソッドを変更しても、XML読み込みメソッドには何の影響もない
0107名無しさん@涙目です。(チベット自治区) [US]
垢版 |
2018/08/20(月) 20:55:55.21ID:0zC+MMtH0
クラス知らなくてもいいんじゃん。君はその程度だから。
0108名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 20:56:30.26ID:iL0vHyXt0
>>105
誰がハゲじゃボケ
美少女クラスはアブストラクトクラスにするか、コンクリートクラスするか、から検討しやがれクソハゲ!
0109名無しさん@涙目です。(SB-iPhone) [ES]
垢版 |
2018/08/20(月) 20:57:08.70ID:wDFOODvd0
>>91
うまいこと言うねw
たしかに、クラスは本来的にはそれが主目的なのかもね。
ただ、モデリングする時に、そのソフトウェアでどこまできっちり縦の再利用性を求めて設計するか、というところもあるよね。

ソフトウェアの目的に応じてイベントドリブンな関数志向やアスペクト志向という手もあるし、オブジェクト志向がいついかなる時でも正義というわけではないけど、とにかく、便利だよねw
0111名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/20(月) 21:01:02.02ID:P3lcK6gW0
>>1
殴り書きの走り書きでいいシステムならいらない
ライブラリなんかを作って提供する立場になったら必要性が分かる
人がごちゃごちゃ使う事を想定して設計するにはベターなんだよ
0112名無しさん@涙目です。(石川県) [KR]
垢版 |
2018/08/20(月) 21:01:14.89ID:nYbFfDmM0
本やWebを見ると車や動物が例えに出てくるんだがピンとこない
唐突にインヘリタンスとか持ち出すのもイラっとくる
こんなレベルでAndroidのアプリ作ったことがあるが脳死寸前だった
0113名無しさん@涙目です。(東京都) [NZ]
垢版 |
2018/08/20(月) 21:04:37.12ID:CiQtLy0h0
>>108
すいませんでした!
0114名無しさん@涙目です。(福岡県) [ニダ]
垢版 |
2018/08/20(月) 21:05:47.48ID:SiKG9dHt0
子供から論理的思考が身についてしまう。。俺の馬鹿さ加減がバレる。。。やめろ。やめろ。
0116名無しさん@涙目です。(愛媛県) [DK]
垢版 |
2018/08/20(月) 21:17:09.83ID:nyJx6QD40
>>18
その関数を再利用とかしないのなら別に関数でもかまわん。
関数を再利用したり、その関数を少し変えただけの関数をいくつも使うのならクラスを使えばいい。
0117名無しさん@涙目です。(長野県) [CN]
垢版 |
2018/08/20(月) 21:17:40.45ID:UEg803vV0
ポリモーフィズムやカプセル化を簡単に使いたくなったときに使えばいい
0118名無しさん@涙目です。(大分県) [JP]
垢版 |
2018/08/20(月) 21:18:07.21ID:zdKu9SnE0
にわかプログラミング程度でクラスなんか必要無いだろw

昔みたいにMFCとか使うわけじゃなけりゃ、よっぽど複雑でめんどくさい
プログラム組む時以外、普通はクラスなんかいらんわw
0126名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/20(月) 21:56:08.90ID:P3lcK6gW0
>>121
これな
未だに車のパーツとか動物とか絶望するわw
車で例えたいならせめてユースケースだわ
0127名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/20(月) 21:57:18.71ID:P3lcK6gW0
>>124
使えるなら言語はあまり関係ないと思うが
そう考える理由はなんだい?
0128名無しさん@涙目です。(大分県) [JP]
垢版 |
2018/08/20(月) 21:58:44.55ID:zdKu9SnE0
>>125
当時はまともなC言語すら無くてゲーム機はマシン語が主流だったんで
頭の中がCPUと化してて、ニーモニック(16進数のコマンド)だいたい暗記w
0129名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/20(月) 21:59:18.52ID:D2aMRK0r0
>>73

ベースとなる処理があって、異なる2つの処理を付け加え、2種類のベース処理を作るとしよう。
オブジェクト指向でなければ、ベースの処理に異となる2種類の処理を付け加える。
オブジェクト指向なら、ベース処理に対して2つの差分部分だけ書けばいい。
0130名無しさん@涙目です。(dion軍) [EG]
垢版 |
2018/08/20(月) 22:00:21.14ID:lBJO6dtO0
>>128
よく分からんけどなんか凄そう
0131名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/20(月) 22:04:15.40ID:5KP/bf2l0
>>128
あの頃の人達は機械と直接お話できたんだな
0132名無しさん@涙目です。(アメリカ合衆国) [FR]
垢版 |
2018/08/20(月) 22:04:16.55ID:wDwUKgO50
>>125
CPUが今何をしてるかって完全に把握してプログラム出来るからむしろわかりやすいぞ
0134名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 22:06:00.82ID:9FHJ8Nm90
クラスのメンバーAをプライベートにして
パブリックなsetA、getAを作る意味は有るんかえ。
0136名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 22:12:58.50ID:KkC9ZZTI0
>>134
クラスのメンバーへのアクセス経路を統一して不正な値への変更不可としたり、
値が変えられたときにそれを通知することができる

最初からAがpublicだと他から好き勝手に変えられて、
クラスのメソッドでメンバーを利用する際のバグになり得る
0137名無しさん@涙目です。(東京都) [VN]
垢版 |
2018/08/20(月) 22:14:05.01ID:jhpCTICu0
>>134
あとからset「あ、これ代入されるときに範囲オーバーみとこ」とか、
get「あ、これ値返すときにアレ判断してコレ返しとこ」ってのを
急な仕様変更なんかで付け足すときに手間がはぶける。
あとpublicなメンバにしとくと、多人数で作るときに、いついかなるときに
勝手に中身変えられて想定外の値入れられても、publicにした以上は文句言えない

一人で全部作る分にはどうでもいいかもね
0138名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/20(月) 22:14:14.55ID:P3lcK6gW0
>>134
観点の違いだね
システム全体を管理するなら必要
開発でもテストでもトラブルでも代入を検出するより呼ばれたメソッドを追う方がいい
さらに思わぬ汚染は絶対ゼロである状態が担保されたい
一人で学習してるならいらん
他にも理由があった気がするけど忘れた
0139名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/20(月) 22:14:24.02ID:5KP/bf2l0
>>134
どこの馬の骨とも分からない人がクラスのメンバー勝手にチェンジして、ヤバい奴等だらけになりかねないから
0140名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 22:16:19.01ID:9FHJ8Nm90
>>136
A=不正な値
とするか
setA(不正な値)
とするかの違いにしか思えないんだけど。。。
昔から、脅威のハッカーを心配してるのか?と疑問に思ってました。
煽りではなく。
0141名無しさん@涙目です。(大分県) [JP]
垢版 |
2018/08/20(月) 22:16:23.01ID:zdKu9SnE0
>>131
プロ将棋士の頭の中に盤があるみたいな感じで、頭の中にCPUとメモリがあったw

当時は8bit CPUだったんでそれが可能だったけど、16bit CPU以降は頭の中が
飽和状態になるんで C言語に頼らざるを得なくなり、OSみたいな大規模開発では
C言語ですら飽和状態になるんで、高速化と実行効率化を犠牲にしてクラスという
メンテナンス性の高い実装手法が産まれた

このクラスは当時異常に肥大化し複雑化したOS(WindowsやMacOS)を使うためには
必須の技術となり、その効果は凄まじく開発効率が大幅にアップした

でも最近はプログラム自体が簡易化されてるんで、大規模開発以外はあんま必要
無いんよねw

なので、(最近はあんま見かけないけど)たまに何でもかんでもクラスにしてしまう
プログラマとか見ると、あーあって思うw
0143名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 22:18:01.44ID:9FHJ8Nm90
>>137
setter,getterにさせちゃ、影響範囲大きすぎないだろうか。。。
0144名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/20(月) 22:18:05.62ID:D2aMRK0r0
>>134

家に出入りするのに玄関ではなく、窓から入られたら困るやろ
データaをアクセスする方法を統一することで、変なアクセス方法を防ぐ
0146名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 22:19:00.70ID:9FHJ8Nm90
>>139
どこの馬がGetterに、なにか仕込むのがオチかと。
0148名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 22:20:14.17ID:9FHJ8Nm90
>>142
逆に言うと、財布が札を食べに来て、オエッと吐き出す絵しか浮かばないよ。
0149名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 22:21:30.79ID:9FHJ8Nm90
>>144
下品な言い方すると、肛門は1つしか無いってことかなぁ。
場合によっちゃ致命傷に、なることもないかなぁ。
0150名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 22:22:58.66ID:KkC9ZZTI0
>>140
set A(不正な値)
にした時にset の処理に不正な値だったら例外投げるようにしとけばいいし、
クラスにバリデーション用のメンバー持たせといて不正な値がきたら、
バリデーション用ののメンバーに不正の種類と値をもたせといて
バリデーション用のメンバーに何も入ってない時にメソッド実行可能とかにしとけばいい

A=不正な値やったら素通りだから、何かしら対策が立てられるのが重要なんや
0151名無しさん@涙目です。(東京都) [FR]
垢版 |
2018/08/20(月) 22:23:14.92ID:Nk+bPtuj0
相変わらず土方多いな
0153名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 22:28:32.05ID:9FHJ8Nm90
>>150
逆に、「getterに余計な処理書くな」とか「チェックはチェックって名前でやれ」とか
言わない?
0154名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/20(月) 22:28:40.35ID:P3lcK6gW0
>>147
基底のクラスに名前も引数に与えるメソッド作ったら2つで終いやろ
下位クラスオンリーや例外やスペシャルなプロパティは独自メソッド用意したらいい
0155名無しさん@涙目です。(長野県) [CN]
垢版 |
2018/08/20(月) 22:29:40.60ID:UEg803vV0
個人的には、単なるsetgetの機能実装時点ではありがたみを感じたことはない

デバッグのログ吐き出しだったり、設定変化に連動する処理を追加したいケースにおいては、価値を感じた
0156名無しさん@涙目です。(空) [GB]
垢版 |
2018/08/20(月) 22:31:20.11ID:Pd76lYdd0
バッチ処理とかやってる分にはほとんど活かせないよな
それより関数型プログラミング的な考え方のほうが役立つかも
0157名無しさん@涙目です。(庭) [ID]
垢版 |
2018/08/20(月) 22:31:33.61ID:ncw+va930
大体インスタントの初回生成時から変更するようなフィールドって1/3にも満たないと思うし
値を取得するのにも連想配列的な使い勝手の方がいい場合が多い
0158名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/20(月) 22:33:34.40ID:KkC9ZZTI0
>>153
入力値検証が余計な処理とか言うやつはさすがにヤバい

それにその辺の似たような処理の実装を省力化するヘルパークラス作ったり、
それ用のライブラリがあったりする
0159名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/20(月) 22:38:07.66ID:P3lcK6gW0
学習本の良くないのはいきなりオブジェクトの詳細の説明から入るからな
車の例とか出して
理解においては、あれは後付みたいなもんで
そもそもは実用の観点からこうなってた方がいいってのが実際
ゲッターセッターみたいに何でって?そりゃなるわ
実用の観点から捉えないと意味不明だと思う
例外は極力排除したい、ゼロイチどっちかに寄せたい、ルールを遵守すべきとかの考え方がベースにあってクラスの有り難みがわかる
つまり初学者本を書いてるやつがバカ
0160名無しさん@涙目です。(庭) [ID]
垢版 |
2018/08/20(月) 22:38:18.30ID:ncw+va930
というか最終的なアウトプットで出力するもの意外をgetする必要ってあんまないし
個別の操作って継承クラスの中で閉じてても大体問題ないんだよね
0161名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/20(月) 22:38:24.16ID:9FHJ8Nm90
>>158
Viewとの連携とか、フレームワークのルールでは生きますな。
と思ったけど、最初からルールが違えばやっぱり要らないような。。。
0162名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/20(月) 22:41:51.75ID:AsFgfm2d0
>>1
俺と同じだ。
職業プログラマーじゃねーんだから。
VB6復活キボンヌ。
0163名無しさん@涙目です。(長野県) [DE]
垢版 |
2018/08/20(月) 22:44:19.58ID:/VkSkZOF0
昔々、まだ C++ があまり使われず、 C が主流だったころ。
「グローバル変数は管理しにくいからできるだけ使うな」と、ことあるごとに主張していたのだが
なかなか賛同されなかった。

現在、 C++ ではグローバル変数はほとんど使われなくなっている。
しかし、クラスのメンバ変数の乱用で、結局似たような状況になっている。
「メンバ変数は管理しにくいからできるだけ使うな」と主張しているが、
なかなか賛同されない。


ちなみに、そのおかげで私の書くコードは引数だらけとなる。
理想と現実のバランスが必要だ。
0164名無しさん@涙目です。(大分県) [JP]
垢版 |
2018/08/20(月) 22:47:34.89ID:zdKu9SnE0
>>163
メンバ変数もいいけど、クラスの中にあらゆる処理突っ込んじゃうと
結局グローバル変数と変わんなくなるよねw
なんというか結局、クラス使っても書く人の能力次第でしかないというw
0165名無しさん@涙目です。(西日本) [US]
垢版 |
2018/08/20(月) 22:53:30.87ID:g5Zp6zqh0
>>162
VB6は普通に業務で現役な訳だが
0166名無しさん@涙目です。(庭) [TR]
垢版 |
2018/08/20(月) 22:54:16.70ID:hR/n+0/q0
>>159

その通り。
ずっとCで書いていて、最初は車とかの説明が書いてあった本を読んだ。
初心者があの説明でわかるはずがない。

理解するにはコードを読め。
簡単なソースを1ステップごと実行させて、何をやっているか調べれば理解できる。
0167名無しさん@涙目です。(やわらか銀行) [CN]
垢版 |
2018/08/20(月) 22:54:54.73ID:lhzSKyfO0
Cで書くとグチャクヂャになるからな
0168名無しさん@涙目です。(長野県) [CN]
垢版 |
2018/08/20(月) 22:55:19.92ID:UEg803vV0
>>164
Cの時代に1ファイルになんでもかんでも突っ込んできた人にその傾向がある

もともとファイルを分けて実装してきた人は、クラスをうまく使える印象
0169名無しさん@涙目です。(群馬県) [JP]
垢版 |
2018/08/20(月) 23:07:25.98ID:q6NdpeZQ0
クラスって構造体が拡張されたもんだろ?
0170名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/20(月) 23:52:36.92ID:ERNI87MJ0
PHPとJavaとJavascriptの勉強をやってみたが、すぐ忘れてしまうわ。
0172(catv?) [PK]
垢版 |
2018/08/21(火) 00:08:39.00
構造化
int Add3( int x, int y, int z){
return (x + y + z);
}

int main(){
return Add3(3, 5, 8);
}

オブジェクト
Public class Add3{
public int x;
public int y ;
public int z;
public int execute() {
return (x + y + z);
}
}

int main(){
Add3 add3 = new Add3();
add3.x = 3;
add3.y = 5;
add3.z = 8;
return add.3.execute;
}
0175(catv?) [PK]
垢版 |
2018/08/21(火) 00:30:54.77
>>173-174
出てきたw
じゃあ、これでダメな理由をこのクラスを使って具体的に言ってみろw

コードの書き方に感じを書いただけだw
0176名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/21(火) 00:35:45.50ID:6zuWgISb0
>>172-175
簡単なプログラムだったら構造化で十分ということがよく分かった。
0177名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/21(火) 00:38:18.82ID:qaj9TG5G0
クラスじゃなくて、そこからの変数であるインスタンスという概念が大事なんだが
0178名無しさん@涙目です。(庭) [PS]
垢版 |
2018/08/21(火) 00:47:37.66ID:CDKaTmF40
1はmixin信者かgolang使いと見た。
0179名無しさん@涙目です。(やわらか銀行) [AE]
垢版 |
2018/08/21(火) 00:48:07.80ID:W76GoHcg0
>>170
PHPは、perlやrubyに比べて、データベース使ったWebプログラムを組みやすい気がする。
もうプログラミングなんて、10年以上やってないが・・・
0180名無しさん@涙目です。(庭) [ニダ]
垢版 |
2018/08/21(火) 01:00:32.23ID:YE2DwmLN0
>>175
この例だとクラスをインスタンス化する必要もメンバ変数で保持する必要もないから、
静的クラス静的メンバでメソッドコンテナにするべきじゃね?
Mathクラスみたいな感じで。
0181名無しさん@涙目です。(千葉県) [PL]
垢版 |
2018/08/21(火) 01:02:17.53ID:JeJ3Hyfl0
まあなんだ
syntax errorの話だよな
0182(catv?) [PK]
垢版 |
2018/08/21(火) 01:21:30.91
>>180
インスタンス化する必要かどうかなんて設計の話だよ。
servlet の様に一つのプロセスに複数スレッドで動かす場合だと、静的か動的生成で結果が変わってしまう場合もある。
0183名無しさん@涙目です。(神奈川県) [ニダ]
垢版 |
2018/08/21(火) 01:22:04.50ID:Lu/j/FbD0
c++11をチームで使うことになってるのにnewとポインタ渡し大好きでいくら言っても使い続ける人がいて困ってる
ちなみに研究職だから開発に渡すには短く分かりやすいコードの方がいいんだがコンパイラの最適化がーって譲らない
0184名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 01:36:50.36ID:v1/Jj0sb0
newするのはインスタンス
0185名無しさん@涙目です。(兵庫県) [US]
垢版 |
2018/08/21(火) 01:54:47.69ID:2YcXfLxs0
美少女クラスも俺と同じ排便メソッド継承してるかと思うと胸熱だわ。
0186名無しさん@涙目です。(東京都) [VN]
垢版 |
2018/08/21(火) 02:20:13.35ID:E82Iss5R0
public class BiSyoujyo : Syoujyo
{
  override public Unko
    Haiben ()
    {
     // return new Unko(Unko.Type.Normal);
     // return new Unko(Unko.Type.Gold); // 価値を付ける場合はこちら
// △月△日:仕様変更:美少女はうんこ出さない
     // return null;
// ●月〇日:ミーティングでnullでなくType.Ghostになった
       return new Unko(Unko.Type.Ghost);
    }
}
0187名無しさん@涙目です。(チベット自治区) [US]
垢版 |
2018/08/21(火) 02:26:18.47ID:GsPo0QXQ0
>>123
某所でちょっと話題になった糞コード
1500人程度のユーザのいるサービスだったらしい
イントラネットとかクローズドな環境だったので長らく問題が顕在化しなかったのではという見解
0188名無しさん@涙目です。(愛知県) [CN]
垢版 |
2018/08/21(火) 02:27:21.87ID:KQhDGoJX0
オーバロードオーバライドしないなら何が書いてあってもいいけどな
とは言ってもC++のclassとstructの違いがわからない奴が多くて嫌だ
0189名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 02:34:35.88ID:v1/Jj0sb0
構造体との違いは寿命
0191名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 03:27:19.34ID:v1/Jj0sb0
構造体はただの変数で寿命はスコープによる
インスタンスは寿命をプログラマが制御する
0192名無しさん@涙目です。(東京都) [ニダ]
垢版 |
2018/08/21(火) 03:28:09.01ID:Z6iOlESf0
関数型言語やってみたい
0194名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/21(火) 03:37:07.22ID:H1y6TvIn0
クラスやオブジェクト指向は鶏卵だろ
開発や運用の過程でこうなってたら使いやすいって経験を言語仕様化した訳だ
だから初学者にいきなり教えたってその経緯分からんから常に>>1の様な疑問を持たれる
細かい屁理屈並べるより単なるルールとか言っといた方がマシ
0195名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 03:37:41.51ID:v1/Jj0sb0
いや、俺はC/Objective-Cの話をしてる
マイナーですまんねw
C++の構造体ってnewするんだっけ?
0196名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/21(火) 03:38:34.01ID:H1y6TvIn0
>>172
executeがダサいと思いました
runの方がカッコいいと思います
0197名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 03:43:16.24ID:v1/Jj0sb0
クラスってコンセプトは継承とインスタンス化じゃね?
0199名無しさん@涙目です。(埼玉県) [UA]
垢版 |
2018/08/21(火) 03:49:29.09ID:hAk92sRI0
ビジネスクラスは快適だぞ
0200名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/21(火) 03:58:05.95ID:H1y6TvIn0
別に無くても同様のことは実現できる
継承やインスタンス化もそう
じゃー何で存在するか
あった方が便利だから設計実装されてるだけ
単なる整理整頓管理のし易さだけ
プログラミングなんて大半がアホみたいな整理整頓とその保全だね
こんな理由なのに初学者の敷居を上げてしまうのはいけない
ちゃんとまずは別にいらねーよ、知らなくても問題ない事を教えてあげないと
0201名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 04:01:37.72ID:v1/Jj0sb0
プログラミングパラダイムって、究極にはコード自体をどう構造化するかって事だ
0202名無しさん@涙目です。(茸) [ニダ]
垢版 |
2018/08/21(火) 04:07:38.99ID:bGnd3+Ng0
>>37
oh...
0203名無しさん@涙目です。(神奈川県) [PK]
垢版 |
2018/08/21(火) 04:11:04.49ID:hAm5CtPS0
他人が作った機能を使い回すのに必要
クラスなんか必要ないって言うやつは必ずボッチ
0205名無しさん@涙目です。(東日本) [US]
垢版 |
2018/08/21(火) 04:24:09.45ID:5eKyQwSU0
javaから勉強しはじめたからクラスがあるのは当たり前って感覚なんだけど
どのクラスに何を入れるかでいつも悩んで結局網の目状になっちゃうわ
できれば魚の骨みたくメインのクラスを軸にして他のクラスはそのメインだけに繋がるようにしたいんだが・・・
0206名無しさん@涙目です。(東京都) [IN]
垢版 |
2018/08/21(火) 05:40:30.79ID:xKVaN/XY0
>>18
関数をまとめた構造体を作って、云々。Cで組み込みやるときは記述がだるいけど、必要に応じて。
抽象化なんてアセンブラの時代から必要かつ意識高い系はなんらかやってたわけで。
0212名無しさん@涙目です。(家) [FR]
垢版 |
2018/08/21(火) 07:13:38.94ID:awRrzKM30
>>205
メインのクラスとか考えると手続き型を分割しただけになるから細部から考えたほうがええで。オブジェクト指向エクササイズとかで少し大きめのプログラム書いて見たらええ。


関数型の世界だとクラス/オブジェクトみたいなステートフルなのは好まれない雰囲気もあるし、OOP捨ててコード組めるぐらいの実力ないと今後は辛そうねぇ。
0213名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/21(火) 07:35:36.26ID:mawpZLf+0
クラスは必要だ。
ふつうにプログラムしてればたどり着く考え。
たとえば、aという変数もグローバルだと衝突してしまうが。
あるまとまり(クラス)の中だけで通用するようにするなど。
0214名無しさん@涙目です。(西日本) [BG]
垢版 |
2018/08/21(火) 07:35:44.29ID:V0ad0lee0
とりあえず何でもブチ込める神クラスを作ります(生え抜きのC書き)
0215名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 07:37:22.63ID:v1/Jj0sb0
>>211
ちょっと何言ってるかわからん
0217名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/21(火) 07:43:29.05ID:mawpZLf+0
オブジェクト指向に少なくとも2通りはあって。
C++のはクラス型で。Javascriptのはプロトタイプ型。
Javascriptの方がある意味徹底されてるという認識。最初からすべてがオブジェクトで。
C++だとオブジェクトはプログラマーが明示したときだけ。
0219名無しさん@涙目です。(dion軍) [ニダ]
垢版 |
2018/08/21(火) 07:53:51.32ID:3obzZbFK0
>>215
構造体だってアロケーションできるって話だよ

構造体の真価はそういう事じゃなくてbit単位で通信するデータをブロック化できるってところだと思うんだがね
0220名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 08:07:20.16ID:v1/Jj0sb0
>>218
>>219
そりゃ構造体だろうがなんだろうがヒープに確保できるがなw
実際そうやってCでクラス実現したのがObjCだw
ポインタとかそういうレベルの話をしてるんじゃないw
0221名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 08:10:18.86ID:v1/Jj0sb0
クラスってコンセプトのカナメは継承とインスタンス化だろうと言ってる
0222名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/21(火) 08:15:07.22ID:oD70E6UH0
なんでその言語仕様が生まれたのか?
そのほうが便利だから
では、それはどういった点で便利だからなのか?

みたいな逆算より、普通にCからやったほうがいいのは、その不便さを身を持って体感できるから
0223名無しさん@涙目です。(家) [KE]
垢版 |
2018/08/21(火) 08:17:54.53ID:gNa1W7T/0
おれはお前らが嫌いなニッカポッカ土木作業員だけど昼休みにオブジェクト指向の本を読んでいる。
クラスが必要か?関数でいいじゃん?
クラスの理解の前に、関数の理解をしようぜ。おそらくお前はそこを理解出来てないと思う。
関数の役割としては、処理の共通化が挙げられるよな?そこは分かってるはず。
そしてその関数を呼ぶ側が引数を渡して(引数があれば)結果を得る。
問題はこの時に「関数を使う側」が引数に渡す値を用意する部分。ここにクラスを使うための答えの1つがあると俺は理解した。
お前も考えてみてくれ、問題を理解しないと解決策であるクラスは理解できないぜ
0224名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 08:18:53.79ID:v1/Jj0sb0
60年代ぐらいにプログラムが肥大化したときに、どう解決しようとしたかなんだよな
OOPも構造化も関数型もその頃に生まれたコンセプト
0225名無しさん@涙目です。(愛媛県) [ニダ]
垢版 |
2018/08/21(火) 08:19:34.32ID:Zej4eXwq0
>>214
それっぽいものを作る人、何十人か知ってます
0226名無しさん@涙目です。(新疆ウイグル自治区) [US]
垢版 |
2018/08/21(火) 08:19:55.56ID:4kYcAni+0
この世界がオブジェクト指向で出来てる以上、クラスは必要だわ。
0228名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 08:24:38.83ID:v1/Jj0sb0
>>227
どの辺が?
0229名無しさん@涙目です。(SB-iPhone) [ニダ]
垢版 |
2018/08/21(火) 08:30:34.81ID:x8Izff130
>>228
キミが言ってる寿命の定義を言ってよ
0230名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 08:31:48.39ID:v1/Jj0sb0
>>229
寿命は寿命だよ
mallocからfreeまでだが
0231名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/21(火) 08:33:32.92ID:KDxiK7Ul0
プログラミングが簡単単純になるから
気に入らないならすべて機械語で自分でコーディングすればなんでもできるぞw
0233名無しさん@涙目です。(愛知県) [JP]
垢版 |
2018/08/21(火) 08:40:54.50ID:plRLVJfe0
クラスってのは「分類」だよ

なんの分類かというと、クラスの要素である変数とメソッド
変数とメソッドはデータと処理だ

プログラムやシステムというのはデータと処理の集合な訳で、これが肥大化したときにどのようにモジュールとして分割するか?というのが大きなテーマになってくる。一度に全てを見渡す事ができないからね

このモジュール分割や分類というのが厄介で、理路整然と体系化された分類もできるし、
複雑で例外だらけの分類もできるわけだ

そこでシステム化対象領域の「モノ」=「オブジェクト」と、その関係に着目して分類をすると割と体系的な分類ができますよ、というのがオブジェクト指向設計
0234(東京都) [US]
垢版 |
2018/08/21(火) 08:41:20.60
>>230
構造体使うのにわざわざそんなことやってんのか?
0235名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 08:42:59.93ID:v1/Jj0sb0
>>234
俺の話の意味わかる?
0237名無しさん@涙目です。(catv?) [KR]
垢版 |
2018/08/21(火) 08:51:35.13ID:dVpW35Xo0
>>191
構造体でもポインタにNULLぶち込めば殺せるし、
プログラマが制御できるじゃん
0239名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 08:53:03.70ID:v1/Jj0sb0
俺はクラスの話をしてんの
0240名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 08:54:53.13ID:v1/Jj0sb0
>>237
freeしなきゃポインタにNULL入れても確保されたままだぞ
0241名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/21(火) 08:54:58.31ID:MmBbHytO0
アンマネージドなコード扱いたくない
0242名無しさん@涙目です。(SB-iPhone) [AU]
垢版 |
2018/08/21(火) 08:54:59.73ID:rfhER7oQ0
クラスはとても難しい概念なんだ。理解できる人を選ぶ。素人さんが生齧りでやらないほうがいい。
プログラミングのことはプログラミング屋さんに任せないってこった。
0243名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 08:55:58.75ID:tUw9WOr60
なんかクラスを使わないとマルチスレッドのプログラミングが大変だった記憶
0244名無しさん@涙目です。(東京都) [GB]
垢版 |
2018/08/21(火) 08:56:32.30ID:195BDiKu0
>>242
任せねーのかよ
0246名無しさん@涙目です。(千葉県) [CN]
垢版 |
2018/08/21(火) 09:03:25.83ID:Djjv2Y3u0
俺の親父huge始めてるけどめっちゃいいclassしてるわ
0247名無しさん@涙目です。(catv?) [KR]
垢版 |
2018/08/21(火) 09:07:45.68ID:dVpW35Xo0
>>240
>191 名前:名無しさん@涙目です。(やわらか銀行) [US] ▽2件 投稿日:2018/08/21(火) 03:27:19.34 ID:v1/Jj0sb0
>構造体はただの変数で寿命はスコープによる
>インスタンスは寿命をプログラマが制御する

なんで変数の話してんのにfreeがでてくんの?
逆にいえばインスタンスだって寿命は最大でもインスタンス変数のスコープの範囲内じゃないの?
0248(東京都) [US]
垢版 |
2018/08/21(火) 09:10:10.70
>>247
もうあんまり関わらない方がいいよw
0249名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 09:12:15.62ID:v1/Jj0sb0
>>247
簡単に言っただけだぞアスペかよ
あとインスタンス変数の使い方間違ってないか?
0250名無しさん@涙目です。(茸) [ニダ]
垢版 |
2018/08/21(火) 09:13:47.27ID:5518wrum0
C++のクラス←わかる
CSSのクラス←何これ
0251名無しさん@涙目です。(catv?) [KR]
垢版 |
2018/08/21(火) 09:16:00.30ID:dVpW35Xo0
>>249
簡単でも間違ってるじゃんw
0252名無しさん@涙目です。(SB-iPhone) [AU]
垢版 |
2018/08/21(火) 09:19:02.06ID:rfhER7oQ0
クラスの概念は普通の人には何がなんだか考えも及ばないものなんだよ。プログラマーはクラスを理解するために、10年はクラスのないc言語とかで修行しなければいけない。
とりあえずプログラミングをやってみたいなーなんていう素人さん以外はクラスに携わっちゃいけないよ。
0253名無しさん@涙目です。(福島県) [KR]
垢版 |
2018/08/21(火) 09:19:05.09ID:yuNCq8hn0
にわかなのに関数とかいう単語を知ってるとは
クラスは関数ポインタ(メソッド)の構造体と考えればいい
0254名無しさん@涙目です。(東京都) [CH]
垢版 |
2018/08/21(火) 09:21:22.84ID:CVl+Vown0
作るプログラムによる
0255名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/21(火) 09:28:33.33ID:v1/Jj0sb0
情報をまとめる時にクラスって概念を使う
CADにもクラスあるだろ
0256名無しさん@涙目です。(大阪府) [MX]
垢版 |
2018/08/21(火) 09:29:01.73ID:Fr0IEA8l0
さいだよしひろ殺せ
たけうちよしばぁ殺せ
0259名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/21(火) 11:06:24.43ID:AGjXFMT80
業務でにわかプログラミングならクラス要らないよ
0260名無しさん@涙目です。(東京都) [ID]
垢版 |
2018/08/21(火) 11:14:17.00ID:BrZgF4SV0
お前も2組かよ〜
0261名無しさん@涙目です。(東京都) [JP]
垢版 |
2018/08/21(火) 12:57:29.10ID:IQZ6sIlC0
>>134
大人気ですね
0262名無しさん@涙目です。(catv?) [ニダ]
垢版 |
2018/08/21(火) 12:59:03.65ID:keHgR9Kf0
クラスAでクラスBを呼び出す

こんなプログラムを作っていて、あるとき
クラスAの中で作ったクラスBでクラスAを呼び出す必要が出てきた

これが可能なのだがなぜ可能なのかわからん

例えばc#
Form_mainの中でForm_subのインスタンスを作ったのだが、

Form_sub fm = new Form_sub(Form_main);

なんでこれができるの?
0264名無しさん@涙目です。(広西チワン族自治区) [NL]
垢版 |
2018/08/21(火) 13:18:10.56ID:v8SFuCJjO
>>125
シングルタスクちうて、「処理の途中でOSに処理を返す」と言う概念が根本的に無かった、始まったら全部俺のターン
ただ普通に「イベントでの司会進行」みたいに考えられるから、今よりは理解はしやすい、その後は複雑だけど

つまり、ファミコンのキャラを動かす部分はOSが受け持つ感じになって、そこだけ聞くと楽になったん?って気もするのだが
そうでもない



クラスは、専用変数+汎用関数のセットだっけ
ゲームキャラ一体に一つのクラス、でも「プログラム部分は共有出来る」から、効率化と汎用性が高まるが
何か机上の理想論なんだよなあ(+_+)
0265名無しさん@涙目です。(京都府) [EU]
垢版 |
2018/08/21(火) 13:26:34.42ID:h8ukwoi90
>>185
Public Class 美少女
   Public Overrides Sub 排便
      肛門.排出.ファンタジー
   End Sub
0266名無しさん@涙目です。(広西チワン族自治区) [EU]
垢版 |
2018/08/21(火) 13:46:30.52ID:v8SFuCJjO
>>264
言語によるが、或いは「キャラは番号で呼んではいけないが、゛同じキャラ゛なら番号で呼んで良い」みたいなルールがクラスにはあって
それがどうにも馴染めなかった思い出がある。敵は全部で1000体まで出せます
ではなく、敵Aは200体まで、敵Bは1000体まで、弾Cは300体まで、みたいな組み方を強いられてしまい
つまり出現してない時、敵の保持領域には゛かなりの無駄がある゛事に

そういう話が動物がどうたらみたいな説明になるのかね
0267名無しさん@涙目です。(庭) [FR]
垢版 |
2018/08/21(火) 14:20:26.04ID:ai0Ni49W0
>>50
バグの有無とか性能は
コンパイルしたら一緒という事にはならない
0268名無しさん@涙目です。(茸) [CH]
垢版 |
2018/08/21(火) 14:40:21.19ID:ReYXipy00
>>134
Aの上限値がオブジェクトによって違うような場合
(デフォルトでは上限値がなくていちいちチェックしないような場合)
0270名無しさん@涙目です。(庭) [FR]
垢版 |
2018/08/21(火) 16:18:02.37ID:ai0Ni49W0
>>191
構造体へのポインタをグローバル変数にして
構造体の実態メモリを確保したり解放したりしたら
構造体の寿命をコントロールできるんじゃね
0271名無しさん@涙目です。(庭) [FR]
垢版 |
2018/08/21(火) 16:19:44.57ID:ai0Ni49W0
>>205
クラス図を描いて整理したら良いのでは
0274名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/21(火) 16:35:51.11ID:DOUmMBeT0
小規模だったらクラスとか要らん

でも拡大させるベースだったら
あなたは役所
あなたは車屋さん
あなたは衛生局と
役割を細分化して
直感的に再利用でくるような
組織体系になってないと

その度に車の発明から定義していかないとあかぬ
0275名無しさん@涙目です。(チベット自治区) [ニダ]
垢版 |
2018/08/21(火) 16:53:32.91ID:2o9Df8LQ0
クラスの超!目的は変数のカプセル化だからな

ほんとほっとくとグローバル変数だらけにするバカがほとんどだから
0278名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/21(火) 17:08:39.48ID:lyQok4so0
>>156
オブジェクト指向ではインスタンスがメソッドと共に状態を持つのが特徴
一方、バッチ処理は普通状態を持たない

だからバッチ処理でオブジェクト指向のありがたみを感じない
という感覚は正常だと思う
構造型プログラミングでいいだろって話になる
0279名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/21(火) 17:11:42.60ID:lyQok4so0
>>163
クラス内でしか使わない処理なら、
privateでstaticなメソッドをガンガン作って、
インスタンスフィールドも引数で渡してやる、というやり方に賛同する

引数だらけ?
問題だと思わないね
それよりグローバル変数に近い邪悪さをもつ
フィールドをクラス中でドンドン参照してしまうほうが悪
結局自分の知らんところで値が変わってたりとかもうね
0281名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/21(火) 17:16:00.51ID:lyQok4so0
>>194
Cからこの業界に入ってJavaやったんだが、
「ああ、Cのような構造化プログラミングの限界を突破するために
 こういう考え方を導入したのか」
とわかるようになった。


初学者には演繹法より帰納法のほうが学習効果が高いと思う。
「とにかくJavaではこう書くんだよ」程度で最初はOK
いきなり「哺乳類クラスを犬クラスが継承して・・・」なんて話しても混乱するだけ。

単体レベルから開発に携わって、
だんだんシステムになれてくると、
「ああ、だからオブジェクト指向って必要なのか」とじわじわわかってくる
初学者用の小さなプログラムでオブジェクト指向もどきやっても、
0283名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/21(火) 17:21:00.45ID:lyQok4so0
>>205

>>212も書いているけど、「メインのクラス」という発想自体が
オブジェクト指向と合わないかな

クラスはそれぞれ独立していて結合が疎、
必要な時だけつなげる(インスタンスを作る)という発想かな


例えていうならホストコンピュータの世界からインターネットの世界に飛び出せってことだな
メインのいない世界
0289名無しさん@涙目です。(空) [ニダ]
垢版 |
2018/08/21(火) 19:03:50.54ID:CkKHaDpc0
>>1
必要なきゃ使わなきゃいいだろ
わざわざスレ立てんなカス
0290名無しさん@涙目です。(東京都) [KR]
垢版 |
2018/08/21(火) 19:23:45.99ID:mi3YROPO0
>>288
コンパイラとCPUの組み合わせ → エンディアンを参照
アライメント値によって隙間空く → パディング・処理効率を参照

簡単に言うと、こんな感じだと思う(うろ覚え)
0291名無しさん@涙目です。(東京都) [KR]
垢版 |
2018/08/21(火) 19:33:07.32ID:mi3YROPO0
そう言えばC#だと、なんかおまじないを付けないと構造体のメンバーの配置が固定されなかったような…
構造体の定義の頭に[なんちゃらシーケンシャル]って感じでやってた覚えがあるな
0292名無しさん@涙目です。(東京都) [KR]
垢版 |
2018/08/21(火) 19:41:56.43ID:mi3YROPO0
ググったら出てきたから書いとくわ
C#は[StructLayout(LayoutKind.Sequential)]を付けると順序が変わらなくなる
0294名無しさん@涙目です。(東日本) [US]
垢版 |
2018/08/21(火) 19:58:51.85ID:5eKyQwSU0
>>212>>271>>283
ありがとう
自分で見易いからメインを作って・・・と思ってたけど
たしかにそれだとメインクラスの役割分担でクラス分けしているだけで
それなら関数でもいいじゃんって話しになっちゃうもんなあ

ルールだけ覚えて本質的なことを理解してなかった
もう一度最初から勉強し直してみます
0295名無しさん@涙目です。(長屋) [DE]
垢版 |
2018/08/21(火) 20:00:46.39ID:BKUJmXRn0
オブジェクト指向を使ったベスト・プラクティスと使わなかった場合が
体感できるような良書はないかな
入門書にあるような文法説明だと結局、ありがたみがわからないし
かと言ってデザインパターン入門のような本も難しすぎた
0296名無しさん@涙目です。(家) [EU]
垢版 |
2018/08/21(火) 20:02:03.49ID:i5Vvb8qG0
ニワカの俺は
動けば何でもいいや
0297名無しさん@涙目です。(アメリカ合衆国) [FR]
垢版 |
2018/08/21(火) 20:51:40.53ID:YOzpDJw30
>>288
環境依存があるものに保証があるとは言わない
0298名無しさん@涙目です。(神奈川県) [SE]
垢版 |
2018/08/21(火) 21:32:27.59ID:VQi+enGh0
>>11
ランバダ?
0299名無しさん@涙目です。(関西地方) [US]
垢版 |
2018/08/21(火) 21:36:30.18ID:PMOG1nJA0
C++はラムダ書けるようになってから化けたよな
0300名無しさん@涙目です。(大阪府) [US]
垢版 |
2018/08/21(火) 21:36:56.39ID:MWMKLm5q0
結婚は戦争で殺せ
0301名無しさん@涙目です。(茸) [CN]
垢版 |
2018/08/21(火) 21:37:32.87ID:m7Ke8fx90
>>1
確かに関数型プログラミングの方が高度だな
0303名無しさん@涙目です。(西日本) [US]
垢版 |
2018/08/21(火) 22:43:05.26ID:TZbF4r9A0
クラスはぼんやり理解できるとしてもサッパリ使い道が分からんのが「インターフェイス」だな

カプセル化に必要とか書いてあるが具体的なメリットがなんなのか理解できん
0304名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/21(火) 23:11:46.30ID:lyQok4so0
みんな何の言語の話してるのかよーからんところがなんともw

Javaのインターフェースであれば、基本はクラスから機能を落としたもの、
メソッドの実装がなく、サブクラスでの実装を強いるもの
コンポーネント間の境界でよく使うもので、
お互いの実装を意識しなくて済む・・・
なんて抽象論を語っても頭に入らないだろうけどな
複数人でクラスを分担して作ってみないとわかりにくい

ただMapインターフェースとかは誰でも使う
例えば外部からデータを取り出す(そしてその外部システムは自分では触れない)ときに、
Mapが指すサブクラスがHashMapなのかTreeMapなのか意識しないといけないような状況だとして、
例えばアップデートされてて外部システムの実装が切り替わったら
自分担当のクラスのコードまでいじらなければならなくなる
引数やフィールドの型をいちいちHashMapからTreeMapに修正するのかよ?ってことも起きる

「インターフェースの向こう側で何をやってようが気にしなくていい」
クラス間の結合を疎にする、という言い方もするが、これがメリット
ただ自分一人でとか、小さなシステムを作る際にインターフェースを導入するメリットはあまりないだろう


カプセル化はどちらかというと、構造体からクラスに進化する際に強調された概念で、
インターフェースの説明の時はあまり使わない概念な気がするけども
0305名無しさん@涙目です。(関西地方) [US]
垢版 |
2018/08/21(火) 23:16:54.60ID:PMOG1nJA0
インターフェースってのはな問い合わせ窓口みたいなもんだよ
そこ自体に何かがあるわけではないね
0306名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/21(火) 23:24:34.46ID:8uPIddAj0
>>304
カプセル化とかオブジェクト指向は、構造体を進化させるときに発生したわけではなく、先にその概念があって適用しただけかと。



関数型プログラミングはオブジェクト指向の正当な後継である
https://qiita.com/retemo/items/d251f0b558a3ebf1d720


Smalltalk - Wikipedia
Smalltalk とオブジェクト指向
アラン・ケイが「オブジェクト指向」という言葉を創った当初は、Smalltalk システムが体現した「パーソナルコンピューティングに関わる全てを
『オブジェクト』とそれらの間で交わされる『メッセージ送信』によって表現すること」を意味していた。
しかしのちに、C++ の設計者として知られるビャーネ・ストロヴストルップが(自身、Smalltalk の影響は受けていないと主張する)C++ の設計を通じて整理し発表した
「『継承』機構と『多態性』を付加した『抽象データ型』のスーパーセット」という考え方として広く認知されるようになった(カプセル化、継承、多態性)。
0307名無しさん@涙目です。(福岡県) [US]
垢版 |
2018/08/21(火) 23:26:20.57ID:qE3um/hI0
プログラマ5年目程度が偉そうに講釈垂れるスレはここですか?
0308名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/21(火) 23:28:45.80ID:3uvkx05j0
>>303
使い方が分かってたら実装なんてどうでもいいだろ?
そういうことだ
0310名無しさん@涙目です。(広島県) [ニダ]
垢版 |
2018/08/21(火) 23:57:15.14ID:N5Zl8lxV0
初学者だけど自分も>>1と同じ感覚だわ
別ファイルで変数や関数を定義してメインでインクルードして使えば同じじゃんって思う。
全部メインに書くレベルでクラスいらないってのはさすがに思わないけどクラス作ってインスタンスを作る意味が解らないわ。
インスタンスいらなくねって思うわ。
0311名無しさん@涙目です。(茸) [CN]
垢版 |
2018/08/22(水) 00:45:40.09ID:ISKPLcc00
昔MS-DOSの頃にプログラマーやってた時があってC言語を使ってたが
クラスがなんなのかさっぱり分からん
構造体の中に関数が入った感じなのかな

しかもC言語すらもうほとんど忘れてる
あれだけ勉強したのに
0312名無しさん@涙目です。(神奈川県) [CN]
垢版 |
2018/08/22(水) 02:12:49.06ID:UFkk9Sua0
今冷静に考えるとクラス使わずに
プログラム書ける自信全くないな。

始めた頃はベタがきでこねくり回して
必死で作ったものだが

要するにオブジェクト指向は人間の思考回路を
破壊していることになる。
0313名無しさん@涙目です。(神奈川県) [CN]
垢版 |
2018/08/22(水) 02:21:23.27ID:UFkk9Sua0
ちなみにクラスも関数も所詮手段であり
目的にあらず。
だからクラス使っても使わなくても
最終的には同じ物はほぼ出来る。

ただし作ろうとしているシステム規模や
機能拡張や保守性を考えた時に、
クラスを使う使わないで雲泥の差が出るのは間違いない。
0314名無しさん@涙目です。(WiMAX) [ニダ]
垢版 |
2018/08/22(水) 02:23:43.24ID:UU78T80w0
業種によるんじゃないかな、パフォーマンスが要求されてる場面でクラス化するのもアホだし、UI作るのにクラスなしでは辛過ぎるし、ただしoop厨は総じてうざい
0316名無しさん@涙目です。(神奈川県) [FR]
垢版 |
2018/08/22(水) 03:29:42.18ID:niK2gJV70
クラスなしだと処理が無駄に複雑になる。
STLとかに慣れたあとCで文字列やらlistやらmapやら使うの大変だし、あとスマートポインタとか、クラスがないと実現出来ないんじゃない?
I/Fが同じで、処理もほとんど同じ関数とかの場合、基底クラスが使えんから最初の何バイトまではデータ構造が同じといった構造体使ったりせにゃならんし…。
0317名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/22(水) 03:37:45.49ID:bngZvFqQ0
STLは、クラスやテンプレートが使用され作られているが。
そもそも、STLを実装するためにC++が作られたようなもので。
だが、STLを使用することでクラスが使いこなせたり、理解できるわけではないかと。
スクリプト言語とかも実装でクラスやテンプレートで使われていても、利用時にはそうでもない。
0318名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/22(水) 04:08:42.49ID:hzLgE/3z0
>>278
バッチ処理でも状態は考慮することあるんじゃね

開始時刻になったとき
処理を開始できる状態になっているか判別してからじゃないと不整合が起きそう
0319名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/22(水) 04:14:41.88ID:hzLgE/3z0
>>285
バイトオーダが変わる事があると思うけど
0320名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/22(水) 04:33:52.37ID:8JCS1IUl0
お前らすぐ早口でディテールの議論するよな
このスレのテーマは初学者だろ
お前らだって経験の背景があってクラスやOOPの恩恵を理解したくせに
そうやって初学者にプレッシャーかけて喜んでんだよね
初学者はそんな機能「も」あるって理解で十分
そもそも言語なんて機能を提供してるだけで使い方は自由
クラスなんて最初はグルーピング用途で使っといていいよ
0321名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/22(水) 04:48:45.78ID:hzLgE/3z0
ちゃんとカプセル化してあるクラスだったら
それを再利用できるのがメリットなんじゃね?
継承して一部メソッドを上書きしたり拡張したり

使う側はインターフェースを知ってれば
機能を提供する側のクラスが
別のクラスに置き換えたって構わない
0322名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/22(水) 04:50:58.03ID:hzLgE/3z0
>>320
言語とオブジェクト指向は別の概念じゃね?

オブジェクト指向の概念を取り入れた言語とか
そうじゃない言語とかあるわけで
0323名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/22(水) 06:27:19.46ID:8JCS1IUl0
>>322
ああ全ての言語がOOP的機能持ってるわけじゃないな
でもどうせそんな機能を求めてしまうだろ
開発運用するならクラス型OOPが結局我々は取り扱いやすいのだろう
JavaScriptなんていい例で
非クラス型でもパターンやルールでそんな風に取り扱うのが主流だし
0324名無しさん@涙目です。(長屋) [DE]
垢版 |
2018/08/22(水) 06:30:33.25ID:YxqNEgVI0
カプセル化って結局、そのクラスがどんなメソッドを公開してるのかは
そのクラスの実装部分を読まないと分からないから意味なくね?
0325名無しさん@涙目です。(WiMAX) [US]
垢版 |
2018/08/22(水) 06:33:13.33ID:RuSulFDN0
C/C++に触れる何年も前から
構造化BASICとか意識してたから
クラス無くても書けなくはないけど

やっぱりあった方が楽だよ
0326名無しさん@涙目です。(東京都) [US]
垢版 |
2018/08/22(水) 06:35:13.30ID:bngZvFqQ0
カプセル化は作ってる側にとっては意味あるだろ? 利用するだけにもあるだろうが特に。



カプセル化 - Wikipedia
カプセル化(カプセルか、encapsulation)とは、オブジェクト指向を構成する概念の一つ。
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、オブジェクトの実際の型を隠蔽したりすることをいう。
0327名無しさん@涙目です。(WiMAX) [US]
垢版 |
2018/08/22(水) 06:38:05.95ID:RuSulFDN0
>>324
それはマニュアルとか仕様書から読み取るものだろ。

Win32 APIとかリファレンス読めば使い方が書いてあるけど
ソースは公開されてないだろ(一般的には)それと一緒
0328名無しさん@涙目です。(チベット自治区) [US]
垢版 |
2018/08/22(水) 06:40:15.37ID:bxJ+rsqw0
その日暮らす
0329名無しさん@涙目です。(長屋) [DE]
垢版 |
2018/08/22(水) 06:41:22.97ID:YxqNEgVI0
>>327
とある誰でも名前を知ってるところのサービスのAPIを触ったが
マニュアルが不十分で結局ソースから読み取るしか無かったわ

他のクラスのメソッドから、おそらくこちらのクラスでも同じ名前のメソッドがあるだろうって
想像して対応したり、実はちょっと名前が違ったりで大変だった
0332名無しさん@涙目です。(空) [TR]
垢版 |
2018/08/22(水) 06:52:11.69ID:DLGHeLup0
絵が描けないとゲームは何も作れん
0333名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/22(水) 06:55:04.45ID:plSLjiqB0
広大で全自由的であるメモリ空間に秩序をもたらすもの、それが言語仕様なのであり、クラスもまた然りなのである。

行くあても無くエントロピーを拡大せしめられるビット列を変数と関数で差別し、これらを自然発生的な秩序と呼んだ。

そして、どこからともなくやって来たクラスは、その秩序に対して序列と管理を要求し、さらに、その統治における監督官をやろう、と言い出した。

最初は誰しもが賛成という訳では無かったが、皆々、なんの気なしに動いているうちに、それが実は自分たちの世界に必要であり、それ無しではもはや戻れないところまで文明化が進んでしまっていることを敢えて議題に挙げるものすらいなくなってしまったのだ。
0334名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/22(水) 07:36:49.76ID:DY/XVFtP0
>>329
それはカプセル化とかオブジェクト指向とか関係なく、
そのサービスを作った連中がアホなだけ

C言語だとprintfのソースコードをいちいち見なきゃ使えないですっていっているようなもんだ
仕様見ただけでは使えないようなアホなシステム作るなやって言っとけ
0335名無しさん@涙目です。(東日本) [US]
垢版 |
2018/08/22(水) 07:49:40.42ID:NVOWYI6R0
>>332
2Dならフリー画像はいくらでもあるし、それなりの料金でイラストを書いてくれる半プロの人もたくさんいるよ
0336名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/22(水) 08:07:21.66ID:Qwisc7Jh0
>>333
そしてエンジニア達に転機が訪れる。
ビジネスだ。
秩序によって統制され始めた世界に客をという無秩序が突如現れた。
客が吐く仕様という名の炎が世界を覆い尽くす。
そしてジリジリと焼き尽くすような炎の中で育ったレッサーエンジニアが世に放たれ、世界は混沌の只中にあるのだった。
0337名無しさん@涙目です。(愛知県) [JP]
垢版 |
2018/08/22(水) 08:18:54.93ID:ERyG8OtT0
>>310
動的なメモリ割り当てがいらないならインスタンスはいらないよ
組み込みとかそういう場合が多い
C++は使えるけど、ランタイムは無いのでそもそもnewはできませんとか
0338名無しさん@涙目です。(愛知県) [JP]
垢版 |
2018/08/22(水) 08:21:53.52ID:ERyG8OtT0
>>337
あごめん、インスタンスはいらない、って表現はおかしいか
staticでないならインスタンスは必要です
メモリ上に配置しない事には使えないのだから
0339名無しさん@涙目です。(東京都) [CH]
垢版 |
2018/08/22(水) 09:46:57.31ID:xSSedmzy0
ソースコードをより読みやすく・より保守し易くする仕組み
0342名無しさん@涙目です。(catv?) [ニダ]
垢版 |
2018/08/22(水) 11:36:08.28ID:ChAwrcdi0
女がこのスレみたら全員気持ち悪!って思うだろうな
嫌われる性格を自覚しろ
0343名無しさん@涙目です。(SB-iPhone) [BE]
垢版 |
2018/08/22(水) 11:36:51.91ID:rTCmD18A0
>>324
その為にインターフェースがあるんじゃないの
0345名無しさん@涙目です。(東京都) [CN]
垢版 |
2018/08/22(水) 11:59:25.50ID:JoOeK+SF0
組み込み系で20年くらいプログラム作ってるけど、ずっとCだけで作ってる。
メーカー付属ライブラリもCで書いてあるし、
メモリ管理とハードアクセス、構造体と関数だけで十分だけどな。

でも、会社が傾いててヤバい。 こんな私でも何処か転職出来るだろうか?
0349名無しさん@涙目です。(禿) [VN]
垢版 |
2018/08/22(水) 12:05:48.64ID:3z2H+FBu0
C言語やっててOOP分からん人は、FILE*を扱う一連の標準関数について考えてみると良いよ
あれが実ファイルでもパイプでも同じように扱えるのがオブジェクト指向的なやり方
0350名無しさん@涙目です。(空) [ニダ]
垢版 |
2018/08/22(水) 12:09:38.57ID:zzMihoHM0
ソースコードを見なくて済むかどうかとoopとして優れた設計かって関係ないんじゃないか?
「ソースコードが仕様書」という考えがあるようにソースを見れば仕様が容易に把握できるというのが理想的ですらある
oopの隠蔽で大事なのは、そのオブジェクトが宣言する通りの振る舞いを約束してくれることで、
オブジェクト内部で完結すべき事情をその表面にむき出しにしない事だと思うぞ
0351名無しさん@涙目です。(catv?) [ニダ]
垢版 |
2018/08/22(水) 12:10:48.78ID:ChAwrcdi0
>>349
パイプってなに?
0352名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/22(水) 12:13:48.44ID:ASPIBEfR0
>>3
これだよなあ
俺も研修受けてた時はオブジェクト指向とか理解できなかったよ
0355名無しさん@涙目です。(茸) [FR]
垢版 |
2018/08/22(水) 12:22:07.51ID:g6NB47aF0
>>349
「FILE*をさらに抽象化してインターフェースにして、指す先が実ファイルであろうがパイプだろうが一切気にせず操作出来るようになったら素敵だと思わないか?」

こんな説明で通じるかな?
抽象概念はどうしても伝わりにくい
CとUNIXをやってる人なら、そこを説明の出発点にしてみると具体的で分かりやすいかもしれない
0356名無しさん@涙目です。(空) [GB]
垢版 |
2018/08/22(水) 12:22:44.01ID:922V2wTc0
>>351
シェルコードの流し込み実験のときに活躍するよ
0357名無しさん@涙目です。(catv?) [ニダ]
垢版 |
2018/08/22(水) 12:30:11.08ID:ChAwrcdi0
>>354
>>356
ぜんぜんわからん
grepはわかる
0358名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/22(水) 12:30:39.75ID:8JCS1IUl0
抽象化って変数の時点で既に抽象化だろ
0360名無しさん@涙目です。(京都府) [EU]
垢版 |
2018/08/22(水) 13:08:19.98ID:7UC1AfgR0
だいたいクラスって英単語の幅が広すぎなんだよな

WEBサイトで書式適用するのも「クラス」
ロープレで職業決めるときも「クラス」
プログラミングで使う目的別関数の親玉みたなのも「クラス」

しっくりくるのはRPGの職業くらい

あと分かりにくい用語が「名前空間」
空中に名前が浮かんでるシーンしか想像できない
0362名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/22(水) 14:17:03.93ID:5goOVc7H0
空間をイメージすれば良いんだぜw
メモリも空間、そこの一点を指すのがポインタ
0363名無しさん@涙目です。(空) [KR]
垢版 |
2018/08/22(水) 14:42:14.43ID:NiC8ahTa0
>>334
まぁ世界に公開するAPIならともかく、ローカルで開発するものだと結局そこまでのマニュアルを書けずに結局内部ロジック追いかけるってよくあるよな。
0365名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/22(水) 15:22:17.56ID:8JCS1IUl0
>>364
それも使い方の一つでいい
きっともっとイケてる使い方すべきなのだろうと勝手に不安に思ってはいけない
開き直ってもいけないが
提供されてる機能の使い方は自由だ
0366名無しさん@涙目です。(東京都) [JP]
垢版 |
2018/08/22(水) 15:23:11.75ID:iDr9Yt6X0
>>357
xargsとかワンライナーでググる
0367名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/22(水) 15:24:24.77ID:8JCS1IUl0
>>364
ああ間違った
クラスを名前空間として使ってるのかと思った
名前空間とクラスは違うね
0368名無しさん@涙目です。(茸) [GB]
垢版 |
2018/08/22(水) 15:25:38.75ID:7oQLAhht0
>>13
スタティックおじさん+関数ポインタが最近の流行りだからな。
0370349(禿) [ニダ]
垢版 |
2018/08/22(水) 15:49:34.43ID:W9Yo88Hb0
>>355
そうそう、そんな感じ。
っていうかもとの書き方がちと悪かったが、標準関数のFILE*は既に十分抽象化されている。
ソケットからfdopenで作り出したFILE*を与えれば、ファイルに対する入出力と同じソースコードでネットワークに対する入出力ができる。

…と思ってたが、昔の記憶なんで分からんくなってきた。正しいかな?
0372名無しさん@涙目です。(茸) [GB]
垢版 |
2018/08/22(水) 16:54:33.45ID:7oQLAhht0
S: 最初はほんの冗談のつもりでね、みんながあの本を真に受けるとは思ってもみなかったんだ。
脳みそが半分でもあれば、オブジェクト指向プログラミングが非直感的で、非論理的で、非効率なことくらいはわかるよね。

I: え?

S: それに「コードの再利用性」ときたら…。どこかの会社がコードを再利用したなんて話を聞いたことがある?

I: いや、実はないんだけども、でも…。

S: ほらね。言っておくけど、はじめの頃、努力した連中がいなかったわけではないんだ。
オレゴン州の会社――確か Mentor Graphics という名前だった――が、90年か91年頃に何もかも C++ で書き直そうとしてひどい目にあったんだ。
悪いなとは思ったけど、彼らの間違いを見ればみんな気がつくだろうと思ったんだ。

I: でも気づかなかった、というわけだね。

S: まるっきりね。
問題はね、たいていの会社は大失敗を隠そうとするし、3000万ドルもの損失を株主に説明するのは至難の業だということだ。
でも彼らが偉いのは、最終的にはなんとか動いたということだね。

I: 本当に? じゃあ、それが証拠だ、オブジェクト指向は使えるわけでしょ。

S: 使えそうなんだけどね。
実行ファイルがあまりに巨大だったんで、128MB の RAM を積んだ HP のワークステーションで読み込みに5分かかったんだ。
読み込んだら、今度は死ぬほど遅い。
実を言うと、これで策略は失敗するんじゃないか、1週間で化けの皮がはがれるんじゃないかと心配したんだけど、誰もそんなことを気にしなかったんだね。
びっくりするほど強力なマシンを Sun や HP が喜んで売ってくれて、その莫大なリソースを使って大したこともないようなプログラムを実行する、というわけだ。
0373名無しさん@涙目です。(茸) [GB]
垢版 |
2018/08/22(水) 16:55:54.80ID:7oQLAhht0
I: うん、でも C++ は基本的にはしっかりした言語だと思う。

S: それ、本気で信じてるね。
実際の C++ プロジェクトの経験はある?
どうなるかって言うとね、まず第一に、いろいろワナを仕掛けてあるから、よほど小規模なプロジェクト以外は一発では動かないようになっているんだ。

たとえば演算子のオーバーロードがそうだ。
たいていの場合、プロジェクトの終わり頃にはほとんどのモジュールで演算子をオーバーロードしている。
プログラマの連中が、トレーニングコースで教わったとおりにやらなくちゃいけないと思うからだ。
つまり、1つの演算子の持つ意味が、モジュールによってまったく異なることになる。
モジュールの数が100かそこらあるときに、これをまとめあげようとしたらどうなると思う?

データ隠蔽もあるね。
モジュール間の連繋にどこかの会社が苦労しているなんて話を聞くと、笑いを抑えられないときがあるよ。
「Synergistic」という言葉は、プロジェクト管理者の胸に刺さったナイフをグリグリ回すためだけに発明されたんじゃないかと思うな。
0374名無しさん@涙目です。(茸) [GB]
垢版 |
2018/08/22(水) 16:56:51.47ID:7oQLAhht0
S: そうでもない。選択の自由は誰にでもある。こんなに話が膨らむとは思わなかったんだ。
ま、いずれにしても、基本的に僕の策略は成功したんだ。
C++ は今や消え去りかけているけど、でもプログラマの給料は高いままだ。
特に、糞みたいな C++ コードをメンテナンスしなきゃならない哀れな連中はね。
大規模な C++ モジュールなんて、自分で書いたのでない限りメンテナンスできないことは理解してる?

I: どうして?

S: 現場から離れて長いんだな。typedef はわかるよね。

I: うん、もちろん。

S: RoofRaised って何だと思って、長い時間をかけてヘッダーファイルを調べてみたら、ただの double だった、なんてことがよくあったでしょ。
大規模なプロジェクトのすべてのクラスで暗黙の typedef を見つけ出すのにどれくらい時間がかかると思う?
0375名無しさん@涙目です。(茸) [GB]
垢版 |
2018/08/22(水) 16:58:08.74ID:7oQLAhht0
I: 策略が成功したと判断する根拠は何かな。

S: 平均的な C プロジェクトの長さをおぼえているかな。
だいたい6ヵ月だ。
家族を抱えた人間がまともな水準の暮らしを維持するには短すぎる。

で、同じプロジェクトを C++ でやったらどうなる?
教えてあげよう。
1〜2年だ。
素晴らしいね。
たった1つの判断ミスで、安定した仕事が確保されるんだよ。

それともう一つ。
大学が C を教えなくなってからずいぶんたったから、最近ではまともな C プログラマが不足しているんだ。
特に、Unix のシステムプログラミングのわかる人間がね。
もうずっと new を使っているものだから、malloc をどう使っていいかわからないし、戻り値もチェックしないんだ。
ほとんどの C++ プログラマは戻り値を捨ててしまうんだよ。
昔懐かしい -1はどこへ行ったんだろうね。
少なくともエラーが発生したことはわかったし、throw だの catch だの try だのに悩むこともなかったんだ。
0376名無しさん@涙目です。(茸) [GB]
垢版 |
2018/08/22(水) 17:00:59.97ID:7oQLAhht0
I: 悪いけど、これはとても掲載できないと思う。

S: でもこれは世紀の大スクープだよ。
僕はただ、ほかのプログラマに忘れられたくないんだ。
彼らのために僕がしたことをね。
C++ プログラマの最近の給料は知ってる?

I: 最後に聞いたところでは、本当に有能な人間の場合、1時間あたり70〜80ドルだ。

S: ほらね。
で、給料分の仕事はしているはずなんだ。僕
が C++ に仕掛けたワナを全部おぼえておくのは並大抵のことではないんだよ。
それに、さっきも言ったように、C++ プログラマというものはね、どういうわけか、どんなプロジェクトであろうと C++ のあらゆる要素を片っ端から使わなきゃいけないと信じ込んでいるんだ。
実を言うと、時々頭に来ることもあるくらいだ――僕の本来の目的にはかなうことなんだけれどね。
0377名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/22(水) 17:28:54.85ID:5goOVc7H0
それ面白いんだけどフェイクな
0380名無しさん@涙目です。(庭) [BR]
垢版 |
2018/08/22(水) 18:12:31.41ID:O31QHE8x0
一視点で全体を制御できる規模ならクラス使わない方が多分スッキリする
ただ群制御などではクラス使えないと地獄を見る
極端な例だけど、複数キャラをぶつからないように動かしたいとき、指揮官的な人がAはここに動け、Bはここ、Cは…、ってやるより、それぞれのキャラが自分で周り見てぶつからないか確認しつつ動いてくれたほうが有難い(場合が往々にしてある
0382名無しさん@涙目です。(庭) [ニダ]
垢版 |
2018/08/22(水) 18:48:07.59ID:N10ambtR0
みんな実践でどういう書き方してるか気になる。
クラスがない言語だってクラスっぽく書くのが普通じゃないのか?
最近C言語いじったときは文字列構造体1つ定義して、
char*やら長さやら文字列ハッシュ値をメンバ変数として持たせてた。
メンバ変数を直接いじるのは禁止で、連結(に伴うメモリ再確保とかも)とか比較とかは、メンバ関数相当の専用関数内で行う。
毎回引数でthisポインタ渡すようなイメージ。
0383名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/22(水) 18:58:18.56ID:DY/XVFtP0
>>382
言いたいことはわかるけど、
どうしてもそういうルールを守らない馬鹿が混ざるんで

上の方にC++の偽造コピペ貼られているけれど、
「言語仕様上、できることは何でもしてしまえ」
っていう人間はある程度混ざる
コーディング規約?何それ美味しいの?っていう人

だから言語仕様レベルで縛りを入れないとあかん
0384名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/22(水) 19:03:29.81ID:5goOVc7H0
構造体のポインタを不透過型にすればいい
メンバーに参照カウントを追加してcreate,retain,releaseで寿命を制御すれば尚可
0386名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/22(水) 19:12:24.15ID:ZBO7S0bL0
「継承」ってのが未だによくわからん。
いや、概念は分かるんだけど、使い所がわからんと言うか、一度も使ったこと無い・・・
0388名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/22(水) 19:17:31.70ID:5goOVc7H0
継承はあまり良いパターンじゃないと思うぞ
is-aよりhas-aにしたほうが良い
0390名無しさん@涙目です。(禿) [US]
垢版 |
2018/08/22(水) 19:22:03.12ID:wxBLSuxs0
俺のわかりやすいポインタ

◆ポインタがない場合の荷物配送
倉庫→俺んち→転売先

◆ポインタがある場合の荷物配送
俺→倉庫に「転売先の住所(ポイント)はここ」と教える
倉庫→転売先
0391名無しさん@涙目です。(北海道) [US]
垢版 |
2018/08/22(水) 19:23:41.14ID:OaotwKs00
>>386
MFCで言うなら

CDialog がダイアログの表示、移動、閉じるとかの基本的な動作を持つクラス

class CXXXDlg : public CDialog

で上記のダイアログの基本的な動作を持ちつつ、必要な処理を付け加えることができる
0394名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/22(水) 19:43:31.74ID:6GTWWoGu0
>>386
見積書と受注書に共通する処理はないか?
あるならそれは、個別に定義するのではなく、
じょういクラスの帳票に定義して継承すれば良いのではないか?
0395名無しさん@涙目です。(空) [ニダ]
垢版 |
2018/08/22(水) 19:50:25.71ID:lOdPOV9x0
>>386
聖闘士クラスってのがあって、


ブロンズやシルバー、ゴールドは所詮そこから派生したもの。なら聖闘士クラスを継承して、ゴールド聖闘士クラス作ればいいじゃん。

っていうこと
0396名無しさん@涙目です。(庭) [CN]
垢版 |
2018/08/22(水) 20:03:40.47ID:MstfEzYO0
>>362
そもそもCのポインタの難所とされるのは文法のせいだから


int const * const * p;
const int * const p;
const int * const * const p;

みたいなぱっと見では修飾関係の謎なやつら
0398名無しさん@涙目です。(やわらか銀行) [ニダ]
垢版 |
2018/08/22(水) 21:20:30.52ID:yhw5XRvm0
>>382
そうやって作ったルールは年月とともに忘れ去られ、ドキュメントも失われ、メンバーも入れ代わり、その場しのぎで拡張した機能のせいでソースコードが魑魅魍魎になる。
そういうプロジェクトを幾つも経験すると、結局はCの基本機能やライブラリででできることは素直にそれを使うべきと考えるようになる。
0399名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/22(水) 22:11:55.54ID:8JCS1IUl0
>>386
そりゃそうだ
それは実用の観点から考案や実装されてんだから
机上で学ぶ時には仕組みを理解できても有用性なんて分からなくて当たり前
だけどこの手の職種は性格悪い奴が多いから単なる経験値の違いでマウント取って悦に入る
それを初学者がプレッシャーに感じてるだけ
複数人、大規模、継続的な運用、公に公開とかを経験するうちに理解するから安心しろ
0400名無しさん@涙目です。(東京都) [KR]
垢版 |
2018/08/22(水) 22:33:53.88ID:pfaks+9e0
>>396
それ分けわからんよなあ
学習サイト血眼で何度も読んでようやく理解って感じだったわ
でもC++でそれをしばらく使わないと忘れてしまうという

えーと、この場合はポインタ(アドレス)が定数で、ポインタのアドレスに
書き込んである値は定数じゃなくて、この場合は値も定数で…
…そして、頭爆発寸前という
0402名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/22(水) 22:42:24.69ID:DY/XVFtP0
C++なんてのは、プログラマの脳を破壊する黒魔術になっているからあんなものは捨てろ。
機能がたくさんあればいいってもんじゃねーんだよ。

やろうと思えば+演算子で引き算もできてしまうような言語など要らぬ!
0403名無しさん@涙目です。(東京都) [KR]
垢版 |
2018/08/22(水) 22:53:55.55ID:pfaks+9e0
>>402
C++は自由過ぎてカオスなんだよな

もっとカオスがC++/CLI、ヒープ領域がアンマネージドとマネージドに分かれているという
アンマネージドに確保する場合はnew、マネージドの場合はgcnewと使い分ける
0404名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/22(水) 23:19:30.04ID:YOVDE6/i0
オブジェクト志向は良いんだけど、
継承(しすぎ)はあんまりオススメしない。
作りやすい(同じコードを2回書かなくて済む)が
読みにくい(どのコードがどの順番で実行されるか
直感的にわかりにくい)。
結果、保守性が下がる。

誰かが書いたコードを別の誰かがメンテする。
その前提で作ると、多重継承とかやりすぎない
方がいい。
わかりさすさは冗長さより優先すべき。
0408名無しさん@涙目です。(神奈川県) [JP]
垢版 |
2018/08/23(木) 06:35:23.35ID:77mmYEBL0
>>407
要は

人間クラス
身長プロパティ
体重プロパティ
年齢プロパティ
性別プロパティ
筋力プロパティ
食べるメソッド
寝るメソッド
走るメソッド
跳ぶメソッド
うんこをするメソッド
etc.
クラス終わり

聖闘士クラス
人間クラスを継承
クロス階級プロパティ
星座プロパティ
コスモプロパティ
コスモを燃やすメソッド
コスモを感じるメソッド
etc.
クラス終わり

こんな感じやろか?
0410名無しさん@涙目です。(dion軍) [US]
垢版 |
2018/08/23(木) 10:11:15.68ID:Qe838kFj0
仕事で他人の書いたコードをたくさん見るが、クラスにしてかえって読みにくくなってしまってるのはよく見る。
センスの良い人が書いたのはそんなこと無いけど
0411名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/23(木) 11:06:29.72ID:/qA3cKqq0
>>407
キャラクタークラスが人間インターフェースと聖闘士インターフェースのプロパティを持つんじゃね

キャラクタークラスのインスタンスとして星矢

星矢is人間 且つ 星矢is聖闘士

聖闘士インターフェースを持つ抽象クラスを継承して
ブロンズ、シルバー、ゴールドを作る

星矢からブロンズやゴールドのクラス
から作ったインスタンスを
星矢が持っているプロパティから参照すれば
星矢はブロンズにもゴールドにもなれる
0414名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/23(木) 11:27:33.80ID:c0QG4JBc0
キャラクタークラスから犬インターフェースを参照すれば
犬の聖闘士キャラができる
0415名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/23(木) 11:36:07.99ID:c0QG4JBc0
犬キャラの名前は銀
0417名無しさん@涙目です。(京都府) [EU]
垢版 |
2018/08/23(木) 12:13:09.85ID:+LLKISFF0
>>371
名前空間はクラスの親玉って思ってる

関数や変数を複数まとめたクラスってのあって

そのクラスをさらにジャンル別にまとめたところの総元締めが名前空間
0421名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/23(木) 15:24:56.49ID:X4eWU6R+0
名前空間がかなり柔軟な言語ってある?

Pythonの引数名指定のメソッド呼び出しの、引数名を文字列で動的に変えれたり、クラス名の文字列の一部を文字列のリストで動的にしたり。
0422名無しさん@涙目です。(大阪府) [DE]
垢版 |
2018/08/23(木) 15:49:19.45ID:syAj3CEW0
純粋なオブジェクト志向で書こうとすると糞コードを生産してしまう残念プログラマだが、Classは必要だわ。
メソッドだけだとごちゃごちゃになる。部屋の整理を考えてみろ。小物入れだけじゃ部屋は整理整頓できん。
あ、関数型言語は知りません。
0424名無しさん@涙目です。(禿) [DE]
垢版 |
2018/08/23(木) 15:54:09.45ID:kAVUB+sE0
時代遅れのオブジェクト指向おじさん「クラスは必要」
0425名無しさん@涙目です。(禿) [DE]
垢版 |
2018/08/23(木) 15:57:50.81ID:kAVUB+sE0
オブジェクト指向の概念を産み出したアラン・ケイはC++はオブジェクト指向では無い!と断言してたな
0426名無しさん@涙目です。(大阪府) [GB]
垢版 |
2018/08/23(木) 16:03:56.93ID:ASH3bUs10
クラスなんていらん。
C言語ににメンバー関数とコンストラクタとデストラクタとインヘリタンスとポリフォーミズムとオーバーライドとオーバーロードとエクセプションとテンプレートとラムダさえ追加してくれるだけでええ。
0433名無しさん@涙目です。(禿) [DE]
垢版 |
2018/08/23(木) 18:04:40.68ID:kAVUB+sE0
>>410
今もてはやされてる関数型プログラミングはそのオブジェクト指向プログラミングの欠点を克服するためのものなんだよね
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況