ねねっちと一緒にプログラムを勉強するスレ第2話 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/03/18(土) 13:03:05.05ID:KGlkA67c
ぬるぽって何?
2017/03/18(土) 23:36:20.62ID:Z1poHEqC
今日も一日ガッんばるぞい
2017/03/19(日) 00:18:40.43ID:cSt3/uVu
>>1
れーがい。
4デフォルトの名無しさん
垢版 |
2017/03/19(日) 00:29:34.64ID:dpFhURxm
2ch誕生時ぬるぽ誕生時はねねっちの誕生前史…でも無いか…?
2017/03/19(日) 07:19:32.95ID:lvnI99G6
前スレ

ねねっちと一緒にプログラムを勉強するスレ [無断転載禁止]??2ch.net
http://echo.2ch.net/test/read.cgi/tech/1485415033/
2017/03/19(日) 13:14:33.69ID:3j9rxESx
馬鹿が馬鹿に向けてコーチしてるから、いつまでたっても終わらんな

馬鹿は馬鹿の気持ちがわかるから教師に向いてるとかいうけど
まともな言語使役能力がない馬鹿に教師が務まるわけねえだろバーカ
自分の馬鹿さ加減を正当化する以前に相手の立場、聞き手の立場になってライティングする技術を学べよバーカ
2017/03/19(日) 13:28:09.26ID:GVCm3UtV
馬鹿が大好きな馬鹿
2017/03/19(日) 13:35:24.13ID:MQWsDRoG
>>6
コーチ任せた
2017/03/19(日) 15:26:53.79ID:DJjYEA61
>>6
分からないことがあるから聞いてもいいかな?
2017/03/19(日) 16:55:32.81ID:MC3Ph5Rd
とりあえずどんなに小規模でもいいからアプリケーション一つ作ってみれば何かしら見えるようになる気はするけど

結局プログラミングって技術だから必要になってから学ぶ事柄の方が身につくし
どんなに小規模でもソフトウェア一本作るなら要求されることは多い
2017/03/19(日) 18:32:39.25ID:cSt3/uVu
ポインタ、クラスという2つの大きなカベをぬーぶくんは乗り越えることが出来るかな?
特にポインタはかなり難しい。
2017/03/19(日) 19:42:24.52ID:w6cUNJco
言語1つ習得するのにいつまで掛かっとんじゃい!
2017/03/19(日) 20:15:51.06ID:sUTtusgG
逆に言語を完璧にマスターしようとしたら相当の時間は必要だと思うけど

例えばJavaに限ってもEffecive Javaの内容を実践できるようになるレベルまでたどり着くだけでも相当な時間がいると思う
2017/03/19(日) 21:07:09.25ID:3j9rxESx
まずは五目並べとかを目標にするべきだとおもうの
五目ならべとかくそつまんねえけど、最低限のゲームループははいってるわけでね
おれも大学時代Cでかかされたけど、あれはマジ難しい
インターフェース作るので精一杯で、CPUのAIはランダムに石をおくぐらいしかできんかったわ
2017/03/19(日) 23:12:11.49ID:9swj1Ik4
>>11
お前は何がどこまでできるようになったんだ?
全然プログラミングやってないようだが
2017/03/20(月) 00:22:53.87ID:5XocBJvS
>>15
スッキリわかるJavaの入門編が終わったので、実践編に入ったのですが、難しくてつっかえつっかえです。
例えばオブジェクトクラスに備わっているメソッドのオーバーライドとかで苦戦してます。
あれ必ずやるんですか?しんどいです…。
2017/03/20(月) 01:31:41.05ID:GbEM94zj
まずjavaは難しいからね
継承を中心としたライブラリがあるかと思えば、インターフェースを中心としたライブラリもある

継承を選択すると、データ型に階層構造ができるが、たいてい継承というのは、ある特定の見方で行う分類学みたいなもんだから、この分類に失敗した時点で設計が汚くなる

例えば鳥はflyメソッドを実装すべきだが、飛べない鳥はどうする、swimメソッドを持つ鳥持たない鳥があると思えば哺乳類でも歩けないクジラみたいなのもいる

クラスを動物で例えるのはよくないがイレギュラーを綺麗に処理できるような美しい分類などほぼほぼ存在しない

