タグ

ブックマーク / clown.cube-soft.jp (4)

  • Library for libraries - Cube Lilac

    C++は何を間違えたのか: 人生を書き換える者すらいた。より. 2009/12 のBoost.勉強会で一番記憶に残ってるのが,id:faith_and_brave がプレゼン中に何度か使っていた「Library for libaries」と言う言葉でした.この言葉には,Boost などが提供するライブラリには「“エンドユーザ”(アプリケーションを作成するプログラマ)は,別に知らなくても使えなくても問題のないライブラリが数多く存在する」と言う意味も含まれています. いくつか言語を触りましたが,個人的な主観では今でも C++ が書いていて一番心地良いです.これは,私がライブラリ脳 だからと言う事もあります.C++ は他言語よりも「うまくライブラリを書く」ための機能やライブラリが充実しているように感じます.例えば,他言語だと実行時に型チェックをして型毎に必要な処理を記述するようなものが,テンプレ

    Horiuchi_H
    Horiuchi_H 2010/08/16
    しかし、C++を最初にみると言語仕様の多さに圧倒されて、どこまで覚えればいいのかと途方にくれる気もする。まあ、Effective C++嫁でもいいけどw
  • エンコード処理のインターフェース - Cube Lilac

    clx ver 0.17.0 で,これまで個々に実装していた,文字列を何らかの形にエンコードする関数群のインターフェースを統一しました.具体的には,hexdump(), base64::encode(), base64::decode(), html::escape(), html::unescape(), uri::encode(), uri::decode() の 7 つ.そのときの,インターフェースの決め方のメモ. これらのインターフェースを統一する際に,当初は std::transform() を利用する形を考えていました(std::transform() の関数オブジェクトを実装する形).ただ,いろいろやっているうちに,大まかに言って以下の 2 点の問題点が出てきたため std::transform() の関数オブジェクト用クラスと言う形はちょっと辛いと言う結論になりました. 1

    エンコード処理のインターフェース - Cube Lilac
  • 「C++ は難しいから」と言う定説 - Cube Lilac

    雑記. C++ は難しいから Java から始めた方が・・・ ここ最近(と言うか以前からずっとですが),上記のようなアドバイスを見かける機会が多かったせいか「C++ の何を指して(Java と比べて)難しいと言っているのだろう?」と言う事を単純に疑問に思うようになりました.Java 自体はほとんど使ったことないのですが*1,感想としては「どちらも大して変わらない」と言うものだったので余計に気になっています. 以下,現状で私が「これが要因かなぁ」と思っている事を列挙してみます. C++ には XXX と言うクラス/関数がない 可能性として一番高いのはこれかなぁと思っています.C++ の標準ライブラリは必要最低限のものしか(必要最低限のものさえも?)用意されていないので,他の言語と比べてライブラリの貧弱さは目立ちます.Boost を含めればかなりマシになりますが,それでもキツいかなと言う印象を

    「C++ は難しいから」と言う定説 - Cube Lilac
    Horiuchi_H
    Horiuchi_H 2010/05/14
    やっぱり、C++はC言語との互換性から低レベルすぎて罠が多すぎる。Javaとの比較なら、SEGVした時の挙動とかC++だと何が原因で落ちたのかすら分からないけど、Javaなら原因の場所からスタックトレースを出してくれるし。
  • Hello, wonderful logging world! - Cube Lilac

    この糞のような,素晴らしき(デバッグ)人生. と言う程でもないのですが,少し真面目に(デバッグ)ログの残し方について学習します.「えーマジ Logger 知らないの!?Logger 知らないで許されるのは小学生までだよね!」と言われそうですが,「最近の小学生は賢いですね」と言って流す事にします. Log4J ざっと見ていると,Log4J のようなインターフェースが主流のようです.そう言えば,以前に C# のコードをデバッグしている時もこれに似た形の Logger でした. Log4J には 3 つの主要なコンポーネントがあります。 Logger Appender Layout Logger は Log4J パッケージの中心クラスで、ロギングを行う部分をグループ化し、必要なグループのログだけを出力したり、カテゴリーに優先順位をつけることにより様々な出力方法を指定することができます。 Appe

    Hello, wonderful logging world! - Cube Lilac
    Horiuchi_H
    Horiuchi_H 2010/04/15
    これはいいまとめ。google-glogは抜けてる?boostのloggerが採択されたらしいので、将来的にはそれがデファクトスタンダードになるのかな?とりあえず、現状何を使ったらいいのか微妙なところ。
  • 1