タグ

ブックマーク / wyukawa.hatenablog.com (10)

  • 「Googleのソフトウェアエンジニアリング」を読んだ - wyukawa's diary

    www.oreilly.co.jp 目次はこちら 第1部 主題 1章 ソフトウェアエンジニアリングとは何か 第2部 文化 2章 チームでうまく仕事をするには 3章 知識共有 4章 公正のためのエンジニアリング 5章 チームリーダー入門 6章 スケールするリーダー 7章 エンジニアリング生産性の計測 第3部 プロセス 8章 スタイルガイドとルール 9章 コードレビュー 10章 ドキュメンテーション 11章 テスト概観 12章 ユニットテスト 13章 テストダブル 14章 大規模テスト 15章 廃止 第4部 ツール 16章 バージョンコントロールとブランチ管理 17章 Code Search 18章 ビルドシステムとビルド哲学 19章 GoogleコードレビューツールCritique 20章 静的解析 21章 依存関係管理 22章 大規模変更 23章 継続的インテグレーション 24章 継続的

    「Googleのソフトウェアエンジニアリング」を読んだ - wyukawa's diary
    advblog
    advblog 2022/01/24
  • OSSプロダクトにissue登録する - wyukawa's diary

    僕は今見ている社内のログ分析基盤に数多くのOSSプロダクトを使っています。 具体的に言うと、Fluentdでログ収集してHadoopに書き込んでAzkaban経由でHiveバッチを動かしてデータを加工してPresto, Prestogres経由でみたりしています。 また最近はKafkaやElasticsearch, Kibanaといったものも使っていますし、Prometheus, Grafanaを使ってモニタリングするようになっています。 このように数多くのOSSプロダクトを使っている理由は、部品一つ一つを自前実装していたら時間がいくらあっても足りないからです。OSSプロダクトを活用することにより、レバレッジを効かせることができます。 そしてまたOSS界隈の進化のスピードが速いので、仮に自前実装したとしてもすぐに陳腐化してしまう危険性がある。であれば最初からOSSプロダクトを使って巨人の肩

    OSSプロダクトにissue登録する - wyukawa's diary
    advblog
    advblog 2016/06/06
  • バッチ処理、ジョブ管理について書いてみる - wyukawa's diary

    僕はHive, Pythonでバッチ処理を書いてAzkabanでジョブ管理するシステムを構築、運用した経験が2年ほどあるので今日はバッチ処理、ジョブ管理について書いてみようと思います。 僕の経験上Hadoop特有の部分、例えばテスト環境が作りづらいとかバッチサーバーはジョブをsubmitするだけなので負荷はそんなにかからないとか、はあるけれど割と汎用的なのではないかと思います。そもそもバッチ処理、ジョブ管理について書かれたものはほとんど見た事がないので参考になれば嬉しいし、こういう良い方法もあるよ!とかあれば是非ブログ等に書いてほしいと思っております。 最初に言っておくとバッチ処理、ジョブ管理において重要なのは障害時のリカバリのしやすさです。正常時はまあいいでしょ。 なので例えば引数に日付を持てないようなバッチ書いたら辛いですし、LL言語で書く方がコンパイル、パッケージングとか楽です。CP

    バッチ処理、ジョブ管理について書いてみる - wyukawa's diary
    advblog
    advblog 2015/06/17
  • RDBMSのコネクションプーリングとかその辺の話 - wyukawa's diary

    データベース技術の羅針盤 from Yoshinori Matsunobu これは素晴らしい資料で後半のキャリアの話とか面白いんだけど、今回書くのはp6,p8に書かれていた下記の話です。 PosgreSQLは接続がプロセスベースなのでLL言語との相性がよくない Pgpool(これはプロキシサーバー的に使うらしい)などのコネクションプールと併用することが多い MySQLは接続がスレッドベースなのでコネクションプーリングが使いづらいLL言語環境では魅力 なんでLL言語だとコネクションプーリングが使いづらいのかわからずつぶやいたらリプライもらってついでにちょっと前に話題になったRDBMSでコネクションプールが必要な理由、わからない。 - Togetterや7年前のブログエントリであるコネクションプーリングの話 - naoyaのはてなダイアリーを読み返してみて思ったことを書いてみる。全然まとまって

    RDBMSのコネクションプーリングとかその辺の話 - wyukawa's diary
    advblog
    advblog 2013/11/17
  • ログ解析における統計値の妥当性 - wyukawa's diary

    ログ解析における統計値の妥当性をどうやって担保するのかは難しい問題だと思っていてぶっちゃけ最終的にはオレを信じろ、でも間違ってたらゴメンの世界な気がする。 社内で閉じていて外に出ない統計値ならまあいいんだけど、世の中そんな統計値ばかりではない。 例えばWebサービスを展開していてそこに広告を出稿してもらって売り上げをたてたいとする。広告を出す方としてはそのサイトにどれぐらいPV/UUがあるか知りたいと思うのは当然ですよね。 広告を出したら出したでインプレッション数が知りたいとかあるかもしれない。 このような統計値はログを集めて集計することによって求めるわけなんだけど、数値が正しいかどうかをどうチェックするかというのは難しい問題ですよね。 来ならいろんなバリエーションのテストデータを作ってテストするんでしょうけど、テストデータ作るの大変だし、このビッグデータ時代?にはどんなデータが来るかわ

    ログ解析における統計値の妥当性 - wyukawa's diary
    advblog
    advblog 2013/08/20
  • 構成管理とは何なのか - wyukawa's diary

    最近職場では構成管理というキーワードが(どちらかというと悪い意味で)ホットなのですが、考えてみるとこれは人によってイメージが違う抽象的な概念ですね。ソフトウェア単体の話じゃなくてインフラ環境まで含めた総合的なソフトウェア、ハードウェア環境の変更管理をイメージする人もいるみたい。なので議論しようとすると発散しやすいのかも。抽象的な話をしても伝わりづらいのである程度具体的な話をしないと噛み合ないのかもね。 ちなみに構成管理でぐぐると チケット駆動開発をRedmineで運用し始めて、SW構成管理(Software Configuration Management:SCM)を強く意識するようになった。 しかし、SW構成管理をきちんと定義している書籍もHPも、日には殆ど存在しない事実を知って、愕然とした。 CMMIでも構成管理プロセスを定義しているけれども、僕の中ではフィットしない。 抽象的すぎて

    構成管理とは何なのか - wyukawa's diary
  • 職場の自席に置いとくと、スゲーできそうって思われるかもしれない本(Java編) - wyukawa's diary

    Java技術者としてどっかの現場に常駐しろーーーってなった場合に「はじめてのJava」みたいなを自席に置いとくと技量を疑われる可能性があります。新品だともっとマズいです。 何も置いとかないという手もあります。ていうか僕は自社でフリーアドレスになった瞬間にあんまモノ置かなくなりました。ノート取らなくなったのもこの頃から。 でも、置いとくとスゲーできそうって思われるかもしれないというのもあります。僕の独断と偏見であげてみます。 Effective Java 第2版 (The Java Series) 作者: Joshua Bloch,柴田芳樹出版社/メーカー: ピアソンエデュケーション発売日: 2008/11/27メディア: 単行(ソフトカバー)購入: 77人 クリック: 936回この商品を含むブログ (264件) を見る 順当なところですね。これ持ってたらヘンなコード書かないだろうと思

    職場の自席に置いとくと、スゲーできそうって思われるかもしれない本(Java編) - wyukawa's diary
    advblog
    advblog 2010/12/31
  • MercurialとGitのブランチの違い - wyukawa's diary

    MercurialのブランチというのがどういうものでしかもそれがGitと同じなのかどうかもいままでよくわからなかった。 その辺のモヤモヤがこれを読んで理解できた(気がする)。 experimentalworks » Blog Archive » Mercurial bookmarks A Guide to Branching in Mercurial / Steve Losh まずMercurialでは以下の4種類のブランチがある。 リポジトリをcloneしてつくるブランチ hg bookmarkで作るブランチ hg branchで作る名前付きブランチ 名無しブランチ リポジトリをcloneしてつくるブランチは hg clone test-project test-project-feature-branch というように単純にcloneして新機能を開発してあとでマージなりリベースなりする

    advblog
    advblog 2010/12/06
  • モダン(かもしれない)なEclipse環境(Java)の構築方法 - wyukawa's diary

    「モダンなEclipse環境の構築方法」とかね。 2010-07-21 - marsのメモ 僕が書くのも場違いな気がするけど、とりあえず書いてみるよ。 Webアプリ作るという前提だとまずEclipse IDE for Java EE Developersをダウンロードしてインストールする。JDKは別途ダウンロードする。Tomcatも別途ダウンロードする。 JDKはWindowsの場合はデフォルトではProgram Files以下にインストールしようとするがパスに空白が含まれてるのが嫌なのでC直下とかにする。 Tomcatもインストーラを使わずにZIP版を解凍して、パスに空白が含まれていない場所にインストールする。 プラグインはSubversionクライアントとしてSubclipseを、プロパティエディタとしてちょま吉をインストールする。ここまでは必須。 DB使うようならDBViewerもイ

    モダン(かもしれない)なEclipse環境(Java)の構築方法 - wyukawa's diary
    advblog
    advblog 2010/07/26
  • JavaScriptのnew - wyukawa's diary

    JavaScriptのnewは危険だよんとCrockfordのにもありますが、あんまり意味がわかってなかったのですこし調べてみました。 そしたら John Resig - Simple “Class” Instantiation に全て書いてありました(英語に自信無いけどたぶん)。 単純にやると以下のようになります。 function User(first, last){ this.name = first + " " + last; } var user = new User("John", "Resig"); user.name // "John Resig" しかしこの方法だとnewを忘れた場合に問題があります。thisにグローバルオブジェクトがセットされるためグローバル変数を上書きしてしまいます。 var user = User("John", "Resig"); user //

    JavaScriptのnew - wyukawa's diary
    advblog
    advblog 2009/06/15
  • 1