ほえほえのプログラミング情報(2021年8月新しい順)

1
ほえほえ@スプシマン @hoehoe1234

run、callbynameなどの間接実行についても通常では到達できないレベルで調べてあるのでコメントをよんでみてほしい。ただし、ワイがWinとWin APIに不慣れなこともあり、その先はもっとあるとは思う。Pコードの解析もしていない。

2021-07-30 09:08:54
ほえほえ@スプシマン @hoehoe1234

商流の壁はむずかしそうですね。すべて準委任になりますから。しかし、そうでなくても、そういうことが成立するのはわかりますが歪な枠組みで正しいことを続けるのはもう個人的な資質ですからね。そういう人、みたことありますが。個人的な資質だと思います。

2021-07-30 11:24:14
ほえほえ@スプシマン @hoehoe1234

VBAのソートがない理由はなんとなくわかる。結局ソートは比較関数か比較配列を作らなければいけなくて、WSFのsort、sortby関数を待たねばいけなかった。順数位にvbaで作れなくもないが更新が止まっているので・・・・。mapで基準配列革命がおきるか?

2021-08-07 06:38:15
ほえほえ@スプシマン @hoehoe1234

これは本当にそうおもいます。オブジェクト指向的な言語は理解すれば効果は爆発的ですが、VBAに比べるとたしかに2段階ぐらいむずかしいかもですね。しかし、実はそれが普通のプログラミング言語ということですね。VB系は美しさを捨ててあえて初級者用に特化してますからね。 twitter.com/excelspeedup/s…

2021-07-30 11:28:14
はけた@できるExcel2021 @excelspeedup

VBAに比べると、GASは一回り・二回りくらい難しいイメージがありますね。 ・言語的に知っておくべき知識が多くて難しい  データ型、配列・オブジェクト ・用途的に知っておくべき知識が多くて難しい  JSON、HTTP、API twitter.com/keito_oz/statu…

2021-07-30 11:10:50
ほえほえ@スプシマン @hoehoe1234

これは批判とかでなくて、だから当時のMSの見識はすごいと思います。エクセル+VBAがここまで普及している理由の一つは明らかにVBAの習得しやすからきていると思います。エクセルオブジェクトとの組み合わせと機能制限も絶妙に感じます。

2021-07-30 11:29:50
ほえほえ@スプシマン @hoehoe1234

@excelspeedup VB系という制限された環境で、かつ、エクセルを自在に扱えるモデルで、かつ、日付型が使いやすくて、かつ、工夫すればVBAでもなんとかなるという、まさに「とりあえず初心者でもなんかつくれるようにしとく」という割り切りにMSの凄みを感じます。

2021-07-30 11:33:00
ほえほえ@スプシマン @hoehoe1234

@excelspeedup そうなんですよね。演算子の多様な、一種いい加減な仕様がセルの値と上手くマッチして「考えないで使う」のがベストアンサーだったりしますからね。なんでも比較できるという値ベースのオブジェクト指向とでもいいますかwww。

2021-07-30 11:34:38
ほえほえ@スプシマン @hoehoe1234

壺のDFDを詳細化して、分割してモジュールベースに持ち込む手法と、繰り返しをどう表現するかがわからない・・・。

2021-07-30 11:38:10
ほえほえ@スプシマン @hoehoe1234

A ー>B   ->C ー>D と有った場合、 A内の繰り返しをCにデリゲートする場合、データフロー図がどうなるのかよくわからん・・・

2021-07-30 11:42:15
ほえほえ@スプシマン @hoehoe1234

データフロー図とは、すなわち、モジュールとはデータパイプラインの結合点にあたるわけで ①1:F:1 ②N:F:1 ③1:F:N のような構成になる。 N:F:M は上記の①~③に分割する。 データの流れは繰り返しと単一データで同じか?違うか?それが分割にどう影響するか?

2021-07-30 11:45:47
ほえほえ@スプシマン @hoehoe1234

DFDの例だけど、これって、結局は業務フローの下位の①システム化フローとほぼ同じものであり、業務フローからブレークダウンできる①とくらべてあたらに起こす意味がないんだよね。どうしても壺のいうところの分割の意図がなかなかわからないw pic.twitter.com/segOVEjeRI

2021-07-30 11:51:00
拡大
ほえほえ@スプシマン @hoehoe1234

機能をデータパイプラインととらえるとたしかに機能を「データの観点」からみてパイプと定義できるだけど、これはSTS法等にいう機能の細分化とはうまく整合しにくそうに感じる。そして壺の言うところの分割手法はワイ的ネットで見れるどのサイトよりも高いレベルで考察されているように思う。

