2012年12月15日に開催されたDevLOVE2012での「どうしたら良いシステムが作れるのか� - あなたが進むべき道を決めるための�アーキテクチャとマネジメントの話」の資料です。Read less
GoFのデザインパターンとは、「プログラミングのベストプラクティスを体系化したもの」です。このベスト・プラクティスをしっかりと理解して設計すれば、ソフトウェア設計の効率を高めることができます。またデザインパターンが「プログラミングの思想」の共有をよりスムーズにしてくれます。先人たちの試行錯誤の結果を効果的に利用して、プログラミングをもっと楽しんでしまいましょう! 🗻 デザインパターンのポイントGoFのデザインパターンには下のプリンシパルがあります。 変わるものを変わらないものから分離する インタフェースに対してプログラミングし、実装に対して行わない 継承より集約 委譲、委譲、委譲 必要になるまで作るな(You Ain’t Gonna Need It./YAGNI) 🤔 デザインパターン一覧 アブストラクトファクトリ ビルダ ファクトリメソッド シングルトンパターン アダプタ コンポジッ
現代のソフトウェア/サービス開発で構成管理が重要になった5つの理由:DevOps時代の開発者のための構成管理入門(1)(1/2 ページ) 「DevOps」という言葉にもあるように、ソフトウェア構成管理は、インフラ運用に取り入れられるなど、変わりつつある時代だ。本連載では、そのトレンドにフォーカスして、現在のソフトウェア開発に有効な構成管理のノウハウをお伝えする もはや以前の「構成管理」ではない ソフトウェア構成管理はソフトウェア開発の現場で一般的になってきましたが、それを取り巻く状況は2000年代中盤と比較して、ソフトウェアビジネスのトレンドや使用するツールなど、ずいぶんと変わってきています。 読者の方の中にも「Gitそろそろ覚えないといけないのかな?」「Jenkinsって何がうれしいのだろう?」「開発のサイクルが以前より短くなって大変だな」などと感じていらっしゃる方もいらっしゃるのではな
Seleniumを使ったWeb UIの自動テストシステムを作ったので、やったこと・感想などをまとめてみます。 テスト対象 テスト対象は、AJAXなWebアプリです。 サーバーはREST APIを提供するのみで、UIは全てJavaScriptという構成。 サポートブラウザはIE7以降,Firefox3.6以降。(特定の組織内で使うものなので、Operaなどは未サポートです。) 使用したSelenium 2.x 系列を使いました。 WebDriverと統合されたあとのやつです。 言語はJavaを使用。 テストの目的 以下を目的としました。 機能追加/不具合改修でのデグレード防止 機能追加や不具合改修に伴う動作不正を検出し、デグレードを未然に防止する。 動作確認コストの削減による開発効率の向上 ブラウザごとの動作確認を自動テストを利用して行うことで、機能実装時の確認工数を減らす。 リリース前のリ
2012/10/09に開催された『SIエンジニアの自分戦略 -急がば回れ、選ぶなら近道-』のノートです。 SIをやっている人には是非読んでほしいです。私のノート作成スキルを割り引いてもさておいても …です。 ※(2012/10/10追記)上の文について、言葉の選び方が不適切だったので修正致しました。「私の資料作成能力の限界で、okachimachiorz1様の伝えたいことの半分も伝わっていないかもしれない。だけど、それでも読む価値がある内容です」ということが、上の文で私が言いたかったことです。申し訳ないです。 ◆今日の勉強会について ◇今日の構成 ・最初にokachimachiorz1様の話を40分くらい ・その後休憩を挟んで来ている人達で感想、深く聞きたいということを皆で話合う ・Q&A ◇この回をやろうと思った経緯 ・okachimachiorz1様のブログを一生懸命呼んでいるうち、そ
JavaScriptテストの基礎知識と使えるフレームワーク6選:フレームワークで実践! JavaScriptテスト入門(1)(1/3 ページ) しっかりとJavaScriptの“テスト”を行うために、最近のJavaScript事情やテストを取り巻く環境、今注目のテストフレームワークを6つ紹介する JavaScriptでもテストを書こう @ITの読者の方たちのほとんどは、どのような言語を主に利用しているのかなどの違いはあるにせよ、日常的にプログラムを書いている方たちが多いかと思います。 アプリケーションを作る、ライブラリを作成する、オープンソースプロジェクトに貢献するなど、皆さんがプログラムを書く場面はそれぞれいくつかあるはずです。それらプログラムを書く場面に共通して大切な習慣の1つとして、「作成するプログラムに対しては必ずテストコードを書く」ことがあるのは、誰にでも同意してもらえることでし
オペレーションとかインフラ系のエンジニアリングからは少々離れそうなので、個人的な備忘録がてら、Gitのブランチモデルについて。淡々と書くよ。 見えないチカラ: A successful Git branching model を翻訳しました 基本的に、このA successful Git branching model(上記は翻訳記事)を参考にしています。ですが、完全ではありません。運用しながら都合よく省略していますし、悪く言えば曲解もしています。あくまで、わたしが都合良く解釈して取り回した結果と考えてください。 さて、このようなドッシリとしたブランチモデルが、あらゆる規模のプロジェクトに対して有効であるかといえば、もちろんそうではありません。コツコツ個人で開発しているライブラリなどは、ブランチを使わなくても良いケースがあるでしょうし、作ってもバージョン番号ブランチぐらいのケースだってザラ
取締役 執行役員CTO 開発本部長 藤本 真樹氏 2005年6月にGREEに入ってから7年が経ちました。 GREEでは開発全般を見ていて、最近はインフラよりもクライアントの方を見ますが、元々はサーバーサイドよりの人間なので、今回こういう話ができて嬉しいです。 今回のお題でサーバーサイドに関して話してみては? と言われて、すごく困ってしまった。 何故かというと、大規模サービスを普通にやるテクノロジーのコモディティ化が進んだからです。 10倍のユーザーが来た時にどうすればいいのかというのは、インターネット上にいっぱい情報が既にあり、それを支えるオープンソースのプロダクトや、クラウドサービスなど解決策がいくつもある。 Agenda 1.Infrastructure for over 100,000,000users 2.Infrastructure for global ser
FuelPHP へようこそ FuelPHP はシンプルで、フレキシブルな、コミュニティにより開発されている PHP 5 用の Web フレームワークです。現在のフレームワークに対する不満から産まれ、開発者のコミュニティからサポート、支持されています。 FuelPHP はとても移植性が高く、多くのサーバで動き、そして、とても綺麗な構文のフレームワークです。 クイックインストール もしあなたが今すぐに Fuel を試したいと思うなら、高速インストーラを使ってみてください。curl ライブラリを使用し、oil の必要最小限のバージョンをインストールできます。それから、Fuel の新しい完全なアプリケーションを作成できます。 # oil を Web からクイックインストールします $ curl get.fuelphp.com/oil | sh # oil が、たった今、インストールされました。Si
こんにちは!志田です。 最近ドラクエモンスターズを購入しました。 だいあくまの書・シュプリンガー・メッサーラのパーティでがんがんいってます。 配合を繰り返していると、「この組み合わせ、AにもBにもなるのに!どっちが強くなるんだろう?」ということがたびたび起こります。 そんなときに使えたらいいのが、今回ご説明するブランチです。 前回のあらすじ 前回の記事では、バージョン管理と基本的な動作について、ご説明しました。 ・バージョン管理にgitを使おう! ・コミットを繰り返し、キリのいいところでプッシュする ・コミットを重ねることでバージョン管理ができる こんな経験ありませんか みなさん、これまでの経験で、こんな経験ってありませんか? ・直すことによる影響範囲が広いため、もしきちんと改修できて、テストもできたら安定バージョンに含めたい 今まで何度もコミット・プッシュを重ねてきたプロジェクト。現在は
AngularJS support has officially ended as of January 2022. See what ending support means and read the end of life announcement. Visit angular.io for the actively supported Angular. Why AngularJS? HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resu
00:08YouTubeの動画を再生する方法について書いてみた。以下のようにするだけでアプリケーションから直接YouTubeから動画を再生できる。 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM"))); http://www.youtube.com/watch?v=cxLG2wtE7TMの部分は適宜自分の再生したい動画のページのURLにしてください。YouTubeの検索結果を表示させたい場合は以下の方法でYouTubeの検索結果を表示できる。 Intent intent = new Intent(Intent.ACTION_SEARCH); intent.setPackage("com.google.android.youtube"); i
Javaすら知らなかった私が5日間でAndroidアプリをリリースするためにやったこと。 最終更新日: 2015/09/03 Android開発 久々にプログラミングをしました@sayobsです。表題にある通りはじめてリリースしたiPhoneアプリ「iOkinawa!」をAndroidでも5日間で作ってみました。 題名は前回iPhoneアプリをリリースした時と同じようにしました。 C言語すら知らなかった私が2ヶ月でiPhoneアプリをリリースするまでにやった事。 | Last Day. jp2ヶ月間独学で勉強したiPhoneアプリが遂にリリースされました。今日は私が実際にどのように2ヶ月でiPhone… 作ろうと思ったきっかけ✔GALAXY S II LTE SC-03Dを買って前々からAndroidアプリを作ろうと思っていた。 ✔先日沖縄に行った際Androidユーザーの方に「iOkin
どうすれば小規模なチームでも大きな成果を出せるのか。大きな組織で沢山の量をこなすのは当たり前のことで、あまりクールではありません。少ない人数でも大きな成果を出すには、スピードをあげることと、そのためにも無駄をなくすことがポイントになってきます。 ソフトウェアをつくるための3つの役割で書いた通り、ソフトウェア開発をクラウドのようなサービス提供で続けていくには、プロダクトオーナーとプログラマーがキャッチボールのような形で、仕様と実装をずっと繰り返しながら作っていくのが自然です。 SonicGardenで使っているツールと開発の流れの全体は以下のようになります。大事なことは「動くソフトウェア」の状態を保ったまま、どれだけ回転数をあげていけるか、ということです。そのために、プロダクトオーナーとプログラマの間で待ち時間を減らすために並行して進めるようにするなど工夫しています。 ホワイトボードとMVP
最近とにかく、移動が多いので、その中でちょいちょい考えたことをまとめておきます。まずは仕様の理解の仕方とか、業務例外とか、押さえておきましょうという視点から。別にこれが正解で必須というわけではないので、あくまで個人の経験をまとめただけです。 モデリングとか、なんというかそういう高尚な話ではなくて、実際に仕様をまとめるときに、現実的に落ちる穴を、経験的に書きます。大抵のプロジェクトでは、仕様が固まらずに、または手戻りが発生して酷くコストが膨らむということがやはり多いわけで。理屈はともかく自分の経験的な対策案です。 (なんというか、開発方法論や手法・ドキュメントのまとめ方は、なんとかBOKから始まって、アジャイルや押しくらまんじゅうやらでいくらでもであるのですが、その一方で丁寧な要求定義や設計それ自体ができる人材は、むしろ急激に減っているような印象すら受けます。海外からの翻訳や輸入はやたらと多
OS や、動かしたいアプリケーションに依りますが、ruby の実行環境の構築は大変です。 というのも、ruby 本体、rubygems、各 gem などのバージョン指定が交錯していて、ruby の ecosystem に慣れていない人にとっては、なにがなんだかわからないからです。 こっちのツールを動かそうとすると、こっちが動かなくなる、みたいなことになります。rubyists は、バージョンの問題を吸収するためのツールを使ってこの問題に対処していますが、ruby に詳しくなくて、ただ ruby 製のツール(たとえば Redmine)を使おうとしている人は分からないでしょう。 そういう人が ruby に挫折しないように、事実無根な中傷をしないように、最近流行のツールで、バージョンミスマッチの問題をおこさない方法を説明します。この説明が対象としているのは UNIX,LINUX 系の環境だ
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます ここ数年、ソフトウェア開発の世界は比較的穏やかだった。しかし、HTML5が地歩を固め、Windows 8がWindowsの開発シーンに大きな変化を迫っている今では、ジェットコースターの日々が戻り、スピードはますます上がってきている。もし最先端に居続けたいのなら、少なくともこの記事で挙げる10のソフトウェア開発スキルを身につけることを検討すべきだ。 1.モバイル開発 モバイル開発を学ぶのに時間を割く価値などないと考えているのなら、考え直した方がいい。2011年のAndroid携帯の世界出荷台数は、ほとんどPCの販売台数と同じだ。他の有名なモバイルデバイス(iPhone、iPad、そして「瀕死状態」のRIMデバイス)を加えれば、販売台数で見
ソフトウェアを中長期にわたってメンテナンスしていく場合、メンテナンスしやすいコードと、メンテナンスしにくいコードとの間には、同じ機能を実現していたとしても、その価値には雲泥の差があります。 メンテナンスの容易さを示す言葉として、メンテナビリティ(Maintainability)という言葉がありますが、私自身、アプレッソでDataSpiderを11年間開発・メンテナンスしていく中で、「この人の書いたコードは本当にわかりやすいし無駄がない」とメンテナビリティの高いソースコードに感心させられることもあれば、「急いでいたとはいえ、このソースコードはリファクタリングしないと・・・」と、メンテナビリティの低いコードがソフトウェアに混入してしまったことを嘆くこともありました。 このエントリでは、一本のソフトウェアを11年間開発・メンテナンスしてきた経験から、ソフトウェアのメンテナビリティについて考察して
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く