1 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:08:42.31 ID:pIEuB3Z3.net] オブジェクト指向に限らず、理由もなく小さく細分化させるのはアホ オブジェクト指向は役割でオブジェクトに分割するものであって 処理で分割するものではない。
809 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:13:18.02 ID:gm11/fKn.net] オブジェクト指向が神の行いなのだから、凡人においそれと真似出来るワケが無い。 だから凡人のやるオブジェクト指向が問題を山の様に抱えるのは当然なのだよ。
810 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:19:24.81 ID:wZ7jqyPr.net] >>771 で「不具合が一件もなければ誰も設計なんてせんもん」って言ったのはどういう意味? こんな意味不明なこと言ってそれを指摘されると「分からないのがおかしい!!!」って言ってるのは周りから見てると笑っちゃうぞ。 それで「勝った勝った!」って騒ぐんだろw ちゃんと議論したいなら質問には答えろ。 「僕ちゃんの言ってることが正ちいんでちゅ」ってやりたいならここに書き込むなよ。
811 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:23:49.00 ID:wZ7jqyPr.net] >>779 それまで「OOPはテストしずらい」と言ってたくせに 「関数型もフレームワークができればOOPに追いつく」と言い出す。 言ってることが支離滅裂。 ロジカルバグ量産してんぞ。
812 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:15:20.56 ID:NYG4EICE.net] 大事なのは、自然の生態系を模したところで、それが便利かどうかは場合によるという点 ここが分かっていないとダメ インターネットは沢山の機器が生態系のように協調して、上手く動いている うむ、そうかもしれない しかし、1+1のような単純明快な計算に生態系がどうとか、そういう壮大さは必要ではない 小学生に1+1を教えるときに生態系の話をしたりしないし 大学の数学科でまじめに1+1を考える場合も、突然生態系の話になったりはしない まさにここが重要で スケールだとか、粒度だとか、そういう問題がある プログラムは最終的に物理的なコンピュータで動かすから 一台のコンピュータのメモリや実行速度などの影響を受けるし プログラミングという作業も、一人が受け持つに相応しい作業量というものがあるから CADで図面を引き延ばすかのように、簡単にスケールしたりはしない 必ず普遍的な物理世界の係数が絡んでくる だから大きなもので上手く出来たからと言って、小さなものでもうまくいくとは限らない 軽トラを図面上でそのまま拡大しても大型ダンプカーにならないし、逆もまたしかり だから、全てを同じ方法でする必要はない、偏る必要もない、とこのスレでさんざん言っているのだ 絶えずスケールを意識する必要がある
813 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:30:45.56 ID:gm11/fKn.net] 世界はフラクタルなのだから、物の大小によって見方を変える必要なんか無いよ? 変える必要があるのは、手に持っている定規の方。 顕微鏡の中を見るのに1メートル定規じゃ測れないだろ?
814 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:30:53.14 ID:NYG4EICE.net] 文章から文字列を検索したいとして、頭から順番にマッチするか調べていくシンプルなアルゴリズムにしたとしよう 実装が簡単だしバグる可能性が低く、良い選択かもしれない 十分なレスポンスも得られるだろうね だけど、同じアルゴリズムでGoogleのWeb検索と同じものを作ろうとするのは 誰がどう考えてもバカげている 永遠に等しい時間を待たされるので誰も使わない 小さな規模で上手くいったからと言って、大きな規模で上手くいくかはわからないということ この場合であれば、人間の待てる時間は決まっていて、それは検索規模と一緒にスケールしないからダメ、となる これこそまさにエンジニアリングの要 だから、いくらインターネットを持ち出して、生態系の様に振る舞っていて、上手くいっているといったところで 我々の書くプログラムは、インターネットと比べてあまりにも規模が小さいので、スケールが全然合わない インターネットが必ずしも我々の書くプログラムの参考になるとは限らない もちろん参考になる部分もあるが
815 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:34:28.28 ID:nXPTtP+t.net] KMPを並列で走らせてるだけじゃないの?(すっとぼけ)
816 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:34:54.36 ID:DfsgEpY7.net] 将棋作ってるヤツはどこいった?
817 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:35:27.46 ID:NYG4EICE.net] よくある、もしバッタが人間のサイズだったら、とかいうのは馬鹿げているという事
818 名前:oッタをそのまま拡大したところで、バッタを取り巻く世界の物理係数はそのままだから上手くスケールしない バッタはバッタのサイズだから、あれだけ跳躍するのだ [] [ここ壊れてます]
819 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:37:24.23 ID:gm11/fKn.net] 組み立てるレゴブロックの大きさを変えないからそうなるんだよ。 普通のレゴブロックで実物大の蟻は作れないけど、ディテールを表せる十分に小さなレゴブロックを使えば、上手くい。
820 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:41:39.96 ID:gm11/fKn.net] 設計なら粒度の取り方の問題に言い換えればいい。
821 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:41:58.61 ID:wZ7jqyPr.net] やっぱり具体的な問題を想定しないと、無益な空想を垂れ流す無意味で気持ち悪いスレになってしまうな。 「Cはメモリリークが起きない」と思ってる知識0の奴が長文を延々と吐き出してるようじゃ…。
822 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:44:59.90 ID:axhFPoUK.net] なんか前提をずらしながら良くわからん事書いてるな
823 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:46:42.86 ID:DfsgEpY7.net] >>802 十分に小さなレゴブロックにするとプラスチックのままだとブロックの側面が薄くなりすぎて、ブロック同士をはめ込んだ際に割れるかもしれない シリコンなど柔軟性がある素材に変更しないとうまくいかないかもしれないってのが、今言われてるスケールを考えるって事でしょ
824 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 13:04:30.27 ID:gm11/fKn.net] >>806 ブロックとして使うプログラムは、実は物凄く小さい。 幾ら積み上げてもバッタはおろかアメーバさえ形作るのが大変。 そのくらい小さい。 いま自分たちが試みているのは、そのスケールの遥かに違う物を、 いかに上手く作るかと言う方法。 いきなり埋めていくんじゃ無くて、何段階にも階層を分けて効率良く模倣する方がいいだろ?
825 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 13:30:19.95 ID:NYG4EICE.net] しかし実際に実行するのは物理的なコンピュータだし 書くのは人間であるから人一人がする作業量も相応しくなければならない という風に、ロジック以外の現実的な物理係数があり プログラムをCADみたいにグニャ〜んと引き延ばせたとしても それを取り巻く周りまで一緒にスケールしないから上手くいくとは限らない 小さなものには小さなものの理屈があって 大きなものには大きなものの理屈がある 町の商店街に行って、小さな八百屋に向かって、イオンと全く同じことをすればもっと流行るよ、と言えば殴られる もしくは、イオンのシステムをそのまま八百屋にもっていっても、規模が違いすぎて要らないって言われる だ・か・ら、エンジニアリングが必要で、それが仕事というもの ある程度大きな尺度であれば、生態系のような作りは上手くいくように思うし 一方で、1+1のようなプリミティブなものに、生態系のような大げさな仕組みは無駄であり、要らないという直感もある 全てを同じ考え方でする必要はないし、統一する必要もない
826 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 13:35:12.26 ID:No96cPk6.net] >>794 だからさ どう組んでも不具合が一件も出ないような現場なら設計なんて時間の無駄じゃん そんな現場がもしこの世にあったら設計をするなんて発想が出ないわけ つまり設計ってのは不具合を出さないためにやるわけよ
827 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 13:40:44.85 ID:axhFPoUK.net] ドキュメントを残すとか、設計フェーズとかそういう話? 日曜プログラミングだろうとREPLのお試しだろうと、 頭の中には必ず設計があるし、それは成果のコードの中に表れると思うけど
828 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 13:51:57.70 ID:WYjIc07a.net] >>796 > 大事なのは、自然の生態系を模したところで、それが便利かどうかは場合によるという点 発案者のアラン・ケイも大きく複雑なシステムでこそ当てはまる比喩だと言及してますし > In short, you can make something as simple as a clock and fix it when it breaks. > But large systems have to be negotiated with, both when they are grown, and when > they are changed. This is more biological in nature, and large systems act more > like ecologies than like simple gear meshing mechanisms. squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf そこをあえて 1+1 とか単純ものに落とし込むのは、Smalltalk などで 1+1 もメッセージで 文法上扱われていることへの批判でしょうか? ただケイは 1+1(同文書では 3+4 等)もメッセージにするのは、文法やルールを単純にすることで 子供や非プログラマーの理解と着想を助ける配慮だとは言っていても、 こういうところでも動的遅延結合性が活きるとあえては主張していないですよね?
829 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 14:18:34.52 ID:gm11/fKn.net] 地図ひとつ取ってみても、スケールで表示する対象を切り分けてる。 世界地図見て俺の家が載ってないとか、町内会の道路地図見てアメリカはどこだとか、そんな屁理屈言ってるようなもんだよ。 規模が違えば対象の粒度も変わるんだから、登場する概念だって変わって当たり前。
830 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 14:24:26.11 ID:gm11/fKn.net] でも基本概念として、どのスケールでもオブジェクト指向で考える事に何の問題があるのか? 対象の塊の大きさに見合う分け方を行えばいいんだ。
831 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 14:31:34.25 ID:gm11/fKn.net] そしてそのひとつひとつの中身もまたオブジェクト指向で作るんだ。 当然、またその中身もな、またまたその中身も
832 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 14:42:15.44 ID:axhFPoUK.net] 何らかの粒度で切り分けて管理しやすくするなんて、みんなが普通にやってる事じゃん >>783 の理想装置云々はわからんが
833 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 14:45:42.00 ID:2wZrFkOW.net] 曼荼羅w フラクタル図形ww 無限地獄www
834 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 15:29:14.94 ID:gm11/fKn.net] 残念賞 無限地獄にはなら無いんだなぁ 最後は言語の基本動作単位になって、 たいていはそこまで細かくする前に 標準クラスライブラリに落ち着くんだから。
835 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 17:42:28.50 ID:wZ7jqyPr.net] >>809 設計は構築するものを明確にするためのもの。 「設計ってのは不具合を出さないためにやる」ものじゃない。
836 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 17:54:39.21 ID:opxniSDO.net] コーディングこそが設計
837 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:07:45.74 ID:80JpygVn.net] >>818 それは要件定義で終わってるだろ 設計はどうやって作るか? の話だよ バグらないならさっさと作っちゃえばいい
838 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:21:24.71 ID:Ic9MVfcw.net] (何言ってんだこの人…)
839 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:32:48.37 ID:80JpygVn.net] >>821 だから問題が出ないなら 設計はいらないんだよ さっさと作れよw 元の話題に戻ると テストがやりにくいってのは設計の目的から逆行してるよね って話だったわけよ わかった?
840 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:35:17.52 ID:BAxJi/a8.net] (もうそっとしとこう)
841 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:35:40.04 ID:wZ7jqyPr.net] >>820 要件定義は「こういうことが要求されている」 設計は「それを実現するにはこういうものを作ろう」 何を作るか決まってないのにどうやって作るんだ?
842 名前:デフォルトの名無しさん [2016/06/07(火) 19:36:06.85 ID:DORepsm7.net] 何を言ってるんだこいつは
843 名前:デフォルトの名無しさん [2016/06/07(火) 19:37:26.85 ID:DORepsm7.net] >>822 ね
844 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:40:33.63 ID:wZ7jqyPr.net] >>826 え? ID:80JpygVnとID:DORepsm7は同一人物だろ? 設計の意味すら知らない奴が二人もいるとは信じられないんだが。
845 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:44:05.34 ID:bRI80mcg.net] >>827 >>825 のレス先が>>822 だってことだろ
846 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:45:07.81 ID:rGbZ9k3R.net] あーいるいる、設計もろくにせんとロクでもないもの作って動くんだからいいだろって奴なw 大抵リファクタリングやメンテナンスで周りがえらい目に合う流れだわ
847 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:45:45.60 ID:wZ7jqyPr.net] >>828 あー、そういうことね。 設計の意味をここまでを知らない奴が二人もいるはずないもんなw
848 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:51:02.06 ID:nzxsUsEV.net] >>822 そもそもprivateのテストは言うほどめんどくさくない
849 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:53:11.55 ID:Gat57in+.net] そしてJava屋による最高の設計がこれである。 > FizzBuzzEnterpriseEdition > https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition > echo.2ch.net/test/read.cgi/tech/1463663267/629
850 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 19:54:27.56 ID:80JpygVn.net] >>824 何を作るかは決まってるだろw 要件を定義したんだぜw これで何を作るか決まってなかったらまずいだろw どうやって作るかが決まってないんだがこれは問題が起きないことが確定してるなら 別にいいだろ ってのが大元の話題な
851 名前:デフォルトの名無しさん [2016/06/07(火) 19:58:49.06 ID:hXIJefGv.net] >>832 すごい
852 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 20:02:58.68 ID:wZ7jqyPr.net] >>833 ここまでひどいのはさすがに釣りだろ?
853 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 20:03:54.27 ID:nzxsUsEV.net] 要件と実装の違いも解らんのかそりゃOOもわからんわ
854 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 20:04:05.41 ID:Gat57in+.net] >>800 ID:wZ7jqyPr
855 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 21:31:26.89 ID:Gat57in+.net] >>796 他 ID:NYG4EICE 意見の内容については同意。 そこでもう一歩掘り下げることにしよう。 >>781 に対抗するなら、 ・関数型が本当に糞ならば、とっくに死滅していてもおかしくないはずだ。 となる。俺はとっくに死滅したと思っていたが、どうやらそうではないらしい。 そこで俺なりに調査した結果、やはりどうにも実用性が無く、流行っているのは意識高い系()の中だけという結論に達した。 その分析だが、 > 文章から文字列を検索したいとして、頭から順番にマッチするか調べていくシンプルなアルゴリズムにしたとしよう > 実装が簡単だしバグる可能性が低く、良い選択かもしれない (>>796 ) どうやら関数型ではこれを「正義」として認められるようだ。 そこでは「定義」を出来るだけシンプルに記述することが「正義」であり、必要のない内部状態等の管理は「悪」のようだ。 一方、Cにおいては「速度」こそが正義であり、上記は初期実装としては認められるが、少しでももたつくようなら即差し替えられる。 場合によっては、最初からクイックソート等の「最速」アルゴリズムでの実装を義務づけられる。 もちろん速くするためには内部状態の管理も行う。 (関数型の連中は速度に問題があった時でも記述を調整して改善することをしない) だから関数型については、 ・自分でアルゴリズムを記述できない馬鹿(C的世界での落伍者)が、馬鹿にされない世界を見つけて飛びついた ように見える。実際の所、関数型の処理速度でいいのなら、挙げられた例のような初期実装でよく、 読みやすくてテストもしやすい記述は手続き型でも難なく実装できるからだ。 ただし、Cはテストのしやすさについては1mmも考慮されていない。 関数型は結果論でしかないが、学術的に純粋関数を追い求めた結果、確かにテストはしやすい。 この「テストしやすい記述」については学ぶ意味はある。 という感じなんだが、君はどう思う?
856 名前:838 mailto:sage [2016/06/07(火) 21:33:35.38 ID:Gat57in+.net] すまん、上記引用部分 × >>796 ○ >>798
857 名前:デフォルトの名無しさん [2016/06/07(火) 21:53:56.90 ID:wZ7jqyPr.net] >>838 >>795 は反論できないからスルー?w 関数型が内部状態の持つことに反対しているというのも不正確。 関数内部で情報を持っても問題ない。 他との干渉の発生を防止しようとしているだけ。
858 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 21:57:00.87 ID:wZ7jqyPr.net] >>776 で>>771 のバカ意見に同意しちゃってるしw 根本的な部分で分かってないのにどうしてそんな偉そうに書き込めるのがすごい自信過剰だと思う。
859 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 00:48:01.87 ID:lK4Ar35I.net] >>838 色々突っ込みどころがありすぎるが >そこで俺なりに調査した結果、やはりどうにも実用性が無く、流行っているのは意識高い系()の中だけという結論に達した。 twitterはScalaだけど 実用性ないのか Ocamlなんて海外じゃよく金融系に使われてるよね erlangなんてめっちゃ実用性ありますが(Amazon, Facebook,lineと枚挙に暇がない) >(関数型の連中は速度に問題があった時でも記述を調整して改善することをしない) 遅けりゃ普通に調整するよ haskellだって必要があれば普通にポインタ使う(よく勘違いされるがhaskellは再代入ができる) >・自分でアルゴリズムを記述できない馬鹿(C的世界での落伍者)が、馬鹿にされない世界を見つけて飛びついた 一昔前なら関数型言語を好んで使う層ならcで実装系くらい普通に書くでしょ
860 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 01:00:08.53 ID:lK4Ar35I.net] >あれは本質的に遅いから、今後とも改善しないと思うし 結構 意味不明だな haskellがcよりも遅いのはruntimeがあるからでvm上で動く手続き型言語と比べて遅いわけでもない
861 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 12:30:11.52 ID:p3PUcfdu.net] 要件とプログラミングの両方に精通した人達が、新しいアイデアを、鋭く素早く正確に反映していきたい。 そんな環境なら試しても良いのかもね 人売りから安く買い叩いた外注さんに、安いシングルモニタのPCで開発してもらう、 そんな従来の開発スタイルには関数型はマッチしないと思う
862 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 12:36:56.09 ID:RA0DudJa.net] 自分でアイデアを構築してアプリケーションを構築したい人のために関数型はそんざいする OOのライブラリはうっとうしい 場合によってはライブラリの都合でデータ構造が拘束されることもあるだろう まさしく依存性逆転の法則 使えないライブラリにひっぱられてドメインロジックが腐りはじめる
863 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 12:39:40.20 ID:RA0DudJa.net] 関数型はモジュールを分割すること以上にもじゅーるそのものが短くあることを手助けしてくれる 一方オブジェクト指向は外部からのふるまいが同じでさえあればよいというかんがえにある だから図体ばかりが大きくなる
864 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 13:02:15.13 ID:csf3E7O1.net] 関数型と言っても純粋でなければオブジェクト指向と相性悪いってことは無いよ。OCamlもScalaもF#もオブジェクト指向を使える。 特にOCamlに関しては、型システムに上手くOOを組み込んでて面白い。 大抵の場合はオブジェクト無しで済むから、逆に本当にOOが必要な場合が分かる。
865 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 13:30:31.03 ID:lK4Ar35I.net] Scalaはオブジェクト指向を使える。 というかオブジェクト指向の上に関数型の機能をエミューレートしてる感じかな 関数はFunctionN traitのインスタンスで パターンマッチはunapplyメソッド 代数的データ型はsealedとcase classで実現 型クラスはimplicit prameterなど
866 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 13:37:11.32 ID:qITYI7a9.net] オブジェクト指向初心者なんだが教えてほしい var list = []; list.push("hoge"); ってコードについてなんだが、これは変数listは初期化時点で配列オブジェクトの仲間になってるってことでいい? だからメソッドである.push()にアクセスできてるってこと?
867 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 13:52:12.06 ID:lK4Ar35I.net] >>849 javascriptかな? []が配列オブジェクトでlistに代入されてるって意味ならその理解で正しいと思うよ []というリテラルを使ってるからわかりにくかもしれないけど var list = new Array(); と意味は同じだよ
868 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 14:10:04.42 ID:qITYI7a9.net] >>850 なるほどそれで変数の型ごとに汎用性のあるメソッドが作れるのね Array.prototype.isover10 = function(){ ..... } で配列の要素が10以上の判定ができんのか サンクス
869 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 17:59:49.81 ID:mR1lO0J0.net] 設計スレでコーディングの話はするなよw
870 名前:デフォルトの名無しさん mailto:!sage [2016/06/08(水) 18:21:27.49 ID:knHwmdZY.net] 他のスレだったら間違えなくスレチ氏ねで追い出されていただろうねw
871 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:26:15.82 ID:xb5A0XRK.net] 設計と関係ない話がずっと続いているからしょうがないw
872 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:37:23.97 ID:mR1lO0J0.net] あははは、本当だ。 延々と実行速度がどうのとかやってらw
873 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:44:21.17 ID:xb5A0XRK.net] レゴと生態系の話とかもなw
874 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:54:42.30 ID:mR1lO0J0.net] 抽象化なんだからそれは避けて通れまいて
875 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:58:16.48 ID:lZ35IkHR.net] >>855 散々ウンチクタレて遅かったら笑えるな
876 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 19:11:09.85 ID:mR1lO0J0.net] 設計が終わらなくて納品出来ないよりマシだろ。 遅いのなら直し様もあるが、物が無けりゃ何も始まらない。
877 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 10:58:52.98 ID:LmdEjfia.net] まともにこーでぃんぐできないうんkが設計を語る
878 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 11:02:43.62 ID:8G0UYiga.net] 設計スレでコーディング語るのはおかしいと思わんかね?
879 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 11:19:46.27 ID:k9Pkeb8s.net] 設計にコーディング能力が必要か否かという話だから全然おかしくない
880 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 11:31:26.43 ID:faqsfj23.net] 実装を考慮するのはせいぜいデザインパターンまでで、 それすら実装者に無駄に足かせを付けるだけの愚行だがな。
881 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 13:00:58.15 ID:G4u6WZVB.net] >>861 コーディングこそが設計
882 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 13:22:05.79 ID:bsniAtVU.net] それでは、設計で使っているツールやサービスとかってあるのかね?
883 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 13:35:49.64 ID:8G0UYiga.net] ツールはastahとか サービスはどういう意味だろ?
884 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 13:36:55.42 ID:A1Kz5VJO.net] 「設計」がフェーズやドキュメントの残し方の話なら、社風やお客との関係や炎上具合で色々変わるよね
885 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 14:03:40.08 ID:B7MbAcn5.net] >>864 あるお方もそれを主張(?)しているのは俺も知ってはいるし 今となっては俺も単に同意するのだが たぶんこのスレにはまだそれは早い 誰もついてこれない
886 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 14:13:29.68 ID:8G0UYiga.net] >>868 簡単なプログラムならいきなりコーディングしてもいいけど 客と開発チームとどうやって意思疎通するんだ? 一人で開発する場合だってある程度複雑なものを作ろうと思ったら事前の計画が必要
887 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 14:26:29.05 ID:G4u6WZVB.net] >>869 それは要件定義プロセスと言うのだ
888 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 14:48:03.16 ID:8G0UYiga.net] >>870 要件定義と設計の違いを分からない人だったか…
889 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 14:50:57.42 ID:G4u6WZVB.net] >>871 あー、お前の客って元請けというやつで、設計内容を知らせる義務があるんだな
890 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 14:55:41.17 ID:G4u6WZVB.net] てか、コーディング前に客と意思疎通するために必要な「設計」って、具体的にどんなのだよ そんなの必要とされたことないぞ
891 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 14:58:05.93 ID:sXE05TDZ.net] ID:G4u6WZVBの主張はまだこのスレの人間には早い 早速「いきなりコーディングしてもいいけど」みたいな話になってる この反応はわかりきってたけど
892 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 15:07:32.79 ID:G4u6WZVB.net] >>874 そうかもな まぁ、何やったって"Design"とも言えるわけだし、どういう文脈の「設計」なのかを 定義してからじゃないと、まともな会話はできそうもない
893 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 15:09:45.38 ID:G4u6WZVB.net] DDDで顧
894 名前:客に見せるUMLで書かれたクラス図を導出するのを、ある人は分析だというだろうし ある人は設計だという どちらも正しい [] [ここ壊れてます]
895 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 15:11:30.32 ID:G4u6WZVB.net] IEEE Std. 830-1998のSRSを完成させるまでのプロセスを、要件定義だという人(俺)もいるし、 分析や設計だという人もいる
896 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 15:25:17.75 ID:faqsfj23.net] たぶん、設計の意味がみんな違うんだろうな。 立場によっても違うよな。
897 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 16:11:34.08 ID:VvFYMhkJ.net] 設計という工程の成果物は何か。
898 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 17:29:06.59 ID:Ry+aifej.net] このスレの人間にはまだ早いとかどうでもいいから OOPチームとFPチームで将棋ソフト作れよAIは合法手ランダムで
899 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 19:11:08.37 ID:vLkuz9RY.net] >>880 FPっていうと ファンクションポイント を思い出すなー…… めっちゃめんどくさかったなあ……
900 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 20:11:52.77 ID:8G0UYiga.net] >>880 前スレで3行のコード書いて設計だと言って失笑された奴がID:G4u6WZVBなんじゃねw
901 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 20:13:37.92 ID:ziShIi0x.net] >>880 この際良いか悪いかは置いておくとして、典型的なのは OOP: KifuAnalyzer, MoveGenerator, MovePicker, Evaluator, 駒クラス、駒タイプ、Moveクラス、ボードクラス、プレイヤークラス、マッチクラス echo.2ch.net/test/read.cgi/tech/1463663267/768 echo.2ch.net/test/read.cgi/tech/1463663267/819 手続き型:>>317 盤面は2次元配列、駒はenum、後は必要な関数を揃えるだけ 関数型:??? ← 俺は純粋関数型は知らない。教えてエロい人。
902 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 20:37:02.77 ID:8G0UYiga.net] >>883 どっちも設計の最初のほうをやっただけだよね 関数を呼び出す順序すら書かれていないんじゃ構築できない
903 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 20:54:04.55 ID:WT6LUlBS.net] まーた前スレ>>1 がアホみたいなことほざいてるな
904 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 21:11:42.30 ID:9GK5WJKb.net] >>844 そこまで指定するならコード書いた方が速いし正確だろうに。
905 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 21:36:24.45 ID:ziShIi0x.net] >>884 じゃあさっさとOOPの続きの「設計」を気が済むまでやれよ お前が1の>>1 だろうが
906 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 21:41:14.30 ID:8G0UYiga.net] >>887 お前がやれば これで構築に移れると思ってんの? あ、>>882 で怒っちゃった?wwwwww
907 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 21:55:28.33 ID:WcxAae3H.net] >>879 設計書とそのテスト仕様書(手順書) 同時に書かせるところ増えたぜ そのおかげで辻褄のあってない仕様や設計が見つけやすい
908 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 22:14:55.38 ID:WT6LUlBS.net] 最初に設計書書くところってウォーターフォール開発なの?人月はどれくらい? 途中で仕様が変更になったらまた設計書書きなおすの? コードがリファクタリングされたら設計書も更新されるの?
909 名前:が mailto:sage [2016/06/09(木) 22:33:32.90 ID:3LJlpztb.net] >>864 , 868 「コーディングこそが設計」に同意!!
910 名前:デフォルトの名無しさん [2016/06/09(木) 22:34:55.20 ID:pXMVc1f3.net] >>890 うちは120人月くらい 仕様が変わったら設計書書き直すよ リファクタリングで変わるような細かいことは設計書には書かない
911 名前:デフォルトの名無しさん [2016/06/10(金) 00:53:02.07 ID:Mkg+TQQo.net] >>864 >>886 >>891 将棋ソフトのコードのスケルトンを書いてくれよ
912 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 05:54:44.86 ID:gmWPyVad.net] >>893 将棋知らないから、書けない。 個人的にそれって面白くないから、書く気もしない。
913 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 07:04:25.61 ID:gmWPyVad.net] ふと、建築構造設計の仕事を思い出した。 構造計算は「設計」の仕事で、図面を書いて、柱や梁の本数や鉄筋の太さ、本数を計算して、それをPC等に入力する。 それから延々と計算をさせて、その結果を見て、「95%だから強度が足りない」などと判断して、太さを太くするとか、鉄筋の本数を増やす。 複雑な形状だと、専用のソフトを作ったりする。 そんな図面修正、データ修正、構造計算の作業を1ヶ月くらい繰り返して、うん百ページのリストができあがっていた。 この作業は「設計」に相当すると思うんだが、どうだろう?「施工」ではないはず。 そして、これをITの世界に当てはめれば、設計にあたるんじゃあないかな。 つまり、試行錯誤しているコーディングフェーズ。 建築の場合は、図面が完成しても、実体としてのビル完成までに、さらに多くの費用と時間がかかる。 でも、ソフトの場合、ソ−すコードが完成したら、あとは、コンパイラー、リンカーに任せれば、実体としてのオブジェクトが自動的にできるという差はある。 となると、SEは、デザイナー屋さんってところかもしれない。
914 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 07:13:23.25 ID:lJsEyLcp.net] コーディングは製造
915 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 08:38:51.58 ID:6HXdRm+E.net] >>895 建築物の場合は図面ができてGoサインがでたら建築途中で変更することは難しい しかしソフトウェアはいくら設計書ができてコーディングし始めたとしても お客さんの「やっぱこっちがいい」という一言でいくらでも変更できてしまう 「ソースコードが完成したら」というのはいうほど簡単ではない
916 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 09:08:05.45 ID:BuEwbgPd.net] 変更を受け入れちまうから変更しなきゃならないだけで、 本来変更は人件費上乗せのリスクの高い依頼だときっちり対応しないとダメ。 プログラミングが設計だと嘘ぶいてる輩も、その試行錯誤は単なる給料泥棒だって事を隠してるだけ。
917 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 09:35:25.90 ID:XqAkh7YW.net] >>897 >お客さんの「やっぱこっちがいい」という一言でいくらでも変更できてしまう 実はそうとばかりも言えない 実績のあるシステムをパッケージと称して使い回す場合に ほんのちょっぴりの変更でもカスタマイズ料と称してふんだくることが可能
918 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 09:41:58.91 ID:o8hFzx97.net] そりゃ、試行錯誤の分が無ければ安いよ。 せいぜい、2千円ぐらいのソフト。それが、1千万円にもなる 客がよく言う。 市販で、2千円ぐらいのソフトなのに、 どうして、作ってもらうと1千万円もかかるのか? でもその客はどうしても、2千円のソフトを使わないんだよなw 安いソフトを使えばいいのに
919 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 11:35:13.91 ID:Mkg+TQQo.net] >>894 将棋ルール https://ja.wikipedia.org/wiki/%E5%B0%86%E6%A3%8B ロジック概要 https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E5%B0%86%E6%A3%8B の6 コンピュータ将棋のプログラミング技術 これだけ要件がはっきりしていれば「将棋知らない」って言い訳はできないな
920 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 14:20:14.40 ID:LT2C5Mf1.net] っていうか、将棋も知らないんじゃ、ろくな営業できないよなww
921 名前:デフォルトの名無しさん [2016/06/10(金) 16:26:04.50 ID:eVEt4/ZC.net] なんで営業するのよ
922 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 16:54:42.74 ID:5LC8c5Pp.net] >>880 いいね。この週末、書いてみようかな。
923 名前:デフォルトの名無しさん mailto:!sage [2016/06/10(金) 17:34:40.03 ID:lPhKqXdH.net] 将棋のルール難しいからオセロがいい もちろん俺はO・O・P
924 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 18:33:31.89 ID:f9UwuLwi.net] やっぱりここはチェスを作るべき
925 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 19:09:04.30 ID:lJsEyLcp.net] 詰め将棋じゃないかな
926 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 22:36:27.72 ID:gmWPyVad.net] >>896 コーディングが製造なら、建築の世界であれば、図面書くのも、構造計算するのも建物建築の実作業(施工)に分類されるというのだろうね。
927 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:13:37.71 ID:4NU9BH9s.net] 883みたいなのが設計なら設計者死んだ方がいいだろ 何の葛藤もトレードオフもなく欲しいクラス並べただけじゃん クラスの振る舞いもなければ生じるコストも議論できない 少なくとも建築設計においては強度が強い部材はコストも重量もかさも大きいというトレードオフがあるんだがUMLの絵かき屋は何を設計してるんだ
928 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:21:31.57 ID:4NU9BH9s.net] しいていうならUMLは意匠設計なんだろうな ソフトウェアだからなおさら達が悪い コードかけない設計者は 構造設計できない意匠設計者 H鋼がどれだけ重くてどれだけ強度は出るのか知らないのに設計できるらしい 単方向リストの各操作に対するコスト、オブジェクト生成のコスト オブジェクト破棄の条件及びコスト これらがわからないひとは設計しなくていいよ どうせこれが議論にならないレベルのソフトなら設計するだけ金の無駄だから
929 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:25:59.30 ID:rbw9FdPt.net] >>910 お前にとって設計ってなんのためにするの?
930 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:37:17.42 ID:y6LF40Yk.net] で、>>883 に対するID:4NU9BH9sの回答は? コードのスケルトンを書けば主張にも説得力があるから書けばいいのに 「コードが設計だ」と主張するならくだらない文章書いてるよりコードを書いてみせろよw
931 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:41:58.63 ID:XSNZ2uOi.net] >>909 > UMLの絵かき屋は何を設計してるんだ バカかおめえ? それっぽい絵を三つ四つ書いて気持ち良い汗流してらっしゃるんだろうが! 聞くないちいち当たり前のことを
932 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:48:01.15 ID:y6LF40Yk.net] だからコード書けよwww お前らって「図はいらない、コードから書く」ってしつこく主張してるくせに コードを書かずにくだらないことばかり書いてるから間抜けだよなあw もしかしてコードも書けないくせに「コードで設計する」って言ってたの?
933 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 01:04:07.50 ID:flLdNYbp.net] 何のコードだよ?w 他人にコードを書けっていうのなら、 じゃあ代わりにお前は図を書けよ。 その図相当のコードならいくらでも書いてやるが?
934 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 01:08:02.65 ID:AtNAlhvf.net] 設計に関心があってこのスレ見てるやつは居るけど いちいちこのスレの話題に合わせるために設計書やらコードやらをいちいち書きたい、という人はあまり居ないと思う
935 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 01:08:42.59 ID:y6LF40Yk.net] >>915 >>883 だろw さっさとやれよ
936 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 01:11:57.87 ID:y6LF40Yk.net] >>916 実際の設計図とかコードとかなら興味あっても くっだらない妄想の繰り返しに興味がある奴なんていないからw
937 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 01:54:55.05 ID:flLdNYbp.net] >>917 はいできた class KomaClass {} class KomaType {} class MoveClass {} class BoardClass {} class PlayerClass {} class MatchClass {}
938 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 02:00:09.96 ID:y6LF40Yk.net] >>919 こんなんじゃ設計の代わりにならないだろ 設計なしにコーディングするとこんなクソみたいなコーディングしかできないって実証されたねw
939 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 05:05:35.95 ID:aETEZ8Lc.net] >>920 設計なんて、そんなところからスタートするものだと思う。 あれがクソって思う奴がクソ。
940 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 06:46:24.38 ID:oW9rgFgK.net] コーディングは製造
941 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 06:55:52.82 ID:aETEZ8Lc.net] コーディングは設計
942 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 07:40:15.91 ID:UI22d5e9.net] 将棋なら思考ロジック以外は要求はある程度明確だし、すでに動いてるものが世に多数あるんだからイメージしやすいだろう 俺なら思考ロジック以外の部分をプロトタイピングしてから最終形を考えるな
943 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 08:29:32.95 ID:aETEZ8Lc.net] >>924 そういう手法に同意。だから「コーディングは設計」って思うんだよね。 何人か出会った「この人できそうかも?」と感じさせるプログラマさんも同じこと言っていた。
944 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 09:50:38.50 ID:Tx4f1KSS.net] 設計書書かない奴は雑魚 これは絶対覆らない
945 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 09:53:49.34 ID:JwbsVpE7.net] コードを書かない奴は雑魚 これは絶対覆らない
946 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 10:20:09.82 ID:bKLKFp2p.net] ドカチンがなんか言ってますぜ。
947 名前:デフォルトの名無しさん mailto:!sage [2016/06/11(土) 10:24:40.55 ID:8vn3zKAG.net] 俺以外は雑魚 これは絶対覆らない
948 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 11:56:48.05 ID:y6LF40Yk.net] >>921 それでは続きをどうぞ
949 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 11:58:59.51 ID:y6LF40Yk.net] >>924 プロトタイピングの結果をどうぞ ちゃんとした設計なら少し考えれば図が出てくる プロトタイピングの結果はいつになっても出てこないなあw
950 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:02:45.19 ID:y6LF40Yk.net] 正統派設計チーム echo.2ch.net/test/read.cgi/tech/1463663267/768 echo.2ch.net/test/read.cgi/tech/1463663267/819 「設計はコーディング」チーム class KomaClass {} class KomaType {} class MoveClass {} class BoardClass {} class PlayerClass {} class MatchClass {} 「設計はコーディング」の完敗なのは明白
951 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:08:32.61 ID:NAulAg4n.net] >>932 echo.2ch.net/test/read.cgi/tech/1463663267/768 って意味がわかんないんだけど、 Move(動詞)がクラスってどいう言うこと?w これって、ゴミク図なの?
952 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:09:49.75 ID:UI22d5e9.net] >>931 論点がズレてる 設計する方法としてUMLとかドキュメントにするかコード(プロトタイピング)にするかの違いだけ 図を描く事に執着するのは目的と手段を取り違えてる っでなぜプロのプログラマーやアーキテクトにタダでアウトプットを求めるんだ? タダで書くのは善意が大前提で、貴方に善意はわきません
953 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:16:14.80 ID:y6LF40Yk.net] >>934 「できないのをごまかしてる」だけなのか「できるけどやらない」のか、区別できないね 結果としては何もできていない 何もできていないのに「設計はコーディングだ!」って主張しても説得力ないなあ くだらない文章をスレに書くのもやめたら?w
954 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:18:20.76 ID:y6LF40Yk.net] >>933 うんうん それじゃ正しいと思う設計を書いたら有益な意見交換ができるよ
955 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:23:25.51 ID:y6LF40Yk.net] >>933 ちなみに move 【名】 動くこと、運動、移動 〔ある様態の〕動き(方) 〔一連の〕手だて、戦略 引っ越し、転居 〔チェスなどの〕手番、指し手 ちょっと恥ずかしいなw
956 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:24:49.16 ID:UI22d5e9.net] >>935 まず個人の設計に対する能力をここで問うのは間違っている ここでは方法論を議論していて、俺は場合によってはプロトタイピングを適用すると言っただけ 貴方は俺がプロトタイピングがまともに出来なかったらプロトタイピングの手法自体が意味がないと思うのか?違うだろ あと今日は天気もいいのでストレス発散はここではなく外に出てすれば良い、きっと溜まったものが落ちると思うよ
957 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:30:44.42 ID:y6LF40Yk.net] >>938 プロトタイピングって設計なしにするものじゃないと思ってるから お前の認識がおかしいと判断するだけ 設計について意見交換したいんだけど有益なレスがないんだよなあ このスレの内容って 「設計なんてしないでいきなりコーディングできる」 「じゃあちょっとやってみて」 「できません!!」 でまとめられる気がする…
958 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:41:30.00 ID:JwbsVpE7.net] >>939 そりゃ設計推進派もいっしょだろw やってみろ できません の繰り返しだw
959 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:48:20.63 ID:y6LF40Yk.net] >>940 >>932 全然違う
960 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:48:41.84 ID:UI22d5e9.net] >>939 頭で考えたものをドキュメントやコードに落としてそれを検証して修正して精度を上げていくのが設計 設計なしにって何を言っている? プロトタイピングのコードとプロダクトコードは別だけどそこの認識は合ってるよね?
961 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:56:48.33 ID:L/Ku0jBm.net] システムを組むならモジュール分けとモジュール間のIOぐらいの基本設計は先にやる チームでやるならここで仮ドキュメント化するが、詳細設計はこの時点ではしない 例えばこのスレの将棋の例ならこうだ [表示、対人用フロントエンド] UI必須、対局モジュールからの情報を盤面に表示 人間の入力を受けて対局モジュールに送り返す 遊びやすいUIとゲームらしい演出にこだわれ [AIモジュール] UIは一切不要、想定するハードウェア構成と時間内で最良手を選び出せるパフォーマンスにこだわれ [対局モジュール] 既存CSAプロトコル準拠サーバをラップして流用する方向で組み込み可能か検討せよ IOはCSAプロトコル準拠、CPU同士の対局の場合は画面出力のために対局者とは別に[表示・対人フロントエンド]の接続を受け付けること [その他] タイトルやゲームモード選択(ロビー)画面など対局以外のものを用意する、UIチームに余裕があればUIチームが担当 フロントエンド・AI共に対局モジュールとの通信はCSAプロトコルに準拠するものとする まああとの詳細設計はそれぞれの担当者が好きにやってくれ
962 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:59:18.37 ID:y6LF40Yk.net] >>942 >設計なしにって何を言っている? それはコーディングをいきなり始めることができる主張してる人に聞いてくれ 俺も不思議だから聞いてる
963 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:00:28.02 ID:y6LF40Yk.net] >>943 >>8-9 読んで
964 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:04:45.05 ID:UI22d5e9.net] >>944 ん? 自分で言ったことでしょ? 設計なしにプロトタイピング出来ないって設計なしにUMLは書けないって言ってるのに近いと思うけど? 設計なしにプロダクトコードは書けないならって話なら納得はするが話の流れから違うよね?
965 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:09:08.72 ID:y6LF40Yk.net] >>946 俺がそう思ってるってことじゃないぞ 文脈読んで
966 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:10:38.68 ID:y6LF40Yk.net] >>946 設計なしに将棋ソフトのプロトタイプコードは書けないと思ってるぞ で、 「書けるなら書いてみて」 「書けません」 って流れ
967 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:17:16.38 ID:ppFl8ALU.net] 前スレ>>1 が張り切ってるなw
968 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:22:42.07 ID:y6LF40Yk.net] >>949 ソースなし夫はまだ粘着してんのwwww
969 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:28:17.77 ID:L/Ku0jBm.net] コーディング=設計でも詳細な設計してからコーディングにかかるでもどっちでもいいわ、問題はどっちを先に出力するかじゃない 例えばコーディング=設計ならば 頭の中に既に設計が出来ててプロトタイピングしながらその設計を随時更新してるタイプ 頭の中でまとまっていないのにコードに手をつけるタイプ、末端から手をつける習性があり終盤でスパゲティ化して炎上のリスクがある この2つに分類できる、前者は優秀だが後者は死ね 設計設計言ってる奴も同様で コーディング時に事前に書いた詳細設計通りに書いて問題なく動く、頭の中でざっくりとコーディングしてるし頭の中でプロトタイピングもされてるタイプ 実際のコードへの落とし込みや動きを想定せずに僕の考えたすごい設計を書くタイプ、多くの場合技術的な問題で設計通りに実装する事が難しかったりパフォーマンスに問題が出たりする この2つに分類できる、前者は優秀だが後者は死ね 途中でどちらを先に出力してるかは大きな問題ではなく、全体をきちんと考慮して動けてるかどうかが重要
970 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:29:37.58 ID:UI22d5e9.net] >>948 あぁ理解できた どんな場合でもプロトタイピングは設計なしに出来ないって主張かと思った >>948 は将棋のプログラム書くのにいきなりプロトタイピングはできないって事でしょ それは個人の力量だしプロトタイピングが出来ないならクラス図も書けないと思うから、もう少し大きい概念から落としていけば良いでしょ つまり設計手法のチョイスがあってない、粒度をいきなり落とし込めないって事なんだからPDCA回して粒度落とし込めば良いと思うよ >>924 で書いた通り俺ならの前提でプロトタイピングやクラス図作成の粒度まで落とせるからってところで話が噛み合わなかったんですね >>938 で能力を問うのはおかしいと自分で指摘しながら能力の差で混乱を招く結果になって申し訳ない
971 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:38:14.51 ID:y6LF40Yk.net] >>952 よく分からんけど、抽象論で議論していても生産的じゃないから ぐだぐたいい争うより実際やってみたらって意見に賛成
972 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:49:35.90 ID:L/Ku0jBm.net] >>953 実際にやっても個人の能力に依存するのでどちらの手法が優れているかの証明にはならんよ? というかどちらの手法でも出来る奴は手順を変えたところで問題なく作るだろうし、作れるという事も知ってる つまり表面的な出力順にこだわるという事は…
973 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:56:02.47 ID:y6LF40Yk.net] >>954 自分じゃできもしないのに「できる、できる」って騒ぐバカが消えれば このスレも少しはましになるだろ 手順には順序があることも知らんのかな? 要件定義せずにコーディングするのはバカ それと一緒
974 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:05:55.37 ID:C3woM6J5.net] >>955 ここで要件定義とか話がずれてるわw 出来る奴と出来ない奴を経験が違うから、賢いからで片付けられてモヤモヤなんだろ その差を工学的手法で埋めたいって思ってるんだろうけどソフトウェア工学はそこまで万能じゃない ある種のアートであると認識して自分にセンスがないと諦めるか、しがみついて経験積むかだな
975 名前:デフォルトの名無しさん [2016/06/11(土) 14:06:29.17 ID:b0eP6+U3.net] >>955 でも、できない問題を出して出来ないんだーー!て騒いでもあまり意味がないんじゃないかな できる問題をだして双方が技術を示せるようにしないと比較することもできないでしょうに 将棋は難しいと思うよ、CSVのリーダとかでもいんじゃないかな
976 名前:デフォルトの名無しさん [2016/06/11(土) 14:09:46.85 ID:y6LF40Yk.net] >>956 できない奴ほどよう吼えるw 吼えてる暇があれば>>932 をちょっとでも進めたら?
977 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:12:54.30 ID:C3woM6J5.net] >>958 お前の経験の無さが透けて見えるから突っ込まれてるの分かってる? 今までどんな開発してきたの?
978 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:16:59.48 ID:y6LF40Yk.net] >>959 うんうん お前は自称優秀なんだから将棋ソフトの設計くらい軽くできるんだろ? 「俺はすごい」って口だけで言ってても情けねえーぞーw
979 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:17:50.79 ID:L/Ku0jBm.net] >>955 物事には順序があるが出来る奴の中にはそれをやってるという意識なく脳内で手順を終えて「やってない」と言い放つ奴がいるんだよ まあ能無しがそれを真似ると大惨事になるんだがw 主張がぶれぶれなクライアントのために、アホなクライアントでも動きが確認出来るよう要件定義のためのプロトタイプを作る事もある その時点までに出た要件とそれを元にした脳内設計は確実に存在するが明示的なアウトプットはしていない さてこれは要件定義や設計なしにコーディングしたと言えるのか? これを要件定義も設計もしたという奴といきなりコーディングしたという奴がいる、ただそれだけの違いだろ
980 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:20:29.52 ID:y6LF40Yk.net] >>961 そういう抽象論はどうでもいいかなあ 「で?」って感じというか…
981 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:26:34.85 ID:y6LF40Yk.net] 「具体的なコーディングにさっさと移るべきだ」と主張してる奴ほどこのスレでは抽象論を振りかざし いつまで経っても具体的な設計を提示できないのが皮肉だなw
982 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:43:46.31 ID:aETEZ8Lc.net] 「コーディングこそ設計」と書き込んだけど、961の書き込みに賛同だね。 また、こんなところで具体的な設計の提示なんて、全然期待していないし、求めてもいない。 でも、人によってここに求めるものが色々あってもいい。
983 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:51:48.59 ID:/6Etr2QS.net] 前スレから今まで出てきた成果物は 将棋というゲームを説明するための図と、ウィキペディアの将棋ソフトの項目にある思考AIの説明をラフに描いただけのもの 肝心の評価関数の中身を設計するのにオブジェクト指向をどう使うの?という当然の疑問に誰か答えてくれよ
984 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:55:26.73 ID:y6LF40Yk.net] >>965 普通のメソッドの内部がどうなってるか知ってる?
985 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:05:13.13 ID:bKLKFp2p.net] クラスは役割で考える。 動きで考えるな。
986 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 17:09:06.34 ID:1hn1NZl3.net] クラスは機能で考える 役割で考えるな 常識
987 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 17:47:18.15 ID:bKLKFp2p.net] >>968 おいw そんなんだから手続き型から抜けだせ無いんだぜ?
988 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:00:28.79 ID:ZhHlBSFM.net] >>951 完全に同意。てか、分かりやすいわ。 >>961 > 物事には順序があるが出来る奴の中にはそれをやってるという意識なく脳内で手順を終えて「やってない」と言い放つ奴がいるんだよ ふむ。言い得て妙だな。 しかしあんた、だいぶ頭いいよな。 なかなかこのレベルの説明は出来ない。
989 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:05:07.64 ID:aETEZ8Lc.net] 個人的には、コーディング量が減るとか、他人の作ったクラスが再利用できて、楽してバグ無しのメンテが容易なプログラムが短期で完成できればいいだけ。 だから、クラスが役割で考えて、あるいは機能で考えて、もしくは、構造化プログラミング的(手続き的)に作られていようが、どうでもいい。 使いやすく、分かりやすいクラスであればいいし、あるいは自分で作らなくても、すでに用意されていれば、もっと嬉しいですね。 「白猫であれ黒猫であれ、鼠を捕るのが良い猫である」って気楽な考え方をしています。
990 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:11:41.30 ID:VRwHRVV/.net] 再利用性のためにクラスが必要だと思っちゃうのJava脳
991 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:13:31.35 ID:NAulAg4n.net] > 使いやすく、分かり
992 名前:やすいクラスであればいいし、 とか考えると、単一責任の原則とかでてきて、 役割で考えて、一つの役割だけをやるようにしましょう(=単一責任の原則) という話なるはずだが? お前、使いやすく、分かりやすければいいと言うだけで、 どうすれば、使いやすく、分かりやすくなるのかを 理解してないんじゃね? [] [ここ壊れてます]
993 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:15:44.18 ID:VRwHRVV/.net] クラス設計という単純なそれこそ教科書の1ページ目に出てくることでさえ議論になりうる これならいってみればクラスの設計思想が自分と異なるライブラリは使い物にならないってことだよな Javaだったらラッパークラスかけば自分に適したインターフェース作れるって? そうやってコードがかさましされたコードの保守なんて他人に任せられないよな さあですマーチの開幕だ
994 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:16:59.17 ID:NAulAg4n.net] d.hatena.ne.jp/asakichy/20090122/1232879842 ・単一責任の原則(SRP) ・オープン・クローズドの原則(OCP) ・リスコフの置換原則(LSP) ・インターフェイス分離の原則(ISP) ・依存関係逆転の原則(DIP) オブジェクト指向設計に関する原則の頭文字をとって「SOLID」とまとめられた原則集。 qiita.com/hirokidaichi/items/d6c473d8011bd9330e63 S SRP Single Responsibility Principle(単一責務の原則) 「クラスを変更する理由は1つでなければならない」 O OCP Open/closed principle(開放閉鎖の原則) 「クラスは拡張に対して開き、修正に対して閉じていなければならない」 L LSP Liskov substitution principle(リスコフの置換原則) 「派生型はその基本型と置換可能でなければならない」 I ISP Interface segregation principle(インターフェース分離の原則) 「クライアントが利用しないメソッドへの依存を強制してはならない」 D DIP Dependency inversion principle(依存性逆転の原則) 「上位のモジュールは下位のモジュールに依存してはならない。どちらのモジュールも「抽象」に依存すべきである。」
995 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:19:01.24 ID:NAulAg4n.net] 次スレ オブジェクト指向システムの設計 171 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1465636703/
996 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:21:55.21 ID:/6Etr2QS.net] >>966 何が聞きたいのかさっぱり分からない。メソッド内に何があればオブジェクト指向になるの? メソッド内で他のメソッド呼ぶだけでオブジェクト指向だと言いたいの? 抽象化の手段がオブジェクト指向しか無いJavaみたいな言語だと、オブジェクト指向が必要無い場面でもクラスやらメソッドが必要になるけど そういうのもオブジェクト指向だって言いたいの?
997 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 18:52:10.65 ID:y6LF40Yk.net] >>977 評価関数の中身を設計するのにオブジェクト指向をどう使うか分からないのは メソッド自体を分かったないからだと思うよ メソッドの内部がどうなっているか回答しろ それとメソッドはどうやって設計するか知ってる?
998 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:01:39.04 ID:geSprGL3.net] 例えば橋を作るというとき ある人はいきなり作業しだす ある人は設計らしきことをしだす ここで前者の中にのみ注目して その中でさらに二種類居ることを言いたい アホは橋の端から着手する 一生懸命、こちら側の対岸から伸ばしていく それはもう頑張って伸ばしていく 逆側の対岸まで伸ばせるかどうかはもはや神頼みレベル かしこはそうしない まず足場から着手する 足場組んでみてグラついてたら補強するか とっかえる そんで足場終わったら上乗っける 作業の工程間に綱渡りが無い 先にしておいてよい部分を先に着手する というお話
999 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:03:59.84 ID:aETEZ8Lc.net] >>973 どうすれば、使いやすく、分かりやすくなるのかを 理解してないんじゃね? 理解してないかもしれない。 でも使いやすく、分かりやすいか、そうでないかは分かる。 「私、使う人」の立場であれば、「どうつくればいいか」は理解してなくても、とりあえずはいい。
1000 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:04:42.35 ID:NAulAg4n.net] 例えばクラスを作るというとき ある人はいきなり関数の中身から書き出す ある人はクラスのインターフェースなどの設計から書き出す ある人は設計を鉛筆で下書きをしてから書き出す
1001 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:05:44.58 ID:NAulAg4n.net] >>980 自分で関数を作る立場の人間に成りましょう。
1002 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:06:29.23 ID:y6LF40Yk.net] >>979 いきなり作り出すのは近所の小川に架ける橋だけ 鉄骨を使う橋を作るのに設計しないで着手するのはバカ 「コードが設計」って主張してる連中は趣味グラマであってプログラマじゃないんだろうなw
1003 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:07:37.02 ID:NAulAg4n.net] そういや絵が上手い人って、下書きもせずに いきなり絵を描くことができちゃうんだよな。 あれなんでなんだろ?
1004 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:08:55.57 ID:NAulAg4n.net] >>983 鉄骨を使う橋を作るときに作る設計=今はパソコンで書く=コードってことでしょう?
1005 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:09:55.69 ID:NAulAg4n.net] 「コードが設計」って言ってる人は、設計をしないって 言ってるわけじゃないんだよ。 ソフトウェアの設計を一番書きやすいのは コードなのだから、コードを使って設計を書いているだけなんだよ。
1006 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:11:10.27 ID:y6LF40Yk.net] >>985 は?
1007 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:12:45.62 ID:y6LF40Yk.net] >>986 UML「何言ってんだこいつ?」 GoF「理解できない…」
1008 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:14:29.37 ID:NAulAg4n.net] >>998 UMLで書くのも設計ってだけでしょう? コードも設計なんだよ。
1009 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:15:29.58 ID:NAulAg4n.net] そういやUMLのLってランゲージ(言語)のLなんだよな。
1010 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:17:10.80 ID:y6LF40Yk.net] >>989 理解不能過ぎるからさっさと将棋ソフトのコードによる設計をしてくれよ できもしないものをできると妄想で語られても困る
1011 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:21:30.82 ID:NAulAg4n.net] >>991 それなら将棋ソフトのコードを見ればいいだけじゃね? そのコードが設計だって言ってるんだから。
1012 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:23:23.36 ID:y6LF40Yk.net] >>992 バカすぎる
1013 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:26:38.11 ID:y6LF40Yk.net] 客「運用チームに引き継ぐから設計書提出して」 ID:NAulAg4n「はい、コード」 客「死ね」 プログラマならこうなるw さすが趣味グラマ
1014 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:27:10.20 ID:NAulAg4n.net] 例えばロボットの設計図って書けばわかると思うけど、 ロボットの設計図があれば、材料とそれを加工する機械があれば 誰でも同じものを作れちゃう。 設計図っていうのはそのレベルのものだよ。 決して、頭、腕、胴体、足、だけ書いたようなものを 設計図とは思わないわけでw
1015 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:28:00.73 ID:NAulAg4n.net] >>994 なんで運用チームに設計図出すんだ?w お前が思ってる設計図ってやっぱり世間で 想像されてるものと別物だろw
1016 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:29:27.92 ID:y6LF40Yk.net] >>996 え?設計書のないシステムを受け入れる客なんているの?wwww
1017 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:30:30.42 ID:y6LF40Yk.net] 客「開発チームに設計書渡して」 ID:NAulAg4n「はい、コード…あれ、まだない…」 客「死ね」 プログラマならこうなるw さすが趣味グラマ
1018 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:36:28.35 ID:ZhHlBSFM.net] >>984 あれは「見えている」らしい。 彼等にとっては、そこに絵があって、それをなぞっているだけなんだと。 まあ、プログラミングにも割と当てはまると思うが。
1019 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:36:29.89 ID:NAulAg4n.net] >>997 > え?設計書のないシステムを受け入れる客なんているの?wwww 客にコードは提出するだろ? お前、コードなしでエクセルに書いた図だけだして これが設計図ですで納品終わらせる気かよw
1020 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。 life time: 11日 20時間 27分 48秒
1021 名前:1002 [Over 1000 Thread.net] 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 2ちゃんねる専用ブラウザからの広告除去 ★ 2ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ premium.2ch.net/ pink-chan-store.myshopify.com/
1022 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています