1 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:08:42.31 ID:pIEuB3Z3.net] オブジェクト指向に限らず、理由もなく小さく細分化させるのはアホ オブジェクト指向は役割でオブジェクトに分割するものであって 処理で分割するものではない。
792 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 01:17:12.72 ID:wZ7jqyPr.net] >>776 矛盾したこと言って説明できなくなるバカ二匹の自己紹介乙。
793 名前:775 mailto:sage [2016/06/07(火) 01:29:47.52 ID:AF8c7GVP.net] 少し質問が曖昧かもしれないからもう少し具体的に書く。 まずオブ
794 名前:Wェクト指向と関数型言語のハイブリッドである Scalaならこれらをどうやるかだいたい想像できるので省く。 これらのアプリのテストを行う時 1. 関数型言語には何を使う? 2. ウェブフレームワークには何を使う? 3. 開発用のウェブサーバーには何を使う? 4. URLとコントローラ相当へのルーティングの例 5. モデル相当に必要なデータベースと関数型へのマッピング?とかはどうするのか? (ORMはオブジェクトへのマッピングだから違うだろう?) 6. ビュー(HTMLへのテンプレートエンジン)は何を使う? 7. JavaScriptとCSSへのサポート機能(Railsでいうアセットパイプライン的な仕組み) 8. テストコード(ユニットテスト相当)は何で書く 9. エンドツーエンドテストには何を使う? 例えばRailsとかはこれらを包括的にサポートしてるんだよね。 このレベルでアプリを開発しやすいと言っているわけよ [] [ここ壊れてます]
795 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 02:03:02.34 ID:Gat57in+.net] >>778 そりゃ自分で答え言っているのと同じじゃん。君の意見は、 「Railsには素晴らしいフレームワークがあるからアプリ開発がしやすい」だろ。 なら関数型もエコシステムが回り始めたらこの点は改善されてしまうのさ。 しかもテストしやすい=デバッグにかかる時間が短い=フレームワークが出来上がる速度も速い、なんだよ。 (最大の問題は、その日が来るのかどうかだが) 今の議題は、「関数型」「OOP」のどちらがアプリ開発しやすいか?だろ。 「『今』フレームワークが揃っているから」というのは「現在」限定ならいいが、上記議題なら論点がずれているだろ。 テストしやすいってのは本質的にプログラミングしやすいって事なんだよ。 「関数型」が糞だって言われているのは実行速度の方だろ。 あれは本質的に遅いから、今後とも改善しないと思うし。 煽るだけしかできないもう一匹の池沼と比べて、食らいついてこようとするその姿勢は評価するぜ。 だから説明を書いた。
796 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 03:28:03.53 ID:AF8c7GVP.net] >>779 机上の空論はどうでもいいよ。 それでアプリは開発しにくいんだよね?
797 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 03:28:55.02 ID:AF8c7GVP.net] 関数型が本当に開発しやすいならば、 フレームワークはとっくにできていておかしくないはずだ。
798 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 04:30:33.62 ID:nXPTtP+t.net] 背理法
799 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 09:25:11.47 ID:gm11/fKn.net] 真のオブジェクト指向は、小さなコンピュータを無数に詰め込んだ理想装置の上でしか成り立たない。 いまやっているのは、所詮はナンチャッテOOPでしかない。
800 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 09:31:28.43 ID:lnz4LVtA.net] それをいうならマルチタスクだってそうなんだが。
801 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 09:40:33.90 ID:gm11/fKn.net] マルチタスクじゃ、プログラムリソースが全部載せだからダメなんだよ。
802 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 09:49:26.44 ID:NavrVuI3.net] >>783-785 ごめん、よくわからん
803 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 09:50:56.22 ID:gm11/fKn.net] よく分からないのは、オブジェクト指向を理解していないから。
804 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 09:55:11.46 ID:NavrVuI3.net] オブジェクト指向は 『人間が』プログラム開発を行う上で、ソースコードの複雑さ(開発の進めやすさ、理解しやすさ、メンテナンス性等)を何とかする為の技法 だと思ってるけど違う?
805 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 09:55:18.73 ID:gm11/fKn.net] オブジェクト指向ってのは、たとえるなら、多様な生物が寄せ集まって生態系を形作っている様な物。 万能生物を1体作ろうとしてはいけない。
806 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:02:22.59 ID:nXPTtP+t.net] つまりマイクロサービス?
807 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:04:05.56 ID:WYjIc07a.net] > ID:gm11/fKn アラン・ケイのオブジェクト指向を持ち出すなら最初にそうだと言わないと駄目だよ 今の流れは(このスレも世の中も)ストラウストラップが再定義したオブジェクト指向がベースなんだから いきなり再帰的なコンピューターシステムとか生物とか生態系とか言い出しても混乱を招くだけ ケイのメッセージングOOPのファンだしSmalltalkも好んで使っているので気持ちは分かるんだけど
808 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:09:11.65 ID:gm11/fKn.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"とも言えるわけだし、どういう文脈の「設計」なのかを 定義してからじゃないと、まともな会話はできそうもない