スレ立てるまでもない質問はここで 154匹目

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
垢版 |
2020/06/21(日) 20:03:12.66ID:CQtEdpsm
質問する前にGoogleで検索しましょう。 http://www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングや犯罪行為に関わることを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴、雑談はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
スレ立てるまでもない質問はここで 153匹目
https://mevius.5ch.net/test/read.cgi/tech/1586142285/
869デフォルトの名無しさん
垢版 |
2020/09/01(火) 15:34:26.60ID:fuWow3G5
tcl/tk
2020/09/01(火) 16:05:59.43ID:X/AXeJa2
>>868
cのプログラムをexeにコンパイルしている状態なら
c#でwinformでボタン配置して、Process.start()で呼べば良いが
ソースコードをそのまま流用するような場合はある程度知識が無いと
そもそも何も出来ないかと
2020/09/01(火) 16:10:37.70ID:4meeAMMW
>>868
ShellExecute関数
2020/09/01(火) 16:18:46.24ID:WNML/qDz
>>869
ありがとうございます、調べてみます
>>870
ソースコードは自作なのでそのあたりは問題ありません
GUI側でプログラムの引数や戻り値、後ちょっとしたグラフィックも扱えるものが良いですね
2020/09/01(火) 16:26:28.89ID:WNML/qDz
>>871
Excelは用意できないです
2020/09/01(火) 17:17:02.46ID:x63jWwwu
>>863
promise, async/await などの、非同期処理を使えないの?

JavaScript(JS)の質問は、この板よりも、
web制作管理板のJSのスレの方へ、書き込んだ方がよい
2020/09/01(火) 17:27:24.65ID:x63jWwwu
VC++ か何かで、managed(.NET)から、unmanaged(.NET以外)を呼び出す機構があったような。
.NETのunmanaged拡張(C++/CLI)

今でも使えるかどうかは、知らないけど

「c++ managed unmanaged」で検索!
2020/09/01(火) 18:41:19.55ID:3AXmEbq5
GUI側の言語は何でも良いの?
Cで!って言われるとあんま選択肢ないんだけど
2020/09/01(火) 18:46:49.24ID:Nbbg7pi3
>>866
あら、じゃあ二重にurlを変更しようとしているルートがあるのか?

でも、replaceしている箇所にブレークポイント仕掛けて、表示されている段階でreplaceするボタンを押して
そこでreplaceする前(でないとnull参照)にconsoleで確認して、なんでnull?と
気づかずになんかやってるパターンかなこりゃ
2020/09/01(火) 18:48:19.04ID:Nbbg7pi3
>>874
ありがちなTipsだったりするかなと
ありがとう
2020/09/01(火) 19:50:09.10ID:NT1puBvX
>>876
GUI側はなんでも良いです
2020/09/01(火) 20:48:44.14ID:usFRsaVF
WinFormでCの関数をDllImportして使うのがたぶん一番簡単

webviewでUI作ってUIのイベントハンドラからCの関数を呼ぶ方法もある
https://github.com/webview/webview
881デフォルトの名無しさん
垢版 |
2020/09/01(火) 23:25:47.93ID:Na3IYFyX
どこかのYoutuberが
いまはMacを買っちゃダメって言ってたんですが
これは本当ですか?
理由はなにかテクニカルなことだった気がします。

いまWeb系プログラミングのためにMacを買おうか検討しているのですが。
2020/09/01(火) 23:31:19.46ID:EzjTWAdj
ARMに変わろうとするかどうかの時期だからな

PowerPC Macはとっくに絶滅しただろ?
初代のIntel Macもシングルコアで早くに切り捨てられただろ?

今買うと、買ったすぐにいつまで使えるか気にしなければいけないし
ARM機をすぐに買っても初物だからこれも動作が怪しいし価格もこなれてないだろうし

今はタイミングが悪いよねーw

俺のMacは2013年もの。クソキーボード登場前で性能的にも現役で使えてる
あと数年耐えられるだろうから、買ったタイミングは良かったわw
2020/09/01(火) 23:37:34.84ID:WlRs9kXo
今も昔も将来もWeb系プログラミングのためにMacを買って良いときなど無い。
好みの問題でMacが欲しいだけなら今すぐ買え。待っていても買い時など来ない。
884デフォルトの名無しさん
垢版 |
2020/09/01(火) 23:41:13.60ID:AxyA6QFh
bool flag = true;
Do:
// 処理
if (flag) goto Do;

