コメントと実装がずれていた場合、設計書の内容も最新仕様と一致していない。 という事で、プロジェクトの管理自体がうまく回っていない。・・・ケースが多い。 個人的な経験では100%。
コードの表現できる範囲と、コメントの表現できる範囲は異なる。 なので、それらを総合的に合わせて一番適切な表現になる様にするのがベスト。 なぜそのコードが選ばれたのか?の意図はコードには表れない。 コードは自分が何かは表わすけど、それだけ。選択の意図するものが 最善なのか次善なのか、それともやっつけなのかわざとなのかはコードの記述範疇外だから。
「Ugly」の解釈がプログラマーと非プログラマーで異なると思います。 文法が正確で誤字の少ない簡潔なコメントが書けても、そもそもクラス名とかメソッド名とか変数名 が非直観的だったり、インデントが深すぎだったりしたら「コード」としては「Ugly」です。 あと、修正前のコードをコメントアウトして残すことを強制されたコードも「Ugly」。 バグ票番号を修正箇所にゴチャゴチャ残させるコードも「Ugly」。 逆に、何にもコメントがなくてもコード自体が短くて直観的でコメント自体が不要なものであれば 「美しい」コードだったりします。 むしろプアでしゃくし定規な「コーディング規約」なる法典をおしつけられて無理やりコメントを 書かされていると冗長な説明文が入った「見た目にキタナイ」ソースになっちゃったりします。 コメントもコードも「言語」ですからね。 #ってか、「非プログラマ」な人種はソースなんて見るのか?
「Ugly」の解釈がプログラマーと非プログラマーで異なると思います。 文法が正確で誤字の少ない簡潔なコメントが書けても、そもそもクラス名とかメソッド名とか変数名 が非直観的だったり、インデントが深すぎだったりしたら「コード」としては「Ugly」です。 あと、修正前のコードをコメントアウトして残すことを強制されたコードも「Ugly」。 バグ票番号を修正箇所にゴチャゴチャ残させるコードも「Ugly」。 逆に、何にもコメントがなくてもコード自体が短くて直観的でコメント自体が不要なものであれば 「美しい」コードだったりします。 むしろプアでしゃくし定規な「コーディング規約」なる法典をおしつけられて無理やりコメントを 書かされていると冗長な説明文が入った「見た目にキタナイ」ソースになっちゃったりします。 コメントもコードも「言語」ですからね。 #ってか、「非プログラマ」な人種はソースなんて見るのか?
マクロで仕事することをずるだとは全然思わない。 んが、マクロ以前の「社内のIT化」の時点で 相当うんざりさせられたことがあるので敢えて書く。 提出する書類の書式が「IT化」とやらのおかげで固定化する。 すると、 それまでの「肝心なことをきちんと書いておけばなんとかしてくれる」 が通用しなくなるわけだ。 で、どうなるかというと、現場で走り回るのが仕事の人に 書類を一から十まで完成させるという作業が増える。 これまで現場の人たちのぶんがんばってた事務関係の人は 作業がなくなり、お茶なんか飲んでおしゃべりしている。 最初こそ「こういうのはどうなのよ」みたいな話も出たが 年を重ねるごとにそれがあたりまえとなり 新しい事務の子は 「自分はEXCELの入力ができて(んなもんだれでもできるんだよ) こうやってやるんだと教わってきたんだから(そりゃわるかったよ) これでいいんだ」 と、当たり前に思っている
yebo blog経由で知ったのだが、オープンソース開発者のMarco Peereboom氏が、「OpenSSL is written by monkeys!」(OpenSSLはサルによって書かれている)とOpenSSLのソースコードの汚さを批判している。 ここでは実際にOpenSSL内で使われている「酷いコードの例」を挙げつつ、「コードの汚さにキレる」Peereboom氏の姿が書かれている。そしてPeereboom氏は最終的にAgglomerated SSL(ASSL)という代替APIを作成するまでに至ったとのこと。 開発者なら一度は「他人の書いた汚いコード」にキレた経験はあると思うのだが、それを燃料に代替コードを書いてしまうとはさすがである。 # ということで、コメントでは/.J読者の方々が読んだことのある「他人の書いた汚いコード」をぜひお披露目下さいwww
奈良先端科学技術大学院大学の森崎助教らによると、ソースコードの読解力は個人差が大きく、実験では同じソースコードを理解するための時間に6倍もの差があることが確認できているそうだ(「2,000行のJavaソースコードを読むのに何分かかりますか?」)。 といっても、自分の「ソースコード読解速度」が速いのかそれとも遅いのか、なかなか立ち位置を知るのは難しい。そこで森崎助教らは、研究の一環としてオンラインでのソースコード読解ハンズオンを公開した。これにより自分のソースコード読解能力が他人と比べてどの程度なのかをチェックできるとのこと。また、集計されたデータは個人情報を除去した上で公開されるほか、ソースコードの差分(パッチ)とその理解に必要な時間(コスト)との関係を明らかにする研究の題材にもなるそうだ。
プログラマーの生産性をテーマにした有名な著書「ピープルウェア」には、最も優秀なプログラマと最低の成績のプログラマのあいだには約10倍にあたる生産性の違いがある、というデータが出てきます。 これは、1984年から1986年にかけて92社、延べ600人が参加したプログラミングコンテストのデータを分析した結果から導き出された結果で、課題として与えられたプログラミング作業の開始からコンパイル時のエラーを消すところ(第1チェックポイント)へ到達するまでにかかった時間を比べています。 グラフを見ても分かるように、最優秀者と最低者のあいだには作業時間にして約10倍のひらきがあります。また最優秀者は平均の約2.5倍の生産性だそうです。そして、COBOLやFortranのような旧世代のプログラミング言語と、PascalやCのような現代的なプログラミング言語でのコーディングでの生産性はほとんど同じであったそう
このエントリは Ruby Advent Calendar jp: 2009 : ATNDの7日目のエントリです。 上記のページに書いてあるとおり、12月中に1日から25日まで一つずつ Tips を書いていこう!という企画で、その7日目がぼくの担当となっています。 前のエントリはこっち:Ruby1.9に対してできること - takkan_mのNo planな日常 次の人はこっち: Road To RDoc - はてなかよっ! ここからが本題 みなさん irb は使っていると思われますけど irb に限らず、インタラクティブなインターフェイスがあると「ちょっとこの動作を確認したい」という時に重宝しますよね。 いきなり余談ですが 今仕事で Flex を使っているのですが irb に慣れきった体ではちょっとした動作確認などが非常に億劫で億劫で、irbのありがたみを痛感しているところです。 というわ
RememberTheMilkはGoogleデスクトップガジェット用のオープンソース・ソフトウェア。オンラインのタスク管理として有名なRemember The Milk。タスク管理はいつ、どこでも簡単にステータスを変更できる必要があるので、Webブラウザ以外でもローカルアプリケーションやスマートフォンなど多数のクライアントソフトウェアが存在する。 Googleデスクトップのサイドバーでタスク管理 そんな中、Googleの提供するGoogleデスクトップ検索に付属するガジェット機能に対応したRemember The MilkクライアントがRememberTheMilkだ。RememberTheMilkはHTMLやJavaScriptのみで作られており、タスクの登録や編集、ステータスの変更など一通りの操作が出来るようになっている。 アクセスする際にはOAuthを使って行っている。インストールし
gaAddonsはJavaScript製のオープンソース・ソフトウェア。自社または個人のWebサイトの解析にGoogle Analyticsを使っている人は多いだろう。標準のままでもWebサイトを運営するのに十分なデータが収集できるので、より良いサイトを目指すのに便利なツールだ。 埋め込むコード しかしAnalyticsのコードが埋め込めないような場所に対しては解析が難しいのが事実だ。例えばダウンロードサイトで、Zipファイルがどれくらいダウンロードされたかなどという測定は難しい。そこで使ってみたいのがgaAddonsだ。 gaAddonsは主に二つの機能をGoogle Analyticsに追加する。一つは外部流出の際にどのリンクへ行ったかが検知できるようになる。各外部リンクに対してoutboundというイベントが追加される。そして二番目にダウンロードの検出だ。デフォルトでオフィス系ファイ
In this Ubuntu LTS setup guide, we have a basic Ubuntu LTS slice, either a new slice or a reinstalled slice. Now we need to access the slice and secure it as soon as possible. Log in: On your LOCAL computer, edit the SSH known_hosts file and remove any entries that point to your slice IP address. If this is a brand new VPS then you will not need to do this, but an OS reinstall will result in a dif
自分のサービスの一部をSlicehostというホスティングサービスに移行し始めている。 知っているアメリカ人のRailsエンジニアにすすめられ、Webで調べると評判が良かったので使い始めてみた。サインアップや管理画面のインターフェースがシンプルで使いやすく、使いはじめから好感触だった。 Ubuntu LTS で環境構築中なのだが、ApacheやPHP、Ruby on Railsなどのインストールを説明した環境構築のためのドキュメントが非常に充実していてすばらしい。 たとえば、 » Slicehost Articles: Ubuntu LTS setup - page 1(英語) では、セキュアな ssh 環境の構築方法がシンプルにわかりやすく書かれている。 このドキュメントをみつける前に ssh 環境の構築方法について書かれた日本語の情報がないかと、結構検索してみてまわったのだが、これほど
米国でスタートアップのインキュベータとして知られるY Combinator。同社が支援するスタートアップ企業67社が、どのホスティングサービスあるいはクラウドを利用しているのか? という興味深い資料が公表されていると、Data Center Knowledgeの記事「Where 'Ramen Profitable' Startups Host」が伝えています。 公開されている資料によると、Webサイトのホスティングに関しては67社中14社がSoftLayer、13社がAmazon Web Services、12社がSlicehostを利用しているとのこと。 また、メールのホスティング先としては、42社がグーグルを利用するという結果になっています。 スタートアップ企業は、コストが安くそれでいてサービスが成功したときには容易にスケールできることを想定してホスティング先やクラウドを選ぶもの。日本
Amazon Web Servicesが、Amazonクラウド内にプライベートクラウドを設定できるサービス「Amazon Virtual Private Cloud」(以下、Amazon VPC)のβ運用を開始したと発表しました。いままでバズワードとして広がっていたプライベートクラウドに対して、間違いなく大きなインパクトとリアリティを与えるサービスとなるでしょう。 プライベートクラウド内でインスタンスを立ち上げる Amazon VPCの利用には、まずAmazon VPC内にプライベートクラウドの領域を作成し、プライベートIPアドレスの範囲を割り当てます。これで他から分離されたプライベートクラウドの領域を確保できたので、そのプライベートクラウドに対してIPsecを使ったインターネットVPN経由でアクセス可能になります。 続いて、プライベートクラウドに対して通常のAmazon EC2の利用時と
マイクロソフトでデータセンターのアーキテクトとして活躍し、昨年アマゾンに移籍して現在はAmazon Web Servicesの上級エンジニアであるJames Hamilton氏が、自身のブログにエントリしたポスト「2010 the Year of MicroSlice Servers」でこう宣言しています。 Hamilton氏はこのエントリで、高価で高性能なサーバを仮想化によって分割して利用するよりも、安価で低性能なサーバをスケールアウトしたほうが、仮想化によるI/Oのオーバーヘッドが不要で、しかも価格性能比でも熱性能比でも優れていると以前から主張してきた、と書いています。 そして、インテル、デル、Rackable SystemsなどがMicroslice Server(マイクロスライスサーバ)と呼ばれることに取り組み始めたという例を挙げ(インテルの例、デルの例、Rackable Syst
業務アプリケーションがWebアプリケーションとして開発されるのは現在の大きなトレンドです。それに伴ってHTMLとCSSによって業務アプリケーションの複雑なユーザーインターフェイスを構築する必要性が生じます。 しかし機能が豊富な業務アプリケーションのユーザーインターフェイスをHTMLとCSSで構築するのはそれほど簡単ではなく、しかもそれをアプリケーション全体で統一し、優れたユーザビリティを実現するのはさらに手間のかかる作業です。 そうした業務用のWebアプリケーションのユーザーインターフェイスを構築するためのサンプルが豊富に含まれたガイドライン「IBM Lotus User Interface Developer Documentation」が、IBMから公開されました。 今回公開されたIBMのガイドラインは、同社のLotus製品群のユーザビリティを統一するための社内プロジェクト「One U
プログラミング言語にはさまざまな種類、CやJavaやPerlなど、が存在します。理想的なプログラミング言語の定義は条件やプログラマーの好みによってさまざまだとは思いますが、やはり実行速度が速いこと、できれば簡潔に記述できた方がよい、という条件に同意する方は多いのではないでしょうか。 さまざまなプログラミング言語のベンチマークを実行し、その結果を報告しているWebサイト「The Computer Language Benchmarks Game」を紹介しているのが、ブログ「Radium Software」の記事「プログラミング言語の特徴を視覚的に比較する」です。 「The Computer Language Benchmarks Game」では、ベンチマークの結果とそのコードの関係をグラフにした「interpret scatter plot shapes」というWebページが公開されています
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く