Gunosy Tech Blog

Gunosyの開発メンバーが知見を共有するブログです。

ねえ、OSSにcontributeするの、どんな気持ち? gunosy.fm #6 #gunosyfm

かとうです。Tシャツだけで出かけるには厳しい季節になって来ましたね。

gunosy.fm第6回は、Gunosyテックブログでおなじみのちまきんさん(@__timakin__)とサービス開発、golangへのcontribute、ブロックチェーンについて話しました。

ちまきんさんがOSSにコミットした時の気持ちや、そのために情報収集はどんなことしているか、などの話が参考になるかと思います。 また最近話題のブロックチェーンの話も必聴です。

トーク中に話題になったリンクはこちらです。

Podcastの購読はこちらからお願いします。 また、感想や話題にしてほしいことなどはTwitterなどで #gunosyfm のハッシュタグでご意見お寄せください。 次回の更新もお楽しみに!

Gunosy Tech Night #6を開催しました!

f:id:xkanex:20171002172927j:plain

こんにちは。グノシーのAndroid/iOSアプリの開発を担当している金子です。

2017年9月27日(水)に社内勉強会であるGunosy Tech Nightを開催したのでその様子をレポートします!

Gunosy Tech Nightとは?

Gunosyでは、社内の各プロダクトを開発する事業部間の技術共有とエンジニア間の交流を深めることを目的に、月に1回社内勉強会としてTech Nightを開催しています。

毎回担当となる事業部が、アーキテクチャ概要や導入してよかった技術などの発表を行います。

当日はコーヒーや軽食が出されリラックスした雰囲気で行われます。

f:id:xkanex:20171002173036j:plain

発表内容

グノシーiOS開発のあれこれ

iOS版グノシーの開発についての発表です。

CocoaPods、fastlaneといったiOS版グノシー開発で使用しているツールの紹介や、ライブコーディングとView Hierarchyを利用したデバッグのデモを行いました。 普段iOS開発に関わらないメンバーにも開発の雰囲気が伝わる発表だったと思います。

グノシーに記事が入るまでの雰囲気とその周辺

記事取り込みの仕組みと改善の歴史についての発表です。

記事取り込みの部分に関しては、普段クライアントサイドの実装を行っている際にあまり意識していませんでした。 そのため、仕組みの解説とそこに至るまでの歴史は非常に勉強になりました。 古株の社員にとっては改善の歴史は懐かしい内容も多かったようで、非常に盛り上がった発表となりました。

サーバーサイドKotlinで社外ツールをリリースした

Kotlin + Spring Bootで管理画面を実装した際の知見についての発表です。

設定ファイルの扱いと非同期処理が簡単に書けるメリットがある一方で、DB周りで苦労したとのことでした。 普段、Android版グノシーの開発でKotlinを使用しているためサーバサイドでの実装の事例の紹介は非常に勉強になりました。

最後に

以上、Gunosy Tech Night#6のレポートでした!

内部向けの勉強会のため詳しい発表内容をお伝えできず申し訳ありません。

もっと詳細な発表内容を知りたい!という方は弊社にご応募頂ければと思います!

もちろん、Tech Nightを一緒に盛り上げたい!という方のご応募もお待ちしています!!

皆様のエントリーをお待ちしております!

hrmos.co

Go APIサーバーの設計について、golang.tokyo#9で話しました。

f:id:u_tis:20171003100230p:plain

どうも、Gunosyの新規事業開発室エンジニア、高橋(@__timakin__)です。 先日行われたgolang.tokyo#9にて、GoのAPIサーバーの設計についてトークをする機会を頂いたので、いってきました。 スライドはこちらです。全編英語となっておりますが、ご覧頂けると幸いです。

speakerdeck.com

概要

アジェンダの前の序文にも書いてあるのですが、GoのAPIが大企業で試験的に導入するというフェーズを超え、スタートアップなどでも「Goって最近トレンドだよね」という声が聞こえ、小規模のチームでも積極的に登用されるようになってきたように感じます。

あくまで個人の観測範囲での話なのでバイアスがあるとは思いますが、「試してみた」というトークが界隈でも最近少なくなったように思います。

そんな中、参考例となるGoのAPIのOSSは非常に少ないため、新規に始めるハードルは、学習コストの面で少し高いように思います。

ましてやフレームワークを使わずに標準パッケージ(net/http)で書くのがベターとされておりますし、ネット上に転がるサンプルもpingしてみた系が多いので、自分で書くときは結構困りました。

そこで、標準パッケージに極力寄せつつどうやって書くかに加えて、ディレクトリ構成に神経質にならなければならないGoで、どういうレイヤー化を行えばいいか、というのを自分なりに試行錯誤したのが上記のスライドの内容になります。

学び

