タグ

TIPSとprogrammingに関するloosecontrolのブックマーク (30)

  • より良いPHPerになるための20Tips

    去年の話ですが、海外でこんな記事が上がっていました。 20 Tips you need to learn to become a better PHP Programmer 記事の内容は、かなりレベルが低いです。 しかし、初心者のうちに知っておけば、より早く成長出来るでしょう。 初心者PHPerのために、この記事の翻訳を載せます。 20 Tips you need to learn to become a better PHP Programmer PHPは、同じオブジェクトの扱い方でも複数の書き方を持っている、とても気まぐれなプログラミング言語だ。 詳しくは、私の書いた”The Art of Programming“を読むと良い。 これから書くTipsは、過去のプロジェクトから私が学んだコードの可読性、メンテナンス性を上げ、あなたを素晴らしい、より進んだPHPプログラマーにするもの

  • perl - for(;;)よりforeach : 404 Blog Not Found

    2009年03月29日23:45 カテゴリLightweight Languages perl - for(;;)よりforeach Perlベストプラクティス Damian Conway / クイープ訳 [原著:Perl Best Practices] 最近のid:naoyaのソースがすごく気になったので。 何が気になるかというと、for(;;)の利用。それもCやJavaScriptなど、事実上それしかないソースからそのまま転写したとかならとにかく、編集距離 (Levenshtein Distance) - naoyaのはてなダイアリーでは Python版がちゃんとxrangeを使っているのにPerl版がfor(;;)のでますます解せない。 "Perl Best Practices"でも、読みやすさの観点からCスタイルのforは避けよ(pp. 100-101)と言っているが、もう一つ損な

    perl - for(;;)よりforeach : 404 Blog Not Found
  • #01 JavaScriptのバッドノウハウ | gihyo.jp

    今回から「BK通信」(⁠ビーケーツウシン)と題して、連載することになった高林と申します。以前連載していた「プログラミングの光景」ではデバッグ、コードレビューといった大きなテーマを取り上げましたが、今回の連載では日常的に遭遇するチマチマした「バッドノウハウ」(⁠Bad Knowhow)について書いていきたいと思います。 バッドノウハウとは? バッドノウハウとは、筆者が2003年に作った造語です。元の定義は以下のようなものです。 計算機を使っていると、何でこんなことを覚えないといけないのだろうか、とストレスを感じつつも、それを覚えないとソフトウェアを使いこなすことができないためにしぶしぶ覚えなければならない、といった類いのノウハウは多い。そうした雑多なノウハウのことを、来は知りたくもないノウハウという意味で、私はバッドノウハウと呼んでいる。 一方、「⁠はてなキーワード」にある定義は簡潔ですっ

    #01 JavaScriptのバッドノウハウ | gihyo.jp
  • プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ

    プログラミングを始めてから今日に至るまで、 様々なタイプのプログラマーと開発を共にしてきたが、 驚くべき速度で高い品質のソフトウェアを作り上げるプログラマーには、 一つ共通の特徴があるように思える。 それは、「はまる」時間が極端に短い、ということである。 風のプログラマー」を指向しており、開発速度を重要視している。 例えば平成14年未踏ソフトウェア創造事業「PICSY」では、 発表直前に知人でプロジェクトリーダーの鈴木健にレスキュー隊として呼ばれて 2,3日でGUI全般と、クライアント/サーバー通信部分の設計と実装を終わらせたのだが、 このときなどは、大体の要件を口頭で聞いた後は、 ほぼまったく手が止まらずコードを書き続ける感じで開発をしていた。 「はまる」時間の長さは開発速度に直結するわけだが、 プログラマーが「はまる」場合にはある程度の傾向があると思うので、 今日は「はまる」プログラマ

    プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ
  • コマンドラインで使える超絶便利なワンライナーを投稿・共有できる『Command-line-fu』 | 100SHIKI

    これは素敵すぎるサイト。 Command-line-fuではLinuxなんかのコマンドラインで使えるワンライナー(一行プログラム)を投稿・共有できる。 自分がよく使うワンライナーを保存しておいて使うも良し、他の達人の技を盗むも良し、の素晴らしきサービスである。 ちょっとのぞいてみただけでも「へー、一行でここまで出来るんだ・・・」という小技があってかなり勉強になる。 また更新情報はRSSTwitterでも配信しているので日々勉強!という人には便利だろう。こういう小技ノウハウの共有サイトはいいですね。

    コマンドラインで使える超絶便利なワンライナーを投稿・共有できる『Command-line-fu』 | 100SHIKI
  • JavaScript OOP におけるクラス定義方法 - IT戦記

    クラスを定義する方法です。考え付くだけでも、これだけたくさんの方法があります。やっぱり、 JavaScript って柔軟であり複雑な言語ですね。 ちなみに、以下のすべての例はこのクラスを定義しています。 ちなみに、僕は一番下の書き方ですね。 皆さんはどのようにプログラミングしていますか? プロトタイプを使わない。クロージャを使う。 // プロトタイプを使わない。 // クロージャを使う。 function Item(price) { this.showPrice = function() { alert(price); }; } プロトタイプを使わない。クロージャを使わない。 // プロトタイプを使わない。 // クロージャを使わない。 function Item(price) { this.price = price; this.showPrice = function() { aler

  • http://hmdt.jp/cocoaProg/index.html

  • 中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場

    「変数のスコープは狭いほど良い」と妄信する 変数でもメソッド名でもクラス名でも言えることだが、単純に「スコープは狭いほどよい」という方針でプログラムすると、逆に保守性も可読性も悪いプログラムができあがることがけっこうある*1。 実際、「あちこちから頻繁にアクセスするようなオブジェクトやメソッド」は、スコープをぐっと広くしてしまった方が(場合によってはグローバル変数やグローバル関数にしてしまった方が)、いちいちパラメータ渡しのバケツリレーをせずに、オブジェクトや機能を使うことができ、プログラムの可読性も保守性もずっと向上することがけっこうある。 たとえば、プログラムのいろいろな箇所から比較的頻繁にアクセスする必要があるようなオブジェクトや機能がバインド(格納)された変数やメソッドのスコープをクラスやメソッド内のローカルにして、それを使うときは、いちいち各クラスやメソッドにパラメータ渡しのチェ

    中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場
  • プログラミングテクニックのまとめ - プログラミング日記

    とりあえず思いついたもののまとめ。 まずは、ベーシックなものから。 変数のスコープをなるべく狭くしろ 他はグローバル変数を使うなとか、モジュール化と界面を意識せよなど。とにかくスコープは重要かつ意外と奥が深い。スコープに関係する機能は、モジュール(パッケージ)、クロージャ、ローカル関数、ローカルクラス、変数の種類、アクセス制御など。 同じロジックのコードを2度以上書くな 他はDRY原則、コピペをするななど。自分の場合、2度書く方がシンプルになる場合、2度書くこともある。特に、ifやswitchなどのロジックの中で同じコードが2度現れる場合、ちょっとしたコードでわざわざ別のところで関数やブロックにまとめて、それを参照するのは面倒。但し3度以上現れる場合は関数などにまとめるケースが多いかも。 汎用コード内で条件分岐コードを減らせ 他はifをポリモーフィズムによりなくせなど。条件分岐は汎用性を損

    プログラミングテクニックのまとめ - プログラミング日記
  • 本気でやるなら黙読は避けて朗読すべき: Days on the Moon

    読書百遍義自ら見る」という言葉があります。難解な書物であっても 100 回も読めば自然と意味がわかるようになるという、熟読の大切さを説いた句です。しかし、これは当のことなのでしょうか? 2000 年もたてば社会も常識もまったく変わってきます。昔の人の言ったことが今も正しいとは限りません。 疑問があれば解明したくなるのが人の性というもの。実際に「読書百遍義自ら見る」は正しいか、確かめて紀要にまとめてくださった方がいます。それによると、女子大生にデカルトの「方法序説」を 30 回読んでもらったところ、ほとんどが内容を理解するにいたったとのこと。この言葉の正しさが見事に証明されたのです。 ただし、一点注意することがあり、それは黙読ではなく朗読するということ。人間は活字を使いだしたのはたかだかこの5千年程度のことであるが、音声を使った情報のやりとりは動物の時代から行ってきたことであるという由緒

  • プログラマの壁 - あどけない話

    プログラマに向いている人と向いていない人がいるそうです。 Jeff Atwood さんの「どうしてプログラマに・・・プログラムが書けないのか?」: プログラムを書ける者とプログラムを書けない者の間にある大きな溝についてはよく知られているが、プログラマの職に応募してくる人間は、すでにこの溝を飛び越えているものだとばかり思っていた。明らかにこれは妥当な仮定ではないらしい。プログラムを書けないプログラマの面接で時間を無駄にしないために、FizzBuzzスタイルのふるい分けが必要ということだ。 どんなことでも向き不向きはあるでしょうから、これには納得いきます。しかし、プログラマになれる人の中にも、溝があるようです。 Joel Spolsk さんの「Javaスクールの危険」: 私のささやかな経験から言わせてもらうと、伝統的に大学のコンピュータサイエンスのカリキュラムで教えられているもので、多くの人が

    プログラマの壁 - あどけない話
  • 開発環境としてのMac OS X Leopard - Blog by Sadayuki Furuhashi

    なかなかrootにならせてくれない、ハードウェアを選ばせてくれない、設定ファイルをviでいじらせてくれないなど、不自由なUNIX : Mac OS Xですが、それ故の自由が何物にも代え難い今日この頃。Leopardになってcron+pdumpfsの仕事まで持って行かれてしまいました。 前回のTiger版カスタマイズメモに引き続いて、Mac OS Xのカスタマイズを書いておこうと思います。 Terminal.app タブ機能が実装されたりssh-agentがKeychainと統合されたりと、Leopardで驚異的なアップデートが行われたターミナル周りですが、まだまだ改善できる余地があります。問題は以下の3点。 HomeキーとEndキーが使えない 色が見にくい ショートカットキーが使いにくい まずHomeキーやEndキーですが、これは環境設定で変更できます。Terminal.appの環境設定の

    開発環境としてのMac OS X Leopard - Blog by Sadayuki Furuhashi
  • Major mode to edit Perl scripts

    Perl スクリプトを編集するための設定 cperl-mode を使おう 関数名や変数名の補完入力を使う Perl の Debugger を起動する Perl スクリプトの文法的な正確さを検査する Perl語 Info を活用する cperl-mode を使おう Perl スクリプトを編集する時,普通は Emacs に標準的に附属している perl-mode を使います.しかし,この perl-mode は少し古いので最近の Perl5 の構文を利用するとインデントが崩れたりするなど,多少の不具合があります. それに対して,cperl-mode は最近も継続的にメンテナンスされていて, 新しい機能も利用できるようになっていますので,是非利用しましょう. なお,Emacs20 以降は cperl-mode.el は,Emacs の標準配布の一部となりましたから,特別にインストールする必

  • プログラマ1年生に、先輩がアドバイス:アルファルファモザイク

    「ゼリーのみ規制…モチはいいのか?」→野田聖子氏「モチは喉に詰まるものというのが常識」…消費者庁構想に暗い影

  • 404 Blog Not Found:怠翻 - JavaScriptでありがちな9つのシマッタ

    2007年08月17日01:15 カテゴリ翻訳/紹介Lightweight Languages 怠翻 - JavaScriptでありがちな9つのシマッタ 私自身結構シマッタしちゃうので。 Nine Javascript Gotchas 尻カンマ注意 以下のコードはFireFoxでは動きますが、Internet Explorer (以下IE)では問題になります。 var theObj = { city : "Boston", state : "MA", } 最後にカンマが入らないよう注意しましょう。 浮気なthisは何を見てるやら 以下のコードで、thisは何を指しているでしょうか。 <input type="button" value="Gotcha!" id="MyButton" > <script> var MyObject = function () { this.alertMess

    404 Blog Not Found:怠翻 - JavaScriptでありがちな9つのシマッタ
  • ウノウラボ Unoh Labs: プログラミングに使いやすいフォントを選ぶ

    yukiです。 人によってまちまちですが、見易さや生産性にかなり影響する(と思っている)プログラミング時のフォントについて紹介します。 マカーの方はデフォルトで十分読みやすいフォントが入っているので、ここではwindows向けとして紹介させて頂きます。 個人的に選ぶポイントは、 ゼロ・オーは斜線で区別がつく 日語も使える 長時間見ても疲れない(一番大事) です。これいいよ!というのがあったら絶賛募集中です。 有名どころかもしれませんが M+フォント M+フォント posted by (C)フォト蔵 普段はコレを使わせていただいています。 自分的にはゼロ(0)とオー(O)の差が分かりやすく◎です。 ゼロの中にスラッシュやドットが入っていて読みやすく、等幅なので使いやすいです。 VLゴシックフォントファミリ 上記のM+を元に製作されたフォントです。 弊社CTOが過去に参加

  • プログラムメモ

  • javascriptを理解するためのたった2つの大切なこと

    9割ぐらいはハッシュ何がハッシュなのかjavascriptで存在するほとんどのオブジェクトの実体はハッシュだよ。 var arr = [0,1,2,3]; とかをみると配列(人によってはリスト)に見えると思う。でも実際は違うんだ。 これは var has = {0:0,1:1,2:2,3:3}; と基的には等価なんだ。ただちょっと束縛されているメソッド(インターフェイス)が違うだけ。 ためしに arr[4] = 4; arr['x'] = 'string'; arr[-1] = -1; としてみよう。 Firebugで確認してみると[0, 1, 2, undefined, 4]というような値がかえってくるよ。 でもarr[-1]やarr['x']の値は保存されてないのかな?そんなことはないちゃんとアクセスできるんだ。 それどころかarr.xで'string'がかえってくるんだ。 別の例を

    javascriptを理解するためのたった2つの大切なこと
  • 404 Blog Not Found:Digest - 今日にでも使うべきJavaScriptの7つのテクニック

    2007年04月25日12:00 カテゴリLightweight LanguagesBlogosphere Digest - 今日にでも使うべきJavaScriptの7つのテクニック 良質の記事だけに全訳したかったのだけど、時間もないので紹介と抄録。 Digital Web Magazine - Seven JavaScript Techniques You Should Be Using Today サンプルコードは、適宜書き換えてあります。 1. Branch when possible - 分岐はなるはやで これは実例を見た方が早いでしょう。クロスブラウザー対応のaddListener()を考える。機能だけを考えれば、以下でOK。 function addListener(el, type, fn) { if ( window.addEventListener ) { el.addE

    404 Blog Not Found:Digest - 今日にでも使うべきJavaScriptの7つのテクニック
  • デスクトップ百景 - 第十二景:はてなを支える開発者の「何もない」デスクトップ 伊藤直也

    株式会社はてなで開発を担当している伊藤直也です。今回はデスクトップ百景ということで、恐れ多くも私のデスクトップを使って、開発者の使うデスクトップの様子をご紹介いたします。 ■ 何もないデスクトップ これが私のデスクトップ画面です。ご覧の通り、普段はごみ箱しかないという状態で、デスクトップそのものはこのコーナーの他の方々に比べて恐ろしくシンプルです。画面を広く使いたいので、タスクバーも普段は隠しています。画面のOSはWindows XPですが、MacOS Xも併用しています。 シンプルにしている理由というのは特にないのですが、1つ挙げるとすれば、仕事に集中できる状態を目指していたらこうなったといったところでしょうか。 私の職業はプログラムを書く人、すなわちプログラマーです。プログラムを書く仕事では長い集中時間が必要になります。長い時間考えて、考えた結果をプログラム言語によってソフトウェアとい