LXCなDockerでコンテナ作りすぎた時とかに役立つコマンドメモ

完全なコマンドメモです。。。 すべてのコンテナの停止 sudo docker stop $(docker ps -a -q) すべてのコンテナの削除 sudo docker rm $(docker ps -a -q) すべてのイメージの削除 sudo docker rmi $(docker images -a -q) カレントディレクトリ内のDockerfileをbuiltする sudo docker build -t…

Continue Reading LXCなDockerでコンテナ作りすぎた時とかに役立つコマンドメモ

Railsから見たCakePHP3

Rails好きな私の視点でCakePHP3系をざくっと紹介します!CakePHPは嫌いじゃないので!Codeigniter好きだけど嫌いです。(Codeigniterで外注なんてしようものならコードがファックな感じになっちゃうことが多々あるよね、だってルールがないんだもん!学習コストの低さは圧倒的に素晴らしいんだけどね!) CakePHPはRuby on Rails派生系と言われる、MVC構造のウェブアプリケーション用Frameworkです。PHP言語で開発されています。 Railsは37signals(「強いチームはオフィスを捨てる」などを執筆している先進企業)が主になって開発しているFrameworkです。歴史は結構古く、2004年からあります。もっとも、私が初めてRailsを使ったのは2系。たぶん2.1~2.3あたりでした。 この頃Railsの主だって紹介される特徴は主に下記の3つだったと思います。 ActiveRecordなどによるSQLを使用することなしでのアプリケーション構築 rubygems(Gemfile)で配布されるたくさんのライブラリ scaffold自動生成 残念ながらscaffoldはそれほど使う機会はないですが、結構初めての時だと、ある程度ページが自動生成されて、「おーっ!」って感動した気がします。 CakePHPはRailsと似た思想でPHP言語向けに作られました。2005年スタートのFrameworkです。 RailsライクなMVC構造 たくさんのCakePHP用ライブラリ scaffoldもありますが、あまり多用はしない(RoR同様)と思う 実際の所、登場時からRails風だと言われてはいますが、2014年現在でも全然Rails風じゃないと思っています。だって、DBのマイグレーションも標準装備じゃないですし、ライブラリ管理も標準装備じゃありません。サーバーだってApacheとか起動しないといけない(逆に言うと、Apacheで動く)し。 RailsならDBは必ずマイグレーションファイルで管理されているし、ライブラリはGemfile及びBundlerで管理されている。サーバの起動はrails sコマンドで一発。 CakePHPのActiveRecord的な物は、返ってくる値がModelじゃなかったりとか。「風」なだけで全然Railsじゃありません(笑) しかし、Railsほどルールは多くないので、学習コストもRailsより当然低く、使いやすいFrameworkです。PHPの方がエンジニアの母数も多く、Rubyより圧倒的メジャー。 そのCakePHPがそろそろ、3系がリリースされます。 CakePHP 3.0 Roadmap ActiveRecord的なORM(オーアールマッパー)がRails風に、ArrayやHashじゃなくてModel(オブジェクト)が返ってくるようになります。ActiveRecordのカラムへのアクセスも、今までの2系だと、使わないタイミングでもSQLが発行されてDBにアクセスしてましたが、実際に使うタイミングで呼び出される遅延実行になります。データベースのマイグレーションもほぼ標準、ライブラリのバージョン管理(Composer)も標準になります。(scaffoldはなくなるかも) 正直な所、Railsを普段使ってるエンジニアから見ると、CakePHP3系には全く真新しい点はありません。Railsが当初から持っていた機能を備えるようになったように見える感じです。しかしながら、古いPHP言語のサポートを捨て、新しいスタイルの開発手法をFrameworkの使い手に強制させ、大きな進歩を手に入れようとしているように見えます。 Rails4系は3系、2系と比べてそれほど劇的な進歩があったわけじゃありません。turbolinksなんて一部の人しか使いこなせない、使う必要がありません。Frameworkとしてのサポート範囲が少々大きくなりすぎているような気がします。CakePHP3系はCakePHPがRailsに追いついたな、と思うほどの大幅アップデートだと思います。 CakePHP2系でもComposerなど使えるんですが、それらが標準になって、強制されるようになって、コミュニティやライブラリが一元管理されるようになって、全員の努力があちこちのコピペコードではなく集約、統一、DRYな感じになることによって、一気に開発生産性が上がると思います。 CakePHP3は真新しくはないけど、きっと文化に変化を与えると思います。楽しみです! 2系の人もComposerとかCakeDC Migrationとかは今のうちから使って良いと思いますw。…

Continue Reading Railsから見たCakePHP3

Dockerfileの書き方と気をつけたほうが良いこと

Dockerはみなさんご存知でしょうか?LXC (LinuX Containers)と言われるものです。何が出来る技術か?というと、仮想環境(VM)を作る事が出来る技術です。このDockerfileについて書こうと思うのですが、最初にdockerについてざっくりだけ紹介。 VirtualBoxとかVMWareとかとそれほど変わらないですね。Vagrantとかも流行ってますが、VagrantはVirtualBoxと合わせて使う、それらをより便利にするツールです。VagrantfileってのがVagrantにはあって、 VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # ... end なんかこう、こんな感じに、仮想環境に事前設定して、 $ vagrant init $ vagrant up $ vagrant ssh とかで仮想環境を立ち上げて、vagrant haltで停止させたりとか出来ます。 ただ、もちろん、既存のVirtualMachine技術の上で動いているので、パソコンを1台エミュレーションしてるようなもので、起動はまぁそこそこ時間が掛かるし、エミュレーションしている分、余分にCPUなども消費します。 LXC技術はVMのそれらの欠点を欠点を解決した新しい目の技術です。2013年ごろから登場。DockerというOSSがLXCの中では最も注目されています。 くじらさんのロゴが可愛いです。くじらさんの上にコンテナがいっぱい載ってますね。 イメージ図 LXCはDockerをインストール、動作させているコンピュータ上のKernelの上で動きます。PC本体のエミュレーションは行わない。なので、起動も一瞬。終了も一瞬。…

Continue Reading Dockerfileの書き方と気をつけたほうが良いこと

これが無かったら開発なんて出来ない!欠かせない開発ツール5選(コラボレーション編)

はじめてまともな記事なので、特に気に入っている開発系のツールを紹介したいなと思います。今回はコラボレーションに関係するタイプのツール・サービスを。 もちろん皆様ご存知のが多いかとは思います。 Github PivotalTracker CIツール(Jenkins/CircleCI,etc) Heroku HipChat Github GitHub · Build software better, together. Gitレポジトリのホスティングサービスです。言わずもがなですが。 私達もGithub上でプルリクエスト型開発行ってます。 プルリクエストが今ちょうど無かったので、普通のコード及びコメント欄のスクショをぺたり。 コメント欄でコミュニケーションしてます。プルリクエスト毎にコードレビューしてます。 人間必ず1人だと視野が狭くなったりミスったりするので。 写真はコメントが自動投稿っぽいですが、これが私たちが今作ってるサービスの機能だったりします。まだオフレコです>< PivotalTracker Pivotal Tracker | Agile Project Management めちゃくちゃさくさく動くアジャイル専用タスク管理ツールです。 一番左がCurrent, そのとなりがBacklog,…

Continue Reading これが無かったら開発なんて出来ない!欠かせない開発ツール5選(コラボレーション編)