新しいものを表示
orange さんがブースト

twitter.com/NAL_MUTHU/status/1
> LRT軌道の敷設は、都市戦略を考える上で必要不可欠であり、相応の需要があると判断したからこそ行うもの。その沿線は将来に渡って都市にとって重要なエリアであり続けるわけで、将来を見通せるからこそ、民間は投資を決断できるんですよね。
> 「数値で表しにくい」部分なんだけど、ここは極めて重要。

人を運ぶという点では、鉄道(軌道系交通)もバスも大差無いんだけれど、その交通手段が持っているイメージこそが割と重要っていうね。
国や地域によってもイメージは違うから、他所の事例を持ってくるときに気を付けないといけない点だと思う。

orange さんがブースト

「goto ではなく if/while を使え」とかと同じ信念であるところの「制約は強い方が意味をよりよく表現できる」に通ずるところがある

スレッドを表示
orange さんがブースト

何であれ「適切な制限を適切に強くできること」というのが人間への可読性や認知の負荷のかかりかたに影響してくるので、その辺りは単にいち構文やいち言語機能がどうこうで言うよりも言語全体でどれだけの範囲をカバーできるかの問題になってくると思う

orange さんがブースト

実際 Rust では「core::fmt::Display trait (interface のようなもの) を実装している FooWrapper 型を関数内で定義する」みたいなことができる

スレッドを表示
orange さんがブースト

もちろん interface を定義して云々やっても良いのだが、利便性の面で言うと、その場合「特定の interface を実装するクラスを関数内やインラインで一時的に定義できる」くらいはさせてくれるよね? という気持ちになるわけで

スレッドを表示
orange さんがブースト

ユーザを信用するかどうかの問題 (ここでいう信用とは善悪だけではなくミスをする存在であるかどうかを含む)

スレッドを表示
orange さんがブースト

主処理の名前を上書きできるようにすると、主処理を呼ばない関数での上書きを許してしまうことになる

完全にそれはそうなので、だからこそ気持ち悪い書き方に見える><(主処理と順に実行する関数をわけて欲しい><)

orange さんがブースト

abstractな時点でoptionalってことはないと思うが…

あと、そういう例だとC# の場合はインタフェースが使われる構造になる気がする><

たとえば子クラスで必ず前処理と終了処理が実装される事を要求する場面ならば、前処理、主処理、後処理の関数として、主処理だけ親クラスに書いた上で、前、主、後って順に呼ぶ実行関数を別にする方がよくない?><
スライドの書き方だと必須なんだかオプショナルなんだかよくわかんない構造に見えるし、変更にも弱そう><

前後の処理をabstractな関数で定義しておく書き方になってる例も、オレンジには気持ち悪いコードに見えた><
オレンジだったら、対象の関数をオーバーライドして親クラスの関数を呼ぶコードの前後に前後の処理を書くってするから><
ていうか、順に実行する必要があるものであれば、真ん中部分の関数から前後を呼ぶなんて気持ち悪い書き方しないで順に呼ぶ関数を分ける><

さっきの記事の筆者、著書のレビューにも書かれてたけど、static多用しまくるのが好きらしいけど、スライドの例みたいなのでも、スライドの例より複雑な状況だと引数がとんでもない量になったり、関数が余計に分割されまくりでコード量が爆発的に増えたり、引数がとんでもなくならないように引数用の複雑な構造体を作りまくったりってなるじゃん?><
オレンジも開発初期の試行錯誤コードはそんな感じでぶっちゃけ恥ずかしいけど、そういうのを解消するようにリファクタリングしてオブジェクト指向な環境が提供する機能に頼って簡潔にしたコードにしてくってしてるよ><

でも、本当にキレイに書いてないと恥ずかしくて大々的にコードを公開するのは恥ずかしいので、ちゃんと清書したやつしか公開してない><;
(頼まれたりお節介で作ってあげた時には、コードもzipで固めて一緒に渡すことが多い><)

オレンジが頼まれたりお節介で超高速で数時間とかでWindowsアプリ作れるの、それまで作ってきたアプリが多少汚く書かれてても(><;)、「ちょっと違うアプリも簡単に作れるようになってるフレームワーク」の上に作るみたいなやり方で作ってきた蓄積があるから、
「そういう目的だったらあのアプリのあの部分と、あっちのアプリのあの部分を持ってきたらすぐ書けるかも><」って事がそこそこ多かったのもある><

ちなみに夕方書いたこれはこの場面では間違ってた><;(のでその後書き換えた)
mstdn.nere9.help/@orange_in_sp
これだと別のキーでソートする時に、前のキーで反転させると続けて反転になっちゃう><;
これだと一般的なlistviewの挙動と違う><;

NAudio自体のプロセス別のループバック対応、開発者の人が一人頑張ってるんだけど、なんか苦戦してるっぽい><

で、作ってる録音アプリもアプリ自体が目的じゃなくあくまでデバッグ用であって、選択したプロセスからの音のみをループバックするのを簡単に出来るようにするフレームワークで、将来的にはNAudioとも組み合わせて使えるようにする予定><

mstdn.nere9.help/@orange_in_sp

オレンジが今作ってるこれの対象プロセス選択部分も、対象プロセス選択部分を直接作ったんじゃなく、Windows Core Audioのセッション群を簡単に扱えるフレームワーク(簡単に音量ミキサ自作できるフレームワーク)をまず作ってそれを流用してるし、
そのフレームワークも12年前に作りかけたレベルメータのフレームワーク部分を参考に清書したもの><

[B! オブジェクト指向] オブジェクト指向は必要なのか / Is object-oriented needed? b.hatena.ne.jp/entry/s/speaker

なに言ってんだこいつ><(素直な感想)
ウェブ界隈の方々って、フレームワークを作り上げていくようなやり方はせずに、他のものに流用しづらいコードを書くようなやり方をするのが普通なの?><
フレームワーク作るなら必要だけど作らないなら不要って、それで不要っていうならつまりフレームワークを作るようなやり方はしてないってことでしょ?><

古いものを表示
:realtek:

思考の /dev/null