プログラミング
Entries
土台があるということ。
- Date
- 2007-04-04 (水)
- Category
- プログラミング
深夜ですね、こんばんみ、小堤です。
さて、最近はすっかりJavaScriptばかりコーディングしている毎日なのです。
ええ、しんどいです。
まぁでもなんでもそうですが、できてくると多少の喜びには変わってきます。
でですね、その開発環境や土台について。
いま、僕が開発しているJavaScriptはxFrameworkJX(JavaScript eXtensions)というものです。
xFrameworkの名前がついているとおり、PHP MVCフレームワークであるxFrameworkがらみなのですが。
DHTML中心に構築してあります。
しかしDHTML、奥が深いというかブラウザ間の問題はHTMLコーディング同様つきません。
そこで、ちゃんとラッパーを用意して土台をつくり、その上で構築しています。
そのおかげでロジックを構築する際には、ブラウザ互換を考えないで開発ができます。
正直JavaScriptなんてやるか、ぼけ、と思ってましたが、まぁちゃんとやるとなんでもすごいもんですわ。
つくづくフレームワークを使った開発や、今回のJavaScriptを利用した構築に関してもベース(土台)があるということが、つくづくすごいことだなぁと思っています。
土台や枠組みがないと、人は混乱するようです(僕だけ?(笑)
それは大規模になればなるほど。
んで、JavaScriptのコードなんですが、すでに4015行(2007/04/04 5:18現在)になっています。
最初の頃はエディタで4000行近く書いたりしてたんですが、正直ノイローゼになります(笑)
メソッド(関数ですけどね、プロトタイプ型なので)の内容を確認するだけにスクロールしまくったり
エディタでマークをつけて飛んだり・・・もういややぁ・・・・。
って思ったんですが、投げ出すわけにもいかないので、解決方法を探しました。
ということで、現在の開発方法の紹介です(なにそれ)
Eclipseを利用しています。
で、クラスごとにファイルをちゃんと分けています。
JavaScriptでクラスをどのように実装するか、などはぐぐってください(わら
ちなみにprototype.jsなどは一切使っていません。
んでですね、Windowsで開発をしているので、バッチファイルを作って、全部のファイルを実行時に
結合しちゃってから実行します。
まぁダブルクリックするだけですしね。
これだけで、相当楽です。
JavaScriptはソース内で他のファイルをロードできないので(CSSのimportや、PHPのrequireのように)
まぁくっつけちゃおうと。
実際コメントもちゃんとかいてあるので、ドキュメント生成も行っています。
まぁお披露目するのは、まだ早いと思うのでそのうちまとめて(笑)
どこかのxFrameworkのバージョンに標準でついてくるかもしれませんね(ぉ?
ではでは。
- Comments (Close) : 0
- TrackBack : 0
三項演算子を使う理由
- Date
- 2007-02-21 (水)
- Category
- プログラミング
深夜ですねぇ・・、小堤です。
最近はxFrameworkBuilderの前製作ということで、JavaScriptを記述していることが
多いのですが、色々サンプルなどをみたりしながら学びながら作っています。
そこで、気になったのですが、「三項演算子」。
使ってますか?みなさん。
(評価式)?真の処理:偽の処理
と記述することでif文を書かなくてもよいというものです。
これってほとんどの言語でつかえるんじゃないかな、C言語っぽいのは。
で、ですね。
これを使う理由についてです。
僕はxFrameworkの開発でも三項演算子は利用して記述しています。
これは、可読性を向上させるためです。
実際、最初は「かっこいいから」なんて理由で使い始めましたが、それは内緒です(笑)
でですね、JavaScriptのソース、特に海外のソース見ていると
多様しています・・・・。
必ずしも1行で書くのがかっこいいわけでもないし、可読性がよいわけではありません。
1つの基準としては、僕がソースコードを記述する際には、横半角80以内と決めています。
例外もありますが、基本はそうです。
return の値などに条件式がからんでくる際に、三項演算子は便利です。
しかし、すごごーい長い条件(あんど・・あんど・・あんど・・・おあみたいな)の場合は
逆にif文を使って、条件式を改行してあげる方がみやすくありませんか?
まぁ趣味の問題ですが・・・他の人がみたときに伝えやすいかと。
と、JavaScriptをくみながら思ったことでした。
さ、、、朝までコーディングだぁ。
- Comments (Close) : 0
- TrackBack : 0
プログラミング作業のバランス調整
- Date
- 2007-01-14 (日)
- Category
- プログラミング
小堤です。まぁこんな夜中に出勤です・・・orz
最近ActionScriptのxFrameworkの制作にも着手しててんてこまいなのですが、プログラミング作業を行う上でのバランスについて記載したいと思います。
さて、プログラムを始めたのはいつでしょうか?
僕は今から13年前くらいに、初めてC言語をさわったのが始まりです。(当時14歳でした、年ばれる・・)
社会人になってからさわった人も多いでしょう。学生の時に遊びでさわって、実際仕事になってからちゃんと勉強した人も多いでしょう。
さて、では、その「勉強」というのは、いつ始まっていつ終わりましたか?
「いつまでも勉強し続けないとだめだよ、この業界は。」
「終わりなんてないんじゃないのかな?」
なんて話をいろんな人に聞きます。
ということは、「ずっと勉強しているんですか?」
- Comments (Close) : 0
- TrackBack : 0
WireShark Network Analyzer
- Date
- 2007-01-03 (水)
- Category
- プログラミング
WireShark Network Analyzerというソフトウェアを入れてみました。
何かって、Etherealですよ、Ethereal。
名前が変わったんですね・・。既に半年前に(ぉ
で早速インストール!
スゲー簡単。WinPCapに関しても勝手にいれてくれるのねぇ。AirPCapって売り物の宣伝が出てるけど、何するものなんだろ。無線LAN関係かね?最近パケットを見るようなことはあんまりしていなかったから、いい機会だと思っていれてみた。
WEBの開発業務で、ちゃんとやっているところはパケットレベルでみているところもあるだろうが、大抵みていない。PHP MLでそんな話題がでたからやってみているわけだが(笑)
見た目よくなったなぁ?昔のEtherealしかしらないからかな(涙)
WEBアプリケーション構築で、よくある間違いなのですが、というか間違った人によくあうのですが
- POSTのデータは入力フォームからしかこない。
- ID/パスワードを入力フォームから入れてもらう時に、httpsじゃなくたって盗まれないっしょ。
みたいなはなしです。2番は論外です(笑)
1番に関しては、まぁ気持ちわからなくはないのですが・・・・出来ちゃいます。
あくまでリクエストがWEBブラウザからしかこない想定の話になちゃってます。そんなことはありません。ターミナルからリクエスト投げることだってできます。色々なWEBアプリケーションみてますが、結構普通にここら辺無視されてますよね・・。いいのかな・・・?
興味がある人は、自分がパケットをどういう風に送っているのか。受信しているのかとかみてみたら良いかも。あと、HTTPヘッダーもです。
ieHeaderという便利なソフトがあるので、是非使ってみてください。
PHPの場合header関数でヘッダー送ったりしますが、本当に送られているのかどうなのか?ということをちゃんと目で確認する癖はつけた方が良いと思います。(はまらないために・・・それでもはまるのに・・・)
偉そうに(笑)便利ツール2つ紹介しましたが、開発者の役に立てば・・・ええなぁ・・。
- Comments (Close) : 0
- TrackBack : 0
アプリケーション構築におけるアプローチ
- Date
- 2006-12-29 (金)
- Category
- プログラミング
おなかがすいたといって、まだご飯が与えられていない小堤です。
自分メモを。
WEBアプリケーションに限らず、アプリケーションを作成する際に、その共通部分の切り出しやファイル構成その他色々と設計しなくてはならないことがたくさんあると思います。
その中で、2種類のアプローチの仕方をメモ。
ってか、単純に言葉を忘れそうなので・・・。
n層アプリケーション
アプリケーションロジックをn種類のコンピュータに分散して実装するアプローチのこと。
これは、レガシーシステムではこういうロジックを、ロジック実行サーバでは、こういうロジックを、そしてその両方を取得して加工し表示するロジックをWEBサーバでみたいな感じ(超フィーリング)
ファットクライアント
ほとんどすべてのロジックをクライアントサイドに実装するアプローチのこと。
WEB言えば、JavaScriptオンリーのWEBシステム(こえー)
他にも色々ありますが、言葉が特殊なので忘れてしまいそうなのでメモ。
ってかいても忘れるんだろうなぁ。
- Comments (Close) : 0
- TrackBack : 0