これでループを作れるからwhileが要らない気がしてきました。
メリットはcontinueで一気抜けられない入れ子状況下においてもgotoならいつでも一気に抜けられるところです。
while要りますか?
885デフォルトの名無しさん
垢版 |
2020/09/01(火) 23:50:32.83ID:Na3IYFyX
そうですARMかなにかだと言ってました。
それは新しいものなのですか?
買う予定なのはノートPCなのでMac Book のProかAirなのですが。
886デフォルトの名無しさん
垢版 |
2020/09/01(火) 23:51:59.96ID:Na3IYFyX
ちなみにMacは何の知識もありません。
正直そんなら欲しいとも思わないのですが将来はiPhoneアプリの開発もやってみたいのでそのためにはMacは必須と聞いたもので。
2020/09/01(火) 23:52:10.89ID:X/AXeJa2
>>884
whileループといわゆるdo whileループはループ内が必ず一度でも回る場合はdo whileで書く方がスマートですが
基本的にそういうループは少なく条件が成立すれば初回も回らないループの方が多いので
一般的にwhileなりforループやforeachを使う訳です
888デフォルトの名無しさん
垢版 |
2020/09/01(火) 23:54:17.08ID:Na3IYFyX
>>884
いまgoto使うのはハゲだけです。
なぜ素直に
Do{
//処理
}While();
にしない?
889デフォルトの名無しさん
垢版 |
2020/09/02(水) 00:01:05.64ID:NYistFqT
do-whileの中にcontinueで一発抜け出来ない部分があると、
これ全体がgotoで良くないか?ってなるわけです。
そしてwhileはforでできるからwhileの存在意義は消滅すると思います。
2020/09/02(水) 00:08:38.00ID:RfITVUZj
>>884
根本を誤解しているぞ
GOTOが廃れた理由はGOTOが貧弱だからじゃない
何でもありの最強カードだからだぞ
グローバル変数がどこからでもアクセスできる最強カードなのと同じ
public staticなメソッドもつよいぞ
制約のない最強を乱用すればするほど、最高レベルのソース読解力が求められる魔界に堕ちるリスクを増すことになる
2020/09/02(水) 00:09:11.77ID:Bkj/9gan
Macのペコペコキーストロークとクソタッチバーのせいで指の関節が再起不能になるからな
2020/09/02(水) 00:19:47.92ID:RfITVUZj
変数は定数の役割を代替できるので定数に存在意義はないですよねって言ってるのと同じ
俺はgotoをキレイに使うから大丈夫って自信があるなら、ひとりプロジェクトで自由に使えばいいんじゃないかな
2020/09/02(水) 00:45:14.08ID:Ze67OMaN
C++でちゃんとRAIIしてるときにオブジェクトの宣言すっ飛ばしてgotoするとなかなか厄介だから現実的にろくに使えない
2020/09/02(水) 01:09:20.43ID:/OorwRLB
>>886
そうだよ。Appleが独占してるせいでiPhoneアプリの開発は自由がない
しかたなくMacを使ってる人が多い

さてiPhoneのCPUはARM。MacもARMになる。
おそらく将来はARM搭載Mac専用でiPhone開発用の
高度なエミュレータとか登場そうだよなw

いやぁ実にタイミングが悪い
待ったほうがいいのか、待ったところで初物で問題が起きるかもしれないのか
中古でしばらく様子を見るのもありかもなw
895デフォルトの名無しさん
垢版 |
2020/09/02(水) 01:18:52.18ID:llsK6o3h
MacのARMはいつ登場するのですか?
896デフォルトの名無しさん
垢版 |
2020/09/02(水) 01:59:55.90ID:/XFBlUpE
>>895
https://jp.techcrunch.com/2020/06/10/2020-06-09-apple-could-reportedly-announce-mac-shift-to-its-own-arm-based-chips-this-month/?guccounter=1
>
> すぐに利用できるハードウェアの発表ではないが、
>2021年にリリースされるはずのARMベースのMac向け
>ソフトウェアを準備する時間をデベロッパーに与えるために役立つだろうという。
>ただしARMベースのMacハードウェアが製造されるのははるか先であるため、
>発表のタイミングは変わる可能性もあると記事は注意している。
2020/09/02(水) 02:01:21.20ID:13M4HIS6
そもそもiPhone優位ってのは日本だけのガラパゴスなんだよな
898デフォルトの名無しさん
垢版 |
2020/09/02(水) 02:04:07.26ID:SXFlbys1
gotoどころかswitchも使ったことが無さそう。
2020/09/02(水) 02:11:33.33ID:OTPjZje/
>>880
今ならWPFとか良さそうですね
2020/09/02(水) 05:41:30.45ID:7pXYU4Em
複数のループを一気に抜けたいときは
その箇所をサブルーチンにしてreturnで抜けるのが簡単でスマートかな

