2014.09.21 DDD読書会@大阪 LT大会用資料です。 DDD本の参考文系を調べることで、DDDの思想に少しでも触れればと思いまとめてみました。

エンジニアが年を取るとはどんなことだろう。年を取ることのデメリットとメリット、加齢に対する心構えを筆者自身の経験を基に語ってくれた。 ← 前回 連載 INDEX 次回 → 今回は割と語り尽くされた感のある話題であるが、歳を取ってもエンジニアが続けられるのかという話をしてみたい。最初に結論から言ってしまえば、歳を取ってもエンジニアは「もちろん続けられる」なのだが、そうはいっても老化というのは否応なしに全ての人の身に降りかかってくる(将来は遺伝子研究が進んで老化というものがなくなるのかもしれないが)。 30半ば過ぎの方は、最近物忘れが段々と増えてきたり、あるいはもともと視力の良い方であれば近くが見えづらくなってきたりと、このままエンジニアという職を続けてよいのだろうかと不安を抱えているかもしれない。今回は、老化への対処について具体的に取り上げたい。また、老化には負の側面だけでなく、プラスとなる
友人からこんなコメントをもらった。「最近 bk ノートが、何か困ると同僚に聞きに行くキャラになりつつありますよ。もっと上から目線で書かないと。するとカコイイ! とか言ってくれる人が出てきますよ」 そんなことを言われても、困ったら助けてもらうというのは事実なんだからしょうがない。そもそも、自分の弱さを認めるが強さの始まりというものだ、うんぬん。こんなことを書けば上から目線っぽい?。。が、やっぱりやめておこう。 話を変える。既存のコードをちまちまリファクタリングして、少しだけ新しいコードを追加して、デバッグして、なんてことを年がら年中やっていると、一から自分でコードをバリバリ書けたらどんなに楽しいだろう、なんてことを考えることがある。大きなプロジェクトの中で何かをやっていると、そういう機会は滅多にない。ぶつぶつ言いながら既存のコードをいじくりまわしていることの方が多いのだ。 が、あるとき、ひと
original: The Product Management Triangle (by Dan Schmidt) (translated by ninjinkun, reviewed by Kosuke) はじめに プロダクトマネジメントは多くのソフトウェア企業が重要だと認識している役割だ。それにもかかわらず、「プロダクトマネジメント」を正確な言葉で定義することは驚くほど難しい。自らを「プロダクトマネージャー」と呼ぶ人々は、企業ごとに全く違うことをやっている。彼らは異なるタイプのプロダクト、異なるタイプのチーム、異なる組織構造の中で働いている。このプロダクトマネジメントの立場の違いは、とても不毛だ。外の立場から見ていると、同じ肩書きの仕事を参照する際に、誤解を引き起こしているように見える。全てのプロダクトマネジメントの仕事を統合して、共通の話題を抽出しようとすると、価値を説明しようとし
白ヤギの開発者の森本です。 白ヤギでは Go 言語でニュース記事のキュレーションをする カメリオ API というサービスを開発しています。約1年2ヶ月前、Go を使って開発し始めたときに当時調べた内容を整理して以下の記事を書きました。 Go言語で API サーバーを開発する 1年以上に渡り開発を継続してきて変わったこと、変わってないことなどをざっくばらんにまとめてみます。たまたま過去の記事のはてブコメントを見返していて 以下のコメント を見つけました。 最近 golang 導入事例増えて来たけど、導入後一年くらいのメンテナンスフェーズな事例について聞いてみたい。継続的デリバリーみたいなの。まだ早いのかな? まだまだメンテナンスフェーズにはなっていなくて現在も活発に開発中ですが、継続的デリバリーについて白ヤギでは特別なことをしてなく、ansible を使ってデプロイしているのみです。Go 1
良くあるダメなエラーメッセージ エラーが起きたときは、以下のようにエラーメッセージをどこかしらに出力すると思います。 $c->log->error('something wrong!'); ただ、このエラーメッセージって、実際に発生したときには意味がわからないことが多いのです。 $c->log->error('error!'); 本気でこういう「error!」とだけ吐くメッセージだと、エラーが起きたことしか伝わってきません。程度の差はあれ意味のわからないエラーメッセージはこの世にあふれているかと思います。 機械的なエラー情報 そういうわけで、たいていは Exception クラスや Logger クラスで多くの補助が受けられるようになっていると思います。 発生時刻 発生場所 stack trace 変数の状態 ただ、このような機械的な情報だけだと、結局、運用上は対応が難しい場面ってのが多か
Amazon、クラウドIDEを提供する「Cloud9」買収。AWSが統合開発環境をSaaSとして提供する布石か Webブラウザから使える統合開発環境、いわゆるクラウドIDEを提供するCloud9は、Amazon.comに買収されたと発表しました。 We will be joining the Amazon Web Services family, and we're looking forward to working together on terrific customer offerings for the future. 私たちはAmazon Web Servicesファミリーに合流する予定です。私たちはすばらしいお客様の未来に向けてともに働けることをとても楽しみにしています。 (Cloud9のブログ「Great News!」から引用) Cloud9はクラウドIDEを提供しているベ
イントロ 例外処理を書くことはよくやっているのだけれど、その時の主軸となる考え方について、今までなんとなくで行っていた部分が多かった。 毎回考えるポイントは例えば以下のような疑問。 どこのレイヤーで、どこまで例外処理を行えばよいのだろうか? どの例外をキャッチし、どの例外を伝搬させればよいだろうか? 前提条件をチェックし、失敗した場合、例外を出したほうがよいか、nil, false を返すほうがよいか? 例外をどういう単位でラップさせるのが良いだろうか? 例外をチェインし過ぎると却って煩雑になる気がする。どうすれば良いのだろうか。 しかし、この辺りの話って、API の設計だったり、仕様の影響もあるので、都度対応が異なってしまうもの。 したがって抽象化して理解することが難しく感じた。 とてもよく使ってるし、とても大事な事なことなのに。 そんな今更な事で悩んでいた時に、Effective Ja
ここ最近、自分が見ているプロジェクトの1つで、うまくスケジュール通りに作業が進んでいなかったので、その対策をした。 その中でも特に効果があった2つを紹介する。 背景 簡単にプロジェクトの背景を説明する。 スクラムっぽい開発をしている スプリントの期間は2週間 スクラムマスターはいるが専任ではない すでにリリース済みで運用中のWebサービスである 基本的によくあるスクラムっぽい感じで、2週間というタイムボックスの中にチームが作業可能なストーリーを突っ込んで、ひたすら消化する。 スプリントの最後には、レビューをして、次のスプリントの計画を立てる。 スクラムマスターは、一応自分が担当しているが、専任ではないし、他のプロジェクトも見ているので、注意深くチームを見れていない。 課題 以下のような課題があった。 バグの修正や問い合わせ対応など、計画時に含まれていなかったタスクがスプリント中に増えてしま
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに Railsアプリケーションを本格的に作り込んでいくと、「エラー」とは無縁ではいられません。 しょうもないバグでエラーが発生することもありますし、ほとんど不可抗力ともいえるような大規模なネットワーク障害でエラーが発生することもあります。 エラーの種類がなんであれ、エラーが起きた場合は「原因を素早く特定し、速やかに復旧させること」と「あるエラーが引き金になって、さらに大きなエラーに引き起こさないようにすること」が重要です。 エラー処理を適切に実装していれば、原因の特定や復旧もすばやくできますし、さらに大きなエラーを引き起こす可能性
by Tobias van Schneider first appeared on my private email list. 私が「割れ窓理論」に出会ったのは、数年前、当時働いていたSpotifyの同僚が勧めてくれたのがきっかけでした。 「割れ窓理論」とは、地下鉄の落書きを消したりすることで都市の環境をきちんと整備すると、破壊行為や路上飲酒といった小さな犯罪の発生率が下がり、街に秩序を好む雰囲気が生まれるというものです。そして、それがより深刻な犯罪の発生を減少させるというのが最大のポイントです。 比較的最近のニューヨークの例を紹介しましょう。1990年代にニューヨークの犯罪発生率は劇的に下がりました。重大犯罪がこの期間アメリカ全土で28%減少したのに対し、ニューヨークは56%以上も減少しました。どうして短い間にニューヨークの犯罪発生率はこれ程大きく落ち込んだのでしょう? 一般的に、こう
Joel Spolsky氏の新サービス「HyperDev」ベータ公開。アカウント不要、Git不要、サーバ申込不要、OSやミドルウェア不要。超簡単なフルスタックのWebアプリ開発環境 元マイクロソフトのプログラマで、エンジニアのコミュニティStackOverflowを立ち上げたジョエル・スポルスキー(Joel Spolsky)氏が、新サービス「HyperDev」をベータ公開しました。 HyperDevはWebブラウザから使えるWebアプリケーションの統合開発環境です。バックエンドにはNode.jsも立ち上がっています。 スポルスキー氏はHyperDevの特長を次のように説明しています。 アカウント作成不要 Git不要、そのほかのバージョンコントロールも不要 ネームサーバなどの操作不要 ホスティングへの申し込み不要 サーバのプロビジョニング不要 OSやLAMPやNode.jsサーバなどあらゆる
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 弊社に5年間在籍していたロシアの天才ハッカーが先日退職しました。 ハッキング世界大会優勝の経歴を持ち、テレビ出演の経験もある彼ですが、正直こんなに長く活躍してくれるとは思っていませんでした。彼のようなタレントが入社した場合、得てして日本の大企業にありがちな官僚主義に辟易してすぐに退職するか、もしくはマスコットキャラとして落ち着くかのどちらかのケースがほとんどなのですが、彼は最後まで現場の第一線で活躍してくれました。 そんな彼が最後に残していった退職メールがなかなか印象的だったので、その拙訳をここに掲載します(転載について本人同意済み。弊
元糞コードマイスターとしては、生産性については思うところある。 技術的到達深度が深い人じゃないとそもそもかけないコードってのももちろん存在して、その前提で10倍とか100倍になりうる話をする。 そもそもマイナスになる人がいるって話。 隠しパラメータをモデル化 エンジニアA:「週に10の成果を出して3の負債を生む人」を考える。この人は開発を止めてリファクタリングをすれば10-3 = 7の技術的負債を返却できるとする。 ここで正確には成果10には* aの係数が掛かっている。これはプロジェクト開始時1.0で、技術的負債が貯まるほど0に近づいて行く 次に、エンジニアB:「週に15の成果を出して10の負債を生む人」を考える(これにも係数aがかかる)。この人は見た目上は上の人の1.5倍速く成果を出しているように観測できるが、負債もたまりやすい。リファクタしても綺麗になりにくい。 これは割とエンジニアに
私が初めてeXtreme Programming に出会ったのは確か2000年だと思う。実際に初めてのプロジェクトを実施したのが2001年。それからすでに15年が経過していることになる。そんな長い間アジャイル、そして DevOps の日本での導入に関わってきた。日本のアジャイル導入に関しては全て成功とは言わないが、かなり成果は上げてきたとは思う。だけと、今日は自分の導入ポリシーの誤りに気付いて、新たなステージにいける気がしたので、そのことを共有してみたい。 2002年 尊敬するアリスターコバーンと、XP JUG関西のメンバーと清水寺で。私が写真撮ってたのかなw Alistair.Cockburn.us | Alistair's first trip to Japan sept 2002 日本はアジャイルの導入がこれからという噂を聞いたけど本当? これは、私がマイクロソフトの面接の時に、当時
JS しか書いてないんだなって人は筋悪いものをありがたがっていたりする印象はある。しかし筋悪いものをありがたがるみたいなのはどこにでもいるので、JSがどうとかは直接は関係がないはずではあると思う。JSしか書いてない人とPHPしか書いてない人は似たようなもんで、単に広範囲の知識に興味がないだけな気がする。 それはともかく「これは筋悪そうだな」っていう感覚がどこからくるのかよくわかってないので、現時点で思いつく限り雑にメモしておく。 割の合わなさ 「これは何の問題を解決してるんだろう」と思ってドキュメント読んだりソース読んだりした結果、大したことを解決してなくて、その割に実装量が多いとか学習コストが高いと、筋悪いなあと思う。 フットプリントや学習コストに対して提供されるモノが「割に合わない」のは筋が悪く感じる。 将来性のなさ 「あ、これはただの流行だな」みたいな、5年後には消滅してるなというも
4/7 18:00頃にLINEの「BOT API Trial Account」が無償提供されたと聞いてとりあえず触ってみたら出来る事は結構少なかったので勢いで全て試してみた。 [追記 4/14 9:28] Facebook Messenger Platform BETAでできる全ての事を試してみた(LINE BOT APIとの比較あり)も合わせてどうぞ。 [追記 4/9 11:49] 現在、巷で話題のLet's Encrypt問題以外でコールバックがコールされない問題があるらしいのでご注意を。 [追記 4/9 12:49] 上記の問題は解決した模様。 まずはアカウント登録 ※先着10,000名って少ない気がするけどまだ登録できるって事はそんなに人気ないのかな。 https://business.line.me/ja/products/4/introduction BOT API が利用開始
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? DDDを実践し始めてまだ日が浅いので、ドメインモデリング中に 細かい原則がすぐ出てこなくて迷うことがあります。 そこで、「エリック・エヴァンスのドメイン駆動設計」から 第2部「モデル駆動設計の構成要素」を中心に、モデルを表現する各要素(パターン)の 基本原則をまとめてみます。 第5章「ソフトウェアで表現されたモデル」 関連 ENTITIES(エンティティ) VALUE OBJECTS(値オブジェクト) SERVICES(サービス) MODULES(モジュール) 第6章「ドメインオブジェクトのライフサイクル」 AGGREGATES(集約)
はへん 破片プログラマー 大きなシステムの改修、 巨大に積み上がったプログラムの上での実装、 難度の高い仕事、 ただし破片 巨大な破片 画面を0から 二年、三年、五年と経験を積み、 開発スキルを身に付けたディベロッパー、 だがしかし、 0から画面を作ってみると... ... あれ!? できない。 画面を0から作ったことがほとんどない。 あったとしても、隣の画面の真似ごとをしてただけ。 考えて0から作ったことがない レールのないところ歩いたことがない。 クラスやメソッド クラスを作る。 どうやって?どういう単位で? 決められた中でしか作ったことがない。 その決めがないと何もアイディアが浮かばない。 「どこに何を実装するか?」って、 白いキャンパスの上で考えたことがあるかい? ... メソッドを作る。 どうやって?どういう名前で? どういう引数と戻り値で? メソッドの修正はたくさんしてきたが、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く