2019年3月12日火曜日

モビングを言語化する -「モブプログラミング・ベストプラクティス」を読んで


重要なことを先に書くと


モブがやりたい・広めたいなら「モブプログラミング・ベストプラクティス」を読もう。


きっかけ


モブプログラミングを初めてやったのは2018年の5月ごろだったらしい。その時の記憶はもうあまりないけど、けん玉を一生懸命やっている記事だけは残っていました。

あれからもう3回、TDDyyX(カイ)に行ってモブプロとTDDの筋トレを行っています。

あまりに楽しいので、社内で有志を集めてモブプロ会を行ってみました(たぶん今後ブログにポストします)。社内の研修でも参加者をそそのかして行ったこともあります。

ただ、残念ながら僕は仕事でモブプロができていません。モブプロで解決できる問題は溜まっているはずですが、実際にやるにはカタのインストールに時間がかかるし、そのコストをペイできるか分からないからです。

今からどうやって職場で広めていこうか、という時に出会った本が「モブプログラミング・ベストプラクティス」です。

読後感


僕はモブプロを他人に説明する時にうまく話せたことがありません。

なぜモブなのか、なぜ心理的安全性が重要なのか、心理的安全性とは何か、効率的なのか。よく質問にあがりますが、自分の中で言語化できていないためよく話せていませんでした。

そういった疑問を解決し言語化してくれているのがこの本です。
僕はこの本を脇に置きながら友人たちとモブの実験をしていこうと思います。

P.S.


そういえば、この本には「心理的安全性」という言葉はでていなかったような...。
どこが出典なんだろう?


2018年12月21日金曜日

新天地で「キラッとプリ☆チャン」がやりたい人向けのサービスを作った。

はじめに


あきおです。
琉大情報工学科(知能情報コース) Advent Calendar 2018 - 21日目担当です。

今回は、
新天地で「キラッとプリ☆チャン」をやりたい人向けのサービス、名付けて

ぷれいぷり!


をリリースしましたので、ご紹介します。
https://play-puri.firebaseapp.com/play_cite.html

「キラッとプリ☆チャン」とは


まずは公式を全部よく見てください。

見ました?

大丈夫。小さい女の子向けだけど、大人でもできるから。全国にたくさん筐体があって、ゲームセンターに行けば、みんなプリチャンアイドルになれるから。

で、見ました?

どうやって筐体のある店を探すのか


これが課題で、公式にも一応あります。
しかし、店名と住所だけしかない。けど、いちいち店名や住所をコピペするのは面倒。

ということで、今回はFirebaseで簡単にサービスを作ってみることにしました

サービスの仕組み


FirebaseにはGoogleが提供するアプリケーション向けインフラツールです。
僕には説明することができないぐらい、たくさんの機能があります。

この中からHosting機能とFirebase Realtime Database機能を使いました。

Hosting機能では、静的Web(HTML、CSS、JavaScript)をサポートしていて、専用ツールを使って簡単にサイトをデプロイすることができます。
つまり、Webサイトが簡単に作れるということです。

Firebase Realtime Database機能では、NoSQLで構造データベースを組むことができます。実態はJSON形式のため、手元にJSONデータを作ってしまえば簡単にインポートできます。このDBはWebサイトからJSでデータを取得することができます。
つまり、JSONっぽいDBをJSで操れるということです。

おわりに

今回は、新天地でプリチャンをやりたい人向けのサービス「ぷれいぷり!」をリリースしました。現在は神奈川県だけですが、全国版に向けて拡大する予定です。
また、Firebaseの説明はしませんでした。またどこかでやるかもしれません。

明日はとーばるゆーくんです。お楽しみに。





2018年12月19日水曜日

はじめてphpcon2018に行ってきた

はじめに


あきおです。
琉大情報工学科(知能情報コース) Advent Calendar 2018 - 19日目担当です。
今日は「はじめてphp conference 2018に行ってきた」話をします。

きっかけ


業務でphpに関わっていたので、トレンドや言語を扱っている人たちの雰囲気に興味を持ちました。カンファレンスでしか聞けない話もありますし、しかも無料(重要)。

ちなみに、phpconはLIVEで見ることができます録画も配信されていますので、この記事を読んで興味を持ったら、ぜひ見てください。
とくに徳丸浩さんの講演は必聴です。

カンファレンスは学生のときに行ったYAPC::Okinawa以来、2回目ですね。

聞いてきた講演と1行感想