もちろん言語系がthrow〜catchやlast(ラベル)などサポートしてるなら使えばいい
いずれにしても、ループを抜けたいってだけの動機ならgoto使うほどのことはない。
901デフォルトの名無しさん
垢版 |
2020/09/02(水) 08:30:04.82ID:b48j9NlC
逆だな。
ループしたいからgoto使ってんだろ?
なら彼には機械語が向いている
2020/09/02(水) 11:54:34.61ID:Jr4NdJRH
ちょっとズレた質問になりますが、わかる方いましたら回答お願いします。

デスクトップに置くExcelのショートカットを、webドキュメントのショートカットとしてパソコンに認識させる方法ってありませんか?

理由は会社のパソコンはシャットダウンの度にデータが消されてしまい面倒なためです。
webドキュメントのショートカットのフリが出来れば消されないようなので…。
903デフォルトの名無しさん
垢版 |
2020/09/02(水) 12:18:35.60ID:/XFBlUpE
>>902> ショートカットのフリ
Excel.exeへのショートカット?
hoge.xlsxへのショートカット?
hoge.htmlへのショートカット?

デスクトップ自体が再起動リセットされるんなら

ショートカットは全てリセットされるんじゃないの?
ユーザースペース割り振られてるならそっちにすべきじゃない?
2020/09/02(水) 12:46:17.44ID:Jr4NdJRH
>>903
説明下手なのに読み取って頂いてありがとうございます

ショートカットはものによりリセットされないようです。(というのも削除するしないは会社が決めて管理しているようです)
今確認できている消えなかったものはwebドキュメントのショートカットだけです。httpsから始まり適当な文字で終わるものです。

やりたかったことはクラウド上にあるhttpsから始まり.xlsxで終わるショートカットを残すことでした。
いけそうで無理でした。
ショートカットのアイコンは普通のExcelのアイコンになっていました。
ユーザースペース(理解してない)はクラウド上にのみになってしまうのです。
905デフォルトの名無しさん
垢版 |
2020/09/02(水) 12:56:19.04ID:rnNUI4lA
.lnkを削除して.urlは消さないって事かな?
one driveのファイルって直リン出来んのかな?知らんわ
906デフォルトの名無しさん
垢版 |
2020/09/02(水) 13:33:32.70ID:llsK6o3h
ちょっとカツラがズレた質問になりますが、わかる方いましたら回答お願いします。

いろいろ考えてやっぱりMacノートを買うことにしたのですが
安いものでも軽く10万円を越えるのにびっくりです。
相場的にそのくらいなのですか?
予算は5-6万と考えていたのですが厳しいですかね?
あとMac BookのAirとProってどう違うのですか?Airが安めだけどProを薦めてる人が多い感じだけど。
907デフォルトの名無しさん
垢版 |
2020/09/02(水) 13:34:38.68ID:llsK6o3h
>>896
なるほどありがとうございます。
いろいろ考えたけど、買うのは「今でしょ」と決心しました。
2020/09/02(水) 13:46:40.72ID:/XFBlUpE
学生の頃に40〜50万円したのをバイトして買ったなあ
今でも捨てられずにいるWin95・・

10万円なら安い方だよ家電量販店なら20万円前後だからね
他の人もレスしてるけど
プログラミングするならキーボードの打ちやすさが大事
ファッションアイテムでしかないなら外観重視
2万円のドンキーにしとき
909デフォルトの名無しさん
垢版 |
2020/09/02(水) 13:52:55.67ID:llsK6o3h
あれれ
わたしもWindows95を親に買ってもらったけど
そんなに高かったっけ?
2020/09/02(水) 14:08:29.16ID:U40YU3HI
ドンキの2万円のパソコンは、メモリ不足で動かないだろ。
ブラウザを起動するだけで、一杯一杯

