読者です 読者をやめる 読者になる 読者になる

spangled shalalala blog

諦めたらそこで試合終了だよ。

RubyでHit&Blow書いてみた

どうも、Ruby初心者です。 f:id:brokenspeaker888:20161013124806p:plain

今日、「Hit & Blow」という問題を教えていただいたので勉強中のRubyで解いてみました。

マスターマインドという呼び方が一般的なのかな?
マスターマインド - Wikipedia

コードはこちら↓

github.com

どなたか添削お願いします…

Cookpad TechConf 2017に参加してきたメモとか

Cookpad techconf 2017に参加してきました。

f:id:brokenspeaker888:20170122084727j:plain

techconf.cookpad.com

ライブ配信もあったようで、こちらから動画を見ることができます!

Cookpad TechConf 2017 - YouTube

やはり世界規模のサービスを運営しているということで、トークの内容はどれも聞いていて面白いものでした。 CTOのmirakuiさんのトークでは、Rubyコミッタのささださんがjoinしたというサプライズが!Herokuどうなるんだろう。 f:id:brokenspeaker888:20170121134019j:plain

印象的だったのは丸山亮さんの「チームでプロダクト開発をするための取り組み」のトークで、作りたいものがあるけど一人で実現するのは難しいからチームでやっていくというTEAM GEEKに通じる話しがあり、チームから信頼を得るための取組みや、スケジュール管理、目標設定の話などかなり勉強になりました。

CTOのトークの中で「レシピ投稿のサービスで上場している世界唯一の企業」という紹介があったのですが、世界唯一と豪語できるのすごい。 グローバルでの開発の話も聞けてかなり刺激を受けました。

ぜひ、次回開催のときも参加したいと思いました!

以下、メモ。

cookpad tech conf

Cookpad under a microscope @mirakui

  • 組織拡大に伴う課題
  • 改善のサイクルを高速に回すためには

  • コード品質による事業への影響

  • 開発効率
  • メンテナンス性
  • セキュリティ
  • パフォーマンス性
  • 1年後、10年後に手を加える可能性もある

  • エンジニア行動評価

  • シンプルな設計になっているか
  • 社内外の開発者全体に貢献できているか

  • 課題共有会

  • 自分たちの道具に責任を持つ

  • サービス、企業、コードは常に増大している
  • 各要因の増大に伴う課題、その解決
  • 世界一規模でのRailsコードベースなのでRailsの設計から外れたところの問題を引く
  • 解決した課題はオープンソースとして公開 / OSS、コミュニティへの貢献

Go Global @rejasupotaro

  • 宗教もサービスのローカライズへ影響
  • 地域性の理解無しでサービスローンチは厳しい
  • サービスをどれくらいローカライズするか
    • 当たり前品質、魅力品質
    • 当たり前品質はコストをかけても満足度はかわらない
    • 魅力品質はコストをかければかけるほど満足度は上がる
    • 何が当たり前なのか魅力的なのかは地域で異なる
  • 海外ではエクストリームなバグの修正よりも使いたく鳴るような機能へリソースを咲くほうがいい
  • 検索、翻訳、その他全部が大事

Building infrastructure for our global service @sorah

  • SRE
  • globlのインフラは普通
  • グローバルのアプリはスクラッチで新規に開発されている
  • グローバルでは地域や文化でトラフィックピークが違う(日本だとバレンタイン近辺)
  • CDNはFastly

サービス開発におけるデザインの取り組み方 @若月啓聡

  • 価値検証のためのプロトタイピング
  • 実際のデータを使って検証
    • レイアウトの崩れの発見、実際の動作のイメージ
  • 限定公開機能
  • 現状の把握
    • 定量調査
    • 定性帳歳
  • ユーザー認知の拡大へ
  • アプリ内のお知らせ
  • メール配信

バイルアプリのABテスト @加藤 龍

  • webのABテスト
  • chanko + EasyAbによるAB
  • webとモバイルアプリの違い
  • webほど頻繁にデプロイできない
  • 電波状況によって通信に失敗する可能性
  • アップデートがユーザーによる
  • バイル向けAB

チームでプロダクト開発をするための取り組み @丸山亮

  • 料理きろく
  • スマホで撮影した料理写真のみが取り込まれる
  • マネジメント(1), デザイナー(1), エンジニア(6)
  • チームのパフォーマンス
  • チームメンバーからの信頼を得る
  • 信頼と信用は違う
  • 自分なりの方法で
  • 相手を信用する
  • メンバーはどうつくるか、どのくらいかかるかを決めさせる
  • スケジュールの予実差を確認
  • 予測と現状を把握してスケジュールを常に生きた状態を維持にしておくことが重要
  • 見える化/言語化
  • 作るもの(理想)、現状、仮定を言語化する
  • リーダーの目標=チームの目標=メンバーの目標の総和
  • コントロール可能な目標/不可能な目標
  • GHEのリポジトリで目標を管理して誰でも見えるようにしておく
  • エンジニア力・ものづくり力
  • すべてのIssue/PRに目を通す
  • 自分でも手を動かす
  • ログ設計・分析の設計
  • プロダクト開発の最初から最後までを実施する
  • より大きな成果を出すためにチームで開発する

「SQL ゼロから始めるデータベース操作」を読みました

SQLを学びなおすために「SQL ゼロから始めるデータベース操作」を読みました。

f:id:brokenspeaker888:20161013124806p:plain

ゼロから始めるというタイトルのとおり入門書であるが、説明が丁寧でわかりやすく、SQLのコードもPostgreSQLOracle, SQL Server, MySQLなど各DB毎にコマンドが解説されていて良い。

目次

第0章 イントロダクション――SQL学習環境を作ろう
第1章 データベースとSQL
第2章 検索の基本
第3章 集約と並べ替え
第4章 データの更新
第5章 複雑な問い合わせ
第6章 関数、述語、CASE式
第7章 集合演算
第8章 SQLによる高度な処理
第9章 アプリケーションからデータベースへ接続する
付録 練習問題の解答

なぜSQLを学び直しているか

FPGAエンジニアからSIerに転職して2年が経過したが、恥ずかしながらこれまでは過去のソースのコピペを元に開発したり、ORMを使うのでそこまでSQLは意識しないといった堕落した様子でした。
また、案件によってはSQLを書かない場合もあったのでそこまでSQLを意識していなかったのですが、こういった普遍的な技術の知見は知っていると他にも応用できて便利だったり、技術の寿命も長いと思うので心を改めて勉強し直しています。

学び直してみるとEXISTSはよくわからんしNOT EXISTSは更によくわからん、OLAP関数は使ったこと無いしで新たな発見があった。

また解説が丁寧なのでSQLを触ったことがない人でも挫折しないと思う良書です。本当に丁寧・親切な文章なので入門書には最適だと断言できます。

今はこの本の作者を書いたミックさんの「達人に学ぶ SQL徹底指南書」をKindleで読みながらさらにSQL力を高めていこうとしています。このままSQL力を高めて複雑なクエリにも対応できる基礎力を養っていきたい。