スライドはこちらの記事がよくまとめられていました。
僕が聞いてきたのは下の4つ+LT。1行で感想を述べます。

  • Cygamesにおける長期運用タイトルのこれまでとこれから
    • チームへの情報共有は大切。計測グラフ化は人を納得させやすい。
  • 継続的なバージョンアップのためのテスト戦略
    • dockerで安全リリース。テストしない・通知がない・マージ基準がないと保守しなくなる
  • ユニットテストが入れられないレガシーなソースでCIが回せるようになった
    • レガシーはgithub・gitlabのようなホスティングから。そこから文化が変わる。
  • 安全なWebアプリケーションの作り方2018
    • 法律に無関心では大変なことに。xmlよりもjsonを使え。大切な情報は持つな。
  • LT
    • 20代が考えるエンジニアキャリア論
      • 就職や転職による環境変化をどう乗り越えるか。
    • 発表駆動開発を1年間続けてきて
      • 発表は新しい気づきをもたらす。
    • 「クソコード」言い換えの御提案
      • 遺憾(いかん)コード
    • ハニーポットを植えて分析した
      • まず隠しファイルから攻められる。
    • テストコードはいいぞ
      • まずペアプロから始めよう。@t_wadaの例のアレ*1は圧が強い。
    • トウダン・ジャーニー
      • 採用活動、発表練習、ふりかえり、フィードバック。重要。
    • PHP筋肉をつける
      • 車輪の再発明で筋トレ。便利な機能は作ればいい

おわりに


PHP歴は2ヶ月くらいなので、難しくて理解できない話ばかりかと思っていました。しかし、実際はそんなことはなく、丁寧に分かるような講演が多かったです。

会場にはプレゼント付きスタンプラリーや、協賛企業のサービス紹介もあり、かなり楽しめました。次回はphpcon2019。ぜひ行きたいですね。

明日の担当は、にっしーこと@dobuzoraさんです。


補遺


2019年の初めにもカンファレンスがあります。
僕が注目しているのは、


です。(が、もう満杯なので終了後のスライドを期待)
沖縄でもJava Kucheなどありますので、ぜひ飛び込んでみてください。



*1: 例のアレ

2018年12月14日金曜日

2018年で通勤中とか休憩中に聞いたり読んだりして良かったと思うものをあげてみた

のだけど、どうですかね?

はじめに


お久しぶりです。あきおです。
琉大情報工学科(知能情報コース) Advent Calendar 2018 - 14日目担当です。
OBとしての参加です。アドベントカレンダーも初参加です。よろしくお願いします。
サービスの話?なんのことだかわかりませんね。

なんでこの話を?


書くことがなかったのでいい機会なので今年の棚卸しです。また、今年から社会人になり周囲の同期を見渡すと、技術書を読んだり、podcastを聞いたり、という人がいなかったのでオススメする意味も込めています。興味があれば読んだり聞いたりしてください。
あ、何かオススメがあればコメントください。


今年は「理解できるコードを書く」こと「エンジニア職について考える」ことをメインで本を読んでいました。

リーダブルコード
今も読んでいます。処理の分解、ガード節の考え方がとても参考になりました。

リファクタリング
レガシーコードをどうしたらよくできるのか。会社に入ってから、新規にプロダクトコードを書くことが少なくなったので読んでます。あと、改善の前の計測が大切。

Javaで学ぶデザインパターン入門
デザインパターンは勉強していなかったので読んでます。アルゴリズムを覚えるみたいで楽しいです。GoFはもう古めらしく、新しいパターンもあるみたい。

すっきりわかるJava入門 実践編
研修でJavaをやっているときに役立ちました。大学2年次以来です。基礎編もありますが、一度経験しているならこっちからでいいと思います。

実践Scala入門
最近Play Frameworkに手を出していて、Scalaを使ってみたくて読んでます。歴史から描いてくれているので、経緯がわかって良いです。業務ではJavaがデファクトなので、提案して手を出せる言語といえばScalaかなという感じです。

達人プログラマー
1節ごとにある緒言、よくネタがあるなーと思いながら読んでました。

プログラマーが知るべき97のこと
業務で一息つくときに読んでます。97といいつつ100以上ある。

Joel on Software
ブログです。スタックオーバーフローの共同設立者のJoelが書いています。日本語版がありましたのでそちらを。

Martin Fowler's Bliki
ブログWikiです。リファクタリングの著者です。ちなみに誰が日本語に翻訳しているのかなと調べると角さんでした。リーダブルコードとClean Architectureの翻訳者の方です。

ソフトウェア開発者の人生マニュアル
エンジニアってどうやってスキルアップしていけばいいんだろう、と悩んでいたときに読んでいました。後半から経済の話になるのは、なんだか勉強になるような。