YouTube の動画でも、使い道に困っていたw
2020/09/02(水) 14:22:57.97ID:/XFBlUpE
>>909
レッツノートで42万円
https://www.itmedia.co.jp/pcuser/spv/1901/29/news029.html
銀パソブームのマグネシウム合金ボディーで三菱は60万円
2020/09/02(水) 14:29:37.02ID:/XFBlUpE
>>910
クラウドにコンソールとして繋げるWi-Fiの
キーボード&モニターだと思えば良いだけ
2020/09/02(水) 14:45:32.68ID:/XFBlUpE
>>911
訂正、三菱は銀パソじゃ無かったです。
ぺディオン
https://pc.watch.impress.co.jp/docs/article/970909/pedion.htm
標準価格:578,000円〜728,000円
CPU:MMX Pentium 200〜233MHz
RAM:32MB〜64MB(固定)
HDD:1GB
グラフィック:MagicGraph128+ 1.1MB RAM
2020/09/02(水) 15:24:56.65ID:6JccYJo3
主力スマホだって10万円くらいするのにPCが10万円で高いとか価値観おかしくね?
2020/09/02(水) 17:35:42.42ID:q+/noi+L
>>904
試してないからあてずっぽうだけど、拡張子「xlsx」を引っ掛けているならば、
該当するURLを短縮URLに登録して、登録した短縮URLをショートカットで
呼び出すのはできないかな
2020/09/02(水) 17:55:13.81ID:oPbAh6sy
>>904
file scheme試してみたら?
file:///C:/Users/User/Foo.xlsxみたいなやつ
2020/09/02(水) 21:03:34.21ID:bnI7y6/M
>>915
>>916
ありがとうございます。
どちらも試してみます!
2020/09/02(水) 21:17:29.68ID:UIr/ajI4
会社がやるなっつってること会社でやるなよ…
2020/09/02(水) 21:44:22.53ID:zuDWrISP
goto文がいけないのは、gotoで変数を持ったままループから飛び出したり、
ループに飛び込むことが可能なこと。可読性が著しく下がる。
920デフォルトの名無しさん
垢版 |
2020/09/02(水) 22:01:31.23ID:X8QkAlKf
>>918
会社なんて糞ですよ。気にもしていない。次のスキルアップのための踏み台。
2020/09/02(水) 22:44:53.75ID:d4v16vwV
プログラミング初心者が、初学者用のプログラミング学習本を読んで、
最後の方の章で「掲示板を作ってみましょう」「簡易ツイッターを作ってみましょう」みたいなのがあって、
そのソースコードを打って、はい完成しました

で?
次は何すればいいの??

という状況に陥る人はやっぱりプログラムには向かないんですかね・・・?
2020/09/02(水) 22:49:49.69ID:7eaUdZ9h
>>921
完成したものに自分があったら便利だと思う機能を追加してみたら?
923デフォルトの名無しさん
垢版 |
2020/09/02(水) 23:07:53.25ID:ul4sa9SZ
Mac BookのAirとProってどう違うのでしょうか?
2020/09/02(水) 23:31:59.00ID:dk5o+j+k
>>921
正直なところ、向いてないと思う。
その最後の方の章に行くまでに、ただ読んだだけ?
書いてあることに疑問を持ったり実際に書いて動かして試そうとしたりしなかった?
変えてみたらどうなるか、なぜそうなるのか、思った通りにならなければそれはなぜなのか、腑に落ちて疑問が解消するまで試行錯誤したりしなかった?
925デフォルトの名無しさん
垢版 |
2020/09/03(木) 00:45:13.69ID:i6UO46W8
>>921
はい。
926デフォルトの名無しさん
垢版 |
2020/09/03(木) 00:47:15.46ID:IG/XT9xA
>>921
たにぐちまことのPHPの本だな
2020/09/03(木) 01:35:16.46ID:hPKoXEB/
クラス定義の仕方にアドバイスお願いします。
車クラスを定義するとして、メンバ変数にサスペンションのバネ定数を定義したいとします。
ただし、車種によってサスが4本のものと3本のものがあり、変数名を「FR/FL/RR/RL」「FC/RR/RL」のように固有につけたい場合どうするべきか思い付きません。
「4輪車クラス」「3輪車クラス」で分けるべき?
2020/09/03(木) 02:56:05.50ID:d+ZpNCKo
>>927
どういう風にクラスを定義するのがいいかは利用目的に次第なので
車クラスを定義する目的や用途をまず定義するべき
2020/09/03(木) 05:56:53.62ID:yk4FSoXe
外から見えないメンバ変数なら勝手にやれとしか。
外から見て3輪と4輪の違いがあってそれをコンパイル時に区別できてほしいならクラスを分ける。
930デフォルトの名無しさん
垢版 |
2020/09/03(木) 06:28:54.04ID:i6UO46W8
>>927
変数をFC/FR/FL/RR/RL 5つ定義して
オーバーロードで検索
931927
垢版 |
2020/09/03(木) 08:00:24.20ID:hPKoXEB/
アドバイスありがとうございます。

