Rのつく財団入り口

最近の本や技術系の話などを書いてます。元はTRPG系サイトの入り口でした。

【雑記】2017年を振り返ってみるのこと【活動編】

 仕事や趣味と一部被りますが、このブログ関係やこの1年で学んだことも振り返ってみます。 f:id:iwasiman:20151108133438j:plain

活動編

はてなブログを始めました

 2017年7月に移行して、お陰様で約半年で総アクセス7700PV、ひと月あたり約1000PVかそれ以上、登録読者数も切りよく90、移行後のエントリ約30、はてなダイアリー時代の別ジャンルの過去エントリも含めると合計1453と、復活してから順調に続いています。何かの縁でアクセスいただいた皆様ありがとうございます。
 よく得た知識はブログに書いたり本に書いたり発表したり人に教えたりアウトプットを出すとよいと言われますが、確かにその効果はありますね。人に伝えようとすると文章でちゃんと書こうとするし、自分の頭の中も体系的に再整理されるし、関連してさらに深掘りで調べたりすることもあるし、ブログにアウトプットの習慣をつけるのもよいことかなと思います。

 前からはてなブックマーク界隈とか約束のQiitaやteratailは見ていましたが、改めていろんな人のブログを見て回るのも参考になるし刺激を受けますね。僕よりずっと年齢若いのにこの人たちSUGEEE!!となることもあれば、過去に体験した同じような状況や境遇で共感することもあり、技術以外のちょっとした話で親しみを持つこともあり。まあアフィっぽいところは除いても、ブログの数だけ人生があるのだなと思います。
 更新は不定期ですが2018年もまたよろしくお願いします。

PHPを実務で活用しました

 仕事編と一部被りますが、業務での活動は2016年から続いてましたがPHPを実務レベルで使う所までスキルを広げました。
 まあもちろんまだ知らない組込み関数もあるだろうし凄い人・自社サービスに採用している会社さんなどはもっと高い所まで極めているでしょうが、実システムでの開発・稼働に耐えうるシンプルめのWebアプリケーションフレームワークを仕事でひとつ自作したころまで行ったので、十分かなと思います。

 こういう自作は車輪の再発明はイカンという意見もあれば、勉強になるからGoodという意見もありますね。まあコンテキストによるというのが答えですが、題材でよく見かけるのはToDo管理アプリ、RSSリーダーTwitterクライアント、簡単なマスタメンテ系システムなどでしょうか。自分の場合は構築を通してPHPでのWebアプリ開発のコツや中の仕組み、様々な罠もよく理解できたので役に立ちました。

 初心者向けのPHP入門本もパラパラ見てみたのですが、自分のスキルを考えると最初からもう本格的なやつでいいやと考え、通読したのはちょい古めですが約束のこの本。

パーフェクトPHP (PERFECT SERIES 3)

パーフェクトPHP (PERFECT SERIES 3)

 リファレンスには評価の高い下の本を揃えました。でも実際のコーディングの場だともうググる方が多かったですね。

PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)

PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)

 セキュリティ対策は有名な下の本。逆説的ですがPHPはちゃんと書かないとけっこう危ないんだなというのがよく分かりました。

 バックではMySQL(正確にはMariaDB)が動いてたので体系的に把握しなおそうと読んだのが下の本。テーブルやカラムごとに文字コードを指定できたりOracle DBよりずっときめ細やかなところもあれば、えっという不思議なところもあり、面白いですね。僕がOracle Masterの勉強をした頃はまだ商用Oracle全盛時代だったのですが、今はもう規模の小さいシステムだとフリーのもので十分になりましたね。

MySQL徹底入門 第3版 ?5.5新機能対応?

MySQL徹底入門 第3版 ?5.5新機能対応?

 PHP自体は元から習得しやすい言語なので、オブジェクト指向Java畑で育った自分には学習は余裕でした。こんなに簡単に書けちゃうのか!とかHttpServletRequestとかなしでこんなに簡単にWebアプリとして動いちゃうのか! とか驚くことしきり。
 一方で、PHPはよくdisられやすい言語ですが確かにその気持ちもよく分かりました。命名法や引数の並び順がイマイチ統一されてない組み込み関数、常に数値を返すと見せかけてfalseを返すこともある不思議な関数とか、引数違い同名メソッドのオーバーロードができないとか、MySQLに繋げるときのセキュリティ系の罠の数々……確かに危ないシステムや中身のコードがアレなシステムも作れて動いちゃう訳だなあと納得しました。

 まあ言語の洗練具合ではRubyPythonには並べないし、今後主流になるかというとそうでもないですが、めんどくさい哲学のない言語、ぱっと作る時に役立つ言語、CMS系との親和性を踏まえ、今後も根強く使われていくのではないでしょうか。
 僕が仕事で作ったフレームワークもその後別の案件で再度出番があり、その後も出番が出てきそうなところなのでPHP界隈は引き続きウォッチしていこうと思います。

 ちなみに仕事で使ったときはエディタは、仕事のメインがJava系の人が多かったのでXAMPPで付いてくるEclise+PDTプラグインを基本。最近話題のVisual Studio Codeも比較検討したのですが、コード補完系がEclise+PDTの方が若干上に見えたので結局VS Codeは2番手にしました。
 エディタがらみで年末に面白かったのはこの記事。

