プログラミング

一次情報にあたることの重要性

最近考えていることがありました。それは、いわゆるギークな人やハッカーは人はどんな風に勉強してきて、今その高みにいるんだろうということです。Shut the fuck up and write some code. ってつっこまれそうな内容ですね(ノ∀`)でも考えてしまうわけです。…

一流の会話を理解しようとする勉強法

機能を開発する前に

心得的なメモ まず、自分が依頼された機能を実装する前に以下の点を明確にした方がいい。 その機能を作る由来、経緯 その機能の概念 概念は由来とかを理解してから作られると思うが、以外とここを理解していないで開発してしまう人もいると思う。 そのため、…

根本を理解することの大切さ

カテゴリがプログラミングかどうか迷ったが、内容がプログラミングのことだったのでここに。 以下とあるIRC。 20:29 (yut) 特異クラスマジむずい 20:29 (yut) これ納得してから帰る 20:33 (fuk) 特異クラスってこんなやつじゃ・・・ 20:39 (yut) それはわか…

ちょっとの差が大きな差になる

ウノウ・ラボのブログより - これだけでは面白くありませんので、JLayerのソースコードを少し追ってみることにします。 - ただコンポーネントを追加するだけでなく、その中身にも興味を抱き、覗いてみる。 こういう好奇心(のようなもの)がプログラマーに限…

プログラマーの美徳

以下参考先より引用 - 怠慢 全体の労力を減らすために手間を惜しまない気質。この気質の持ち主は、役立つプログラム を書いてみんなの苦労を減らしたり、同じ質問に何度も答えなくてもいいように文書を 書いたりする。よって、プログラマーの第一の美徳であ…

オブジェクト指向は枠から作っていく

最初にメソッドを空宣言した方が考えやすい。それを呼ぶ側が、ここでは呼べばいいんだと、その メソッドをかけるから。 後から、「あ、ここはメソッド化するんだった」ってことはない。最初に思いつくものは空宣言 しておく。それで、呼び出し側ではそれをど…

プログラミングできるようになるには

プログラミングを習得するにはとにかく書くしかありません。書いているうちに段々 慣れてきて、色々見えてきます。とにかく、書いて覚えるそれ以外にはありません。 当たり前だけど大切だと思う。何故なら、人は当たり前のことができないから。 覚えたら使っ…

Javaの精神

「Write once, run anywhere:WORA(一度書けば、どこでも動く)」 これ大切ね。

日本語は必ずしも2バイトではない

特に、Webアプリでよく使う、UTF-8は漢字(仮名含む)の表現に3バイトを要する。そのため日本語の文章はShift_JISやEUC-JPなどと比較して1.5倍のサイズとなる。参考:http://ja.wikipedia.org/wiki/UTF-8

(複雑な?)DB書き込みの時はresucueをかける

特に、複数回DBに書き込むとき、一方が更新されておちないように

同様の情報はまとめる

例:Rails environment.rbで、MY_DOMAIN = 122.122.122.122 ; MY_MAIL = "mail@domain"とやるより、 APP_CONFIG = {:MY_DOMAIN => "122.122.122.122", :MY_MAIL = "mail.domain"}など、1つにまとめて しまうといい。

プチ環境でも、きちんと検証せよ

例えば、ページングがあるなら、per_pageを減らしてきちんと、ページ管理されるか確かめよ。

最初から将来を視野に入れて。拡張性の高いものに

検索でtext_field_tagの属性名がnicknameになっていた。将来性を考えるなら、 最初からkeywordにしておくべきだろう。メソッドを組むにしても、常にこれを意識せよ。メソッドに分けていいのか、 分けない方がいいか。このメソッド内にかくべきかそうでないか…

DB設計は概念も重要

■カラムの直感的矛盾の報復にあう ユーザーテーブルにアンケート結果をもっていることで、アンケート項目の追加により、 ユーザーテーブルに項目を追加する羽目になった。 アンケートはユーザーデータというにはおかしいので、アンケートテーブルにすべき で…

プログラマな会話3

■TMailで携帯から送信した添付ファイルが上手く認識できないもんだいに ついてコードリーディングする。の巻き メールと画像 # Receives a raw email, parses it into an email object, decodes it, # instantiates a new mailer, and passes the email obje…

Cronの設定メモ

■Railsから定期的にメールを送るため、Cronの設定を試みた 最初はcrontab -eで以下のように設定。 - [nag@rmark ~]$ crontab -l MAILTO="nag@solution.co.jp" 34 11 * * * nag /usr/bin/ruby /var/app/saiyo/trunk/script/runner -e production 'Student.sen…

*[Rails]コードリーディング

http://www.dzeta.jp/~junjis/code_reading/index.php?Ruby%20on%20Rails%2F%A5%EA%A5%AF%A5%A8%A5%B9%A5%C8%BD%E8%CD%FD%A4%F2%C6%C9%A4%E0#hf57bbe9

より分かりやすく

例えば、userというモデルに、diary、mailなどのモデルが関連付いているとしよう。 当然そのときは、diary.user、mail.userなどで参照が可能である。しかし、下記の要にするとより分かりやすくなる。 すべてこうする必要はないが、mailなどはuserといっても…

自分でライブラリ作ったら、その中にテストを書く

require 'win32ole' module AbsolutePath def self.get_absolute_path(filename) fso = WIN32OLE.new("Scripting.FileSystemObject") return fso.GetAbsolutePathName(filename) end end if __FILE__ == $0 class TestAbsolutePath include AbsolutePath def…

自分で書くことが大切

るびまを読んでいると、大抵学生時代に、自分でプログラムをいじっていた人が多い。 雑誌についていたコードを写してみたり、自分の研究室のWSの中のプログラムを見てみたり、 自分から進んで探求して行っている。

コミット直前

やはり差分を確認すべき。それが面倒なら、それが面倒でない程度の小修正毎に コミットすべし。

プログラマな会話2

■画像を扱う やっぱり、DBでなくファイルシステムを使うべし(yut) static なファイルにしとけばrails 通らないし 20:24 (na) example.jpgとexample_small.jpg 20:24 (yut) 軽い 20:24 (na) あ、そうか 20:25 (yut) web サーバの方でキャッシュの設定とか出来…

プログラマの会話1

■なんで、migrationのadd_columnでは:smallintが使えないのか。 (table_create時には使える) と、IRCで会話してみた。 15:02 (yut) あーわかった 15:02 (na) mjsk 15:02 (fuk) def native_database_types #:nodoc: 15:02 (fuk) { 15:02 (fuk) :primary_key…

あるものは使う(るびまより)

君が自前主義症候群なのだよ そうだ。そうに違いない。こんなに便利なものがあるんだから、それを使えば良いのだ。 自分はもっと高いレベルの部分を実装することに力を入れるのだ。車輪の再発明は避けるのだ!

開発手順について

■ビュー作成→モデル作成→テスト→実装。どういう手順がいいのかなぁ これについて色々試しているが、次のはよくないモデル作成→ユニットテスト→コントローラ作成→機能テスト→コーディング →ビュー作成→手動テスト これだと、ビュー創っているときに、テストで…

目指せハッカー!

■今回はるびま創刊号と、もう一つ別のサイトから抜粋 まつもと プログラミングはほんとに面白いんで、いろいろやってみてください。でも、先達の知恵は、 見たほうがいいかもしれないな。ささだ ははぁ、なるほどね。もっとソース読め、と。まつもと 若い人…

美しいプログラムとは

るびまより、まつもと氏曰く、「効率がいいプログラム」。 これは、実行効率ではなく、作成、保守、読む時などに効率がいいプログラムということ。 それは、シンプルであり、柔軟性があるものである。

DBデザインについて

DBデザインもおくが深い。ただ同じ属性をまとめればいいというわけではない。 やはり、そのテーブルが持つべきカラムなのか、概念的矛盾はないか等をきちんと チェックすべし。それが、最終的に保守性を上げる。DBという全体への影響が大きい部分 だからこそ…

デザインについて

最初はスケーラビィリティとか考えないで、とかく綺麗に作るべき 継承とかMix-inとか使えるなら使う。