taisablog

taisa's engineer blog

20160628103203

投稿日:

-

執筆者:


comment

Your email address will not be published.

関連記事

node-nightlyを使ってwebpackをデバッグする

webpackに限らずだけどnode-nightlyを使うと簡単にデバッグすることができる Debugging When contributing to the core repo, writing a loader/plugin, or even just working on complex project, debugging tools can be central to your workflow. Whether the problem is slow performance on a large project or an unhelpful traceback, the following utilities can make figuring it out less painful. node-nightlyをインストールする インストール後一度初期化を行う npm i -g node-nightly // 初期化 node-nightly webpackの実行環境をつくる デバッグする為にwebpackの実行環境をつくる npm initしてwebpackをディレクトリ配下にインストールする npm init npm i -D webpack //バージョンは4.12.1 npx webpack –version 4.12.1 webpack-cliをインストールする。ここではグローバルインストールとしている。 npm i -g webpack-cli //バージョンは3.0.8 webpack-cli –version 3.0.8 webpack.[prod].jsをコマンドラインから作成する webpack-cli init 以下のように聞かれるので好みの設定をする(今回はデフォルトを利用) ℹ INFO For more information and a detailed description of each question, have …

Rust をはじめてみよう!

Rust をはじめてみよう!ということで Rust をはじめてみました。 Rust ってなに? Rust言語は速度、並行性、安全性を言語仕様として保証するC言語、C++に代わるシステムプログラミング(英語版)に適したプログラミング言語を目指している[4]。2006年の開発初期はグレイドン・ホアレの個人プロジェクトだったが、2009年にMozillaが開発に関わり始めてMozilla Researchの公式プロジェクトとなった 参考 : Rust (プログラミング言語) – Wikipedia また、公式ドキュメントが充実しているのでそちらをみれば大体分かるようになっています。 特徴 ゼロコスト抽象化 ムーブセマンティクス 保証されたメモリ安全性 データ競合のないスレッド トレイトによるジェネリクス パターンマッチング 型推論 最小限のランタイム 効率的なCバインディング インストール rustup を使ってインストールします。 $ curl https://sh.rustup.rs -sSf | sh 実行すると以下のように言われるので設定を反映させます。 To get started you need Cargo’s bin directory ($HOME/.cargo/bin) in your PATH environment variable. Next time you log in this will be done automatically. To configure your current shell run source $HOME/.cargo/env $ cargo command not found: cargo $ source $HOME/.cargo/env $ cargo –version cargo 1.29.0 (524a578d7 2018-08-05) rustc というのコンパイラもインストールされます。 $ rustc –version rustc 1.29.1 (b801ae664 2018-09-20 rustc を使って Hello, World! まずは rustc を使って Hello, …

PHPUnitの使い方を仕組みから理解する

ここ数年仕事ではPHPを使って開発をしていますが、最近品質について考える機会が増えたこともあり、これを機にPHPUnitと周辺のモジュールの仕組みを理解してより楽にテストができるようにしたいと思います。 PHPUnitは? Sebastian Bergmann Created PHPUnit. Co-Founded thePHP.cc. Helps PHP developers build better software. PHPUnitの作者は、Sebastian Bergmannという方でthePHP.ccのファウンダーのようです。関連情報は以下にて確認してみてください。 TwitterアカウントPHPUnit GithubPHPUnitマニュアル PHPUnitの構成 PHPUnitは以下のような構成になっています。 phpunit php-code-coverage php-file-iterator php-text-template php-timer php-token-stream phpunit phpunit-mock-objects これらはGitHub上ではそれぞれ別々のリポジトリに分かれていますが、phpunitが本体でそれ以外はデフォルトの関連ライブラリという位置づけになるかと思います。 PHPUnitのsrc構成 モックオブジェクトなどを除いたphpunitだけのパッケージとクラス構成を見てみるとこんな感じになります。 ├── Exception.php ├── Extensions │   ├── GroupTestSuite.php │   ├── PhptTestCase.php │   ├── PhptTestSuite.php │   ├── RepeatedTest.php │   ├── TestDecorator.php │   └── TicketListener.php ├── ForwardCompatibility │   └── TestCase.php ├── Framework │   ├── Assert │   │   └── Functions.php │   ├── Assert.php │   ├── AssertionFailedError.php │   ├── BaseTestListener.php │   ├── CodeCoverageException.php │   ├── Constraint │   │   ├── And.php │   │   ├── ArrayHasKey.php │   │   ├── ArraySubset.php │   │   ├── Attribute.php │   │   …