今回はgodddというGoのDDDのサンプル実装(DDD界隈の人からしたらちょっと毛色が違うらしいのですが)を参考例に、自分でAPIを書いて見たときのベストプラクティスを発表しました。

ただ、DDDというとinfrastructureに該当するものがまだ明確に定まってなかったり、より一層スケールしたときの話を仕切れなかった部分がありました。

また、せっかく英語でスライドを書いたので、海外のサイトに投稿したら、「これはDDDというより一種のレイヤー化に過ぎないのでは?」というツッコミをもらいました。

自分でも「いくらgoddd inspiredとはいえ、無理にDDDって言わなくてもいいな」、という立ち位置を自覚する機会を得ました。

ただ、パッケージの粒度的には書いててスムーズに行けたので、今後もこれをベースに、ブラッシュアップしていく形でAPIの設計を考えていきたいと思います。

他にもDDDっぽい書き方を採用している方が何人かいらっしゃるのを知っているので、「ぼくのかんがえた さいきょうのGo API せっけい」でバトルするのも面白いかもしれません。

終わりに

Goが本番で採用され、ある程度枯れ始め、Go2の展望も伺える中、ベストプラクティスというのはまだまだコミュニティでも公になっていません。

たとえバッドノウハウでも自分の設計を世に出して、レビューいただくことで、今は磨き上げるしかないのです。

ただ、コミュニティの方が「今Goの界隈に足りないもの」をどんどん発信していることも実感しているので、Goの将来は明るいなと楽観視しています。

少し時間が経てば僕のノウハウもバッドになるかもしれませんが、今できるだけを発表したので、同じくGoのAPIを書かれる方々の一助になれば幸いです。


Gunosyでは現在、「ぼくのかんがえた さいきょうのGo API せっけい」を一緒に考えつつ、Goで新規プロダクトをバリバリ開発してくれる方を募集しています。

もしちょっとでもご興味あれば、ぜひオフィスまで遊びにいらしてください!

Twitterでメンションしていただければ、気軽にランチなど行けるので、それもぜひ!

hrmos.co

hrmos.co

ソフトウェア品質シンポジウム2017に参加してきました(2日目)

はじめまして、QAエンジニアの関根です。

今回2日間参加させていただいて、僕の方では2日目をメインで書きたいと思います。

会場は1日目に引き続き東洋大学(白山キャンパス)

f:id:Gryota:20170925162533j:plain 2日間ここから入ってますが、きっと正面入り口ではない気がします。。。

2日目の注目はマネーフォワード市川さん

FinTechトレンドをリードするサービス開発のポイント 「品質」「スピード」「セキュリティ」と題してお話お伺いできました。 FintechってどうやってQAやってるのか、発表を聴く前からかなり興味津々でした。 f:id:Gryota:20170925162536j:plain