>>928
後だしになってしまいすみません。
・C++
・車を制御するプログラム
・今は4輪向けだが後に3輪が控えてる
・3輪を自分が開発するとは限らない
というような状況を想定していました。

>>929
基本的には車が動くときの機能で使うため、車クラスの前進/後退/停止メソッドだけから参照するため、外部参照はないと想定しています。

>>930
オーバーライド、オーバーロードで出来ないかも検討していたのですが、5つ定義しておくというのはやっぱり変数の変更ってできないんですか?インスタンスが自分に関係のない変数を持つのはなにか気持ち悪い感じがしまして、、、

やはり3輪4輪でクラスを分けるべきか。
2020/09/03(木) 08:42:14.36ID:F9/SGTXZ
>>931
俺ならサスペンションを複数登録できる「車輪」クラスをまず作って、
車クラスには「前輪」と「後輪」の2つの車輪クラスを置くかな

これで四輪車も三輪車も二輪車も表現できる
2020/09/03(木) 10:03:31.69ID:d+ZpNCKo
>>931
前進/後退/停止メソッドが「FR/FL/RR/RL」「FC/RR/RL」で定義された各バネ定数を直接参照する必要があるのかな?

前進/後退/停止メソッドが各バネ定数と前進/後退/停止メソッドから渡される引数を使った計算結果に依存すればいいのであれば車クラスを分けるのではなくてサスを管理するクラスを分けて多態性を実現するのがオブジェクト指向的には普通
2020/09/03(木) 11:05:32.62ID:GyULYXpI
DDDのようなレイヤードアーキテクチャを採用した場合、
呼び出し階層の奥深くから、UIレイヤーにエラーを通知するにはどうすればいいだろうか?
クライアントの要望で、かなり細かくエラーを通知してUIに表示させなきゃならない

例外で通知する場合、
例外クラスが多くなりすぎる、
エラーを1つしか通知できない(警告だけして続行する場合に嵌る)

戻り値(あるいはout引数)で通知する場合、
エラーに配慮したインターフェースに変えざるをえない
統一されたエラー通知形式がないので人によりやり方がバラバラ

どちらにしてもダーティにならざるをえないと思うのだが、どうすればスマートに作れるんだろうか
2020/09/03(木) 12:44:33.26ID:s+Y20wWK
DDDしらんけど(笑)深い階層から"UIレイヤー"に限定して
エラー通知とかセンス悪いなぁ
層が分かれてるならUIとか関係なくただのエラー(情報)通知やろ?
受け取り側が何とか意識する必要はない

一つの例外に情報渡せばいいだろ?どうせ文字列だけだろうし
例外はそこで停止するもの
そうじゃないならイベント(コールバック)やろ?

イベントならコールバック関数呼び出してその戻り値で
処理続行するかどうか決められるような設計にするだろうな
2020/09/03(木) 12:45:53.03ID:UXCAe6Pv
そもそもの関心がレイヤを跨ってるんなら設計もそれを素直に反映するしかないだろう
変にレイヤ構造に組み込むことに拘って無駄な通り道を沢山掘るくらいなら、レイヤ構造の外にサービス作ってレイヤを飛び越えて受け渡ししたらいい
DDDだのレイヤードアーキテクチャだのと意識高いことをほざいているメリケン等が実際に作ったシステムを見てみりゃわかるが、だいたいクッソ雑だぞ
美しいレイヤ構造なんてのは客のクソ細けえ要望をいちいち真面目に相手にするジャップITじゃ無理無理
937デフォルトの名無しさん
垢版 |
2020/09/03(木) 12:51:25.27ID:t+42bWz4
https://www.tokyo-sports.co.jp/wp-login.php
どうやってログインしますか?
938デフォルトの名無しさん
垢版 |
2020/09/03(木) 12:56:14.72ID:DK3Ul6vK
どっかで観たアイコンだな
よわよわpwの予感
2020/09/03(木) 13:34:26.79ID:WSy+5JUJ
>>935
エラーを受け取ってどんなメッセージを出すかは受け取る側の責務だからエラー送出側でメッセージを決めたくない
かといって受け取り側がなんのエラーかを判断して適切なメッセージを生成するには多くのカスタム例外型が必要になって管理が追いつかない
ここで悩んでる

