5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【衝撃】なんと旧VBはOOP可能だった!【発覚】

1 :仕様書無しさん:03/02/05 03:00
なんと旧VBにはクラスがあった!
なんと旧VBにはメソッド・プロパティがあった!
なんと旧VBにはインタフェースがあった!
なんと旧VBにはリフレクションがあった!
なんと旧VBはインタフェースの多重継承ができる!
なんと旧VBはインスタンスを作成できる!
なんと旧VBはカプセル化が実現できる!
なんと旧VBは抽象クラスを作れる!
なんと旧VBは多態を実装できる!
なんと旧VBはデザインパターンを実装できる!
なんと旧VBはメソッドの呼び出しを動的束縛にも静的束縛にもできる!
なんと旧VBは委任により実装継承に近いことができる!

※ここで旧VBとはVB5、VB6のことを意味する。
残念なことに完全な実装継承は出来ないが
OOPに詳しい人達によると実装継承はOOPに必須の機能ではないらしい。

272 :仕様書無しさん:03/05/30 16:24
classもつかえねぇVBでOOなんかできるわけねーだろ。
>>1士ね

273 :仕様書無しさん:03/05/30 16:38
VBでコードを再利用したいなら
コピペ支援ツールを使うのが一番良いよ。

汎用性を持たせようとするとハマる。

274 :仕様書無しさん:03/05/30 16:45
汎用性ってよりバグ取りが大変だと思うが>コピペ
どこにコピペしたのかフォローするのがコピペ支援ツール?

275 :273:03/05/30 16:58
>>274
クラス書く→半端な言語仕様にイラつく、保守しづらいと周囲にウザがられる
DLL書く→OleVariantに対応するのがめんどい、配布しづらいと周囲にウザがられる


276 :仕様書無しさん:03/05/30 17:04
仕変やバグFix時にコードの一貫性、一意性を保証する仕組みを自動化(ツール等で)
するつもりなら、妥協的手段としてのコピペもありかな?

静的HTMLで類似する箇所をコピペするのは珍しいことではないし。
(比較対象として妥当かどうか・・・)

# 本末顛倒の感、なきにしも非ずだが・・・。