QA専属のチームはいない(なんと!) 自動化コードを書いているのと、エンジニアの相互レビューでバグを潰しているとのこと。 付加価値の高いところを優先し、小さくたくさんリリースしている。 脆弱性診断も内製化しようとしている。 やはり、内製化するのとしないのとでは随分違うみたい。ナレッジもたまるし! ただ、採用が大変!!!!(ワカルーーーーー!

インフラ系の話も多かった印象で、進め方は比較的うちと同じような感じの印象でした。 f:id:Gryota:20170925162658j:plain

その他のセッションについて

日立製作所さん(大規模で短期間のソフトウェア開発における品質進捗へのアプローチ、ヒューマンエラーによる失敗・事故の分析手法) トーセーシステムズさん(ソフトウェア欠陥の共祈起性を利用した欠陥推定法の提案) の事例と研究結果のセッションを聴講 この辺は、情報公開不可なため割愛。。。

会場展示の様子

ソフトウェア欠陥についてのパネルだったり f:id:Gryota:20170925162717j:plain

管理ツール等の企業展示もありました f:id:Gryota:20170925162739j:plain

終わりに

以上、2日目の参加報告になります。 掲載不可の企業さんが多く、ご紹介できる部分だけになってしまい申し訳ないです。 ソフトウェアテストと言っても、分野であったり業種、会社規模によって、やっている取り組みや 最適な方法は随分違うことを改めて実感できました。 参考にできる技法だったり考え方は、取り入れて業務改善につなげたいと思っています。

GunosyのQAとしては「コード書く人はコード書くのに集中してもらって、品質の部分はこちらで担保する。」 という形で進めています。やはり、開発者視点って結構抜けづらいと思うんですよね。 あと、新しい機能開発だったりコード書く時間をできる限り取れるようにサポートしたいと思っています。

メンバーを募集しています!!

QAチームでは一緒にGunosyで開発しているプロダクトをより良くしていきたいと思ってくれるメンバーを募集しています!

まずはお話からでも!

グノシーをテストする!QAエンジニア募集! - Gunosyのエンジニア中途・新卒の求人 - Wantedly

『品質』ってなんだ・・・!ソフトウェア品質シンポジウム2017へ行ってきました(1日目)

ソフトウェア品質シンポジウム2017へ行ってきました

こんにちは、運用推進開発部QAチームの id: qa00qaです。
突然ですが、みなさんソフトウェア品質ってなんですか?

QAチームは先日開催されたソフトウェア品質シンポジウム2017へ行ってきました。

会場

会場は東洋大学 白山キャンパス。
白山駅から徒歩5分ほどの場所にあります。

f:id:qa00qa:20170926130159j:plain
オープニングが行われた東洋大学内の会場前

東洋大学といえば・・・!

東洋大学といえば、男子100mで9秒98の日本新記録を出した桐生祥秀選手ですね!
会場の大学構内には桐生選手の写真や記事がいたるところに飾ってありました。

gunosy.com

昼食は学食を利用

昼食は東洋大学内の学食を利用しました。

f:id:qa00qa:20170926130333j:plain
東洋大学の学食

これで680円・・・飲み物が1つの場合は500円です。
さすが学食、お手頃価格ですね・・・!

1日目セッション所感

1日目は以下のセッションを聴講しました。

  • [基調講演] 忘れていませんか?コミュニケーションに係わるヒューマンファクター~自らエラーをしようと思っている人間はいない!~
     塚原 利夫 氏日本ヒューマンファクター研究所 取締役副所長 兼 教育開発研究室長
  • 統合テストにおいて影響範囲に対するテスト漏れを防止する「影響波及パス分析法」の提案
     柏原 一雄 氏 株式会社デンソークリエイト
  • Session Based Test Managementによる探索的テストの実践
     熊川 一平 氏 株式会社NTTデータ
  • さまざまな視点に合わせた仕様書の作成・維持の支援手法
     酒井 雄太 氏
  • レビュー記録のテキスト分析結果による多角的な品質管理方法の提案
     佐藤 孝司 氏 日本電気株式会社
  • 利用時の品質向上を目的とした利用者用文書の品質向上施策のライフサイクルモデルの検討
     奥山 亜耶子 氏 ウイングアーク1st株式会社
  • サポート問合せ分析による、利用時品質向上及びシステム品質向上
     上田 和樹 氏 日本ナレッジ株式会社

基調講演はもちろんのこと、その他の一般発表もGunosyのQAチームでは未挑戦のものなど興味深いセッションが並びました。
特に熊川さんの「Session Based Test Managementによる探索的テストの実践」のお話に出てきたセッションシートの共有については 今後チームが大きくなってきた際に活用したいと考えています。

* セッション概要

テストをセッションと呼ばれる時間の枠で管理する「Session-based Test Management」を活用することで、定義した改善目標を満たしながら、探索的テストを実施する方法を検討し、実際の開発現場で適用した結果を紹介

* Session-Based Test Management:Jonathan Bach氏がSTAR West 2000発表したテスト管理手法

探索的テストを30分から2時間程度のセッションとして分け、各セッションでのテスト対象や観点を決めてテストを実施することで、探索的テストの管理を容易にし、それ以降のテストの内容を調整しやすくなる。

複数プロダクトがある中でのQAはチームメンバーの知識や経験に差が生じることがありますが、今回紹介されたSession-Based Test Managementのセッションレポート(セッションで行ったテストの観点、結果等を記載したレポート)をチームメンバー間で共有することで、プロダクトやバグの傾向を探索的テスト実行者以外も学習でき、チームの成長や安定したQAにも役立ちます。

Session-Based Test Managementを取り入れる際には摸倣するだけではなく、自分たちのチームにあった方法を生み出してみんなが幸せなQAを行いたいですね。

『品質』ってなんだ!なんなんだ・・・!!

結局のところ、ソフトウェア品質ってなんでしょう?
果たして文字通りソフトウェアだけの品質でしょうか。
実のところ、ソフトウェアの利用者にとっては違いますよね。

ソフトウェアの動作としての品質だけではなく、
それに付随する文書やソフトウェアの利用を開始するまでのフローについても
ソフトウェア利用者にとっては大事な品質指標の一つです。

www.juse.jp

今回のソフトウェア品質シンポジウム2017では 品質とは何か、その根本的・基本的でかつ一番重要なところを再度考えさせられる、聞き応えのあるセッションが多かったように思います。

もちろん、ソフトウェアの品質を向上・保持するためには、
ソフトウェア開発やそれに携わる人々の業務やコミュニケーションの品質も向上させる必要がありますよね。

品質は、すでに日常の中で始まっているのです。

さいごに

最後までお読みくださってありがとうございます。
バグを見つけるだけではなく、さまざまな品質を守っていくことが我々QAの大事な任務です。
現在GunosyではQAエンジニアを募集しています。
まずは話を聞いてみたいという方、ぜひ一度ご連絡ください!

hrmos.co