イベントハンドラはRPCの時に困るのではという気がする
2020/09/03(木) 13:40:03.09ID:WSy+5JUJ
>>936
サービスを作るとしてじゃあどういう構造にするかってとこで止まる
多種多様な処理から発生する多種多様なエラーを捌くにはどうすればいいか

要望が細かいから無理だと諦めるのは最後の最後時まではしたくない
2020/09/03(木) 13:50:41.59ID:s+Y20wWK
>>939
エラーコード投げればいいだけやろ
頭悪いなあw
2020/09/03(木) 15:04:39.41ID:ar2GYSXj
>>941
コードだけじゃ情報がぜんぜん足りない
2020/09/03(木) 17:00:29.54ID:s+Y20wWK
>>942
情報も渡せよ。要領が悪いな。

お前「カスタム例外の数が〜」
連想配列でも使えよ
2020/09/03(木) 17:45:03.45ID:atr5JQ9S
>>943
もっといじめてください
2020/09/03(木) 18:47:12.56ID:d+ZpNCKo
>>934
例外にするか戻り値にするかはエラーの種類や使ってる言語、レイヤー間のプロセス境界なんかに依存するので一概にどちらかにすべきというものでもなくて、状況にあわせて設計する必要がある

一般的には戻り値のほうが汎用的
Result<T, E>的なのを使ってシグニチャで判断できるようにするか
hasError/errorsのような共通ルールを持つbase classから処理ごとにXXXResultクラスを作って使う

ただドメインレイヤーで例外を投げたとしても
それを例外としてUIレイヤーまで伝播させなければいけないわけでもないし
逆に戻り値を使ったからといって戻り値のまま伝播させないといけないわけでもない
2020/09/03(木) 19:55:22.97ID:3OmTfQuF
>>943
連想配列では型安全性がないから論外

>>945
genericは悪くなさそう
エラー種別ごとに型を沢山作らなければならない点は解決しない
だが例外クラスに良くあるボイラープレートを省略できる利点があるか
ちょっと検討してみるわ
2020/09/03(木) 19:56:08.02ID:BJh39Y3Y
> 連想配列では型安全性がないから論外

型安全性は手段であり目的ではない
目的と手段を履き違えるな
2020/09/03(木) 20:03:50.63ID:3OmTfQuF
>>947
目的を達成するには適切な手段を選ぶ必要がある
連想配列では満たせない
以上
2020/09/03(木) 20:11:45.03ID:yk4FSoXe
エラーの通知というのが要件に含まれているものなら、言語仕様に依存した例外機構に任せるのは
後でいろいろギャップに悩まされる気がする。
2020/09/03(木) 20:17:33.85ID:gpxPJKJE
エラーの設計をこんなところでそもそも質問するなや
どんなに種類が多かろうが全てを伝えるなら膨大なエラーを定義するだけやろ
2020/09/03(木) 20:25:15.35ID:4yFpfo9o
もう、Javaみたいに例外をラップして、通信とか境界越えるときはJSONでラップした結果でも返したら?
2020/09/03(木) 22:05:17.79ID:d+ZpNCKo
>>946
>エラー種別ごとに型を沢山作らなければならない点は解決しない

例外の場合は処理を分岐したい場合は一般的には型を分けるけど
戻り値の場合はswitch caseとかで分岐できる元ネタがあればいいので
ある程度汎用的な型にしてもそれほど困らないよ
(コンパイル時に分岐の網羅性をチェックできる言語だと安全性も高め)

httpのresponseをresponse code別に違う型で受け取って型で分岐したいのか
response codeの値で分岐したいのかって違い

