20/09/02 23:31:59.00 dk5o+j+k.net
>>921
正直なところ、向いてないと思う。
その最後の方の章に行くまでに、ただ読んだだけ?
書いてあることに疑問を持ったり実際に書いて動かして試そうとしたりしなかった?
変えてみたらどうなるか、なぜそうなるのか、思った通りにならなければそれはなぜなのか、腑に落ちて疑問が解消するまで試行錯誤したりしなかった?
931:デフォルトの名無しさん
20/09/03 00:45:13.69 i6UO46W8.net
>>921
はい。
932:デフォルトの名無しさん
20/09/03 00:47:15.46 IG/XT9xA.net
>>921
たにぐちまことのPHPの本だな
933:デフォルトの名無しさん
20/09/03 01:35:16.46 hPKoXEB/.net
クラス定義の仕方にアドバイスお願いします。
車クラスを定義するとして、メンバ変数にサスペンションのバネ定数を定義したいとします。
ただし、車種によってサスが4本のものと3本のものがあり、変数名を「FR/FL/RR/RL」「FC/RR/RL」のように固有につけたい場合どうするべきか思い付きません。
「4輪車クラス」「3輪車クラス」で分けるべき?
934:デフォルトの名無しさん
20/09/03 02:56:05.50 d+ZpNCKo.net
>>927
どういう風にクラスを定義するのがいいかは利用目的に次第なので
車クラスを定義する目的や用途をまず定義するべき
935:デフォルトの名無しさん
20/09/03 05:56:53.62 yk4FSoXe.net
外から見えないメンバ変数なら勝手にやれとしか。
外から見て3輪と4輪の違いがあってそれをコンパイル時に区別できてほしいならクラスを分ける。
936:デフォルトの名無しさん
20/09/03 06:28:54.04 i6UO46W8.net
>>927
変数をFC/FR/FL/RR/RL 5つ定義して
オーバーロードで検索
937:927
20/09/03 08:00:24.20 hPKoXEB/.net
アドバイスありがとうございます。
>>928
後だしになってしまいすみません。
・C++
・車を制御するプログラム
・今は4輪向けだが後に3輪が控えてる
・3輪を自分が開発するとは限らない
というような状況を想定していました。
>>929
基本的には車が動くときの機能で使うため、車クラスの前進/後退/停止メソッドだけから参照するため、外部参照はないと想定しています。
>>930
オーバーライド、オーバーロードで出来ないかも検討していたのですが、5つ定義しておくというのはやっぱり変数の変更ってできないんですか?インスタンスが自分に関係のない変数を持つのはなにか気持ち悪い感じがしまして、、、
やはり3輪4輪でクラスを分けるべきか。
938:デフォルトの名無しさん
20/09/03 08:42:14.36 F9/SGTXZ.net
>>931
俺ならサスペンションを複数登録できる「車輪」クラスをまず作って、
車クラスには「前輪」と「後輪」の2つの車輪クラスを置くかな
これで四輪車も三輪車も二輪車も表現できる
939:デフォルトの名無しさん
20/09/03 10:03:31.69 d+ZpNCKo.net
>>931
前進/後退/停止メソッドが「FR/FL/RR/RL」「FC/RR/RL」で定義された各バネ定数を直接参照する必要があるのかな?
前進/後退/停止メソッドが各バネ定数と前進/後退/停止メソッドから渡される引数を使った計算結果に依存すればいいのであれば車クラスを分けるのではなくてサスを管理するクラスを分けて多態性を実現するのがオブジェクト指向的には普通
940:デフォルトの名無しさん
20/09/03 11:05:32.62 GyULYXpI.net
DDDのようなレイヤードアーキテクチャを採用した場合、
呼び出し階層の奥深くから、UIレイヤーにエラーを通知するにはどうすればいいだろうか?
クライアントの要望で、かなり細かくエラーを通知してUIに表示させなきゃならない
例外で通知する場合、
例外クラスが多くなりすぎる、
エラーを1つしか通知できない(警告だけして続行する場合に嵌る)
戻り値(あるいはout引数)で通知する場合、
エラーに配慮したインターフェースに変えざるをえない
統一されたエラー通知形式がないので人によりやり方がバラバラ
どちらにしてもダーティにならざるをえないと思うのだが、どうすればスマートに作れるんだろうか
941:デフォルトの名無しさん
20/09/03 12:44:33 s+Y20wWK.net
DDDしらんけど(笑)深い階層から"UIレイヤー"に限定して
エラー通知とかセンス悪いなぁ
層が分かれてるならUIとか関係なくただのエラー(情報)通知やろ?
受け取り側が何とか意識する必要はない
一つの例外に情報渡せばいいだろ?どうせ文字列だけだろうし
例外はそこで停止するもの
そうじゃないならイベント(コールバック)やろ?
イベントならコールバック関数呼び出してその戻り値で
処理続行するかどうか決められるような設計にするだろうな
942:デフォルトの名無しさん
20/09/03 12:45:53 UXCAe6Pv.net
そもそもの関心がレイヤを跨ってるんなら設計もそれを素直に反映するしかないだろう
変にレイヤ構造に組み込むことに拘って無駄な通り道を沢山掘るくらいなら、レイヤ構造の外にサービス作ってレイヤを飛び越えて受け渡ししたらいい
DDDだのレイヤードアーキテクチャだのと意識高いことをほざいているメリケン等が実際に作ったシステムを見てみりゃわかるが、だいたいクッソ雑だぞ
美しいレイヤ構造なんてのは客のクソ細けえ要望をいちいち真面目に相手にするジャップITじゃ無理無理
943:デフォルトの名無しさん
20/09/03 12:51:25.27 t+42bWz4.net
URLリンク(www.tokyo-sports.co.jp)
どうやってログインしますか?
944:デフォルトの名無しさん
20/09/03 12:56:14.72 DK3Ul6vK.net
どっかで観たアイコンだな
よわよわpwの予感
945:デフォルトの名無しさん
20/09/03 13:34:26.79 WSy+5JUJ.net
>>935
エラーを受け取ってどんなメッセージを出すかは受け取る側の責務だからエラー送出側でメッセージを決めたくない
かといって受け取り側がなんのエラーかを判断して適切なメッセージを生成するには多くのカスタム例外型が必要になって管理が追いつかない
ここで悩んでる
イベントハンドラはRPCの時に困るのではという気がする
946:デフォルトの名無しさん
20/09/03 13:40:03.09 WSy+5JUJ.net
>>936
サービスを作るとしてじゃあどういう構造にするかってとこで止まる
多種多様な処理から発生する多種多様なエラーを捌くにはどうすればいいか
要望が細かいから無理だと諦めるのは最後の最後時まではしたくない
947:デフォルトの名無しさん
20/09/03 13:50:41 s+Y20wWK.net
>>939
エラーコード投げればいいだけやろ
頭悪いなあw
948:デフォルトの名無しさん
20/09/03 15:04:39.41 ar2GYSXj.net
>>941
コードだけじゃ情報がぜんぜん足りない
949:デフォルトの名無しさん
20/09/03 17:00:29.54 s+Y20wWK.net
>>942
情報も渡せよ。要領が悪いな。
お前「カスタム例外の数が~」
連想配列でも使えよ
950:デフォルトの名無しさん
20/09/03 17:45:03.45 atr5JQ9S.net
>>943
もっといじめてください
951:デフォルトの名無しさん
20/09/03 18:47:12.56 d+ZpNCKo.net
>>934
例外にするか戻り値にするかはエラーの種類や使ってる言語、レイヤー間のプロセス境界なんかに依存するので一概にどちらかにすべきというものでもなくて、状況にあわせて設計する必要がある
一般的には戻り値のほうが汎用的
Result<T, E>的なのを使ってシグニチャで判断できるようにするか
hasError/errorsのような共通ルールを持つbase classから処理ごとにXXXResultクラスを作って使う
ただドメインレイヤーで例外を投げたとしても
それを例外としてUIレイヤーまで伝播させなければいけないわけでもないし
逆に戻り値を使ったからといって戻り値のまま伝播させないといけないわけでもない
952:デフォルトの名無しさん
20/09/03 19:55:22 3OmTfQuF.net
>>943
連想配列では型安全性がないから論外
>>945
genericは悪くなさそう
エラー種別ごとに型を沢山作らなければならない点は解決しない
だが例外クラスに良くあるボイラープレートを省略できる利点があるか
ちょっと検討してみるわ
953:デフォルトの名無しさん
20/09/03 19:56:08 BJh39Y3Y.net
> 連想配列では型安全性がないから論外
型安全性は手段であり目的ではない
目的と手段を履き違えるな
954:デフォルトの名無しさん
20/09/03 20:03:50 3OmTfQuF.net
>>947
目的を達成するには適切な手段を選ぶ必要がある
連想配列では満たせない
以上
955:デフォルトの名無しさん
20/09/03 20:11:45.03 yk4FSoXe.net
エラーの通知というのが要件に含まれているものなら、言語仕様に依存した例外機構に任せるのは
後でいろいろギャップに悩まされる気がする。
956:デフォルトの名無しさん
20/09/03 20:17:33.85 gpxPJKJE.net
エラーの設計をこんなところでそもそも質問するなや
どんなに種類が多かろうが全てを伝えるなら膨大なエラーを定義するだけやろ
957:デフォルトの名無しさん
20/09/03 20:25:15 4yFpfo9o.net
もう、Javaみたいに例外をラップして、通信とか境界越えるときはJSONでラップした結果でも返したら?
958:デフォルトの名無しさん
20/09/03 22:05:17 d+ZpNCKo.net
>>946
>エラー種別ごとに型を沢山作らなければならない点は解決しない
例外の場合は処理を分岐したい場合は一般的には型を分けるけど
戻り値の場合はswitch caseとかで分岐できる元ネタがあればいいので
ある程度汎用的な型にしてもそれほど困らないよ
(コンパイル時に分岐の網羅性をチェックできる言語だと安全性も高め)
httpのresponseをresponse code別に違う型で受け取って型で分岐したいのか
response codeの値で分岐したいのかって違い
例外を使う場合でも処理分岐が必要ないエラーを
なんでもかんでも型で表現しようとすると無駄な作業が増える
959:927
20/09/03 22:39:49.07 hPKoXEB/.net
>>932
すみません、うまい例えが思い付かず車を例にしましたが、この場合のサス定数はCarクラスのメソッドからしか参照しないような存在です。
>>933
ありがとうございます。恐らく一番イメージが伝わってるかと思います。
URLリンク(i.imgur.com)
wh_numに応じて返す構造体を切り替える、こんなイメージであっていますか。
960:927
20/09/03 22:53:38 hPKoXEB/.net
URLリンク(i.imgur.com)
wheelクラスいらないんでした。すみません。
上の作りと下の作りどっちがいいんだろう?
961:デフォルトの名無しさん
20/09/03 23:14:27.22 1vBbbEVb.net
そこで継承するのはもったいない
CarがSuspensionsを持つ
SuspensionsはTri-とFour-に継承で派生
できればCar側からは車輪の数は意識せず、速度を与えたら摩擦係数を得る、といった抽象メソッドをSuspensionsに持たせる
962:デフォルトの名無しさん
20/09/03 23:16:00.37 1vBbbEVb.net
摩擦係数じゃなかった、getSpringConst()を抽象にして、それぞれの派生クラスで実装する
963:デフォルトの名無しさん
20/09/03 23:37:56.96 e4BtgJ6j.net
この操作って全部に同じ(ような)操作を適用したりしないのか?
サスペンションをコンテナで保持してイテレーション出来る様にする方が良い様な予感がするんだが。
個別のサスペンションアクセスをわかりやすくしたければアクセサを作るか参照かポインタのメンバ変数にして初期化時に保持するとか。
まあ逆にサスペンションを巡回するイテレータ作っても良いんだけどな。
964:デフォルトの名無しさん
20/09/03 23:55:57.87 BJh39Y3Y.net
>>948
型安全性の意味が間違ってるお前がいっても説得力がない
何も産まない設計に時間をかけようとしてるだけ
965:デフォルトの名無しさん
20/09/04 00:22:35.10 nh9T8LFU.net
>>954
>>955の書いてるとおり
GoFでよく見るやつ
URLリンク(i.imgur.com)
車クラスの中でサスの構成に依存してるロジックを関数に抽出して
サスペンションインターフェース(抽象クラス)に定義する
本物の車じゃなくロボコン的なやつなのかな?
966:デフォルトの名無しさん
20/09/04 00:54:09.86 Wl7qFIBb.net
>>934
Ruby on Rails では、エラー時のテンプレートも決まっている。
データベースの列名の英語を、日本語に対応させておけば、日本語で表示される(国際化)
エラー番号も決まっている
URL が間違っているなら、404 とか、
サーバー内のエラーなら、500番台とか
967:デフォルトの名無しさん
20/09/04 05:51:49 9bn0no2k.net
>>952 コード値で分岐するとエラーに付随するデータの取得が型安全にならないのがいまいち >>960 そういった汎用的なエラーでなくドメイン固有のエラーが大量にある
969:デフォルトの名無しさん
20/09/04 06:48:12.98 H76Q6Ujr.net
>>960
> URL が間違っているなら、404 とか、
> サーバー内のエラーなら、500番台とか
それRailsが決めてるわけじゃねーだろw
970:デフォルトの名無しさん
20/09/04 07:14:08.85 iEv5UTAi.net
rubyと膏薬はどこにでもくっつく
971:デフォルトの名無しさん
20/09/04 08:45:56.81 PFscGLUJ.net
>>961
例外型を一つ作って、コードを持たせる
付随データのバリエーションに合わせて例外型を派生させる
これで例外型がエラーの数だけ増えてしまう問題を一桁押さえつつ、型安全性も得られる
警告はコールバック
コールバックのバリエーションも付随データに合わせて増やしてもいい
972:デフォルトの名無しさん
20/09/04 09:49:03.50 KmpQA39o.net
>>959
電気自動車はロボコンな件
973:デフォルトの名無しさん
20/09/04 10:14:04 n6iAZa00.net
Ruby脳は全ての言語の起源はRubyっていう思考だから触れるとやばい
974:デフォルトの名無しさん
20/09/04 10:31:49.84 uYuWb4tc.net
主は言われた。「Rubyあれ」
すると、Rubyがあった。
975:960
20/09/04 10:55:38.36 Wl7qFIBb.net
伊藤淳一が書いてる
Railsアプリケーションにおけるエラー処理(例外設計)の考え方
URLリンク(qiita.com)
976:デフォルトの名無しさん
20/09/04 11:24:00.07 nQgCUPtR.net
Mac Book Proを買いました。
ところでこれはSDDを容量が大きいものと交換、そしてMacOSのクリーンインストールってできますか?
ちなみにいままでずっとWindowsでMacの知識はいまのところ全然ありません。
そして可能なら自分でメモリを8Gから16Gへ増設も
977:デフォルトの名無しさん
20/09/04 11:41:02.89 ovAJuzA/.net
できません。後から増やせたりしたら買い替えてもらえなくなるので
徐々に拡張できなくしてきました。今では何もできなくなりました。
古い機種ならできるものもあります。
安いエディションを買って数年後に安くなったSSDやメモリに
交換するという行為がAppleは許せなかったんでしょうね
978:デフォルトの名無しさん
20/09/04 12:00:24.76 nQgCUPtR.net
Appleは糞会社じゃないか。
糞!
979:デフォルトの名無しさん
20/09/04 12:01:31 nQgCUPtR.net
iPhoneも糞だろう。使ったことないけど。
これからもWindowsやAndroidをメインに使っていく。
980:デフォルトの名無しさん
20/09/04 12:04:04.89 nHf7diD2.net
自分も林檎使わないけど
いちいちスレでケンカ売らんでくれ
981:デフォルトの名無しさん
20/09/04 12:37:45.25 nQgCUPtR.net
iPhoneアプリ開発もすることがある、というのが主な理由でMac買ったけど
こんなApple会社の体質だとあと数年でiPhone自体が滅びて
本当にMacを買った意味がなくなるかもな。
スティーブジョブズという人は偉そうにしてたけど
ほんとに優秀な人かな?頭いいとはウソだろ。
プログラミング少しでもできるのか?まさかオブジェクト指向も理解できていない可能性はないか?
この人、技術系の人というよりも営業系の人って感じだけど
営業の人って偉そうにしてる人/偉そうにできる人が優秀に見られるっていうのが許せないな。
982:デフォルトの名無しさん
20/09/04 13:34:36.03 CKy1r+va.net
>>974
お前こそ>>969の無知な状態から>>970のレスを受けて豹変し、感情的に支離滅裂な批判(>>974)をする、技術的とはおよそ対極の人間ではないの?w
983:デフォルトの名無しさん
20/09/04 13:52:38.19 nh9T8LFU.net
>>961
>コード値で分岐するとエラーに付随するデータの取得が型安全にならないのがいまいち
そういうのは言語による
実装方法を考えるよりも先に求めてる要求仕様を明
984:確にする努力をもう少しやったほうがいいかも >そういった汎用的なエラーでなくドメイン固有のエラーが大量にある ドメインエラーの種類が1000を超えてあっても別におかしくないけど 分類数が100を超えてるようだと設計が悪い
985:デフォルトの名無しさん
20/09/04 14:25:51.44 /hJPKHew.net
エラーなんてエラーメッセージもしくは番号と
それに対する属性を連想配列で渡せば十分だって言ってるのに
目的なしにクラス作ろうとして自分で苦しんでるだけ
正しく動いて要求を完全に満たしてるのに一体何が不満なのか
986:デフォルトの名無しさん
20/09/04 15:07:27.91 tS8Mz4CH.net
そもそもMacなんか買うのが悪い
987:デフォルトの名無しさん
20/09/04 15:47:32.64 n6iAZa00.net
Macはキーボードが中華3万ノート以下だから指の関節に負荷がかかってエンジニア潰しに貢献してる
そして世界最強のゴミクソXcodeの利用を矯正されてメンタルまでやられる
988:デフォルトの名無しさん
20/09/04 15:48:13.14 n6iAZa00.net
強制
989:デフォルトの名無しさん
20/09/04 17:34:45.10 HS1f+dQZ.net
Appleって昔からそういう社風じゃね。信者専用アイテム
990:デフォルトの名無しさん
20/09/04 22:03:34 aflsfnfY.net
マカーってのはマウスのボタンは1つで十分、いや、一つでなければならない
くらいの勢いだったのにボタンが増えた途端に掌返し
991:デフォルトの名無しさん
20/09/04 22:13:31 nQgCUPtR.net
Macって普通のWindowsのマウスを使っちゃいけないのですか?
992:デフォルトの名無しさん
20/09/04 22:27:59.61 n9bltVZH.net
Macはキーボードがいまいち
WindowsはOSがいまいち
Linuxはサポートがいまいち
993:デフォルトの名無しさん
20/09/04 22:36:23.60 iEv5UTAi.net
ALPS時代のMacのキーボードは最高だった。
M0116は4枚ストックしているしADB-USBアダプタが安く出ていたらポチる。
994:デフォルトの名無しさん
20/09/05 02:03:25.97 xssUSRa1.net
「〇〇関数」って名前の付くものって、
無名関数(匿名関数)
即時関数
コールバック関数
・・・のほかになにかあります?
995:デフォルトの名無しさん
20/09/05 02:05:01.74 d+twY0T8.net
高階関数
996:デフォルトの名無しさん
20/09/05 04:42:57.77 S7yCSPxi.net
「〇〇な関数」を「〇〇関数」っていうだけだから、いくらでもあるだろ
997:デフォルトの名無しさん
20/09/05 05:33:27.22 1yDZyjuL.net
二次関数
998:デフォルトの名無しさん
20/09/05 09:11:48.69 Z+0szYX9.net
>>974
ジョブズは技術者ではなくてプロデューサーだよ
製品のビジョンを示して実現に向けた環境作りをする人
そのビジョンが個人用コンピュータであり、スマートフォンだった
彼がいなければこれらの登場はまだ先になっただろうね
999:デフォルトの名無しさん
20/09/05 10:31:06.94 D6IgUwp/.net
仮想関数
純粋仮想関数
第一級関数
逆関数
1000:デフォルトの名無しさん
20/09/05 10:52:58 8SDdoWCb.net
サスペンションはなんでもok.
パンターのサスペンション - T.N.T.-SHOW
URLリンク(blog.goo.ne.jp)
PANTHER SUSPENSION, How it Works. - YouTube
URLリンク(www.youtube.com)
三輪車、四輪車と来れば次は八輪車が来る
URLリンク(www.autocar.jp)
1001:デフォルトの名無しさん
20/09/05 10:59:00.38 D6IgUwp/.net
HDMIは関連特許や技術の使用権が有料
adopter加盟して製品毎に認証を取って、最終製品の出荷1台あたり$0.15のロイヤリティを払わないと、後で訴えられる可能性がある
adopterリストが公開されてて、そこに登録されないで製品売ってるメーカーは全部違反してる
今の所、訴訟起こされた事例は無いけど、いつか本気出す時が来る
国内メーカーでもやってるところがあるので、どうなるか興味深い
DVIで出力して外部で変換するのは、よい回避方法
お店で市販するような形で出荷するのが最終製品
HDMIつきグラボを組み込んだPCを市販する時、ライセンス料はグラボの製造元が払ってるので、PCメーカーは払わないでいい
1002:デフォルトの名無しさん
20/09/05 11:40:41.86 0G8JNZEa.net
Macつくった人のセンスなくない?
・電源アダフタがデカくてOAタップで他のコンセントが使えなくなる
・マウスつなげるUSBがPCの左だからケーブルをわざわざ右にたどらせないといけない
・USBがCタイプしかないのでUSBマウスをつなげたくても変換コネクタがないと使えない
これすべてものすごく不便。
1003:デフォルトの名無しさん
20/09/05 11:43:09.48 0G8JNZEa.net
>>990
いやそのくらいオレも子供のときから気づいてた。
ファミコンやPCエンジンがいつかドラえもんの秘密道具のように腕時計サイズで実現すれば学校で授業中にゲームができるのにとよま妄想した。
1004:デフォルトの名無しさん
20/09/05 12:00:06.48 TqnPtIZF.net
>>994
机の上に置いたときの美しさを考えよう
> ・電源アダフタがデカくてOAタップで他のコンセントが使えなくなる
電源アダプタはMac外なので汚くても構わない
> ・マウスつなげるUSBがPCの左だからケーブルをわざわざ右にたどらせないといけない
マウスは繋げなければいい。繋げなければ美しい
> ・USBがCタイプしかないのでUSBマウスをつなげたくても変換コネクタがないと使えない
変換コネクタもMacの外部である
Macの見た目の美しさ。それだけで判断しよう
1005:デフォルトの名無しさん
20/09/05 12:19:58.56 0G8JNZEa.net
ようするにキタナイということじゃないか(ワラ
1006:デフォルトの名無しさん
20/09/05 12:28:49.75 wAjJz4a3.net
Macはそのうち全てが無線になる前提で開発してるんだろう
先進的すぎてまだ俺らが追い付いてないだけだ
1007:デフォルトの名無しさん
20/09/05 13:24:49.56 knNbxiKt.net
>>990
いわゆるsystems engineer。日本語じゃなくて英語の方
日本じゃほとんどいないし評価もされない職業
1008:デフォルトの名無しさん
20/09/05 14:25:14.52 D6IgUwp/.net
1000で周庭ちゃん釈放
1009:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 75日 18時間 22分 2秒
1010:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています