taisablog

taisa's engineer blog

20246239_1568220613251217_3050949677916877344_n

投稿日:

-

執筆者:

関連記事

no image

2017年の抱負

2017年になって1Qが終わろうとしているけど、年末に考えた2017年の抱負を書こうと思う。 2017年の抱負 いろんなことはできないので3つ+サブ目標で考えた。 生産性ビックデータビジネス・インテリジェンスサブ目標 フロントエンド 英語 生産性 これまでも開発の生産性を意識した活動をしてきたが、全員の開発効率アップ、品質アップのような守備的な活動が多かった。けど今年はスクラム体制にして攻撃的な面も加えていきたいと思う。 去年までの振り返り 去年までは2人1組のような小さなチームで開発し、できたらリリースするというサイクルで開発していたが、以下の問題が細かく積み重なってきていた。(サービスの規模がそういった状況に陥る状況にまで成長したとも言える。) マネージャーの管理コストが高い要件定義して開発に仕事を振る側の負担が大きい開発者が指示待ちになる開発した機能が属人的になる開発メンバーが他のメンバーが何をしているか把握できない(チーム感がない)開発・営業・運用で足並みを揃えるのが難しい これらの問題を一気に解決する為に2017年からはスクラム体制で開発を進めることした。 スクラムのチーム構成 最初のスクラムチームの構成は以下の7人体制 プロダクトオーナースクラムマスター(自分)開発チーム デザイナー兼コーダー 中堅エンジニア 2~3年目のベトナムメンバー(2人) 新卒エンジニア スクラムを始めるあたり読んだ資料と書籍 Wikipedia まず最初に見たのがWikipedia。スクラム自体はある程度決まった型があるので、ここを見るだけでも大体の流れを確認することができた。また、スクラムガイドがリンクされているので合わせて読んだ(こちらも17ページ程)。 SCRUM BOOT CAMP THE BOOK 次に読んだのがこちらSCRUM BOOT CAMP THE BOOKこの本はスクラムについての概要はわかったけど実際どんな風に進めたらよいかが分からないという方におすすめ。実際の流れを漫画を交えて説明してるので読みやすいし一連のスクラムの流れがわかる。個人的にはスクラムガイドとこの本を読めばスクラムを開始できると思う。 スクラム実践入門 他の書籍も一応見ておこうと思って呼んだのがこちらスクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス (WEB+DB PRESS plus)この本ではいくつかの企業の事例が紹介されている。スクラムを始めるきっかけなどが書かれているので事例を見てみたいという方には良いと思う。 Joy,Inc. ジョイ・インク 役職も部署もない全員主役のマネジメント この本は直接スクラムには関係ないけど、おもしろい取り組みをしていて、開発の生産性をあげたいという意味で参考になっておもしろかった。スクラムを始めるにあたって読んでおいてよかったなという一冊。 ビックデータ 2つ目の目標はビックデータを本格的に扱うこと。数年前にバズワードになったけど、本格的にあたり前のように活用されるのがこれからだと思う。データがたまり、インフラが整いデータを安価で扱いやすい状況になってきている。ビックデータといっても様々な文脈があるが、個人的な活動の目標としては「GoogleBigQuery」、「AWS」を触りつつ手元にあるデータをいろんな形でこねくり回せる状態にする。というのを目安に進めていく。 ビジネス・インテリジェンス 3つ目もビックデータの文脈だが、データから有効な示唆出しをすることが一つのゴールになるのでそこを見失わないようにしたい。いろいろ触って「データサイエンティスト」の雰囲気がなんとなくつかめてきた。という状態にしたい。 サブ目標 いくつもやりたいことをこなすなんてことは自分にはできない。けどサブとしてでもやりたいと思ってるのが以下の2点。 フロントエンド jQuery脱却して一気にモダン化させたい(楽に開発をしたい) 英語 英語の勉強をするというよりは英語を使う環境に身をおける状態にする英語の技術系podcastを聞く 今年の抱負のまとめ 生産性を最大化しつつデータをこねくり回せるようにするできればフロントを最適化して英語も多少はコミュニケーションがとれるようにする

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

2020年の抱負

気づけば長年PHPの環境にいましたが、昨年あらたな環境で開発できるようになったのでこれらを軸にビジネスにつなげていきたいと思います。 毎年書いていますが、自分は積んでるエンジンが小さい上に車体も故障気味なので多くのことはできないですが、できる限り工夫してやっていきます。 GolangVueJSReactTypeScriptAWSPython (Flask)執筆ブログ継続 中長期的な話 3~5年スパンで中長期的なことを考えてやりたいこと・やらないことを決めて微調整しながらコツコツやっていますが、昨年環境が変わったこともありあらためて少し考え直しました。 楽しく仕事をする 今がめちゃくちゃ楽しいのでこれを維持したいのが本音です。ビジネスが広がりつつこれを維持しつつ更によくすることに注力します。 良いプロダクト良いメンバー良い技術スタック これが自分の意識する3本柱です。どれがかけてもだめなのでこれらをどうするかを考えて行動します。 生活面 体力の衰え、太りやすさを感じる年齢にもなってきたので昨年末から下記をするようになりました。これらをスモールスタートで継続します。 腕立て・スクワット・プランクランニング家で飲みすぎない家でタバコをなるべく吸わない ブログ書くネタが沢山できて嬉しい限り。そして何より「家内安全」「健康第一」で!

Python Bottleのソースを読む 起動編

