この記事は、Cagdas Basarane 氏のブログ、 CodeBuild から 2012年2月20日の記事 "15 Best Practices of Variable & Method Naming" を翻訳したものです。 原文URL http://codebuild.blogspot.com/2012/02/15-best-practices-of-variable-method.html 十分短く十分長い変数名をスコープごとに使用する。一般的に、ループカウンタには1文字、条件やループ変数には1単語、メソッドには1-2単語、クラスには2-3単語、グローバル変数には3-4単語を使用する。 具体的な(specific)名前を使用する。例えば、"value"、"equals"、"data"といった変数名はいかなる場合も有効ではない。 意味のある(meaningful)名前を使用する。変数
先日、プロ棋士対コンピュータというNHKの番組があった。 その中で、羽生名人がどんだけ先読みしてるかという話で、初心者よりちょっと多いくらい、中級者より少ない手数しか先読みしてないということを言ってた。 確か、初心者が10手、中級者が20手、上級者が30手で、羽生名人は15手くらい、とかだったと思う。まあ、そのくらいの比率。 理由としては早くから枝刈りをして選択肢をせばめてるから、深くまで読む必要もないんだと。最初から勝てる手を選んでれば、読まなくていいよね。 で、これってプログラマにも当てはまるんじゃないかと。 幸い、プログラムを組んだ年数だけは長くなってきてて、もうプログラムを組んだことがない年数のほうが圧倒的に少なくなってるくらいなんで、ある程度、考えなくても正しい選択をするようになってる。 最初から間違わないなら、検証しなくていいよね。 たとえば関数の行数とか、クラス構成とか、まあ
最近、何処の会社でもセキュリティに関してうるさく言われているかと思います。自分としても今まで気を遣ってきていたつもりではあります。しかしながら、 なぜSSL利用をケチるのか:IT Pro SSLを入力画面から使用しないのはそろそろ「脆弱性」と判断してしまってよいころかも 安全なWebサイト設計の注意点 を読んでみて、お恥ずかしい限りですが勘違いしていた部分もありました。実際、Amazon とか Yahoo! のログイン画面を見ても、デフォルトが http によるアクセスになっていたりして、メジャーどころでも最新の注意が払われている訳ではないのだなぁ〜と思ったり・・・。本当は全ページ SSL が理想とは知りつつも、SSL の処理負荷の高さ故に、ついついケチったページ遷移にしまうからなのでしょう。。。自分含めて。 自分への情報もかねて、上記ページに記載されている、31箇条の鉄則と最近の事情を加
階段状になってるスケジュールをぼーっと見てたら、このネタを思い付いた。 前提 SE: 設計はするが、コードは書かない人。 PG: コード(だけ)を書く人。 プログラマ: 設計も実装もする人 既に稼働中のシステムがあり、変更案件やバグが課題として一覧管理されている。 あるリリース(xxリリースとする)では、変更Aと、バグBの課題を改修し、リリースしようとしている。 各課題に対しては、設計/実装/テストの作業が必要である。(レビューとか、リリース作業とかは省略) 各作業に対しては、1週間かかるという見積りが出ているとする。 お題 このときのスケジュールを書け。 SEとPGが1人ずついる場合 工程ごとに分担するので、中項目は工程になる。(垂直分割) PGは、SEの設計が終わらないと何も出来ないので、1週間アイドル状態になる。 SEは、PGが誤解しないよう、細心の注意を払って設計書を書く必要がある
フェイスブックでエンジニアをやっていた方の面白い話があった。 「ぼくはこうしてプログラミングを覚えた」 フェイスブックのエンジニアで史上ベスト3に入るといわれるEvan Priestley氏への質問「どうやってプログラミングを覚えましたか」に対する本人からの答えです。 という話 コードの質がフェイスブックの強みであったことはないが、2007年のフェイスブックのコードはグローバル変数とextract関数にまみれたヒドいものだった。 この「質v.s.スピード」という概念は根本的に間違っていると思う。だって素早く開発をしなくては環境、あるいは自分の環境の理解の変化にソフトウェアがついてこれず、ソフトウェアが解決すべき問題が解決できなくなり、必然的に質が落ちてしまう。逆に、質の高いソフトウェアを書かなくては、なにかある度にインフラが崩壊し、素早く開発をすることができなくなってしまう。インフラの崩壊
忙しいプロジェクトだとどうしてもおろそかにされがちなところですが、maven2やant+ivyを使ってビルドやリリースの自動化を行い、Hudsonなどの継続的結合環境上で動作させることは、開発生産性向上のために欠かせないことです。ビルド自動化はアジャイル開発なら当然必須ですが、そうでないウォーターフォールのプロジェクトであっても、是非取り入れたいことです。 そこで、意外な盲点となるのが、正しくビルドスクリプトを作成して、メンテナンスするプログラマーのスキルが非常に重要であるという点です。こういったビルドスクリプトはあくまでも最終納品物ではなく、生産性向上のためのツールという位置づけのためか、多くのプロジェクトではきちんとした工数や担当者がアサインされることなく、仕事の合間に知識のあるプログラマーがボランティアで開発するというケースも多いのではないでしょうか。しかし、最近の複雑なアプリケーシ
Log::Minimal v0.02をリリースしました。xaicronさんのpatchにより出力するログのレベルを変更することができるようになりました。 WARN以上のログだけを出したい場合、$Log::Minimal::LOG_LEVEL を変更します。 use Log::Minimal; local $Log::Minimal::LOG_LEVEL = "WARN"; infof("info"); #出力されない warnf("warn"); #出力される デフォルトのレベルはDEBUGです。なお、デバックメッセージを出すには環境変数も設定されている必要があります。 ところで、Log::Minimalでは4つのログレベル、DEBUG、INFO、WARN、CRITICALをサポートしていますが、他のLogモジュールではより詳細なレベルを用意しているものがあります。そのため、アプリケーショ
Joel Spolsky ジョエル・スポルスキ 翻訳: Fukushige Erika 福重 永里香 翻訳チェック: Takeda Toshiyuki 武田俊之 9.8.2000 SEMAについて聞いたことがある?かなり難解なシステムで、ソフトウェアの開発チームがどれくらい良いかを測るためのものだ。ちょっと待った!そのリンクに飛ばない方がいい。きっと書いてあることを理解するだけで6年はかかるだろう。そこで、私は自分で作ることにした。これはソフトウェア開発チームの質を評価するものだが、とっても当てにならないいいかげんなテストだ。このテストの素晴らしいところは、3分程度で終わることだ。節約した時間を使って、医学部に通うことだってできるだろう。 ジョエル・テスト ソース管理システムを使っているか? 1オペレーションでビルドを行えるか? 毎日ビルドを行うか? 障害票データベースを持っているか? 新
@vjroba 某N社で「メソッドを作ると処理が上下に飛んで可読性が落ちるので、出来る限り一つにまとめてください」と言われたことがある。僕は300行で挫折したが、1万行メソッドを書ききった強者がいた。クラスを作るには申請書が必要だった。 2010-05-11 12:42:06
Joel Spolsky / 青木靖 訳 2010年3月17日 水曜 しばらく前に、ジェフと私はStack Overflowポッドキャストにエリック・シンクを迎え、バージョン管理について騒がしく議論し、とくにトレンディな分散バージョン管理システムであるMercurialやGitのことを取り上げた。 そのポッドキャストで私はこんなことを言った。「私に言わせれば、ブランチやマージが簡単にできるようになるというのは、単に同僚たちがもっとブランチやマージをするようになるということで、余計混乱させられるだけのことだよ」 わかると思うけど、あのポッドキャストは前もって入念に準備したりはしていない。単に2、3人集まって、いい加減なおしゃべりをしているだけだ。そのため、しばしば我々の主張する内容が、少し専門的な言い方をするなら、「ちげーよ」ということになる。間違っているのはたいてい細かい部分か趣旨のどちら
Code Bubbles: Rethinking the User Interface Paradigm of Integrated Development Environments 上の動画は,ブラウン大学のAndrew Bragdon氏らによって開発された統合開発環境"Code Bubbles"のデモだ。プログラミングと統合環境に興味のある人は,とにかく一度見てみて欲しい。とてもインパクトのあるデモだ。 現行の統合開発環境は,いまだにファイル単位でのエディットを基本としており,それが様々な不便を生み出している。Code Bubblesはその不便を解消するべくデザインされた,まったく新しい形の統合環境だ。バブルと呼ばれる概念を導入することによって,ソースコードのナビゲーションを,より視覚的かつインタラクティブなものへと進化させている。 残念ながら現状ではこのデモが公開されているのみで,他
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く