no image

2017年の振り返り

2017年も残りわずかとなったので年を越してしまう前に振り返る。結論から言うと今年は近年稀に見るいい年になった。というのも今年立てた目標や中長期的に立てていた目標を達成することができたから。今年立てた目標はこちら。これらの内容について簡単に振り返る。 2017年の抱負 2017年になって1Qが終わろうとしているけど、年末に考えた2017年の抱負を書こうと思う。 2017年の抱負 いろんなことはできないので3つ+サブ目標で考えた。 生産性 ビックデータ ビジネス・インテリジェンス サブ目標 フロントエンド 英語 生産性 これまでも開発の生産性を意識した活動をしてきたが、全員の開発効率アップ、品質アップのような守備的な活動が多かった。けど今年はスクラム体制にして攻撃的な面も加えていきたいと思う。 去年までの振り返り 去年までは2人1組のような小さなチームで開発し、できたらリリースするというサイクルで開発していたが、以下の問題が細かく積み重なってきていた。(サービスの規模がそういった状況に陥る状況にまで成長したとも言える。) マネージャーの管理コストが高い 要件定義して開発に仕事を振る側の負担が大きい 開発者が指示待ちになる 開発した機能が属人的になる 開発メンバーが他のメンバーが何をしているか把握できない(チーム感がない) 開発・営業・運用で足並みを揃えるのが難しい これらの問題を一気に解決する為に2017年からはスクラム体制で開発を進めることした。 スクラムのチーム構成 最初のスクラムチームの構成は以下の7人体制 プロダクトオーナー スクラムマスター(自分) 開発チーム デザイナー兼コーダー 中堅エンジニア 2~3年目のベトナムメンバー(2人) 新卒エンジニア スクラムを始めるあたり読んだ資料と書籍 Wikipedia まず最初に見たのがWikipedia。スクラム自体はある程度決まった型があるので、ここを見るだけでも大体の流れを確認することができた。また、スクラムガイドがリンクされているので合わせて読んだ(こちらも17ページ程)。 SCRUM BOOT CAMP THE BOOK 次に読んだのがこちら この本はスクラムについての概要はわかったけど実際どんな風に進めたらよいかが分からないという方におすすめ。実際の流れを漫画を交えて説明してるので読みやすいし一連のスクラムの流れがわかる。個人的にはスクラムガイドとこの本を読めばスクラムを開始できると思う。 スクラム実践入門 他の書籍も一応見ておこうと思って呼んだのがこちら 生産性 今年の大きな目標の柱として、生産性というのをあげていた。これまでも意識していたことではあるが今年は具体的にスクラムという取り組みを取り入れて実践した。生産性を意識する背景は、主に人口減少・人手不足などがある。とにかく時間をかけて仕事すれば結果がついてくるという時代ではなくなっている今、あたらめて生産性を意識して仕事することにした。結果的にはスクラムマスターとして約1年間スクラム開発をし、一定の成果を出すことができたと思う。スクラムがどんなものか、スクラムを導入するとどんな結果が得られるかが把握できたのでこれからに生かせる経験をすることができた。 ビッグデータ ビッグデータに関する知見はほぼ皆無に等しかったが、今年はAWSを利用してビッグデータに関するサービスをやろうと考えていた。そんな折ちょうどその文脈で新規サービスを立ち上げることになり約5ヶ月位かけてスクラム体制で開発をした。ビッグデータに関しては、AWSサミットに参加したことでどのようなアーキテクチャにすればよいかが考えられたのが大きかった。具体的にはデータレイクという手法を取り入れた。サービスについてもスクラム体制がなんとか機能してスケジュールを大きくはずすことはなかった。実際ビッグデータに関してはデータがたくさんたまるというところまではいけなかったが、それでも1年前にはまったくなかった経験と知見を得ることができた。 ビジネス・インテリジェンス ビジネス・インテリジェンスに関しては、ビッグデータとほぼ同様の文脈なので特記することはないが、ただビッグデータを扱うだけでなくしっかり示唆を出せるものをつくることができた。ただ、機械学習やデータサイエンスといったことを取り入れるところまでは至らなかったのでこれらは来年の主軸の目標にする。 フロントエンド フロントエンドは、今年ようやく本格的にモダンな技術を取り入れることを決意してチーム一丸となって脱jQueryを果たした。業務外でVueJS、React、Angularの勉強会などを行い最終的にはVueJSを採用した。VueJSでやったことをすべてjQueryでやってたらめっちゃ大変な上にサービスの更新も大変だっただろうと思う。本当に導入できてよかった。 英語 英語までは絶対手が回らないだろうと思ってサブ目標にしていたが、案の定英語は他と比べると一番手をつけることができなかった。ただ、2017年の目標は以下の2つだったのでこれについてはしっかり達成することができた。そして2018年は2017年よりも時間を割いて、英語を少しでも楽に使えるようにしたいと考えている。 英語の勉強をするというよりは英語を使う環境に身をおける状態にする 英語の技術系podcastを聞く まとめ ここに書いていない中長期的に立てていた目標も今年で達成することができたので総じて2017年は良い年になった。無理に目標を立てすぎないというのがよかったのだと思う。自分の体調やキャパを考えるとできることはどうしても限られてしまうのでその中でできることを来年も考えてやっていこうと思う。