SCRUM BOOT CAMP THE BOOK
見積もり方やスクラムの考え方が頭を柔らかくする、気がします。業務ではスクラムやってないので...。

シス管系女子1 ~ 3
コマンドなんだっけ?ってときに読みます。かわいい。

明文術 伝わる日本語の書き方
業務の半分がドキュメントを書くことになったので読みました。辞書として使っています。

ゴブリンスレイヤー 1 ~ 5
メンタルが養えます。

NEW GAME! 1 ~ 8
メンタルを回復できます。

銀河英雄伝説 1 ~ 11
メンタルを増強できます。

プラネテス 1 ~ 4
悩みすぎたときに読む漫画。はからずも、社会風刺的になっていたり。


技術書・ビジネス書大賞というのもあります。ぜひ投票してみましょう。

podcast


Turing Complete FM
低レベル(物理層に近い)な話や与太話が多くて楽しいです。同世代のすごい人が出ていて、はえ〜ってなる。

Rebuild FM
hakさんの寿司ネタが好き。いわずもがな。

しがないラジオ
SEからフリーランスやWeb系に転職した人たちのラジオ。技術書展で買った本は今読んでます。

6 Minute English
駅から社屋まで10分くらいあるのでちょうどいい英語のラジオ。英語って話したり聞いたりしないと錆び付くので良いサビ避け。話の内容もクイズ形式で面白い。

バイリンガルニュース
時事ニュース系。日本語と英語を交互に読んでくれるので好き。ただし、日本語だけ聞いているかも。

虚構新聞ニュース
安心と信頼の虚構新聞です。本当にありがとうございました。

おわりに


なんとか今日中にまにあったはず。
ではまた来週。
明日は黒猫のことを愛してやまない@Intel0tw5727さんです。

追記 : 2018/12/17(月)
@Intel0tw5727さんの記事はこちらです。コメントありがとうございました。



2018年9月27日木曜日

$_GETと$_POSTで気づいた

業務中に気がついたんだけど


PHPファイルに対して「POST命令でクエリ文字列付きURL」を叩くと、$_POST['hoge']と$_GET['fuga']が同時に使えるらしい。

具体的に


bodyにhoge : hogehogeを含んだ

https://hogehoge.com/index.php?id=fuga&passwd=fugafuga

をPOSTでリクエストすると、POST bodyパラメータとクエリ文字列の2つが与えられているので、index.phpでは$_POST['hoge']と$_GET['id']、$_GET['passwd']が使えるということ。

今まで、POSTなら$_POSTだけ、GETなら$_GETだけと思っていたんだが、どうやら違っていたらしい。

なんで命令で使うリクエスト変数を分けなかったんだろうね?

参考




2018年8月25日土曜日

Androidアプリ開発を1ヶ月やってみたんだけどさ。

業務でAndroidアプリを作ってから1ヶ月が経ちました。
来年、新卒社員が入ってくることを見越して「こういうのあったなー。ちょっと面白かったなー。いまだに疑問だなー。」的なのをメモっときます。

Androidアプリ開発にあたり、僕のスキルは次のような感じ。
  • Java ... 大学で半年やって、忘れた。新卒研修で1週間復習+独習した。ジェネリクスとかリフレクションとかわからないところもある。
  • Androidアプリ ... 大学で2週間やって、忘れた。kotlin?なにそれ?
(以下、Androidアプリ開発のことを、特に注意しなければアプリ開発と呼びます。)

匿名クラス
こういうの。


setOnClickListenerのnewね。「え、クラスの中にクラスが書けるの!!!???」まず最初に思ったのがこれ。

普通にJavaやってたら使わないと思いますけど。コーディング規約にもダメって書いてあるし。
アプリ開発のリスナーは大体この形をとってますよね。なんでだろう。
考えてみた限りだと、たぶん、外部からアクセスが可能かどうか、かな。よくわからない。

クラスフィールド名
こういうの。


なんでmってつけるんだろう。違和感があるというか。Pythonしてるときもnumpy as npとかあったからな...。

とまあ、2つ驚きがあったんでメモでした。
なんか、もっと他に書くことありそうだけど。


最近考えているので、何かカメラアプリがつくりたいな。
ボタンアプリからかな〜?

2018年8月14日火曜日

このブログは個人の見解です。

そっと、これを貼っときます。
貼れと言われたので。

掲載内容は私自身の見解であり、必ずしも所属する企業や組織の立場、戦略、意見を代表するものではありません。


万が一、僕の掲載内容で誰かの利益を害したならご一報ください。善処しますので。