君はおそらく継承を使った設計などしないし、基本的にすべきじゃない、でも継承を使わないといけないライブラリもあるからね、そういうときはどうするんだろ、
真面目に一つずつオーバーライド実装するかproxyパターンとか使うのかね
結局動的言語のほうが楽なんだよそういうのはJavaだけ勉強してもわからないことだ、もしJavaだけで例えばリフレクションの概念を正確に理解できたとしたらたいしたもんだ、λ式も同じくね
2017/03/20(月) 08:01:55.59ID:8oBPBpt5
>>16
>あれ必ずやるんですか?しんどいです…。
書籍に必ずやりますって買いてあったか?
おまえプログラムできても、プログラマに向いてないからやめたほうがいいよ
周りが迷惑するわ
2017/03/20(月) 16:56:55.64ID:GbEM94zj
静的でもっさいオブジェクト指向言語ってのはそうやって、やれインターフェースがどうだの、やれ継承がどうだのどうでもいいことにいちいち頭を悩ます必要があるからな

正直オブジェクト指向の基本理念は大方失敗してるからそこらへんの技術や思想は無視した方がいい

あれがめんどいと思うなら、動的言語をおすすめする、正直個人でのプログラムにおいてオブジェクト指向はそんなに役に立たない

カプセル化がどうだのいう輩は、ほとんどの言語のライブラリが、オブジェクト指向ライブラリよりもはるかに高いレベルでカプセル化を実現していることに気付かないんだよ
2017/03/20(月) 20:07:41.05ID:ivsP1GF2
言語ひとつ覚えるのにいつまでかかっとんじゃい…うん(´・ω・`)

何かひとつアプリケーションを作れとのことなんで
五目並べはちょっとハードル高いけど
簡単なインベーダーを作ってみようと思う
でも画像をどうやって作ろうか悩む
2017/03/21(火) 00:09:43.10ID:LsnLNCD2
>>17
横だけど、それHead First のデザインパターンの序章である奴だよね。
飛べない鳥とか振る舞いのインターフェースと実装をすれば対応出来る奴じゃん。
オブジェクト指向の基本理念は失敗とかディスってる様だけど、オブジェクト指向を理解出来てない馬鹿がオブジェクト指向を語るなよ。
2017/03/21(火) 00:18:59.12ID:RJ2XVIqX
じゃあその通りに実装すればいいと思うよ

実際飛べない鳥のサンプルコード書いてみ
それがオブジェクト指向のメリットなんだから、喜んで書けるよな
2017/03/21(火) 07:15:17.71ID:LsnLNCD2
>>22
以下になるけど、Strategyで実装すれば書けるだろ。

package test;
class MiniDuckSimulator {
public static void main(String[] args) {
Duck model = new ModelDuck();
model.performFly();
}
}
class ModelDuck extends Duck {
public ModelDuck() {
flyBehavior = new FlyNoWay();
}
}
abstract class Duck {
FlyBehavior flyBehavior;
public Duck() {
}
public void performFly() {
flyBehavior.fly();
}
}
24デフォルトの名無しさん
垢版 |
2017/03/21(火) 07:16:06.90ID:LsnLNCD2
書き込み制限が出た為、分割。

interface FlyBehavior {
public void fly();
}
class FlyNoWay implements FlyBehavior {
public void fly() {
System.out.println("I can't fly");
}
}
class FlyWithWings implements FlyBehavior {
public void fly() {
System.out.println("I'm flying!!");
}
}
2017/03/21(火) 23:08:09.09ID:RJ2XVIqX
え?このプログラムがオブジェクト指向なの?
俺にはこの設計が理解できないなあ

例えば飛べない鳥duckはflyメソッドを持ってはいけないという前提でどうクラス構成するかって話なんだけど、
飛べない鳥duckがそもそもflyを持っていいという設計思想を踏襲するなら、素直にflyメソッドをもつabstract birdクラスまたはflyableインタフェースをDuckは継承または実装し、flyをoverrideあるいはimplementにすればいいと思うんだけど

ストラテジーパターンと言い張ってるけどストラテジーパターンではないよね、それはブリッジパターンだよ
素直にFlyableインタフェースを使ってfly可能なものに対してはflyableインタフェースを素直に実装するのがストラテジーパターンでしょ、間にコンポジションは挟まないよ

という無駄な分類学とデザパタ議論が栄えるだけなのがオブジェクト指向
ここまで一切どのようにエレガントに鳥を飛ばせるかなんて議論なかったでしょ

こういう複雑なだけでくだらない議論に巻き込まれないためにも、動的言語及び関数型言語を勉強する価値がある
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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