Pythonの軽量WebフレームワークBottleのソースを読む 起動編 Bottleとは Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library. Pythonの軽量Webフレームワークで、特徴はシンプルで早く、Pythonの標準ライブラリにも依存していないWebフレームワークであることとフレームワーク本体が1ファイルで構成されていることである Class Hierarchy Doxygenを使って出力した図Bottleは1ファイルながら中でそれぞれのクラス、主にServer、Templateが継承関係にあるのがわかる(コード量は4000行位)。ServerやTemplateクラスはたくさんあるが実際はその中のどれかを選択して利用する形となる 起動 Bottleの起動はrun()を呼び出す方法とコマンドラインインターフェースを使う方法が用意されている run()を使う方法 以下のように記載し起動することでサーバが立ち上がる from bottle import run, route @route(‘/’) def index(): return ‘Hello World’ run(host=’localhost’, port=8000, debug=True) コマンドラインインターフェースを使う場合 以下のコマンドで起動可能 # コントローラを指定 python -m bottle ‘package.controller’ # 説明は省略するが明示的にアプリを指定することも可能 python -m bottle ‘package.controller:app’ controller.py # runは不要 from bottle import ,route @route(‘/’) def index(): return ‘Hello World’ 起動処理を確認する コマンドラインインターフェースを使う場合 mainが2箇所あるが、これはサーバアダプダに必要なライブラリを必要としているからで、1つ目のmainでまずサーバアダプタに必要なライブラリを読み込み2つ目のmainでサーバが起動される仕組みになっている run()でサーバを起動する run()では、渡された引数の値をそれぞれ読み込んだあと最後にServerAdapterのrun()を呼び出している。Bottleでは多くのサーバをServerAdapterを継承することでサポートしており、指定されたサーバを起動するようになっている。指定しない場合はwsgirefがデフォルトで呼ばれる。また、appパラメータは特別指定しなければ、内部で自動的にdefaultが使われるので特別指定する必要はない。 サーバをロードするまで処理を追ってみる まず、Bottleでサポートしているサーバは以下のように宣言してある。 server_names = { ‘cgi’: CGIServer, ‘flup’: FlupFCGIServer, ‘wsgiref’: WSGIRefServer, ‘waitress’: WaitressServer, …

no image

平成最後にEvernoteの昔のエモい感じのメモ達を供養する

今年、持ってる本をすべてリサイクルに出した。そして今や自分の荷物はほとんどないと言っていいくらい無くなった。情報も整理したくなったのでとりあえずEvernoteに残ってるよくわからないメモ達も消してみた。すると昔悶々としてたんだな〜みたいなメモが見つかった。折角だからそんな昔のエモい感じのメモ達をさらしてから削除する。 SI会社に残らない理由 近い将来移民が大量に入ってくる その頃には課長または部長になっている程度 エンジニアとして対応できるようになってたい 求心力がない 名前だけでかくて組織が時代についていけていない 40代以上の人間がぎりぎり、50代以上の人間は定年を待つばかり 使えない派遣が集まる 会社自体に魅力がない 優秀な人材は入ってこないし出ていく 君がオヤジになる前に 一週間に一本アプリリリース モテル 家を持つリスク 結婚するリスク オヤジ化が加速する 子供にいい思いをさせることはそこまで必要か 狭い家に住んでいた時代も経験していてよいのでは? そのような体験が逆にうらやましかったこともある。 情報量 突き抜けること 保険には入らない 何十年先のことを憂う必要があるのか 気持ち悪い昔からの風習がある 昔の美徳は今の美徳ではない 英語はのりで 君がオヤジになる前に 「君がオヤジになる前に」という本を読んだ時のメモとその時に感じがことが書いてあると思われる 『今はまだ』という呪文 起業時代 今はまだ実力がないから というがその気になれば実は一週間または一ヶ月死ぬ気でやればそれなりに戦える実力がつくのではないか そういう人間に限って本を買って終了ということがほとんど 何年かすればそれなりにできる自分になっていると思い込んでいる SIer時代 同様に人材派遣をするSE業界でも、 今はまだ我慢してやってくれ。 そのうち景気が上向きになるときを待つ 今はまだ動き時でない ではいつなのか? 周囲の人たち、親 今はまだやめとけ とりあえず大手に入っておけ 『今はまだ』と『とりあえず』のダブルパンチ とりあえずといって何十年も経過していくのが目に見えている そしてかぶせるようにサラリーマンは我慢だと 戦わない人が多すぎる Noと言えない日本人ニアルイコール ただNoと言う必要があるのではなく、交渉しよう、戦おう 日本の政治も同様 いいカッコしいはやめよう どうせいいカッコするのであれば我慢はやめよう、戦う姿を見せよう 部下に迷惑がかかる さされそうになったら必死で抵抗するだろう 上司だろうが客であろうが頭が上がらない人であろうと関係ない 交渉しよう 交渉することを楽しもう 恋愛もそう 後からでは遅い、そのとき戦わなくては その為に準備している必要があるだろう また、急に戦場にたたされ先制攻撃を受けてしまったら 一旦保留して戦略を練ろう 体制を整えよう 少しだけでも有利にしよう 常に先制攻撃ができるようにしよう リスクを回避しよう 最悪の事態を避けよう アラームをあげよう 人生の命題 世界中でアプリケーションを作る 世界をアプリケーションを作りしながらまわる 超解釈 変化に対応していく対応力 対応していくしかない 変化は能力のあるひとがやるのさ 他にはないものをつくる もしくは他にあるもののコピーをつくる 無題ノート ふけとか、衰えとか、関係、かいもん、ねー! いずれのメモも平成22年〜26年くらいに書かれたメモだった。 平成最後にこれらのメモ達をここに供養します。