タグ

システム開発に関するhiyangのブックマーク (366)

  • 16年間うごいているWebアプリケーションが抱えていた技術的負い目を考察する | GMOメディア エンジニアブログ

    技術推進室の浅井です。 技術的負い目とは、世に言う技術的負債のことです。 社内で技術的負債の定義、ことばの表現を考える中で、「『負債』は優れた比喩表現であるものの、第三者への返済義務がない点で会計上の負債とは異なり、言葉としての問題も多く、不必要な議論を生み出しやすい」などの指摘があり、代わりの表現として社内の一部で使われている言い回しです。 最近社内のたいへん古いシステム(16年の歴史があります)の技術推進を行う機会があり、たくさんの技術的負い目と向き合いました。 そのような古いシステムの技術的負い目と向き合ったとき、エンジニアはストレスを感じ、ネガティブな感情を抱いてしまいがちです。負い目に苦しめられることで過去のコードや技術的判断に対して不満を言いたくなる気持ちはとてもよくわかりますし、実際に私もたくさん苦しんでたくさん不満を言いました。 ですが技術的負債の文脈でよく言われるとおり、

    16年間うごいているWebアプリケーションが抱えていた技術的負い目を考察する | GMOメディア エンジニアブログ
    hiyang
    hiyang 2016/01/05
    きちんと向き合って対処してるところが本当に凄いな。頭がさがる。
  • Semantic Versioning 2.0.0

    english セマンティック バージョニング 2.0.0 概要 バージョン番号 MAJOR.MINOR.PATCH を前提として、 あなたが互換性のない API の変更を行うときに MAJOR バージョンを、 後方互換性のある方法で機能性を追加したときに MINOR バージョンを、 そして、後方互換性のあるバグ フィックスをしたときに PATCH バージョンを、 インクリメントします。 追加のラベルとして、プレリリースとビルド メタデータが MAJOR.MINOR.PATCH フォーマットへの拡張として利用することができます。 序論 ソフトウェア マネジメントの世界には「依存関係地獄」と呼ばれる非常に恐ろしい場所が存在します。 あなたのシステムがより大きくなるほど、あなたのソフトウェアの中へより多くのパッケージを溶け込ませるほど、いつかこの絶望の底にいるあなた自身に気づく、そんな可能性が

    hiyang
    hiyang 2014/07/28
    ありがたや~
  • モダンなWebプロジェクトにおけるベストプラクティス | POSTD

    Oktavilla では、私たちは定期的に新規プロジェクトを立ち上げています。数年にわたって、私たちはこうしたプロジェクトを通してベストプラクティスを見つけ出してきました。そのおかげで、新規メンバーがスムーズにプロジェクトに参加できるようになり、エラーを減らすこともできました。こうしたベストプラクティスを、組織内部、クライアントを問わず大半のプロジェクトに活用しています。結果として、私たちは高品質のWebプロジェクトを実現しています。ここでお伝えするのは、そのプロセスの一部です。 このブログ記事では、技術面に関わるベストプラクティスに焦点を絞りたいと思います。例えばセットアップや、プロジェクトのツールやプロセスを選択する際に考慮すべきことなどについてお伝えします。各プラクティスの文末に、詳細な情報へのリンクをいくつか貼っています。 READMEファイル まずは、プロジェクトで最も重要なファ

    モダンなWebプロジェクトにおけるベストプラクティス | POSTD
  • 第4回 運用設計とは - システム管理者の会ポータルサイト

    年末から年始にかけてはシステムの切り替えなどで多忙なため、とてもそんな振り返る気分にはなれない方たちも多いのではないでしょうか? 景気が回復し始めたのか、システムの更新時期と重なったのかは定かではありませんが、今年は特にオープン化が急速に進んだ一年だったような気がします。この傾向は来年も続き、元々不足気味のオープン系の技術者が益々不足するものと思われます。

    第4回 運用設計とは - システム管理者の会ポータルサイト
  • SNSチームでのドメイン駆動設計の実践 | GREE Engineering

    こんにちは!グリープラットフォームでSNSの開発をしています、うきょーです! GREE Advent Calendar 2013 6日目です、よろしくお願いします! 今回は僕が所属するチームでの、ドメイン駆動設計を実践してきた過程をお話したいと思います。ドメイン駆動設計とは何か、については簡単に要所要所で説明していきますが、詳しくはで!また、ドメイン駆動設計そのものについての話ではなく、実践の一例となります。 スマートUIパターンからのスタート 今回僕のチームが扱っていたものはJavaScript製のクライアントアプリケーションで、APIから取得した情報を表示し、ユーザーの操作によってAPIを呼び出す、というごく一般的なものです。 ドメイン駆動設計にはアンチパターンとして、スマートUIパターンと呼ばれるものが存在します。簡単に言えば「見た目都合から設計やモデルを考えてしまった」という状況

    SNSチームでのドメイン駆動設計の実践 | GREE Engineering
    hiyang
    hiyang 2014/05/07
    JavaScriptフロントエンドならSmart UIでも良いんじゃないの、って思ったけど、フロントエンドが分厚いのか。
  • Smart UI が優れている? | システム設計日記

    Domain-Driven Design (DDD) で、アンチパターンとして取り上げられている Smart UI 。 ある文脈( context ) では、Smart UI はとても優れている。(と、エバンスも書いている) 実際、私たちが、取り組んだ5年前の開発プロジェクトでは、徹底して、Smart UI でがんばった。 プロジェクトの背景 ・短期間に既存のアプリを作り変えたかった ・中核メンバーは、寄せ集め。( 設計や実装について、経験や考え方が見事にばらばら ) ・多数の作業者は、一年目のジュニアたち ・既存システムのソースコードは、ない。 Visual Studio で、画面量産 既存システムがあるわけだから、とりあえず、 ・画面の一覧、すべての画面のHTML ・テーブル一覧、テーブル設計と実データ は、そろっている。 400画面くらいをメンバー10人に割り振って、ひとりあたり、4

    hiyang
    hiyang 2014/05/02
    ストーリーにはパワーがあるな。
  • The Twelve-Factor App (日本語訳)

    はじめに 現代では、ソフトウェアは一般にサービスとして提供され、Webアプリケーション や Software as a Service と呼ばれる。Twelve-Factor Appは、次のようなSoftware as a Serviceを作り上げるための方法論である。 セットアップ自動化のために 宣言的な フォーマットを使い、プロジェクトに新しく加わった開発者が要する時間とコストを最小化する。 下層のOSへの 依存関係を明確化 し、実行環境間での 移植性を最大化 する。 モダンな クラウドプラットフォーム 上への デプロイ に適しており、サーバー管理やシステム管理を不要なものにする。 開発環境と番環境の 差異を最小限 にし、アジリティを最大化する 継続的デプロイ を可能にする。 ツール、アーキテクチャ、開発プラクティスを大幅に変更することなく スケールアップ できる。 Twelve-F

  • CLOC -- Count Lines of Code

    cloc is now being developed at https://github.com/AlDanial/cloc Overview [Translations: Belarussian, Bulgarian, Russian, Serbo-Croatian, Slovakian Ukrainian ] cloc counts blank lines, comment lines, and physical lines of source code in many programming languages. Given two versions of a code base, cloc can compute differences in blank, comment, and source lines. It is written entirely in Perl with

  • ドキュメントベースの単体テストでxUnitを導入する前に考えて欲しいこと | Developers.IO

    ドキュメントベースの単体テスト ソフトウェア開発では、テストケースをExcel等で管理し、テストをテストフェイズで実施する方式(以下、ドキュメントベースの単体テスト)が行われてきました。 ドキュメントベースの単体テストでは、テストフェーズが明確に切られています。テストフェーズでは、テスト担当者がテストを実施し、結果をドキュメントに記録します。必要に応じてエビデンスも残すでしょう。もし、テストが失敗したならば、不具合管理票(バグ票)を起票します。そして、不具合の原因を分析し、仕様書やソースコードを修正します。不具合が修正されたならば、もう一度テストを実行し、不具合がなくなるまでこのサイクルを繰り返し、品質を高めていきます。 このようなドキュメントベースの単体テストは、機能や画面を対象としています。そして、ほとんどの場合は品質保証を目的としています。テスト件数や不具合件数、不具合の発生原因や修

    ドキュメントベースの単体テストでxUnitを導入する前に考えて欲しいこと | Developers.IO
    hiyang
    hiyang 2013/10/22
    読むべき人に届くと良いんだけどな~。
  • バッチ処理を再考する - 急がば回れ、選ぶなら近道

    最近そもそもバッチ処理というものを知らない人達を見ることが多くなりました。某プロジェクトで「いや、ストプロってよくわからないんですよ。最近書いたことないし。」という話をずーっと聞いていたのですが、人はバッチ処理という意味で話していたことが後から判明した、ということがありました。 ああ、この人はSQLでのバッチ処理しか知らないのですね、とちょっと衝撃ではありました。とうとうそーゆー時代になったかと。 まず、誤解のないようにいうとバッチ処理、という言葉自体はIT固有のものではないです。生産管理や物流や、そういった業務では普通に「バッチ」という言葉をIT以外で使います。ただし意味はある程度同じで、「一定の塊を一度に処理をする」ということです。物流システムの業務要件なんかを詰めているとバッチっていうと、どっちのこと?なんて普通に聞かれたりします。その意味ではバッチの対義語がリアルタイムというのは

    バッチ処理を再考する - 急がば回れ、選ぶなら近道
  • オブジェクト指向設計原則 - Strategic Choice

    原則について優れたオブジェクト指向開発のための指針。ただ、、、原則は原則。必ず守らなければならないのではなく、まずそれで考えることが重要。逸脱したとしても正当な理由やトレードオフが説明できればよい。一覧単一責任の原則(SRP)オープン・クローズドの原則(OCP)リスコフの置換原則(LSP)依存関係逆転の原則(DIP)インターフェイス分離の原則(ISP)参考アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技作者: ロバート・C・マーチン, 瀬谷啓介出版社/メーカー: ソフトバンククリエイティブ発売日: 2008/07/01メディア: 大型 Principles Of Object Oriented Designオブジェクト指向設計@Syboos.jpオブジェクト指向設計の原則@それはBooksオブジェクト指向設計原則@ディノオープンラボラトリオブジェクト指向の法則

  • What strategy do you use for package naming in Java projects and why?

    hiyang
    hiyang 2013/04/02
    パッケージ分割方針
  • アジャイルがダメなようでダメじゃないちょっとだけダメだと思う7つの理由 - @ledsun blog

    素晴らしいエントリが立て続けに出ているので便乗します。 id:arclampさんのアジャイルがダメだと思う7つの理由 id:haradakiroさんのアジャイルがそんなにダメだと思わない7つの理由 1.全体スケジュールにコミットできない 主語を間違えやすいけど 経営者は顧客やVCと全体の計画にコミットしなきゃいけない の通りで全体スケジュールにコミットできるのはスポンサーだけなんです。開発者は「努力すること」しかコミットできません*1。 現実問題として、プロジェクトを上手くスタートするにはゴールをいつまでに何かって決める必要があります。アジャイル開発でも重視している。アジャイルサムライはインセプションデッキにかなりのページ数を割いています。 2. アーキテクチャ上の無駄が生じる アーキテクチャ設計を慎重に考えても元のビジネスモデルがウンコだったら役に立ちません。困ったことにビジネスモデルは

    アジャイルがダメなようでダメじゃないちょっとだけダメだと思う7つの理由 - @ledsun blog
    hiyang
    hiyang 2013/03/25
    なんだっけ。フルメタルジャケット?
  • 請負契約がソフトウェア開発者を苦しめている - プログラマの思索

    IT業界仕事していて、何故かデスマーチプロジェクトに数年に1回はぶち当たる。 デスマーチに陥る原因は技術力の不足やプロジェクト管理の能力不足などがあるけれども、IT業界で一般的な請負契約そのものに根原因があるような気がしている。 請負契約が日のソフトウェア開発者を苦しめているのではないかという仮説について考えたことをラフなメモ書き。 【元ネタ】 Twitter / @akipii: 日のソフトウェア開発者を苦しめている根源に請負契約があるという仮設を考えてる。平鍋さんや倉貫さんが試しているアジャイルな契約は請負契約のアンチテーゼと考えると分かる気がする。 Twitter / @akipii: @mr_amichan 請負契約の制約条件は開発者の想像以上にソフトウェア開発者に厳しいのです。請負契約である限り当のアジャイルな開発でないと体験してます。それをうまく説明したい。 Twit

    請負契約がソフトウェア開発者を苦しめている - プログラマの思索
    hiyang
    hiyang 2013/03/21
    請負に替わる契約形態が、顧客にとって魅力的でないとなかなか難しい。
  • 情報処理推進機構:ソフトウェア・エンジニアリング 「アジャイル型開発におけるプラクティス活用事例調査」の報告書とリファレンスガイドを公開

    2013年3月19日公開 独立行政法人情報処理推進機構 技術部 ソフトウェア・エンジニアリング・センター 概要 インターネット販売サイトやSNS(ソーシャルネットワークサービス)等のシステムでは、その構築において要件のすべてが明確にならなくても開発に着手し、要件の明確化や変更には開発と並行して対応します。それは、いかに早くサービスを提供するかに、ビジネスの命運がかかっているからです。 こうした要件の変化に柔軟に対応できる開発手法として、「アジャイル型開発」があります。これは、ビジネス上の優先度が高い順に、短いサイクルで機能単位の開発を繰り返す手法です。 このアジャイル型開発手法は自社開発(内製)が中心の米国で発展したものであり、要件を決めて外部に開発を委託することが多い等、受発注環境が異なる日アジャイル型開発を適用するのは難しいと考えられています(*1)。 「アジャイル型開発」には、

    hiyang
    hiyang 2013/03/21
    現場の生活感漂う事例が載っているのが良い!
  • アジャイル開発におけるプロセスの洗練

    プロジェクト概要 このプロジェクトではWebを使った業務アプリケーションを開発した。期間は6カ月、初めは10人でスタートし、ピーク時の人数は17、8人だった。若手が中心で、アジャイル開発が初めてのメンバーがほとんどである。プラットフォームはJ2EE、OSはLinux、データベースはOracle、アプリケーション・サーバはTomcat。StrutsとHibernateとSpringフレームワークを使用している。HibernateとSpringに関しては社内で調査していたので、技術者はそろっていた状態だった。 実践したプラクティス このプロジェクトではXPやスクラムといった既存のプロセスを意識せず、自分たちなりにアジリティを持って開発していくにはどうすればいいかということを考え、プロジェクト前にプロセスの組み立てを行った。イテレーションは2週間で、以下のようなプラクティスを実践した。XPに含ま

    アジャイル開発におけるプロセスの洗練
  • Developers Summit2013に参加して来ました(一日目)

    Developers Summit2013に参加して来ました。 通称「デブサミ」翔泳社の主催する大規模なITセミナーのイベントです。 「Enterprise」「Social Game」「startup」3つの世界のAction!:Developers Summit 2013 この間行ったCROSSと同じように、いくつかの会場に分かれていろんなセミナーがあるのを選んで聞いていくというものです。 場所は目黒雅叙園になります。 受付 10:00 開始で、開催の案内に10時付近は混むので9時半に来てくださいって書いてあったのですがクズなので9時50分ぐらいに着くように行きました。そうすると、想像以上に混んでてびっくりでした。で、Twitter見てると受付の手際が悪いとかもっと分散処理すべきでは、みたいなドヤツイートがたくさん見受けられたんですが、9時半に来いって書いてるのお前ら読んでないのがそもそ

  • 米国人からコーディングについての怒りのメールを頂戴した - その手の平は尻もつかめるさ

    "米国人からコーディングについての怒りのメールを頂戴した" の補足 - その手の平は尻もつかめるさ ↑の方で補足いたしました。(2012.09.04 追記) 最近、英語のメールでよく怒られます。moznion です。 海を隔てて共同作業しているアメリカ人から、僕のコーディングについてお叱りのメールを頂いたので、 自戒の念を込めて邦訳して記します。 書いてあることは「当然」とも言うべき内容ですが、僕はその「当然」も守れていなかったのかぁ〜と反省。 以下、邦訳(意訳)です。 1. 郷に入っては郷に従え 既にソースコードが存在しているって事は、そこには同時にコーディングスタイルも存在しているってことだ。 その既存のソースコードに手を加える場合、別のコーディングスタイルを導入してはならない。 もし君がバックエンドのソースコードを弄っているなら、バックエンドのコーディングスタイルで記述するんだ。 フ

    米国人からコーディングについての怒りのメールを頂戴した - その手の平は尻もつかめるさ
    hiyang
    hiyang 2012/09/04
    素晴らしい同僚だ!
  • Pivotal Tracker: はじめかた

    Pivotal Trackerをプロジェクトで使うにあたっては、アジャイル開発手法の知識が多少はあると役にたちます。エクストリームプログラミング(XP)であれば、このXPの入門記事をはじめとして、数多くの良質な記事をオンラインで見つけることができます。 ダッシュボードPivotal Trackerにログインすると、まず最初に表示されるのは自分の ダッシュボード(Dashboard)です。このページには、あなたが参加している全てのプロジェクト、最近の活動、Pivotal Trackerからの重要なお知らせが表示されます。 プロジェクトに招待されていれば、プロジェクト一覧にそのプロジェクトが表示されます。プロジェクトのリンクをクリックすると、そのプロジェクトのストーリーを表示します。新しいプロジェクトの作成は簡単です。ダッシュボードで"Create Project"ボタンをクリックし、プロジェ

  • Phacility - Home

    Phabricator is a set of tools for developing software. It includes applications for code review, repository hosting, bug tracking, project management, and more.