はてなの金次郎

Pythonエンジニアの奮闘記。Python, Django, Gitlab, Docker, AWS, k8s...

「情熱プログラマー」から学んだこと。

情熱プログラマー ソフトウェア開発者の幸せな生き方

情熱プログラマー ソフトウェア開発者の幸せな生き方

概要

要約

ソフトウェア開発におけるキャリアで根本的に成功を収めるための戦略を提示する

市場の選び方、市場価値の高め方、自分のスキルへの投資方法、周囲へのアピール方法など自分のキャリアに満足感と幸福感を得るための方法を紹介する。

面白かった章とその理由

第4章 マーケティング... スーツ族だけのものじゃない

ビジネスの目的は利益を上げることだ。会社で抜きん出るには、利益を上げるためのビジネスプランに自分がいかに
適合しているかを理解しなきゃならない。
ビジネスの分野における経験は、自分のレパートリーのなかでも重要な部分だと考えるべきだ。
忘れちゃいけない。君の給料はビジネスから生み出されるんだ。
自分はプログラマだっていうアイデンティティにこだわるな。

エンジニアにも「ビジネス」という観点が必要なことを学べる章です。

ビジネス視点で仕事ができるエンジニアは実際にはなかなかいないだろうと感じました。

一方で市場的にはそういう考えを持つエンジニアは需要が高いと思うので、意識的に興味を持ってビジネスサイドのことも勉強したいです。

有り余るほどの教育を受けながら期待はずれな働きしかできない同僚と、僕との違い。それは情熱だ。
熱中できるかどうか。

技術に熱中できる + ビジネスへの理解がある = スーパーエンジニア

この方程式が成り立つかどうかはわかりませんが(笑) まずは、今自分がいるO2O業界の理解度からあげる努力をしてみようと思います。

仕事に活かせそうな知識、活かせそうな状況と活かし方

レポート作成方法

@ledsun blog「新人エンジニアにレポートを書かせて技術書の読み方を伝える。」という記事で紹介されているレポート作成方法を使わせていただきました。

ブクログ始めました

フォローお待ちしてます。
https://booklog.jp/users/jumpyoshi

Django管理画面のカスタマイズ方法【デザイン】

はじめに

Django管理画面のデザイン変更方法を調べてみると3つほど確認できました。

1. style属性を利用する

Django管理画面のテンプレートにHTMLのstyleタグやstyle属性を追加します。

※ 参考:【Django入門】adminサイトの作り方からカスタマイズまで!

少ない変更で簡単にデザインを変更することができますが、この方法は望ましくありません。文書構造とデザインを分離するために、XHTML1.1ではstyle属性は非推奨とされているためです。style属性は将来的に廃止される可能性もあるので利用するのは避けた方が良さそうです。

※ 参考:style属性

2. django/djangocssをオーバーライドする

Django管理画面のスタイルシートをオーバーライドします。

任意のディレクトリにオーバーライドするcssファイルを設置します。このとき、cssディレクトリ全てをコピーしても良いですし、オーバーライドしたいファイルのみコピーしてきても良いです。

※ 参考:[Python] Django 管理サイトのカスタマイズ(表示面)

こちらは管理画面のデザインを変更する方法として最も一般的であると思いますが、できれば避けたい方法です。Djangoは日々盛んにアップデートされているのでcssも変更されないとはいえません。実際、GitHubHistoryを確認してみると数ヶ月単位ではありますが、cssもアップデートされています。もしコピーしてきたものとDjangoの本体で差分が発生した場合、追従する必要性が出てくるため、保守が面倒なことになりそうです。

3. Media classを利用する

admin.py をカスタマイズする方法です。変更したいデザインがモデル固有のものであれば、以下のようにcssjavascriptを追加することで、その内容を適用することができます。

class MyModelAdmin(admin.ModelAdmin):
    class Media:
      js = ('admin/css/myadmin.js',)
      css = {
        'all': ('admin/css/myadmin.css')
      }

こちらの方法は、Django本体のcssをオーバーライドするわけではないのでメンテナンスが楽です。変更したいデザインがモデル固有のものであれば積極的に採用したい方法です。

※ 参考: Overriding admin css in django

Meetup in Tokyo #39 Testing & Engineering に参加してきました

はじめに

line.connpass.com

「Meetup in Tokyo #39 Testing & Engineering」に参加してきました。

普段サーバーサイドエンジニアとして働いており、テストに関してはCIでユニットテストを走らせるということくらいしかしていませんでしたが、ユニットテスト以外の自動化方法や、組織全体がテストに取り組む意義を理解し戦略的にテストを行うことの重要性を今回のMeetupで勉強させていただきました。

LINEブログが更新されたので転載してさせていただきます。

engineering.linecorp.com

イマドキのソフトウェアのテストやQAの考え方

www.slideshare.net

感想

具体的なアンチパターン事例や数々の解決手法、戦略を知ることができました。世の中には本当に色々な会社があるのですね。(白目)

1時間には収まりきらないボリュームだったのでもっと聞きたかったです。松尾さん(@Kazu_cocoa)へのただならぬ愛を感じました。

自分なりまとめ

品質保証やテストは組織を賢くするためにあらゆることをする最高にやりがいのあるクリエイティブな仕事である

労働のスケールアップを保証する活動は概ね失敗するため、QAの本質を理解し知のスケールアップを保証する活動を組織的に行うことが重要である。

無理ゲーに重課金するのも、ネットで検索した新手法を導入するのも間違い。何かやればやった分だけ成功するかもしれないが根付かない。

AQUA的観点でPJごとに戦略を立てよう。

勉強すること

LINEのUI自動テスト事例

www.slideshare.net

感想

LINE FukuokaのE2E UIテストの具体的な実践内容を知ることができました。「地味なことを地道にやることが大切」「開発チームが仕事をしやすくならなければ意味がない」という大園さんの発言がとても印象的で納得感がありました。

「Ayachan」というレポートツールを作成されたとのことでしたが、既存ツールのどこがマッチングしなくてツール作成に至ったかという話をもう少し詳しく聞きたかったですね。

大園さんも伊藤さんも「利益」というワードが出ていてLINEは素晴らしいチームだなと感じました。

勉強すること

An Agile Way As an SET at LINE

www.slideshare.net

感想

伊藤さんの実行力とそれを受け入れるLINEの柔軟性やスピード感を感じざるを得ないプレゼンでした。また、SETにはテスト自動化やアジャイルに関する圧倒的知識・経験と、社内調整力が求められることを知り、すごくやりがいがある仕事だと思いました。

「ビジネスに貢献する」ということを常に念頭に起き続けることは、SETだけではなくサーバーサイドエンジニアやインフラエンジニア、全ての職種に言えることであると感じたので、それについて考え続けていきたいですね。

技術的な知識欲を刺激して、デベロッパーが自発的にテストを書くようになったというお話は感動しました。「インパクトを与える」という観点を勉強させていただきました。

自分なりのまとめ

アジャイルの知識・経験を活用し、ビジネスに貢献しよう!

ビジネスの3KPIs「売上・利益・従業員満足度」を判断基準として、課題の解決策を提示し、マネージャーに継続的合意形成をとる。合意形成をしやすくするために、定期的な(動作する)成果物を提出する。

勉強すること

xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))

xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))

おわりに

帰りに「LINE_ENGINEERRING HAND-BOOK」を貰ってきました。

LINEのエンジニアになるということは、
技術力の高い仲間と共に働くこと、
プロジェクトや機能に対し
オーナーシップを持って世界中のユーザーに
日々素敵な価値を届けることを意味します。

LINEかっこええ。