Graviness Blog

算数・数学・科学・電脳・雑記・アホの順の密度で記事が構成されます。
<< September 2018 | 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 >> ブログランキング・にほんブログ村へ
 
RECOMMEND
ビッグバン宇宙論 (上)
ビッグバン宇宙論 (上) (JUGEMレビュー »)
サイモン・シン, 青木 薫
RECENT COMMENT
  • 豊臣秀吉と曾呂利新左衛門から学ぶ数列の和
    優乃 (07/12)
  • 【誰か解いて】漸化式 a_(n+1) = f(n) * a_n ^ g(n) + h(n) の一般項
    優乃 (02/18)
  • 【誰か解いて】漸化式 a_(n+1) = f(n) * a_n ^ g(n) + h(n) の一般項
    S.S.+ (02/16)
  • 豊臣秀吉と曾呂利新左衛門から学ぶ数列の和
    坂井昭 (03/19)
  • d/dx(x↑↑n): 高さが定数のテトレーションの微分 - 数学的帰納法を用いる方法
    (09/30)
  • 全ての三角形は二等辺三角形
    優乃 (09/28)
  • 全ての三角形は二等辺三角形
    亀レス (09/28)
  • 全ての三角形は二等辺三角形
    優乃 (09/24)
  • 全ての三角形は二等辺三角形
    亀レス (09/23)
  • 【未解決】新しい演算子を創る
    $_ (09/10)
RECENT TRACKBACK
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
hogehoge
プログラマー@アトムの物理ノート

プログラマが役所言って,子どもの名前をhogeにしたいって会話.
いやいやいやいやツボッたwww

“hoge”とは簡単に説明すると,プログラムの変数名やファイル名などなど名前付けるとき面倒くさがって付ける名前の一つ.例えば以下のようなプログラム.

Hoge hoge = new Hoge();
int boo = foo();

これ自体,意味不明なプログラムだが,少し専門的な濃いこと言うと,この意味のないプログラムを強調することに“hoge”や“boo”の意義がある.→ メタ構文変数

“hoge”のほかにも“hogege”,“hogehoge”,“foo”,“bar”などがある.ちなみに“hoge”はキーボード配列で対象に並んでいる.

勿論,これらの変数名を本プログラムで使用することは止めるべきである.

---

話は変わって,うちの会社でそこそこ売れてる伝説のソフトウェアがある.新人が書いたソフトウェアだが,見るも無残に識別子が全て日本語(ローマ字).

int sokensu = this->SokensuWoSyutoku();
for (int kensu = 0; kensu < sokensu; kensu++) {
  …
}

なるほどコメントいらずだ,と開発チーム全員が納得したらしいw
しかし,その後国際対応することになったから,さぁ大変w

ちなみにJavaの場合,Unicodeに対応しているので,普通に日本語で書ける.

public class 車 {
  private エンジン めいんえんじん = new メインエンジン();
  private タイヤ たいや1;
  …
  public 車() {
    this.たいや1 = new タイヤ();
    …
  }
  …
  public タイヤ[] 前方のタイヤを取得() {
    …
  }
  …
}
C++初心者の感想
業務でC++を使わなくちゃいけないのですが,1週間ほどコーディングしてみての感想.
1週間だから浅いよ.見方狭いよ.

・インスタンス初期化の方法多い
デフォルトコンストラクタ,コンストラクタ,コピーコンストラクタおよび代入演算子による初期化
これらは,あると便利なように紹介されるが,実は(ほとんどの場合)定義が必須なため面倒.

コピーコンストラクタと代入演算子によるコピーは勘違いのもとになる.

あと,コンストラクタから他のコンストラクタを呼ぶことができない?(Javaのthis(...)のような書き方ないのかい?)
デストラクタはいいね.Javaは(finalize)メソッドで定義.

・基本型のポインタいらない/基本型の参照もいらない
可読性下げる,バグの混入増やす,変な命名規則が必要.
int* pint; // ポインタ型ってuint型?曖昧じゃ?
swap(int& a, int& b) {...} // 利点はあるが,Javaから入った私には特に必要性を感じない.
char* str = "01234"; // うわっ,配列長さ6だった.

・マクロ(プリプロセッサ)いらない
可読性下げる.IDEが頭悪いと何をどう使えばいいのかソースから読み取り困難.
何がクラスで何が型で何がメソッドで何が定数なのか分からん.
プリプロセッサをうまく使うと,デバッグおよびリリースでコードを別のものにしたり,マルチ環境なコードを書けたりすんのかな.

・char型が1バイト
これは不勉強だけど,デフォルトで2バイト文字使えないのは辛い.
char ch = 'あ'; // エラーになる.
char* ch = "あいうえお"; // 長さ10になる.
TCHAR型だっけか,これを2バイトのunsigned short型として扱える?

・キャスト多い
CString a = 1;
CString b = "1";
CString c('1');
一見便利そうで,やはり曖昧な感じを受け,可読性・保守性下がる.

・operatorメソッドいらない
vectorA + vectorB
とやるよりも,
vectorA.add(vectorB)
と書いたほうが個人的にしっくりくる.

・friendsアクセス修飾子って?
独自クラスのインスタンスを
cout << myClassInstance << endl;
の<<で出力できるようにしたかったので,operator<<を定義したけど,エラー.
friends修飾子をつけたら,コンパイルが通った.
なぜか,VC++で,operator<<メソッドがグローバルフォルダに表示されている.どういうこと?

・throw
throw 1;
なんだこれ.
1がthrowされるのでは,catchする側は何が原因で何の例外が発生したのかが分からない.

・VC++頭悪い
Eclipseに慣れていたら,多分大多数の人がそう思う.

---

C++って,個人でのプログラム作成は早められても,多人数での開発には向いてない印象を受ける.コーディング規約とかきっちりと決めておかないと,他人は理解できないソースになりそう.
WSH
もうねぇ.完全に呑み疲れ.
忘年会,忘年会,歓迎会,よく分からん呑み会.

仕事でWSHというのを興味本位で使ってみましたが,あれはWindows上で単調作業を自動化するのにはもってこいです.丸一日想定していた作業を3時間で終らせることが出来ました.キーを打ったという情報をアクティブなウィンドウに送ることができるのですが,一人でにGUIが動いているのを見るのはまた違った気持ち良さがあります.
JavaScript(*.js),VBScript(*.vbs)どちらでもプログラミングできるみたいです.
(sleepをどこにどのくらい入れるのかがコツです)

WSH参考リンク
Windows Script@msdn
Windows Scripting Host Laboratory

(C) 2018 ブログ JUGEM Some Rights Reserved.