><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
逆にこういう風にしないで互換性どうやって保つのか謎><
そもそも、実行時に何らかのファイル等のデータをデコードする最中に記述されているデータの不整合を見つけた場面にでは、そのシステム標準の例外のシステム等を頼るべきでは無い気がする派><期待しないというか、ファイルは壊れてて当たり前的な><
オレンジはデコーダというかパーサというか何らかのフォーマットな文字列でデータを読み書きするやつを作る時には、既知の項目のはデコードするけど記述が無ければ無いとする(必ずあるとは期待しない)、未知の項目は読み飛ばして例外は出さず、未知のデータがあったという情報のみ残す(単にスルーの場合もある)、ってしてるので実行時に例外だしてコケる事まず無いかも><
たとえば Rust で「load_foo("foo.json") が失敗したらデフォルトの値とする」とかだと
load_foo("foo.json").unwrap_or(Default::default)
みたいな感じでごく普通のメソッド呼び出しで済むので、例外が伝播されるとか catch すると実行が分岐して代入文が2つに増えるとかそういうのがないんですよね。欲しい挙動を書くだけという……
・・・><;
ほのぼの動物ニュース><(バランス><;)
"食事中に突然フリーズ ムササビくんに何があった?(2021年1月28日)" を YouTube で見る https://youtu.be/wduRsozqj0I
><;って書いたつもりが多重投稿になって弾かれたっぽさ><;
文字列でどうにかするのはアレなので・・・って内容かと思って読んだ><;(英語力ヤバイ><;)
oh><;
stringly typed, 文字列による型付け的お気持ちです
強い型付け><
とりあえず "stringly typed" という概念だけ今日は覚えて帰ってもらいましょ
Stringly Typedhttps://wiki.c2.com/?StringlyTyped
><;
これはダサいマジレスなんですが、下を見るとキリがないので下を見て安心するのはやめた方がいいと思う……
まあ †ビジネス† の世界では実行時の誤りの発覚がないことよりも差分の小ささの方が正義なのかもしれないが……それは私の知ったことではないし私の関わりたくない領域の話なので
動的型つけ環境の「変更に強い(変更した結果何が起きるかわからない)」と同じかも?><;
正しくない指標を用いて開発や成果物を改善しようとすると何が起きるかの一例ですね
ところでこれはエアリプだけど、型などでガッチリ仕様を表現せず文字列でデータを表現して持ち回る理由としては、「文字列なら enum variant の追加等と違って型そのものやその利用箇所への影響が少ない (≒コード変更なしでコンパイルが通る) ので、見掛け上の変更と影響範囲を小さくできる」などがあります。もちろん正しく動くとは言ってない。
こういうの見ると、他人に見せて恥ずかしくないコードの世間一般の基準みたいなのが謎になる><;(オレンジは「恥ずかしくて出せない><;」ってコードたくさんある><)
ていうかなんで文字列で処理してるんだろ?><;(このコード書いた人だけじゃなくこの周辺を設計した人自体ヤバくね?><;)
思考の /dev/null