タグ

ブックマーク / codezine.jp (43)

  • Kubernetesを使った変化に強いインフラ――Wantedlyのインフラチームが大切にしていること

    Wantedlyの開発現場で活用されている技術や手法は、日々進化するプロダクトに合わせて柔軟に変化しています。この連載では実際の開発で取り組んでいる技術や手法を、実務に使える形でお伝えしていきます。第1回はWantedlyのインフラチームが大切にしている「変化に強いインフラ」づくりについて、Kubernetesの活用方法を交えて紹介します。 はじめに 連載は、WANTEDLY TECH BOOK 2を抜粋し、再編集したものになります。第1回と第2回の担当は、Wantedly インフラチームの坂部(@koudaiii)です。第1回である記事では「変化に強いインフラはWantedlyにとってなぜ必要か」「これまでどのように変化に強いインフラに取り組んできたのか」といったことを中心にご紹介します。第2回では、例として架空のサービスを実際に作る上での手順を紹介する予定です。 変化に強いインフラ

    Kubernetesを使った変化に強いインフラ――Wantedlyのインフラチームが大切にしていること
    hiroponz
    hiroponz 2017/08/18
  • 難易度は? 効果は? 実践して初めて分かった「ペアプログラミング」の実際

    この20年ほどの間に、「ウォーターフォール」へのアンチテーゼとして現れた、XP(エクストリーム・プログラミング)やScrumと呼ばれる「アジャイル」な開発手法が浸透してきた。中でも、近年ではXPの一部を構成する「ペアプログラミング(ペアプロ)」に対する関心が高まりを見せているようだ。ただ、ペアプロという手法があることを知ってはいても「どのように導入を進めれば良いか」「どのような効果があるのか」については、漠然としたイメージしか持っていないという人も多いのではないだろうか。今回、Yahoo! JAPANのヤフオク!カンパニーにおいて「Lean XP」の一部としてペアプロを導入した山下真一郎氏と、日におけるテスト駆動開発(TDD)の第一人者である和田卓人氏に、自らの実践の中で感じているペアプロのメリットや、導入のポイントについて語ってもらった。 「Lean XP」の一部としてペアプロの導入に

    難易度は? 効果は? 実践して初めて分かった「ペアプログラミング」の実際
    hiroponz
    hiroponz 2017/07/12
    良い記事
  • 日立ソリューションズ、.NETアプリケーション開発用フレームワーク「Open棟梁」をOSSで公開

    日立ソリューションズは、.NET Frameworkをベースにしたアプリケーション開発に必要な各種機能を提供するフレームワーク「Open棟梁」を、オープンソース・ソフトウェア(OSS)として23日に公開した。また、同社を中心に、OSSコンソーシアムに「Open棟梁」普及に向けたコミュニティとして、「.NET開発基盤部会(仮称)」を7月初旬に発足する。 「Open棟梁」は、アプリケーション全体のアーキテクチャを統一する標準アーキテクチャ、入出力処理やデータベースアクセスなどの定型的な機能、開発ツール、テンプレートなどを提供し、高品質なアプリケーション開発環境を実現している。 日立ソリューションズでは、「Open棟梁」を受託開発やプロダクト開発、小規模部門システムから大規模基幹システムまで約70件の開発案件に適用しており、これらの実績によって蓄積したノウハウを集約した。 異種透過性を実現した通

    日立ソリューションズ、.NETアプリケーション開発用フレームワーク「Open棟梁」をOSSで公開
    hiroponz
    hiroponz 2014/04/23
    Round_4sya5nyuが土方っぽくて良い
  • 大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~

    11月25日、「mobidec 2011」においてコナミデジタルエンタテインメントのスタジオITセンター長である正延光弘氏によるセッション「大ヒットSNSゲーム『ドラゴンコレクション』を支えるコナミのクラウド技術の活用」が行われました。 ドラゴンコレクションは、GREEで提供されている携帯電話向けのカードゲームタイプのRPG。プレイヤーは、エリアごとにある複数のクエストをクリアしていき、モンスターカードや「秘宝」を手に入れ、さらに「ドラゴンカード」を集めていきます。また、ほかのプレイヤーとバトルすることでも秘宝を入手できるというSNS要素も取り入れられていました。2010年9月のサービス開始後、順調にプレイヤー数を伸ばし、現在では登録人数が500万人を超えています。 サービス開始当初は社内でサーバを構築し、フロントエンドに6台のサーバ、バックエンドに3台のデータベースサーバ、そしてロードバ

    大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~
  • 状態遷移表からStateパターンを自動生成する

    前回のStateパターンのお話、おかげさまでかなり好評だったようです。流行のトレンドを追いかけるのはドキドキがいっぱいでモチベーションを維持する良い材料ではありますが、トレンドを楽しむにも「やりたい事をカタチにする」ために設計と実装の腕を磨いておかにゃなりませんですね。Stateパターンを適用すれば、状態(State)と事象(Event)および状態遷移表に基づいて見通しが良く変更に強い(かつ柔軟な)コードに落とすことができます。 状態遷移表に基づいてコードに落とすのは単調な作業です。状態の数だけclassを起こし、それぞれのclassに事象の数だけメソッドを定義するので、どのclassもまったく同じ構造です。お定まりのパターンを何度も淡々を繰り返すのは退屈ですが、計算機はこのテの作業が大好きです。文句も言わず嬉々としてやってくれます。今回のお題は「状態遷移表からC#コードを自動生成させてみ

    状態遷移表からStateパターンを自動生成する
    hiroponz
    hiroponz 2011/05/27
    あとで読みたい
  • C#の入力チェック実例サンプルコード

    はじめに 標準のコントロールを使用して、アプリケーションの作成を行った場合、数値入力のみを許可したり、ペーストを禁止したりしたいと思ったことはありませんか? それらを実装するには、入力規則のチェックなど使用しているコントロールの数だけ、プログラミングを行う必要があります。 共通的なチェックを行う場合、標準のコントロールを少し拡張するだけで、プログラミングを行う量を減らすことができ、生産性を上げることができます。ここでは、標準コントロールを基クラスとする派生クラスを作成し、派生クラスに少しの機能拡張を行って入力規制や入力チェックなどを行えるようにします。 対象読者 .NETWindowsアプリケーションを作ったことのある人、または作りたい人。 必要な環境 C#または、VS.NETのプログラミングが行える環境が必要です。NET Framework 1.1のクラスやメンバを使用しているので、

    C#の入力チェック実例サンプルコード
  • グラス片手にアジャイル開発一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    グラス片手にアジャイル開発一覧
  • 「印刷用ページ」の作り方

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「印刷用ページ」の作り方
  • cut、head、tail、sort・・・定番のフィルタコマンドを使いこなす! ~業務でラクするためのUNIXテクニック~

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    cut、head、tail、sort・・・定番のフィルタコマンドを使いこなす! ~業務でラクするためのUNIXテクニック~
    hiroponz
    hiroponz 2009/05/25
    きちんと身に付けたい
  • 「実現したいことを計算機の問題に置き換えることが『技術力』」、伊藤CTOが“はてな流”大規模データ処理の極意を語る:CodeZine

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「実現したいことを計算機の問題に置き換えることが『技術力』」、伊藤CTOが“はてな流”大規模データ処理の極意を語る:CodeZine
  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。 rank(p, c)――T[0...p]中のcの出現回数を返す select(i, c)――(i+1)番目のcの位置を返す WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。 対象読者 C++

    高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」
  • 「SQL」に関する記事一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「SQL」に関する記事一覧
    hiroponz
    hiroponz 2008/10/31
    SQLのテクニックいろいろ。
  • 業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎:CodeZine

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎:CodeZine
    hiroponz
    hiroponz 2008/10/21
    業務を楽にするテクニック集(基礎)。
  • 例外処理とロギングのベストプラクティス

    はじめに システム開発において例外処理は重要なポイントですが、あまりに軽視されているのが現状ではないでしょうか。稿では、これまでの著者の開発経験の中から培った汎用的な手法を説明します。 この記事は「美しい設計」ではなく「現実的な設計」、現場に適用できる「できるだけ手間の少なく、汎用的な設計」を目指しています。 対象読者 J2EE開発者・アーキテクト。特に業務システムの開発現場の方が対象です。 必要な環境 概念の説明が中心ですので、開発環境は必要ありません。 エラーの分類 実装時に考慮すべきエラーは2つに大別できます。 想定内でトランザクションの実行開始前にチェックするエラー。主に入力エラー。 異常な状態としてトランザクションの続行が不可能なエラー(例外)。 前者については、例外を使うべきではありません。入力チェックエラーを表現するには、ステータスコードを使うべきです。理由は次のとおりです

    例外処理とロギングのベストプラクティス
    hiroponz
    hiroponz 2008/08/25
    例外処理についての基本事項
  • Web開発者の必須知識、Webアプリの不正遷移対策とは?:CodeZine

    対象読者Webアプリの設計に携わる方、もしくは興味のある方。 不正遷移の定義と種類 不正遷移とは「Webアプリケーションの設計上、業務的に想定されていないページ間の移動」を定義することができます。具体的には、次の種類があります。アプリケーション内のブックマークされることを想定していないページをブックマークに登録し、後でブックマークから呼び出すこと。もしくはURLを直接入力して表示すること。ブラウザの「戻る」「進む」ボタンを押して移動すること。ブラウザの「更新」ボタンを押すこと。アプリケーションのボタンやリンクを連打すること。 例えば1.は「ユーザー情報画面」や「発注確認画面」をブックマークされた場合です。ログインしていない状態でユーザー情報画面に飛び込まれても個人情報を表示することはできませんし、既に発注が終わった注文の確認画面を表示してはいけません。 2.の「戻る」「進む」ボタンを押した

  • マージ・ソート : 巨大データのソート法:CodeZine

    はじめに まずはともあれ腕試し、この問題を解いてみてくださいな:【問1】 デタラメな順序で並んだ文字列の集合がテキストファイル「input.txt」に収められています。この文字列群を辞書順(昇順)に並び換えたテキストファイル「sorted.txt」を作りなさい。 ※各文字列は改行で区切られています。  プログラミング教の練習問題、あるいは学校の課題で出てきそうな“お馴染み”の問題です。ソート(整列)アルゴリズムの実装には配列/代入/条件分岐/ループなどなどプログラミングの基中の基となる構文を総動員するため、練習問題としてよく使われますね。 早速解いてみましょう、ソート・アルゴリズムにはこれまたお馴染みのバブル・ソートを使います。C#、VB.NETC++/CLIの3まとめて一気にいきますよ: using System; using System.IO; using System

  • Ruby on Rails 2.0入門:Flickerベースのアプリケーションの作成:CodeZine

    はじめに 2004年に初めてリリースされたRails Webアプリケーションフレームワークは、Ruby言語のキラーアプリケーションになり、CRUD(Create、Read、Update、Delete)パターンに基づくWebアプリケーションを短時間で作成できる非常に強力なツールとして急速に普及しました。そして2007年末、今やすっかり有名になったこのWebアプリケーションフレームワークのバージョン2.0がリリースされました。最初のリリースのときほどの驚きはありませんが、Rails 2.0はやはり多くのイノベーションを実現し、開発をより効率的で楽しいものにしています。 稿では、Rails 2.0の概要と、最も重要な新しい機能を説明し、それらを使ってシンプルでも目を引くWebアプリケーションを作成する方法を紹介します。よくある「15分でブログを作る」というような例ではなく、ここで紹介するアプリ

    hiroponz
    hiroponz 2008/05/13
    Rails 2.0でFlickerを利用したアプリケーションを開発するチュートリアル
  • JUDEで描いたクラスをそのままRuby on Railsで動かすプラグイン:CodeZine

    はじめに 「LuRuJu」は、UMLモデリングツール「JUDE」で作成したモデル情報をRuby上で簡単に参照するためのRubyライブラリです。「LuRuJu on Rails」はLuRuJuをベースにしたRailsプラグインで、JUDE上で作成したクラス図の内容をそのままRuby on Railsのモデル(言い換えると、ActiveRecordをベースとしたクラス)として動作させることが可能になります。 記事では、筆者が開発しているLuRuJuおよびLuRuJu on Railsのねらい、特徴、使い方などを簡単に紹介します。また、LuRuJu on Railsを使った簡単なサンプルWebアプリケーションの作成手順を解説することで、ツールの魅力を肌で感じていただければ幸いです。対象読者 基的に限定しませんが、以下のいずれかに当てはまる方は記事の読者に適しています。RubyRuby

    hiroponz
    hiroponz 2008/04/23
    JUDEで書いたクラス図をRaisのモデルとして使用するプラグイン
  • RubyとCursesを使ったコンソールテキストエディタ:CodeZine

    対象読者Rubyの入門書を一読した方練習用にRubyのプログラムを作りたいが良い課題が見つからない方 必要なものRuby体とお好きなエディタを用意してください。筆者は以下の環境で執筆しています。ruby 1.8.6-p111 / SAKURAエディタ / WindowsXP SP2 今回作る物 例題として作っていきたいのはテキストエディタです。 テキストエディタといってもいろいろありますが、次のような感じのものを作りたいと思います。コンソールアプリケーション(もちろんですね)ごくごく基的な機能のみを実装Viのようなモードを持つ  モードというのはコマンドモードや追加モード、挿入モードなどの事で、それらを切り替えながらテキストファイルを編集していく事になります。昨今のUIデザインではこのようなモードを持つのはよくないデザインと考えられています。しかしモードを持つソフトウェアの代表ともいえ

    hiroponz
    hiroponz 2008/02/15
    エディタのサンプルプログラムでRubyの勉強
  • C++におけるデータのソート方法の比較:CodeZine

    はじめに この記事の目的は、「C++のSTLにはデータをソートする方法がいくつか存在するが、ソート処理を簡単に、かつ効率のよいコードはどれか…」を調べることです。 ここでは、自前のソートアルゴリズムを作って速度を比較したり、既存のソートアルゴリズムを最適化するといったことは目的としません。公開されているSTLをありのままの姿で計測します。コードの保守性や移植性、可読性を考慮して「いたって普通」な書き方が一番メリットが受けられると考えていますし、より多くの人に恩恵をもたらすと考えるからです。 自前のソートアルゴリズムの構築や、既存のアルゴリズムの最適化は、可読性や移植性を悪くするため、得られるメリット(高速処理による時間)よりもデメリットが大きいと考えているのです。よって、ここで検証するコードは「いたって普通」な書き方であり、可読性を重視した書き方になります。 自前でソートアルゴリズムの構築

    hiroponz
    hiroponz 2007/12/13
    C++でのソート方法の紹介