忍者ブログ
[1]  [2]  [3
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

読みました。
ジョシュア・ケリーエブスキー 著 『パターン指向リファクタリング入門』
名著ということだったので。

そもそもリファクタリングなるものが一体何なのかよく分からないまま読み始めた。
リファクタリングとは既存のコードについて、「可読性や再利用性、独立性を高めること」だと、とりあえず今はそのように解釈しているつもり。
逆に、リファクタリングが必要なコードとは、「重複しており、不明確で、複雑な」コードだそうだ。そのようなコードに対して、デザインパターンを目指すべき一つのゴールとしてリファクタリングを行おう、という本のようです。

リファクタリングの本なので、既に書かれたコードをどうにかする事が主目的になる。例題のコードが仕分けられていく様子を逐一追っかけるのは骨が折れそうだったので、要点と思われるところにざっと目を通し、以下にメモ。
必要になったらちゃんと読みます。

PR
実家で読みました。
結城浩 著 『増補改訂版 Java言語で学ぶデザインパターン入門』
何かの役には立つだろうと思い、デザインパターンひと通り概観してみた。

で、以下は全パターンについて、個人的な備忘メモ。感想文じゃないね。

CGIに、生まれて初めて正面から取り組んでる。フルスクラッチング。多分自己流で回りくどいことしまくってると思う。
でも画面側はやっぱりAS3で作りたいので、いよいよモジャネグ(わけがわからなく)なってきてる。手が進まない。
昨夜はPHP側とSWF側での文字エンコードの扱いの差異にえらく悩まされた。(見えない制御文字のせいで一見おなじURLなのにデータが取得出来たり出来なかったり)

そういう「単に知らないから出来ないこと」を調べてる間ってのは苦しいけど、車輪の再発明のために「思いつかないから出来ないこと」を、「出来るようにするために」考えている間ってのは、やっぱり楽しいものです。
で、掲題の件。要はユニークなIDを作りたかった。

        public static function id(n:uint):String
        {
            if (n < 1) return "0";
            var str:String = "";
            var m:uint = n % 6;
            if (m > 0) 
            {
                var min:uint = 1 << 5 * (m - 1);
                var max:uint = min << 5;
                str += uint(min + ((max - min) * Math.random() | 0)).toString(32);
            }
            var q:uint = n / 6;
            for (var i:int = 0; i < q; i+=1) 
            {
                str += uint(0x02000000 + (0x3dffffff * Math.random() | 0)).toString(32);
            }
            return str;
        }
整数型を32進数表現にすると0-9a-vの文字で表されるので、ランダムな文字列が作れます。1文字あたり5ビット。36進数にすればw-zも使えるんだけど、計算がややこしくなるのでそこはご愛敬。

出力例 (等幅フォントじゃないと見づらい)

0
j
4u
ctk
j0ah
d6qgn
c8le4a
kuk7mtp
8ju1me90
9bafv82sl
fsaculkekh
buroff48bna
jbljm723a9h9
eslukm3e1b147
k3tlfa261bug6e
mr45f3akbkgpn4h
k739ig2g65qa326q
ivvq96epae9bptcnd
ui2hpmkht5kj4ftk5h
u6a6af2auu53aeudu8p
dender5dcuila03lf644
dh1bit1ueom0kluat2i72
ur8eo23hmeojqnis52c8ff
63m9nr9o3dv5uvscoencoar
mjlmqm3kdj7kd07qop20lp07
jn6rag4augdpe7318b2kh7lmg
312obp1titchamejjqgrkkf4l8
ne76ktipjn69jtf467gflm7pjbi
bjhnfmf4ku5i8kni957m0vo1295t
tjf3jdiktmfg6kl3rr8ssiimj14an
ebeo10boh4ebla9lpvsekcluv18cqf
2ssoblcv3t8nlqa2ff79cq4g2occji0



 しごと、あんまりない。
ぼやぼやしてると、あっちゅうまに定時さ。

と、いうわけで、まだコソコソとVB書いてます。
最近はDLLの作り方・使い方とか、Threadの使い方とか分かってきた。
伴って、依頼主に引き継ぎづらいコードになってきた。
わからねぇのは、Graphicsオブジェクトの扱いだなぁ。
AS3.0のGraphicsオブジェクトと同じ感覚で扱うと、画面がチラチラする。どうしたものか。

そういえば、VC++に手を伸ばそうともしました。
basicの文法、はっきり言って好きじゃないんだけど、結局VC++は未だによく分からず。
しょっぱな "->" と "::" と "." の違いが分からずつまづいている。
VBは、とりあえず書けば動いちゃうんだよね。文法は違えど、感覚としてはJAVAに近い。
絵にたとえるなら、絵の具がチューブに入ってるのがVBで、顔料を砕くところから始めるのがVC++、みたいな。
しかも、.NETフレームワークが絡んでくるせいで、本来のC++の領分が見えづらい、ってのもある。
「メモリ管理もやらなきゃならんのだよなー」と構えていたら「.NETには高度なGCの仕組みがあって云々」みたいなことを言われたり。
あ、でも、とりあえず「ヘッダ何するモノぞ」ってのは雰囲気は掴めた。
最近は会社でVB書いてます。
他部署の人から頼まれて書けないモノを書いてるわけですが、仕事ではありません。
上司も黙殺。超愉快。

マイコンのファームのコンパイル前のCのソースを見て、シリアル通信の仕様を確認しつつ、機器と通信するためのVB書いてるワケです。
「Cのソース読めちゃってる俺すげぇ!」と、一瞬なりかけたけど、ただのswitch文だよ。
丁寧にコメントを入れている先輩が偉いのであって、読めるのも当たり前。
今書いてるVBは依頼者(僕よりも初学者)にうまいこと引き継がないといかんので、丁寧なコメントを心がけております。

あといっそのこと、C++に移植したい。ほんと、全然、本来の業務じゃないのだけど。
ヘッダファイルとか構造体とか、全然わかんねー。
達人プログラマーという本を最近読んでいる。タイトルとは裏腹に「新人の頃に読みたかった」といったような書評をよく見かけたので買ってみたが、タイトルが恥ずかしいのでコソコソと読んでいる。
そこに書いてあった言葉。本来はアサーションの利用に関する章の冒頭文なのだが。
自責とは快楽的なものだ。
我々が自身を非難している限り誰も我々を非難する権利はないのだ。
―オスカー・ワイルド
とあった。著者が本来込めた意味合いとは違った意味で、ササる言葉であった。
そうか、快楽であったか・・・。
自覚的になれたからといって、快楽的なものはやめられる筈ないのだけども。
あうあうあー(^q^)


転職活動を本格化させたい。ので、景気づけにと思い受験を決めたSJC-P。そろそろ、ってかさっさとやっつけて、次のステップに進みたい。

そういや連休中全然コーディングしなかったなあ。表現欲求がガンプラやmoeeに奪われてしまったのだろうか。ここらでペイントツールでも作るか。手ブロだのdrawrやらに負けない奴をな!

で、やっぱりタブレット使うんだから筆圧情報がサポート出来るとイイよね。いずれFlashPlayerでもペン入力がサポートされるかと思っていたが、流行を鑑みるにこりゃあマルチタッチ入力が先になりそうだなぁ。誰か外部APIでうまいことやってないモンだろうか。

ちょっと探してみたけど、それらしいのは見つけられんかったなあ。とりあえずwintab APIとの連携だけでも出来ればと思ったのだが。タブレットをウェブカムであるかのように誤認させればいいのだろうか、などいうような馬鹿な考えもよぎり・・・。

で、一番の近道はGainerなのではないかな?と。
USBでつないだブレッドボード上のマイコンをFlashPlayerから操作して遊ぼう、ってんだな。でもどうやってプレーヤと通信してんだろう。詰まるところUSB機器と対話が出来りゃ解決なわけよね。
どうやら、GSP(Gainer Serial Proxy)というJavaプログラムを介して、ソケット通信てのをやってるんだとよ。(Gainerは本来AS2らしいけど)AS3のリファレンス見るとたしかにSocketクラスってのがあるね。本来はどういった用途に使うんだろう。気になる。

でだ、一方にJWintabというものがある。Javaはnativeと連携が取れるので(?勉強不足)WintabのAPIにアクセスできるんだねー。つまり、JavaでラッピングされたWintabをGSPに倣ってソケットに乗せて夢をFPに届ければ、晴れてタブレットのイベントがActionscriptで取得できるのでは?と考えたんです。でもこれ、速さはどうなるんだろ。

ってかGainerやってみたい!ゲイ部やらないか?
26歳のハローワールド
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[11/27 gyzwviyehl]
[11/18 Tepexaxyonelo]
[09/12 gomFolley]
[08/16 CypeBachCoece]
[06/02 gb]
[03/06 kishima]
[01/18 KNDY]
[01/16 kage]
[12/23 KNDY]
[12/23 kage]
最新トラックバック
ブログ内検索
アクセス解析
プロフィール
HN:
knd
HP:
自己紹介:
絶賛迷走中。
UNIQLO CALENDAR
忍者ブログ [PR]