job-draft.jp

 iOS/Android/Kotlinが分けられてないのとJavaがあるのにEclipseはどこに行ったんじゃいというのはありますが(転職ドラフトだからSI系の人が少ないのかな)、なかなか面白い結果ですね。イケてるすーぱーエンジニアのシンボルとして約束のVimが圧勝。ちなみに僕はVim使えないし周囲に使ってる人を見たことがないですw
 前はプログラミングを本格的にやるのでひとつ汎用的なイケてるエディタを……というとSublimeAtomかがよく比較されてましたが、結局Atomの勝利。そしてVSCodeもかなり伸びてるのが注目。Microsoftもだいぶユーザ寄りになって頑張ってますね。
 この集計結果でもPHPを書く際にVSCodeの比率がだいぶ増えてます。確かに見た目は超かっこよくてハッカー気分になれるし動作もかなり速いので、学習目的でPHPを書く際にもオススメです。
 そして気になるのが往年の古いエディタ。やばいわサクラエディタ秀丸は家でも会社でもテキスト書くときにまだ使ってるわ……オデもヤングな感じにならないと……

Rubyの基礎を学びました

 PHPはすいすいマスターしちゃったので、そうだこの流れで日本のイケてるエンジニア、キラキラ輝いてるWeb系企業や意識の高い人やスタバでマックでカタタタターンしてる人がみな旗印にしている(推定)、メイド・イン・ジャパンでMatz大先生印のこの言語も!……と年明けごろ自発的に学習を始めたのがRuby。最初は電子書籍

たのしいRuby 第5版

たのしいRuby 第5版

のサンプルも見たのですが、自分のレベルなら最初から本格的な本でいいやと判断し、

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRubyをがっつり読みました。最近は改訂2版が出ていますね。

iwasiman.hatenablog.com

その後は約束のRailsは山田祥寛さんの本で。この本はしっかり書いてあってお勧めです。

iwasiman.hatenablog.com

 まあ元からオブジェクト指向の設計はしているのですが半分復習、Rubyでの流儀を知る上でもこの設計の本も読んでみました。
 実際のコードはネットのチュートリアルを元にローカル上で簡単なコード、paizaが無料セールしてた時のRails入門などなど。
 Rubyについては仕事で出てくる機会が今の所とりあえずなさそうなので、実際にRailsで動くものをがっつり作るまではやらずにその前で留めているのですが、とっかかりの部分はだいたい押さえられたかなと思っています。

 実際にコードを書いてみた時の感想・驚きはPHP以上でした。オープンクラスとかダックタイピングとかあのへんの特徴よりももっと基本的なところでも、ドットの連続でこんな風に書けちゃうんか、.empty?とかハテナつきでメソッドになるのか、行末セミコロンもいらないし()も省略できるしなんかSUGEEE!! Javaと全然違う!! となりました。確かに英語の記述がそのままコードになる感じ、自分の思考がそのままコードになっていくような錯覚も感じるんですよね。

 冷静に眺めるとプログラム入門サイトや転職サイトではRailsが何でもできる万能のフレームワークであるかのように必要以上に喧伝されている節もあるし、熱狂的な信者寄りの意見も飛び交っていたりもします。
 とはいえ実際にRubyで人生が変わったという人も多いでしょうし、勉強会などでもよく見かけます。プログラミングに取り組んだり物を作ったりするモチベーションの中心、気持ち的なエモーションの中核に常にRubyRailsを持ってそうな方もよく見かけます。コミュニティも活発ですし、こういうエモいところも含めてRubyの魅力なのではないでしょうか。

 Ruby関連で最近話題になったところというと、かのチェリ―本、『プロを目指す人のためのRuby入門』が出たことなど。東京新宿の紀伊国屋書店にも平積みされていました。

blog.jnito.com

 著者の伊藤淳一さんは時々ブログやQiitaなどで見かけて実際凄い人なんだなと思うし、よく拝見するとキャリアの最初がSI企業から始まっていて勝手に親近感を覚えるのですが(笑)、この本ネットでもかなり評判いいですね。2018年に空いたら文法の復習も兼ねてちょっと読んでみようかなと思いました。