「slideship Tech Dive vol.1 フロントエンド特集」でLTしてきた

connpassリンク slideship Tech Dive v1.0 #React / ReactVR / #VueJs Webフロントエンド特集 「slideship Tech Dive v1.0 #React / ReactVR / #VueJs Webフロントエンド特集」でLTしてきた。タイムテーブルは、メインセッションがVue、ReactVR、React SPAになっていてその後LT4本で親睦会という構成。自分は「フロントエンド速習コース」というタイトルでLTをさせてもらった。 slideshipって何? markdownで手軽にスライドがつくれちゃうサービスでコードシンタックスハイライトを自動でやってくれたりPDFに変換してくれたりする。今回LTするにあたって前日までラフなマークダウン文章しかなかったけど早くスライド作らなきゃっていう焦りがなかったので気分的に非常に楽だった。 slideship.com トークスライド (すべてslideshipでできてる) Vue.js 効果的だった事例から見る利点と特徴 橋本 安司さん @yellow844 これが大事↓ 「単一ファイルコンポーネントで『テンプレート、ロジック、スタイル』の関心を分離させる記述になっており、ファイル分割してより疎な状態に出来る。更にテンプレートやスタイルのテンプレート言語・CSSプリプロセッサを選択できる。」 ReactVR でつくるサーバ連動型インタラクティブ VR 原 一浩さん @kara_d 「s7は爆発の危険がある」に笑った。 React SPA における OGP への挑戦 池内 孝啓 @iktakahiro サーバサイドレンダリングはしないぞ!っていうこだわりが感じられた LT PATENTS問題とfast-asyncについて 石井 直矢さん @kaidempa OSSのライセンスのお話 フロントエンド速習コース @taisa831 3ヶ月でフロントエンドを一気にキャッチアップした時にやったことを紹介した。 書籍プレゼント企画 サーバーレスシングルページアプリケーション ―S3、AWS Lambda、API Gateway、DynamoDB、Cognitoで構築するスケーラブルなWebサービス こちらの書籍の監訳者の吉田 真吾さん @yoshidashingo じゃんけん大会で書籍はゲットできなかったけどこの書籍はオライリーの電子版で購入した。タイトル見て発売したら速攻買おうと思ってたけどReal World Httpに先に手出してたので買えてなかった。 RxJSコトハジメ @massa142 RxJS良さそう。マーブルテスト楽しそう。 勉強会風景 まとめ ちょうどフロントエンドのキャッチアップをしていたのでとても良い機会になった。トーク内容もいろいろあってとても楽しめ。次回も楽しみ。