2021-07-30 12:57:45
ほえほえ@スプシマン @hoehoe1234

データパイプラインの分割手法については説明があったが、群データと個別データの違いで分割が異なるのかどうかがよくわからない。もちろん、データストリームというので複数データが対象なのであるが。トップ機能が与えられた時に下位構造をデータパイプラインでこうちくできるのだろうか?

2021-07-30 13:00:55
ほえほえ@スプシマン @hoehoe1234

観点を抜き出すとトップ機能が与えられた時に ①機能分割によりモジュール構成図を作成する ②データパイプラインとして全体を構成するー>どこかをつまんで機能構成図にする という2つのことを要求されているように思える。そして壺では②をやれと言っているのだが出来る気がしない。

2021-07-30 13:04:09
ほえほえ@スプシマン @hoehoe1234

VBAの言語としての大きな欠点の一つはやはり配列。これは学習にも使う場面でも相当な負担と混乱を招いている。SafeArrayという実態へのIFが組み込み関数/構文となるのだがぐだぐだすぎてお話にならない。なので配列はちゃんと理解するか、まあいいやで適当に使うのがいいかな?なんて思う次第。

2021-07-31 04:30:17
ほえほえ@スプシマン @hoehoe1234

dim arr() とした場合のL/Uboudが取れないとかどうなの?と思うし、なんといっても参照が取れないこと。実態は参照なのにVBAが参照でなくしてる。後方互換からしかたないが新しい構文がほしいね。

2021-07-31 04:31:40
ほえほえ@スプシマン @hoehoe1234

これなんかも例外で落ちるのはなんだかな~~~という感じ。全てに直交性がないのでライブラリを作るのしんどいんご。抽象化がうまくいかないんご。。。。。 pic.twitter.com/40oEMIjOBi

2021-07-31 04:39:02
拡大
ほえほえ@スプシマン @hoehoe1234

実引数が具象配列かどうかを判定する関数。 pic.twitter.com/5MwfJARlpQ

2021-07-31 07:09:11
拡大
ほえほえ@スプシマン @hoehoe1234

ここ最近研究していた旧来の関数分割だけど、やはりDFDをベースにした関数分割は難しいという結論になった。データストリームを基礎とすると関数はパイプの結合点になり、モデルとしてはきれいなんだけど、壺でいうところの分割が図的に表現するのが難しい。

2021-07-31 07:41:51
ほえほえ@スプシマン @hoehoe1234

関数に相当するDFDのトップを一つ抽出したとして、内部は、データに相当するパイプとパイプの結合点である関数で、データを流して機能を構築するイメージになる。これは単なる機能分割に対して難しい。

2021-07-31 07:43:03
ほえほえ@スプシマン @hoehoe1234

機能の分割とデータによる分割の2つを同時にすることは非効率だしわかりにくい。どちらからが主でどちらかが従。となるとやはりヨードンのいうように機能が上のほうがわかりやすい。そして内部でN:Mの結合点があればそこは壺の言うところの分割、すなわちデータフローの分割を行えばよい感じかな。

2021-07-31 07:44:37
ほえほえ@スプシマン @hoehoe1234

ちなみに、壺の分割の観点(手法)は素晴らしい。このためにサイトを20~30以上みたが壺を超えるものはなかった。特にN:Mの関係をN:1~1:Mに分割せよ。は素晴らしい。これにより前者はパーサ系、後者はレポート系として実装できる。

2021-07-31 07:45:58
ほえほえ@スプシマン @hoehoe1234

両睨みの分割方法も紹介されていた。入力に3つの繰り返し構造があり、出力に2つの繰り返し方法がある場合、どのように制御構造を統合するか?という話し。実際にうまくできている。この話は難しいので、ここまで。

2021-07-31 07:47:08
ほえほえ@スプシマン @hoehoe1234

ここまでといいながら、この手法は、レポート構造のなかにパーサ構造をいれるか、その逆かを選択しなさいという話。選択というか、これらを意識して制御構造をマージしなさいということ。これは経験と技量が必要だな思った次第。

2021-07-31 07:48:29
ほえほえ@スプシマン @hoehoe1234

逆に手法としてN:MをN:1ー1:Mのモジュールに分けるのは素晴らしいと思った。これはデータフローからそうするので、結局は トップダウン機能分割  ボトムアップ分割  データフロー分割  構文結合とデータ結合の考慮 という構成になるのだろうか?たしかにワイ的にはこの分割方法がしっくりとくる。

2021-07-31 08:05:05