254
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

最新のプログラミング知識へのアップデート

自分が現役でプログラミングをやっていた時期はPHP4全盛期で、クラスも使わず、データベースもmysql_関数を直接使うような時代でした。もちろんテンプレートエンジンやフレームワークも使わず、HTMLにPHPのロジックを直書きです。JavaScriptもほとんど使っていなかったと思います。

それから数年プログラミングの世界から離れていて、つい最近舞い戻ってきたのですが、あまりにも技術が進歩していて、加齢プログラマにはついてゆくのが大変です。

新しい技術は、前提として知っていなければならない知識が多いのですね。

そんなわけで、カムバックしてから学んだことをまとめました。

PHP系

他の言語、具体的にはRuby on Railsも何度か挑戦したのですが、PHPで出来ることばかりなので、なんとなくモチベーションが上がらなくて最近はやってません。でもRuby界隈は楽しそうで羨ましい。

PDO

データベースを抽象化して扱えるクラスです。DBを扱うときはほぼ必須です。接続先がMySQLであるとかPostgreSQLであるとかあんまり考えなくてもいいので楽です。

Symfony

PHP用のウェブアプリケーションフレームワークです。いろんな定形処理を簡単にやってくれます。PHP用のフレームワークは星の数ほどありますが、Symfonyはとてもしっかりした作りで安心感がありオススメです。

Slim

PHP用のマイクロフレームワークです。軽量です。Symfonyほどの機能は要らないけどルーティングを自前で書くのが面倒だなーと思ったときのベストチョイスでした。同じようなものにSilexとかいうのもありますが、こっちのほうがなんとなく好き。

JavaScript系

TypeScript

JavaScriptのフワフワしたところをカッチリ固めてくれる上位互換言語です。JavaScriptにコンパイルできます。実はまだ導入していません。もう少し大規模なプロジェクトになったら導入したいです。

jQuery

これはメジャーすぎると思うので詳しい解説は省きますが、JavaScriptのブラウザ間におけるややこしい差異を吸収したりして簡単に記述できるライブラリです。実は自分はJavaScript自体は詳しくなくて、jQueryにべったり依存しています。

AngularJS

jQueryを規模が大きくなった業務システムに適用・保守するのはかなり難しいです。餅は餅屋、ということで最近はAngularJSを使っています。jQueryが苦手としているデータバインディングを強力にサポートしてくれます。信頼のGoogle製です。

ツール

AngularJSを使おうと思ったらYeomanというツールを使うのが良いと聞いて

npm install -g yo

で簡単にインストールできるyo! とか書いてあるけど失敗しまくるし、謎の知らないツールを大量に導入されるので情緒不安定になりました。なのでYeomanで使っているツールを全部理解したらリベンジしたいです。

Composer

PHPのライブラリを管理してくれるツールです。最近はPearよりこっちを使うのがナウいらしいです。上で紹介したSlimはComposerで導入しました。あとはオートロードという優れた機能がありまして、自作のクラスをPSR-0とかPSR-4という規約に準拠して作成しておけば、requireしなくてもクラスを使うことができます。便利。規約は以下のようにとてもシンプルです。

npm

サーバサイドJavaScriptであるNode.jsのライブラリ管理ツールです。なぜかNode.js関係以外でもいろいろと使われているようです。YeomanやBowerやGruntをインストールするのに必要だったので導入しました。

Bower

JavaScriptのライブラリその他を管理するやつです。JavaScriptライブラリくらい手作業でダウンロードすればいいじゃん!と思っていたのですが、ライブラリが増えてくると管理もバージョンアップも大変になるので、Bowerを使うと超便利です。

Grunt

Makeみたいなものでしょうか?TypeScriptをコンパイルしてJavaScriptを生成したり、SassをコンパイルしてCSSを作成したり、複数のJavaScriptファイルをひとつにまとめてMinifyしてくれたりするらしいお役立ちツールですが、まだあまり活用していないです。

Bootstrap

デフォルトで綺麗なボタンやテーブルが作れるCSSのフレームワークです。段組がとっても楽です。あと勝手にモバイル対応してくれます。

まとめ

今業務で作成しているアプリはフロントエンドがAngularJS+Bootstrap、バックエンドがPHP+Slim+MySQLで、フロントとバックの通信はRESTに準拠したものにしています。

最初は覚えることが多すぎて面倒だったのですが、ライブラリやツールや規約の登場した理由を知ると納得できて、とても効率的に開発することができるようになりました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
254
Help us understand the problem. What are the problem?