例外を使う場合でも処理分岐が必要ないエラーを
なんでもかんでも型で表現しようとすると無駄な作業が増える
953927
垢版 |
2020/09/03(木) 22:39:49.07ID:hPKoXEB/
>>932
すみません、うまい例えが思い付かず車を例にしましたが、この場合のサス定数はCarクラスのメソッドからしか参照しないような存在です。

>>933
ありがとうございます。恐らく一番イメージが伝わってるかと思います。
https://i.imgur.com/9Px2HYr.jpg
wh_numに応じて返す構造体を切り替える、こんなイメージであっていますか。
954927
垢版 |
2020/09/03(木) 22:53:38.78ID:hPKoXEB/
https://i.imgur.com/qZSlcPn.jpg
wheelクラスいらないんでした。すみません。
上の作りと下の作りどっちがいいんだろう?
2020/09/03(木) 23:14:27.22ID:1vBbbEVb
そこで継承するのはもったいない
CarがSuspensionsを持つ
SuspensionsはTri-とFour-に継承で派生
できればCar側からは車輪の数は意識せず、速度を与えたら摩擦係数を得る、といった抽象メソッドをSuspensionsに持たせる
2020/09/03(木) 23:16:00.37ID:1vBbbEVb
摩擦係数じゃなかった、getSpringConst()を抽象にして、それぞれの派生クラスで実装する
2020/09/03(木) 23:37:56.96ID:e4BtgJ6j
この操作って全部に同じ(ような)操作を適用したりしないのか?
サスペンションをコンテナで保持してイテレーション出来る様にする方が良い様な予感がするんだが。

個別のサスペンションアクセスをわかりやすくしたければアクセサを作るか参照かポインタのメンバ変数にして初期化時に保持するとか。
まあ逆にサスペンションを巡回するイテレータ作っても良いんだけどな。
2020/09/03(木) 23:55:57.87ID:BJh39Y3Y
>>948
型安全性の意味が間違ってるお前がいっても説得力がない
何も産まない設計に時間をかけようとしてるだけ
2020/09/04(金) 00:22:35.10ID:nh9T8LFU
>>954

>>955の書いてるとおり
GoFでよく見るやつ
https://i.imgur.com/gIJKxei.png
車クラスの中でサスの構成に依存してるロジックを関数に抽出して
サスペンションインターフェース(抽象クラス)に定義する

本物の車じゃなくロボコン的なやつなのかな?
2020/09/04(金) 00:54:09.86ID:Wl7qFIBb
>>934
Ruby on Rails では、エラー時のテンプレートも決まっている。
データベースの列名の英語を、日本語に対応させておけば、日本語で表示される(国際化)

エラー番号も決まっている

URL が間違っているなら、404 とか、
サーバー内のエラーなら、500番台とか
2020/09/04(金) 05:51:49.29ID:9bn0no2k
>>952
コード値で分岐するとエラーに付随するデータの取得が型安全にならないのがいまいち

>>960
そういった汎用的なエラーでなくドメイン固有のエラーが大量にある
2020/09/04(金) 06:48:12.98ID:H76Q6Ujr
>>960
> URL が間違っているなら、404 とか、
> サーバー内のエラーなら、500番台とか
それRailsが決めてるわけじゃねーだろw
2020/09/04(金) 07:14:08.85ID:iEv5UTAi
rubyと膏薬はどこにでもくっつく
2020/09/04(金) 08:45:56.81ID:PFscGLUJ
>>961
例外型を一つ作って、コードを持たせる
付随データのバリエーションに合わせて例外型を派生させる
これで例外型がエラーの数だけ増えてしまう問題を一桁押さえつつ、型安全性も得られる
警告はコールバック
コールバックのバリエーションも付随データに合わせて増やしてもいい
965デフォルトの名無しさん
垢版 |
2020/09/04(金) 09:49:03.50ID:KmpQA39o
>>959
電気自動車はロボコンな件
2020/09/04(金) 10:14:04.13ID:n6iAZa00
Ruby脳は全ての言語の起源はRubyっていう思考だから触れるとやばい
2020/09/04(金) 10:31:49.84ID:uYuWb4tc
主は言われた。「Rubyあれ」
すると、Rubyがあった。
968960
垢版 |
2020/09/04(金) 10:55:38.36ID:Wl7qFIBb
伊藤淳一が書いてる

Railsアプリケーションにおけるエラー処理(例外設計)の考え方
https://qiita.com/jnchito/items/3ef95ea144ed15df3637
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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