277 :仕様書無しさん:03/05/30 17:04
    ∧_∧
   ( ´ー`)  >>275 わかりますわかります
   ( ¶¶¶ )
  | ̄ ̄ ̄ ̄ ̄|


278 :仕様書無しさん:03/05/30 17:17
VBでコードを再利用するなら普通はクラスや標準モジュールに書くだろ。
他の言語も同じ。まさか本気でそう思っているとは思えんが。
VBだからってDQNなやり方をするのは本当にDQN

つーか、ただ煽っているだけか。適当な事言っているみたいだし。
詳細説明をもとめても答えないだろうな。
> クラス書く→半端な言語仕様にイラつく、
> DLL書く→OleVariantに対応するのがめんどい

279 :仕様書無しさん:03/05/30 17:21
>>271
それもあり。あとSTLって知っているか?
STLにもソートがあるのだが、そこにも関数ポインタは使われていない。
関数ポインタが無いJavaにもソートはある。
つまりVBにもクラスがあるので同じような方法で実装できるわけだ。

>>272 いや。つまらん。でなおせ。

280 :273:03/05/30 17:25
俺変なこと言ってる?
煽っているだけとは酷い言い草だなあ。
まぁ言葉足らずだったことは認めるけどさ。

>>274
コピペ支援ツールはソートや探索のルーチンを
ただ貼り付けるだけの奴のつもり。
0から書くよりはマシだろ?

>>278
>VBでコードを再利用するなら普通はクラスや標準モジュールに書くだろ。
標準モジュールにコピペするんだよ。

>他の言語も同じ。まさか本気でそう思っているとは思えんが。
他の言語と同じことやったら>>275の状況に陥ったんだが。

>VBだからってDQNなやり方をするのは本当にDQN
DQNじゃねぇやり方を示してみろよこの野郎!


281 :仕様書無しさん:03/05/30 17:31
コピペなんて言うからいけない。

(C++のテンプレートのように)汎用性を持たせたコードから、
指定した型のコードを機械的に生成するのならまぁいい。

しかし、一般に言われるコピペ。その害として上げられる
バグや修正があった場合、修正個所が複数に渡ってしまうような
事が起きるなら使ってはならない。

282 :仕様書無しさん:03/05/30 17:39
あと使う場所ごとにコードをコピペするのと勘違されるだろうな。
コピペといっても使うのは最初に一回で
複数のプロジェクトでその標準モジュールを使いまわすんだろ。
それなら問題ないよ。


283 :273:03/05/30 17:45
熱くなってスマソ。
もちつきます。


つ旦

284 :仕様書無しさん:03/06/01 11:54
リストビューかコンボボックスをひそかに作ってソートする









なんて奴はいない。











と言い切れない気もしてきた。

285 :仕様書無しさん:03/06/01 12:33
>>284
DelphiのTListみたいにMVCのMとなる構造はないのか?VBには。

286 :仕様書無しさん:03/06/03 14:37
ソートかぁ。面倒だからJET呼び出して済ませちゃう。

287 :仕様書無しさん:03/06/06 22:15
Excelのインスタンス使ってソートしる!


288 :仕様書無しさん:03/06/07 00:06
それはそうと、相当そーっとソートしなきゃ。

289 :仕様書無しさん:03/06/07 10:51
>>288
卒倒しとけ。

290 :仕様書無しさん:03/06/07 22:28
よく考えるとソート用のライブラリを使おうがリストボックスを使おうが
結局用意されているライブラリを使っているだけだよな。
技術力とか関係ない気がしてきた。

291 :仕様書無しさん:03/06/08 05:17
>>290
って言うかプログラマ名乗るならクイックソート位実装できるだろと。

探すのめんどいから書くってのも手の一つだと思われ。

292 :デスラー:03/06/09 10:48
>>288
ガミラスには下品な男は必要ない

293 :仕様書無しさん:03/06/15 02:24
>>291
VBプログラマの世界をなめてるな、、、

リンクリストさえ作れない奴のオンパレードだぞ

294 :仕様書無しさん:03/06/15 02:39
>>293
改めて考えると、すごいよな。
5年10年仕事で毎日使っているのにその程度のままでいられえる
ってのは、コピペとおしえてクンだけで世の中わたってきた奴で
もない限り、無理だよな…

295 :仕様書無しさん:03/06/15 06:40
>>293
あんたの周りだけ。

296 :仕様書無しさん:03/06/15 08:16
>>293
コレクションあるから実装する必要がないというのも。

297 :仕様書無しさん:03/06/25 23:41
GlobalMultiUseアゲ

298 :仕様書無しさん:03/06/28 00:47
>>296
コレクションを使えるやつが1割もいないという罠

299 :仕様書無しさん:03/06/28 06:58
>>298
>コレクションを使えるやつが1割もいないという罠

どんな業界なんだ・・・ここ。

300 :仕様書無しさん:03/06/28 13:22
>>299
>>298の周りだけでしょ(w

301 :仕様書無しさん:03/06/29 01:03
何も見ずにクイックソートやB木を実装できなくても
しかし、「こういうものがあるんだ」というポイントを
押さえておくだけでいいような気もする。

Collectionを使えない、という人はCollectionの概念を知らないだけで、
概念が無いから、検索しようにもできないし、人に聞くのも容易でない。
(人に聞くときには、自分がやりたいことをすべて説明する)

とはいえ、
「こういうものがあるんだ、へー」という意識を持っている人は
自然に内部の実装にも興味を持ち、アルゴリズムを理解し、何も見ずに
実装できるようになるだろう。時がたち、忘れることがあっても
そこが差になるんだろう。

そんなことをつれづれに思いました。

302 :仕様書無しさん:03/06/29 08:12
>>301
でも、専門家でありプロフェッショナルである以上、知ってないというのもどうかと思うぞ。


303 :仕様書無しさん:03/07/05 15:58
いってる事はその通りなんだろうけど、前提が間違ってると思う。
VBの勉強しててCollectionに出くわさないなんてあり得ない。

殺していい人材だと思う。

304 :仕様書無しさん:03/07/05 16:14
VBでコレクションってどんな場合に使うのよ?


305 :仕様書無しさん:03/07/05 16:26
>>304
リストが欲しいとき、ハッシュマップが欲しいとき。

306 :仕様書無しさん:03/07/11 01:14
下のURLにVBAでOOPをやっているよ。
MVCのサンプルがありました。



http://www.ii-okinawa.ne.jp/people/nakao/

307 :n:03/07/11 01:15
◎無臭性画像をご覧下さい◎
      ★見て見てマムコ★
http://yahooo.s2.x-beat.com/linkvp/linkvp.html

308 :仕様書無しさん:03/07/11 01:18
プログラミングをしていて、集合とイテレーションを扱わないなんて
ことがあるのだろうか???

>>304
VBでどんなプログラム書いてるのですか?

309 :仕様書無しさん:03/07/11 01:39
>308
そういう決め付けがよくないんじゃないの?
プログラム全般っていやあ、いろんなのがあるわけで、
科学計算や画像処理やファイル変換や簡単な電文処理の中には
その辺使わなくても問題なく書けるものもあるだろう。
まあ、VBでやるような仕事じゃないが。

310 :304:03/07/11 01:41
なぜか叩かれてる(w

VBで書いたのはプチ制御系だす。
自由度のあるような物を制御したわけじゃないので・・・。

311 :仕様書無しさん:03/07/11 03:20
>>300
いや、正直クラスも作ったこと無い、コレクションを使ってなにか作ったこともない
VBプログラマはかなりの数いると思うぞ。
「大多数」という意味ではなく、「意外に多い」って意味で



312 :仕様書無しさん:03/07/11 09:02
話が全然変わるが、VBってinterfaceクラス(implementsされるクラス)に
実装しても全然構わないのね。
そもそも、Javaとかみたいにinterfaseクラスだって宣言する訳でもないから
newしても怒られない。
だから、継承は出来なくても包含することで対応できなくも無いのかな?
実用に耐えるとは思わんが。

313 :仕様書無しさん:03/07/12 00:42
この前メンテしたプログラムはコレクションの代わりに.mdbを使ってましたが?
動的配列の変わりにも.mdbを使ってましたが?

たすけて!!!

314 :仕様書無しさん:03/07/12 02:50
>>313
それはそれで見てみたい(w


315 :仕様書無しさん:03/07/12 11:27
>>313
びっくりするほど不適だな。


316 :仕様書無しさん:03/07/12 15:58
>>312
全然わかっていないようだが、VBにinterfaceなんぞ無いし
VBのimplementsとJAVAのimplementsは意味が違う。
VBのimplementsはどちらかというとJAVAのextendsだろう

JAVAとVB両方勉強し直した方が良いぞ

317 :312:03/07/13 19:44
>全然わかっていないようだが、VBにinterfaceなんぞ無いし
在るなんて思ってないし、在るとも書いてないんだけど・・・。

>VBのimplementsはどちらかというとJAVAのextendsだろう
継承出来ないのに?
僕が言いたかったのは、VBにNew出来なくする方法は無いって事と
implementsされるクラスをimplementsするクラス内でNewして保持
しておく事が出来るってことだよ。

318 :仕様書無しさん:03/07/13 20:02
> VBにNew出来なくする方法は無いって事と
ActiveXにすると、Instancing=PublicNotCreatableにするとNew出来なくなるよ。
これはCOMのinterfaceをVBで実装する方法。

319 :仕様書無しさん:03/07/14 14:51
>313
まあ、ありがちだな。
俺のところでは、
・ソート
・文字列検索
・実行ファイル間の値の受け渡し
といった個所にMDB使いまくり、結果プログラム実行とともにMDB内に意味不明な
名前のテーブルがどんどん生成されるという悪魔のプログラムがある。

作った奴コロス

320 :仕様書無しさん:03/07/14 14:53
>313
まあ、ありがちだな。
俺のところでは、
・ソート
・文字列検索
・実行ファイル間の値の受け渡し
といった個所にMDB使いまくり、結果プログラム実行とともにMDB内に意味不明な
名前のテーブルがどんどん生成されるという悪魔のプログラムがある。
外部データベースからの10万件ぽっちのデータ取り込みに1週間かかるという糞ぶり。
作った奴コロス

321 :山崎 渉:03/07/15 11:19

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

73 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)