Pythonを学びました

 2017年、AIや機械学習への世間の注目もあってぶっちぎりで話題になったPython。最近落ち着いた感じですが年間を通して本もかなり出ましたね。
 PHPも軽くマスターしてRubyも大体分かったしこの流れでスクリプト言語完全制覇を……!ということで取り組んだPython。ネットで色々調べたり本を読んだりチュートリアルをやった過程は幾つかブログ記事にしたのですが、ちょうどブームだったこともあり、多くのアクセス・スター・ブクマまで頂きました。ありがとうございます。

iwasiman.hatenablog.com

 こちらで約束のpaizaやProgateで入門部分を学び、じっくりやるならPyQが良いと判断。

iwasiman.hatenablog.com

 夏休みを利用してPyQで学んだのですが時期的にフィットしたこともありアクセス多数、運営元のビープラウド社さんからも反応頂きました。

iwasiman.hatenablog.com

 本での学習としてはやっぱり言語経験者にはみんPy4版。Python道と戦車道が学べてオヌヌメです。

iwasiman.hatenablog.com

 Python周りのツールやキーワードは、プロフェッショナルプログラミングでだいたい網羅できます。

iwasiman.hatenablog.com

 よりビギナー向けに最新の基本情報を網羅、スクレイピングやPyData、Webアプリの話はこのファーストブックで。

 実際にコードを書いてみた時の感触はRubyとはまた違う新鮮さを感じました。スクリプト系ならではの簡単さに驚くこともあり、Rubyと似てるところもあれば違うところもあり、Linux同梱で教育で使われることもありLinuxコマンドぽいところ、Perlぽいところ、アカデミックなところもあります。文字を進んで省略するあたりもLinux系の文化に近いですね。((()))のような連続カッコがもう絶滅してるあたりもなるほどなーと思うし、文字列の操作やCSVの読み込みがえらく簡単に済むのも驚きです。
 あとプログラミング全般でif文やwhile文やfor文など基本の制御構造でコードのひとかたまりができると、偏差値みたいな左右対称の山の形のグラフを右90度に倒したようなイメージが自分の中であるのですが、Pythonを書いてると {} で囲わないのでこの山が半分で切れるような感覚があります。このインデントの構造化のルールは面白いですね。

 Python関連で年の暮れに話題になったのは、あのExcelに今後Pythonが乗るかもしれないというアンケートのニュース。

forest.watch.impress.co.jp qiita.com

 ノンプログラマーの人がよくやってたり、自分的には仕事の世界で手製の進捗管理Excelとか集計機能付きExcelの中によく見る VBAマクロ。もう変化の止まって久しい言語ですが、ここにPythonが入ってきたらいろんなことが簡単にできて楽しそうですね。ますますPythonの勢いが増しそうです。

他のフレームワーク系も押さえました

 PHPは仕事用に自作したりの他にも、今後出てくるかもしれないので最近海外でも勢いのあるLaravelは本でも押さえておきました。

PHPフレームワーク Laravel入門

PHPフレームワーク Laravel入門

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)

 実物のアプリを作るまでは至ってないのですが機会があったら触ってみたいですね。

 変化の激しいフロントエンド界隈も知っておかねばとフルスタックで有名なAngularもかじってみました。

iwasiman.hatenablog.com

 しかしフルスタックといいつつAngularがカバーするのはクライアントサイドだけなのでAPIの受け側はサーバで実装が必要だし、とするとチェック処理やロジックやDBアクセス部分はこれまでのサーバサイドWebアプリケーションと同じように必要になるはずだし、クライアント/サーバーの実装箇所の比重が変わっただけで二度手間にならないか?という初心者の疑問も感じます。まだまだ調べないとフロントエンドは深そうです。

アーキテクチャ・設計系の本も押さえました

 一応アーキテクトと名乗っていい資格も持ってますので、このへんを補強する本も押さえました。

iwasiman.hatenablog.com iwasiman.hatenablog.com iwasiman.hatenablog.com iwasiman.hatenablog.com iwasiman.hatenablog.com iwasiman.hatenablog.com

マイクロサービスアーキテクチャ

マイクロサービスアーキテクチャ

 あとは設計系でよく聞くキーワードというとDDD(ドメイン駆動開発)。

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

 実はこのエリック・エヴァンス本は電子書籍のセールで買ったきり放置していたので、いつかチャレンジせねばと思っています。

ほかにもいろいろ読みました

 技術書などなどは前から時々読んでいたのですが、一般的に名著と言われるようなものでも未読のものがぽろぽろあるので、時々感想を残したりしつつ進めました。

iwasiman.hatenablog.com iwasiman.hatenablog.com iwasiman.hatenablog.com iwasiman.hatenablog.com iwasiman.hatenablog.com iwasiman.hatenablog.com iwasiman.hatenablog.com

 移動時間を資格試験対策に費やしていた一時期の頃に比べるとだいぶ時間を使えるようになったので、本を読んだりするだけでもだいぶ自分の知見は広がったと感じています。

 2018年も時々更新していこうと思いますのでよろしくお願いします。