Learning diary of programming

主にWebのプログラミング学習日記。

Claude Code Docs - #1 (Claude Code の仕組み)

これまで何となく使っていたClaude Code。 Claude Code Docsを読んでいき、知らなかった点や気づきをメモしていく。

Claude Code の仕組み - Claude Code Docs

チェックポイントで変更を元に戻す

  • Esc を2回押すとローカルファイルの変更を直前の状態に巻き戻すことができる
  • チェックポイントはローカルなファイル変更管理を行なっており、git とは関係なく動作する

Claude ができることを制御する

  • 以下の権限モードを Shift+Tab で切り替える
    • default

      Claude はファイル編集とシェルコマンドの前に求めます

    • accept edits on

      Claude はファイルを編集し、mkdir や mv などの一般的なファイルシステムコマンドを実行するよう求めず、他のコマンドはまだ求めます

    • plan mode

      Claude は読み取り専用ツールのみを使用し、実行前に承認できるプランを作成します

    • auto mode

      Claude はバックグラウンド安全チェック付きですべてのアクションを評価します。現在は研究プレビューです

  • .claude/settings.json で特定のコマンドをあらかじめ許可しておける

中断して操舵する

  • 修正を入力して Enter を押す と、実行中のツールを停止せずに送信できます。

指示するのではなく委譲する

  • 有能な同僚に委譲することを考えてください。コンテキストと方向を与え、Claude が詳細を理解することを信頼します。

      チェックアウトフローは期限切れのカードを持つユーザーに対して壊れています。
      関連するコードは src/payments/ にあります。調査して修正できますか?
    

Node.jsのドキュメントを読む

20140418 19:08-19:30

Smalloc

http://nodejs.jp/nodejs.org_ja/api/smalloc.html

Stability: 1 - Experimental

  • ドキュメント読んだだけだと、Buffer との役割分担をどうすればいいか分からない

smalloc.alloc(length[, receiver][, type])

  • length {Number} で指定した長さの外部の配列データを receiver に割り当てる
  • 外部のというところがポイントらしい。これが Buffer との違い?
  • receiver はオブジェクト(配列を入れると例外が投げられる)
  • type は smalloc.Type に入ってて、以下が指定可能
    • Int8
    • Uint8
    • Int16
    • Uint16
    • Int32
    • Uint32
    • Float
    • Double
    • Uint8Clamped

smalloc.copyOnto(source, sourceStart, dest, destStart, copyLength)

  • source 配列の sourceStart インデックスから長さ copyLength 分のデータを、dest 配列の destStart インデックスの位置にコピーする

smalloc.dispose(obj)

  • smalloc.alloc() で obj に割り当てたメモリを解放

smalloc.hasExternalData(obj)

  • obj が外部に割り当てられたメモリを持つなら true

Node.jsのドキュメントを読む

20140416 16:23-16:55

REPL (Read-Eval-Print-Loop)

http://nodejs.jp/nodejs.org_ja/api/repl.html

  • 結果を確認しながら対話的にJavaScriptを実行できる
  • コマンドラインから引数無しで node を実行すると出てくるのが REPL プログラム。それを require("repl").start() で任意のタイミングで使える
  • 標準入力の代わりに Unix ドメインソケットをベースとしたサーバから REPL を起動することによって、再起動することなく node の常駐プロセスへ接続することができます。

  • REPLコマンドラインでは
    • _ は最後の式の結果
    • REPLServer インスタンスcontext プロパティに値をセットしておくと、REPL ではそれがローカル変数になる
    • REPL コマンド .break/.clear/.exit/.help/.save/.load
    • C === .break / <ctrl-D> === .exit

Node.jsのドキュメントを読む

20140410 15:01-16:03

Query String

http://nodejs.jp/nodejs.org_ja/api/querystring.html

  • querystring.stringify -> ハッシュオブジェクトのクエリ文字列化
  • querystring.parse -> クエリ文字列のハッシュオブジェクト化

Readline

http://nodejs.jp/nodejs.org_ja/api/readline.html
Stability: 2 - Unstable

コマンドラインインターフェースを作るモジュール。あの MySQL コマンドラインインターフェースみたいなのが作れる。

  • このモジュールを一度起動すると、このインタフェースをクローズするまで node プログラムは終了しない

  • インスタンスの作り方。input/output option は必須。
var readline = require('readline');
var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});
  • あとはイベント発火のコールバックを設定しておいて色々する

FuelPHP oilコマンドの使い方を学ぶ

20140306 13:30-15:00

http://fuelphp.jp/docs/1.7/packages/oil/intro.html

Generate

http://fuelphp.jp/docs/1.7/packages/oil/generate.html
この項は超重要。 コントローラ、モデル、ビューモデル、マイグレーション、スキャフォールド、タスク 、設定、パッケージなどのベースになるファイルが oil コマンドで生成可能。 FuelPHPでは「oil コマンドでジェネレート → 中身をいじる」というフローで制作していくのが吉。 FuelPHP開発の起点になる重要なコマンド。

スキャフォールド

$ php oil g scaffold monkey name:string description:text

チュートリアル中のこのコマンドを実行すると、簡単に入力編集ができるフォームが生 成される。 もちろんDBと繋がってる。ただし、db.php の設定をしておくことが前提。(デフォルト の環境だと fuel/app/config/development/db.php)

Refine

http://fuelphp.jp/docs/1.7/packages/oil/refine.html
定義しておいたタスクを実行する。 タスクは install, migrate, session, fromdb が最初から定義されている。

Package

http://fuelphp.jp/docs/1.7/packages/oil/package.html
パッケージのインストール&アンインストールをコマンドラインで。

Test

http://fuelphp.jp/docs/1.7/packages/oil/test.html
oil test コマンドで PHPUnit を使ったテストを実行可能。

Console

http://fuelphp.jp/docs/1.7/packages/oil/console.html
簡単なPHPコードをコンソールでテストできるよ。

20140303 20:32-20:44

Node.jsのドキュメントを読む

20140129 20:40-20:57