タグ

ブックマーク / maeharin.hatenablog.com (12)

  • レガシーシステムを理解する方法 - maeharinの日記

    結構年季が入ったJavaのレガシーなwebアプリをRailsに移行するというプロジェクトを進めている。レガシーシステムは以下のような状態。 ・オリジナルを作ったエンジニアは既に不在 ・ビジネスロジックに対するドキュメントは殆ど存在しない ・単体テストは存在しない ・社内WAFで、ドキュメントなし ・複数のシステムが連動している このような状態は、年季の入ったシステムではわりとよくあることだと思うが、いかんせん「仕様がわからない」ということが色んな所でボトルネックになっていた。その対策方法について、メモしておく。 仕様を理解するための時間を確保する 「その内時間が経てば理解できるよ」という考えもあるだろうが、ある程度年季が入ったシステムをリプレースするなら、初期段階で多少コストをかけてでも、既存仕様を理解するための時間を作った方が効率的だと思う。既存仕様をよく理解しないまま移行開発を行っても

    レガシーシステムを理解する方法 - maeharinの日記
  • Backbone.jsをRailsで使った際の、初期設定とルール - maeharinの日記

    こないだまでRailsとBackbone.jsを使ったWEBサービスを作ってました。折角なので、その際の初期設定とちょっとしたルールをまとめておきます。ちなみに、規模感は以下のような感じです。 ・ModelとCollection 各約10個 ・ViewとTemplate 各約30個 ・Routerは使わない(SinglePageApplicationではないので) バージョンは ・backbone.js: 1.1.0 ・rails: 3.2.13 です ライブラリの配置 依存ライブラリは以下のように配置した // vendor/assets/javascripts/配下 . |-- backbone/ | |-- backbone-min.js | `-- backbone-min.map |-- json2/ | `-- json2.js |-- underscore/ | |-- un

    Backbone.jsをRailsで使った際の、初期設定とルール - maeharinの日記
  • や...やっと理解できた!(2) JavaScriptのスコープチェーン - maeharinの日記

    前回はJavaScriptのプロトタイプチェーンについて、図解を用いることでなんとか理解できました。今回はスコープチェーンに挑戦してみます。前回と同じく「1. 図解を用いる」「2. 用語を明確に定義する」「3. Standard ECMA-262 3rd editionを情報ソースとする」というアプローチで紐解いて行きます。 用語の定義 ・エントリの文章における表記は、以下の表の「ECMA-262 3rd」に統一する ・エントリの図における表記は、以下の表の「エントリの略称」に統一する ・エントリ内におけるES3とは、Standard ECMA-262 3rd editionを指す ECMA-262 3rd エントリの略称 JavaScript(サイ)第5版(日語) Execution Contexts EC 実行コンテキスト Variable Object VO 変数定義の

    や...やっと理解できた!(2) JavaScriptのスコープチェーン - maeharinの日記
  • や...やっと理解できた!JavaScriptのプロトタイプチェーン - maeharinの日記

    JavaScriptのプロトタイプチェーンについて理解しようとしたのだけど、prototypeとか__proto__とかごちゃごちゃになって、色んなブログを読んでもなかなか理解しきれなくて悶々としていたのだが、図を書いたらパッと理解できた!以下、情報ソースはなるべくECMAScript仕様書(3rd)を元にするようにして書きました なぜ分かりづらいのか? そもそも、なぜJavaScriptのプロトタイプチェーンは自分にとってこうも分かりづらかったのだろうか?自分なりに分析してみると、まず、「似ているが違う用語が沢山ある」という点がある。ざっとあげただけでも、「prototypeと__proto__」「__proto__と[[Prototype]]」「FunctionとFunctionオブジェクト」などがある。そして次に、「入り組んだ構造が動的に変化する」という点がある。上記のように似たよう

    や...やっと理解できた!JavaScriptのプロトタイプチェーン - maeharinの日記
  • いつも忘れる「Railsのgenerateコマンド」の備忘録 - maeharinの日記

    当にいっっつも忘れる(T-T) ので、よく使うコマンドだけメモ なお、網羅的な解説は以下のサイトがよくまとまっている! railsコマンド(rails) - Railsドキュメント はじめに 全てのrailsコマンドは-h (or --help)オプションでヘルプが見れる $ rails -h $ rails generate -h $ rails generate scaffold -hgenerateのショートカットはg $ rails g scaffoldgenerateは-p, [--pretend]でドライランできる $ rails generate scaffold AdminUser name:string mail:string -pgenerateで生成したファイルを削除するにはdestory $ rails destroy AdminUser 主要generateコマ

    いつも忘れる「Railsのgenerateコマンド」の備忘録 - maeharinの日記
  • GitとSubversionを併用する - maeharinの日記

    仕事ではSubversion(以下、svn)を使っているのだが、これをgitに置き換えたい。 とはいえ、いきなり全体をgitに移行するのはキツそうなので、以下のようなプロセスを踏もうと思う。 (1) 自分の環境だけgitを使えるようにする(中央リポジトリはsvn) (2) 他のメンバー(数名規模)もgitを使えるようにする(中央リポジトリはsvn) (3) 中央リポジトリをsvnからgitに変える このエントリでは上記(1)の経緯を書きとめておく。 現状 ・以下のように中央にsvnリポジトリが存在していて、各人がそこからチェックアウトしている ・各人はチェックアウトした「svn作業コピー」から「作業用ディレクトリ」にコピーしている(cpやrsyncで) ・各人の「作業用ディレクトリ」のhtdocsはdev環境としてブラウザから閲覧可能 ・各人の「svn作業コピー」と「作業用ディレクトリ」は

    GitとSubversionを併用する - maeharinの日記
  • 一瞬で「今日のディレクトリ」を作成・移動できるRuby/Bashスクリプト - maeharinの日記

    ちょっとしたファイルを作成・保存しておきたい時、自分にとっては「今日の日付のディレクトリ」にまとめておくのが丁度よい。これまでは毎日手作業で「今日の日付のディレクトリ」を作成・移動していたのだけど、これを毎回やるのが面倒臭い。ということでスクリプトで自動化した。ちなみに環境はruby1.9.2。bash 3.2.48。 ※追記 ブコメでご指摘いただいた通り、Ruby使わないでBashだけでできます...なぜわざわざRubyを使ったのか...そこにRubyがあったからです... 機能 ・シェルで「. today」と入力すると「~/daily/今日の日付(yyyy_mm_dd)」ディレクトリを作成し移動する 実装にあたって Rubyでディレクトリを作るのは簡単なのだが、現在のシェルを移動するのに一工夫必要だった。RubyでDir.chdirするだけでは、現在のシェルのディレクトリは移動しない(

    一瞬で「今日のディレクトリ」を作成・移動できるRuby/Bashスクリプト - maeharinの日記
  • Rubyワンライナー入門 - maeharinの日記

    先日仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプトというネタエントリを書いたのだが、その際Rubyのワンライナーをもう少しまともに理解したいと思ったので入門してみた。手元のRubyは1.9.2 はじめに Rubyのワンライナーは、rubyコマンドに色々なオプション(-eや-nなど)をつけて実行する。各オプションの網羅的な解説が見たければ、コマンドラインでは$ man rubyで閲覧できるし、webではるりまサーチで参照できる。ただ、これらは網羅的すぎるので、以下よく使うオプションとその周辺情報についてまとめた。 -e 一番基的なオプション。スクリプトを実行する。(ちなみに他のオプションと組み合わせる時は必ず最後に記載する) 例: hogeと表示 $ ruby -e 'puts "hoge"' -n プログラム全体がwhile gets ... endというルー

    Rubyワンライナー入門 - maeharinの日記
  • 仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプト - maeharinの日記

    情報収集はビジネスマンとしての基である。しかし普段シェルで作業する者としては、毎回ブラウザを立ち上げる時間すら不毛である。よって、シェルから一瞬で情報収集できるRubyのワンライナーを書いた。 上からYahoo, はてな, Naverまとめ, 2ちゃん $ ruby -r open-uri -e 'open("http://www.yahoo.co.jp").read.scan(/topics.+?>([^<]+?)</) {|m| puts m}' $ ruby -r open-uri -e 'open("http://b.hatena.ne.jp/hotentry").read.scan(/entry-link.+>(.+?)</) {|m| puts m}' $ ruby -r open-uri -e 'open("http://matome.naver.jp/").read.sc

    仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプト - maeharinの日記
  • rbenvのメモ - maeharinの日記

    備忘のためメモ。必要に応じて編集予定。 ヘルプ $ rbenv -h主要コマンドの説明はこれで 特定のrbenvコマンドのヘルプを表示 $ rbenv help <コマンド> 現在のRubyバージョンを表示 $ rbenv version rbenvが管理している全てのRubyバージョンを表示 $ rbenv versions インストールできるversionを表示 $ rbenv install 特定のversionをインストール $ rbenv install 1.9.3-rc1 $ rbenv rehash versionの切り替え(global) $ rbenv global 1.9.3-rc1 versionの切り替え(local) $ rbenv local 1.9.3-rc1すると、そのディレクトリに.rbenv-versionというファイルが作成される ローカル設定を解除し

    rbenvのメモ - maeharinの日記
  • Facebookアプリ開発勉強会で講師をしてきました - maeharinの日記

    先日、HatchUp様のオフィスで開催された第1回Facebookアプリ開発勉強会で講師をしてきました。あいにくの天気でしたが、当初22名定員の予定が、30名近くの方にご参加いただきました>< 受講者のみなさま、ありがとうございます。 gdgdな部分もありましたが、折角なので、その時のスライドを上げておきます。FacebookのAPIは仕様変更が頻繁に発生するので、最新情報はfacebook developersのサイトを参照する必要がありますが、ざっくり概要を掴みたい時、参考になれば幸いです。 スライド Facebookアプリ開発、基礎の基礎 View more presentations from maeharin 次回 第2回勉強会、開催します。 【第2回】 yoyogi.fb(代々木facebookアプリ開発勉強会)-初心者向け- 4月24日(火) 19:30 - 21:30 @株

    Facebookアプリ開発勉強会で講師をしてきました - maeharinの日記
  • 文系リーマンでも、半年でFacebookアプリを1人で作れるようになった - maeharinの日記

    私は文系リーマンで、半年前まではプログラミングができませんでした。けれど、独学で少しずつプログラミングをしたり、勉強会に参加したりすることで、先日「友達Tube」というFacebookアプリを、1人で作ってリリースすることができました。 その過程で学んだことの一部を、HatchUp様主催の「第2回渋谷facebookアプリ勉強会」で発表してきましたので、スライドを上げておきます。 作ったFacebookアプリ 友達Tube HatchUp様の勉強会で発表したスライド 文系リーマンでも半年でFacebookアプリを作れるようになった View more presentations from maeharin 講師をやることになりました 僭越ながら、HatchUp様からお声がけいただき、Facebookアプリ勉強会の講師をやる事になりました。私自身、プログラミングはじめてまだ半年の身なので、「

    文系リーマンでも、半年でFacebookアプリを1人で作れるようになった - maeharinの日記
  • 1