Digital is borderless and so are we. Our global network spans 20 countries and 33 cities, blending cultures, insights and experience from the best in the world allowing us to tackle the toughest challenges.
![ページが見つかりません | モンスターラボ グループ](https://cdn-ak-scissors.b.st-hatena.com/image/square/3ad256dd84ac5602e265b258eee79dc069fc31f1/height=288;version=1;width=512/https%3A%2F%2Fmonstar-lab.com%2Fbuilder%2Fassets%2FMonstarlabOGP.png)
最近、なんというか、フロントエンド勉強会に出席する度に、「フレームワークじゃねぇんだ! MVC設計がな! 」とか言い続けている気がする。たくさんフレームワークが出てきて、○○フレームワークの問題とか、開発の困難の話を聞く度に、自分の設計を棚に挙げて、「これは、フレームワークがスケールできないせいだ!」「jQueryが糞」とか言ってて、「何言ってんの?コイツ?」みたいな気分になる。 最近になって、なんでこの状況がいつまでたっても変わらないんだろう? って理由が分かってきた。フロントエンドできない人が、フロントエンドやりすぎなのだ。 なんでフレームワーク使うの? そもそも、なんでフレームワークを使うか?ってことに答えられない人が多い気がする。というか、大抵「上司が決めたから」とか「チームで決まっているから」という答えが返ってくる。そもそも、フレームワークを強制して学習させる環境になっている現場
自社で使用するシステムを開発する、とする。 このとき迂闊にやっていると、気付いたら過去に構築したシステムのメンテナンスにばかり時間をとられ、新しいコードがぜんぜん書けていない、という状況に陥ることがある。 こうなると地獄だ。新規の興味深いコードを書くなんてとんでもない、という状態になる。メンテナンスコストを下げるためのコードすら書けなくて永遠に悲惨な撤退戦を繰り返すことになる。絶対に避けなくてはならない。 ということで、自分が心掛けていることをざっと書く。 全く手を入れずに動き続ける状態を最初に作る もちろんシステムというものは生き物なので、ある程度のメンテナンスコストが必要になる。特に会社というものは生き物なのでシステム周囲の環境は常に変化する可能性がある。データ連携している別のシステムの仕様が変われば、当然そのデータを利用する側も対応しなければならない*1。 ということで、システムには
タイトルに書かれていることで全てなのですが、DDDとCQRSの併用について強調している日本語の情報が少ないので、軽くまとめておきます。 CQRS+DDD CQRS(コマンドクエリ責務分離)とは、サーバの機能を「コマンド」(副作用あり)と「クエリ」(副作用なし)で完全に分けちゃおう、という考え方です。そもそも「コマンド」と「クエリ」ではあらゆる要件が異なります。 一貫性: 「コマンド」は整合性のある処理が必要、「クエリ」はあまり気にする必要なし ストレージ: 「コマンド」側は正規化してデータを保存したい、「クエリ」側は非正規な方が効率的 スケーラビリティ: 「コマンド」は全体の負荷の中で占める割合が少ない、「クエリ」は負荷が大きい なので分けちゃうわけですが、 コマンド側 複雑なビジネスロジックが絡むので、ドメイン駆動が活躍 クエリ側 複雑なビジネスロジックがないので、ドメイン層はスキップ
怖話を作っていてインフラを含めた設計で迷っている箇所がいくつか溜まってきたのですが、もしいい方法があったら教えて欲しいという点をブログに書いていきたいと思います。 前提 エンジニアは僕一人だけなので極力手間を減らしたい怖話は広告モデルなのでアクセス辺りの収益が低い。なるべく安く(できれば無料に)したいデザイナーやインターンの人も開発するので複雑にしたくない(例えば怖話をローカルで開発する環境を作るのにredisとかfluentdとかいろんなサーバープロセスを立てないと画面が確認できないとか) 画像の置き場所に困る怖話はアクセス負荷的にappサーバーの2台目が必要かな?ぐらいの状態にあります。 appサーバーが複数台になると画像などのアップロードされるファイルの置き場を共通にする必要が出る。 一度はappサーバー2台でS3 + CloudFrontにしましたが、転送料が高いからappサーバー
Photo by Davidlohr Bueso 今回のpaiza開発日誌は片山がお送りします。 paiza運営元のギノでは、これまでも不定期で社内勉強会を何回かやっていましたが、エンジニアの人数が増えてきてスピーカーの頭数が揃ったので、社内勉強会を定期開催する事にしました。 9月の頭に第一回目の「自社サービスエンジニアの為のUX設計、情報設計勉強会」を開催したので、今回はその内容を共有してみようと思います。 ■今回の勉強会の目的、背景 paizaの開発部隊はそれぞれ色々なバックグラウンドを持ったメンバーで構成されているのですが、普段の業務の中だと、なかなかそれを共有する機会や、お互いを深く知る機会が無いものです。そこで過去の仕事の事だったり、得意分野についての共有を順番に発表する形で社内勉強会をやってみる事にしました。 業務的なTipsの共有も重要ではあるのですが、普段の業務の周辺領域だ
バッチ処理とは 前回はWebアプリのアーキテクチャ設計の基礎を解説しました。今回はバッチ処理を円滑に行うためのアーキテクチャ設計のポイントを紹介します。 バッチ処理とは、蓄積された複数件のデータを、まとめて一括処理する処理形態のことを指します。このような処理形態においては、大量データの処理を一定時間以内に完了させるためのアーキテクチャを、さまざまな角度から検討していく必要があります。 また、画面オンライン処理とは異なり、ユーザーとの対話なく処理が進められます。よって、バッチ処理の途中でエラーが発生した場合の対応を考慮して、アーキテクチャを設計しなければなりません。バッチ処理の基本についてより深く知りたい方は、下記参考記事をご参照ください。 参考リンク:鉄板焼のお店から学ぶ、バッチ処理"超"入門(@IT) バッチ処理におけるアーキテクチャ設計時の検討ポイント バッチ処理のアーキテクチャを考え
初心者と中級者、上級者の違いとは何でしょうか? 初心者は、 知識が少ない 開発したソフトウェアの数が少ない 中級者・上級者はその逆で、 知識が多い 開発したソフトウェアの数が多い その結果生まれる実質的な差は、 「初心者はかんたんなものしか作れないけど、中級者・上級者は難しいものを作れる!」 ということです。ですから、初心者が中上級者になるには難しいソフトウェアを作るのに役立つ知識を身につければ良いわけです! 難しいソフトウェアとは、 ロジックが複雑で難しい 規模が大きい 性能要件が厳しい 納期が短い など、いろいろな難しさがあります。 これらのハードルに対抗する知識・技術について紹介します。 規模が大きいソフトウェアを作るための技術 規模が大きいソフトウェアを作るための技術には、以下のようなものがあります。 モジュール分割 アプリケーションアーキテクチャ フレームワーク プログラミング作
Percona MySQL Webinarsの発表(MYSQL開発でやってしまいがちな致命的なミスについて)のQAをご紹介します。 本発表はSQLアンチパターン著者のBill Karwinさんの発表です。 オリジナル: http://www.percona.com/resources/mysql-webinars/how-avoid-even-more-common-deadly-mysql-development-mistakes July 17, 2014 by Bill Karwin 水曜日に「MySQLを開発する上でよく起こる(そして致命的な)ミスをどのように回避するか」をPercona MySQL webinarsで発表した。お見逃の際は、ビデオとスライドを見る為に登録すればまだご覧にいただける。 参加いただいた皆様、そしてとりわけすばらしい質問をしていただきありがたく思っている
今さらなのだけれども、「エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)」を読んだ。仕事で活用できるかと問われると微妙だけれども読んで良かった。避けていたのはいろいろな誤解があった。複雑なソフトウェアを作る為の考え方。 エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) 作者:エリック・エヴァンス発売日: 2011/04/09メディア: 大型本 Eric EvansがDDDのアイデアを著書のドラフトというかたちでWeb上で公開し始めた2002年以来、この知恵の書は多くの識者の間で話題の中心となり、「徹頭徹尾有用な書籍(most thoroughly useful book)」とまで評された。記述されている内容の一言一句すべてにおいて役に立つことしか書かれていない、と賞賛
あらためて見直す、ITアーキテクトの役割:徹底解説! ITアーキテクトとは何か?(1)(1/4 ページ) テクノロジ活用の在り方がビジネスに与える影響が増している今、ITアーキテクトの重要性もより一層高まっている。ではITアーキテクトとは何か? 大手SIer、TISのITアーキテクト、熊谷宏樹氏がその役割とポイントを現場視点で徹底解剖する。 ITアーキテクトの仕事とは? 昨今のシステム開発の現場は、戦々恐々としている。大規模・複雑化、短納期化の中で、業務要件を満足させるハードルは年々上がっている。このような状況下では、専門分野別の高度な技術者の分業体制で、多種多様な技術を駆使してプロジェクトを進める他に道はないと考えられる。そうした専門技術者の中でも、「ITアーキテクト」の重要性は日に日に増している――。 近年、私は日々のプロジェクトの中でこのように感じることが増えています。例えば昨今、企
「詳細設計書F**k」「SIer、Sxxt」的なお話は定期的に(日常的に?)ネットやTwitterのタイムラインを賑わせているように思います。つい先日もそんな感じのblogエントリが少しバズっているのを目にしました。 よくdisられる感のある詳細設計書*1。これは作られるのでしょうか。必要だから?ではなぜ必要? 『最近の開発では詳細設計書は必要ない』というニュアンスの発言も耳にします。では昔は必要だったのでしょうか。そもそも何のために生まれたのでしょうか。 ……話しは変わりますが、今私はちょうど、年度末のアレコレでとても現実逃避したい気分だったりします。ということで、気分転換に、昔のことを思い出しながら与太話を書いてみたいと思います。 これから書くお話は、以前 ― 正確な時期は覚えていませんがおそらくは10年前くらい ― 私がSIerに勤務していたころ、今でも尊敬している大先輩のエンジニア
わたしは、情報システムと呼ばれているものを作った経験がないので、よくわからないのだが、世の中には詳細設計書というのがあるらしい。 下記参照。 http://gm7add9.wordpress.com/2012/11/30/%E8%A9%B3%E7%B4%B0%E8%A8%AD%E8%A8%88%E6%9B%B8/ プログラムの詳細設計をやる人というのがいて、その人が書くらしい。あくまで自分には経験がないので、伝聞、想像でものを言っている。 プログラムの詳細設計というのは、プログラムへの要求仕様というのがあって、それを実現するために書くらしい。要求仕様というのは最終的な利用者が、こーゆーものが欲しいとか、こーゆーことができたらいいなということを、なんらかの方法で、なんらかの形でまとめたものらしい。 そんでもって、要求仕様を作る人と、詳細設計を作る人と、プログラムを作る人と、テストをする人と、
1990年代のインターネットというのは利用者も少なく閉じた世界観があって、自由というもののある種の見えない掟みたいなものがあった。あったのかもしれない。当時ネットニュースという掲示板みたいなものがあって、今で言うところの中二病をこじらせたいい歳をした大人たちが日夜あーでもないこーでもないと言い合っていた。 fjというネットニュースがあって、日々いろいろな話題が議論されていた。あなたの会社のエラい人も若い頃、そのネットニュースに書き込んでいたかもしれない。若き日の(15年前)まつもとゆきひろさんとかがいるよ。 たまたま、そのころのニュースを発見して、あまりの懐かしさにここに再掲することにする。若き日の、あの人やこの人の中二病時代の書き込みである。 編集解説はわたし。それ以外は、当時の誰か。 https://groups.google.com/forum/?hl=ja#!topic/fj.co
ツイート今日は、第 1 回のSQL アンチパターンの回から良コンテンツを提供しまくりなエンバカデロ・テクノロジーズさん主催の第 3 回 DB エンジニアのための勉強会に参加してきました。 今回は 漢(オトコ)のコンピュータ道で有名な漢の中の漢、 @nippondanji 氏がデータベース設計を徹底指南してくれるということで、元々 DB エンジニアがバックグランドのわたしとしてはいかないわけにはいかんだろう、と喜び勇んでいってきました! 内容はというと下記の概要をカバーする内容でした。 リレーショナルデータベース(以下RDB)は登場してからかなりの時間が経っています。その名が示すように、RDBはリレーショナルモデルをベースに考案されたソフトウェアです。しかしながら、未だに現場ではRDBが使いこなされているとは言いがたく、リレーショナルモデルへの理解も進まず、誤った常識が跋扈しているのが現状で
この元増田は他の業界のものも含めて設計をお願いしたことって多分無いと思うんだよ。 家の場合だったら、普通は設計図と各パーツの詳細見積りで初めて契約だろうが。 見積りの根拠出してくれっていったら、金くれって言われたよ その設計図は増田が事細かに出した要望を元に一から作ったものなの?って話。 つまり、出来合いのものを適当に組み合わせたものには設計料は掛からないし、そうじゃないものには設計料が掛かるってだけの話ですね。 当然だけど、システムの設計もただではない。大まかな流れを示すと以下な感じ。ちょっと適当。 ・発注元に(ちゃんとした)システム部がある場合 要求仕様を作成し、それに基づいた提案をシステム会社に依頼する。この時点で要件がある程度はっきりしている場合、概要設計を元にした詳細見積もりが可能。出来合いのものを流用できるような要件であれば精度は高く、そうでなければ概算部分が生じる(要件定義フ
システム屋の常識ってものが分からないのですが・・。 社内の業務をいくつかIT化することになった。ACCESSとかでも頑張ればできそうな感じだったんだけれど、システム屋にやらす方向で進めることになった。 何社かシステム屋呼んで、こっちのやりたいことをいって、概算金額出させてた。この時出てきた金額が350万~2200万。こんな簡単なシステムなのになんでこんなに金がかかるのか・・。なんでこんな差があるのか・・。(この時点でシステム屋業界に対しての不信感が社内に生まれることになった。)結局、一番低い金額で出してきたところが、営業の印象もなかなかよく、そこに決めることになった。 その後、細かい金額出させるために何度か呼んで、必要なことを事細かく伝えて詳細見積りとスケジュール表を出せっていった。それで出てきたのが、A3の紙1枚で4項目ぐらいのざっくり見積りと、設計期間・製造期間・動作確認期間っていう期
昨年の10月14日、米Yahoo!のトップページがダウンしたと、米Huffington Postが記事「Yahoo DOWN: Yahoo.com Outage Reported」で伝えました。米Yahoo!にとってトップページがダウンすることはきわめてまれなことで、この件が発生するまでほぼ10年にわたりトップページのダウンは起きていなかったと言われています。 その米Yahoo!はシステムダウンを防ぐためにどのような取り組みをしているのか? 米オライリーが主催したイベント「Velocity 2011」で、Yahoo!サービスエンジニアリング部門のVice President、Jake Loomisが行ったセッション「Why the Yahoo FrontPage Went Down and Why It Didn't Go Down For up to a Decade before Th
最近そもそもバッチ処理というものを知らない人達を見ることが多くなりました。某プロジェクトで「いや、ストプロってよくわからないんですよ。最近書いたことないし。」という話をずーっと聞いていたのですが、本人はバッチ処理という意味で話していたことが後から判明した、ということがありました。 ああ、この人はSQLでのバッチ処理しか知らないのですね、とちょっと衝撃ではありました。とうとうそーゆー時代になったかと。 まず、誤解のないようにいうとバッチ処理、という言葉自体はIT固有のものではないです。生産管理や物流や、そういった業務では普通に「バッチ」という言葉をIT以外で使います。ただし意味はある程度同じで、「一定の塊を一度に処理をする」ということです。物流システムの業務要件なんかを詰めているとバッチっていうと、どっちのこと?なんて普通に聞かれたりします。その意味ではバッチの対義語がリアルタイムというのは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く