タグ

programmingに関するmoroのブックマーク (25)

  • DDD失敗談を話して学んだこと

    関西Javaエンジニアの会(関ジャバ) '17 10月度 - connpass https://kanjava.connpass.com/event/68169/ での発表資料です。

    DDD失敗談を話して学んだこと
    moro
    moro 2017/10/27
    いい話「ちゃんと一緒に話し合う」/わからないことはわからないとして、あとで直せるようにしておくのが大事、と言っても技術的にどこまで「間」を作れるかは難しいですよね、いつも悩んでる
  • ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳)

    Alistair Cockburn による Hexagonal architecture の翻訳です。PoEAAで言及されていることから、2002年ごろにはすでにC2 Wikiにページがあった模様。似たようなアーキテクチャである クリーンアーキテクチャ も翻訳したので参考にしてください。 この記事は著者から許可を得て公開しています。Thanks to Alistair Cockburn! 目次 パターン: Ports and Adapters (構造に関するパターン) 意図 動機 解決法の質 構造 サンプルコード ステージ1: FIT アプリ 定数をモックデータベースとして ステージ2: UI アプリ 定数をモックデータベースとして ステージ3: (FITまたはUI) アプリ モックデータベース 応用ノート 左右の非対称性 ユースケースとアプリケーションの境界 ポートはいくつ? 既知の用

    ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳)
  • DRYと不当な抽象化によるコストについて | POSTD

    記事は、もう随分と長い間、私がToDoリストに記したままになっていたものです。ですが今日だけは、その考えを実行に移すエネルギーと時間があったようです。私は今、少し前に最初の記事を投稿した時と同じカフェにいます。たまたまなのか、それとも……。店員が私に出した飲み物に何か入れていたに違いありません。 ベストプラクティスにならえ、という古き良きアドバイスがありますよね。そうした情報は常に耳に入ってきます。私たちは、どういうわけかテクニカルな会話の中で DRY とか KISS といった頭字語を第一の原則としてきました。熱心に、まずそうした概念に従っています。たまたま、知識欲があるために、あるいは知識がなかったために、そうした概念から外れたことをする人がいようものなら、確実にその人に嵐のような批判を浴びせます。この原則にとらわれすぎていて、そこに背を向けることを拒んでいるのです。 念のためですが、

    DRYと不当な抽象化によるコストについて | POSTD
    moro
    moro 2016/11/01
    言わんとすることはわかるのだけど、リアルワールドで目にする"理解するのに何時間もかかるような"コードは「60行コピペしました。12行目と36行目で呼び出す関数を変えました」みたいな方が多い
  • リアクティブ宣言

    異なる分野で活動する組織が、同じようなソフトウェア構築のパターンを独立に発見している。このようなシステムはより堅牢で、より耐障害性があり、より柔軟で、より最新の要求を反映しやすくなっている。 こうした変化が起きているのは、近年、アプリケーションの要求が著しく変化してきているからだ。ほんの数年前、巨大アプリケーションは数十のサーバから構成され、数秒の応答時間と数時間のオフラインメンテナンスを許容し、データは数ギガバイトだった。今日のアプリケーションは、モバイル機器から数千のマルチコアプロセッサによって動作するクラウドベースのクラスタまで、あらゆる機器上に配備される。ユーザはミリ秒の応答時間と 100% の稼働率を期待する。データはペタバイト単位で測定される。昨日のソフトウェアアーキテクチャは、今日の要求を全く満たしていない。 求められているのは、システムアーキテクチャに対する明快なアプローチ

    moro
    moro 2015/05/27
    うーん、この抽象度だとまだピンとくるところも来ないところもあるなあ。練度が足りない
  • 新卒ソフトウェアエンジニアのための技術書100冊 - クックパッド開発者ブログ

    こんにちは、技術部 高井です。 春といえば、フレッシュマンの季節ですね。このブログを読む方の中には、明日からエンジニアとして新社会人になるという方もいらっしゃるのではないでしょうか。クックパッドでも新しい仲間を迎えるための準備をしていたところで、その準備の一環として「新卒ソフトウェアエンジニアのための技術書100冊」というものを作成しました。 この100冊は、職業ソフトウェアエンジニアとしてキャリアを積むにあたって、読むべき技術書に悩んだら、まずはこのリストから選ぶとよいのではないでしょうかという提案です。 リストに多少の趣味や主張がはいっているのは、まあご愛嬌ということでお許しいただければとおもいますが、職業プログラマとして知っておくべき知識を網羅できるように心がけました。古典と呼ばれる名著についてはできるだけ取りいれ、独習が難しい難解なコンピュータサイエンスの教科書は避けています。これ

    新卒ソフトウェアエンジニアのための技術書100冊 - クックパッド開発者ブログ
    moro
    moro 2015/03/31
    なおちゃんだ
  • 若手開発者の後悔 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) これはある仕事熱心な若手開発者のほぼ実話です。2004年の後半、この若手開発者は小さな会社で働き始めました。条件は全て彼の望みどおりでした。給料はいいし、扱うのは彼の得意とするプログラミング言語、アプローチの複雑性、モデリングのアーキテキチャでした。 彼にとって今回の会社が初めての職場ではありませんでした。しかし、ここでの最初のプロジェクトは結果的に 問題だらけ に終わりました。当時、この若手開発者は、機能は絶対に変わらないものだと思っていました。しかし、それは間違いでした。機能が変更されるたびに完全なリファクタリングを行わなければなりませんし、バグを引き起こして膨大な時間を無駄にしてしまいます。彼は、テストを書くといった実直な方法も試してみましたが、書いたテストはメンテナンスが必要な上、書くのに時間

    若手開発者の後悔 | POSTD
    moro
    moro 2015/03/24
    “フリーランス開発者への教訓:作業単価を値上げした方がいいのでは? ”
  • コードレビューについて - (define -ayalog '())

    普段お仕事している中で何故かコードレビューをしている時間がわりとあって、暇さえあれば(暇がなくても)コードレビューしている。 そんな中でどういうところを見たらいいのか、あるいは見るべきなのかというのが自分の中である程度蓄積された気がするので書いてみる。あと最後に普段考えていることを少し書いた。 前提 現在の僕の参加しているプロジェクトはこんな感じ Rails プロジェクト( AngularJS 使ったりしている) Git 使ってる( Pull Request ベースの開発で以下が merge 条件) 2 人以上に approve される テストが通ること(継続的インテグレーションの実施) 静的コード解析は導入している( Rubocop, jshint, pre-commit など ) テストのカバレッジは計測していない(月一くらいで測ってるらしいんだけど、だからどうっていう話はない) プ

    moro
    moro 2015/01/19
    “結構レビュー重ねるごとに、まぁ言うことないかなーみたいな PR 増えてきて大変良い。”
  • Async programming is all about programming synchronously.

    RubyKaigi 2013 - 10:00 room A rev.7

    Async programming is all about programming synchronously.
    moro
    moro 2014/12/22
    ActiveJobの話をしていたらこのスライドにたどり着きました
  • エンジニアの面接でコードレビューさせてる

    (あんま多くないみたいだから多分すぐ身バレしそうだけど書く) エンジニアの面接で実際にコードを書かせる会社が最近は多いみたいだね。でもウチでは特に面接で書かせない。というか今まで書いてきた、関わってきたコードなんて書類で大体分かるでしょ? それよりも、ウチではコードレビューをさせてる。 選考用にわざと少し突っ込みドコロの多いコード(30〜50行程度のコードを3〜4ファイル)を渡して、もちろんファイル構成自体へのレビューも含めて、どんな意見をその人が出せるかを問う。 レビュー用のコードは複数言語用意してて、一番得意な言語を選んでもらってる。 時間は1時間。資料と赤ペン、そしてネットに繫がったパソコンを渡して、いくらでもググってもらって構わない環境でレビューを紙に赤して貰う。 「コードレビュー」ってものに対しての認識だとか、コードを管理するための能力もある程度分かるし、すごく良い選考制度だと思

    エンジニアの面接でコードレビューさせてる
    moro
    moro 2014/11/20
    よさそう。設計への考え方も見えるし、何より対話ができるのがよいね。
  • メタプログラミングをして割に合うかの判断基準:処理を1箇所に局所化できるか - 2014-01-16 - ククログ

    毎日他の人のコミットをながめる文化で生活していると、理由は浮かばないけど「ん?このコミットはなんか気になる」と感じるようになります。それは、新しいことを知ることができたコミットだったり、真似したくなるようなコードが入っているコミットだったり、なんかまずそうな気がするコミットだったり、様々です。 「ん?」と感じてコミットを見直してみても、何が気になったか自分でもすぐにわからない場合があります。そんなとき、気になったことをコミットした人に伝えるために、コミットへのコメントをまとめ始めます。「コミットした人に伝えるため」というように、他の人に伝えようとすることがポイントです。他の人に伝えるためにまとめようとすると、思いの外なにが気になったかまとまるものです。 今回は、メタプログラミングを使ってコードを整理したコミットで「ん?」と感じたときのことについて紹介します。このおかげで「メタプログラミング

    メタプログラミングをして割に合うかの判断基準:処理を1箇所に局所化できるか - 2014-01-16 - ククログ
    moro
    moro 2014/01/17
    よい話。さすが!
  • Practical Meta Programming on Rails Application

    邦題: Railsアプリでの実用的メタプログラミング (lang:ja) 実プロジェクトで、やり過ぎにならずにメタプログラミングする方法を説明しました。 http://www.joho-shimane.or.jp/docs/2013092500011/

    Practical Meta Programming on Rails Application
    moro
    moro 2013/10/19
    縁あって松江で話しました! セルクマもしておこう
  • 書いたもの

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    書いたもの
    moro
    moro 2013/04/16
    良い話。
  • Dash – Snippet Manager, Documentation Browser

    Overview Dash is an API Documentation Browser and Code Snippet Manager. Dash instantly searches offline documentation sets for 200+ APIs, 100+ cheat sheets and more. You can even generate your own docsets or request docsets to be included. Supported Documentation Sets Dash comes with 200+ offline documentation sets. You can choose which documentation sets to download and Dash will take care of the

    moro
    moro 2012/09/24
    お金を払った。だいたい使うAPIを覚えていて、たまにマイナーオプション引きたい時とか異様に便利。
  • 2012/07/06 リーダブルコード − 忘れてもいいコードを書こう。#devlove

    ichitani / 組織を芯からアジャイルにする @papanda 今日はリーダブルコードの #devlove 97に続いてオライリーさんと組んでやります。DevLOVEが何が出来るというわけではないのだけど、良いが売れてそれでまた良いが世の中に出てきたら、それだけでこういう企画をやる値打ちはあると思っているのだった。 2012-07-06 16:50:31 Ryan Edsall @rezn #devlove "@LaurentKP: @iMMMOOO that's not what I mean I'm the dev of EasySmileys and I receive good reviews because of MegaSmiley promo ℓ☺ℓ" 2012-07-06 17:15:18

    2012/07/06 リーダブルコード − 忘れてもいいコードを書こう。#devlove
  • repl.it

    Idea to software, fastBuild software collaboratively with the power of AI, on any device, without spending a second on setup

    repl.it
  • Rubyの例外クラス設計 - kなんとかの日記

    具体的には、テストです *2 。例えば foo(1, 2) で wrong number of arguments が投げられることをテストしたいとします。以下のテストだと、wrong number of arguments 以外の ArgumentError が投げられる場合でも合格になってしまいます。 assert_raise(ArgumentError) { foo(1, 2) }ちゃんとやりたければ、例えばこんな感じのコードを書かないとだめかな。 flag = false begin foo(1, 2) rescue ArgumentError => e raise unless ex.message[/\Awrong number of arguments \(\d+ for \d+\)\z/] flag = true end assert(flag) Ruby の例外クラスは分

    Rubyの例外クラス設計 - kなんとかの日記
  • Designing a framework in an "open" way (オープンなフレームワーク設計):An Agile Way:オルタナティブ・ブログ

    "Beautiful Code" を読んでいます。 いいですねー。カーニハンやベントレー(『プログラマの打ち明け話』、『珠玉のプログラミング』、『プログラミングの設計と着想』など、昔ファンでした)の文章をひさしぶりに読みました。まだまだ、プログラミングにもわくわくすることが一杯ありますね。 ぼくが最も感動したは、Michael Feather ("Working Effectively with Legacy Code"の著者)の "Framework for Integrated Test: Beauty Through Fragility"(英語GoogleBook全文) です。コーディング(プログラム設計)に関する Ward Cuninngham の逸話はいくつもあります。November メソッドの話、400行の Perl で書かれた初版 Wiki の話、などなど。 今回は、Web

    Designing a framework in an "open" way (オープンなフレームワーク設計):An Agile Way:オルタナティブ・ブログ
  • 「プログラミング言語Ruby」を読まなくてもよいのは誰か : \ay diary

    一昨日になってようやく入手できたプログラミング言語Ruby[rakuten]を、Ruby 1.9.1RC2とそのNEWSファイルを手元に置きながら読んだ。 少々乱暴な言い方になるかもしれないが、このは以下のような人には用のないものだと思う。 Ruby 1.9.xもRuby 1.8.xも十分に理解できている Ruby 1.9.xをしばらくは使うつもりがなく、自分が使う範囲においてRuby 1.8.xに不明なところはない Rubyの経験がなく、その他のオブジェクト指向言語の経験および知識もない プログラミング経験がなく、これからプログラミングの学習を始める このRubyそのもののかなり詳しい解説書である。入門書ではない。一応は簡単なところから入る形になっているのだが、大部分はすでにRubyを使っていて、ちょっとしたことなら困らない程度の知識があることを前提としている。つまり、

  • 正規表現に見切りをつけるとき

    Perl, Rubyなど手軽に使えるプログラミング言語に慣れてくると、あらゆるテキストデータの処理に正規表現(regular expression)を使ってしまいがちです。 けれど実は、正規表現の処理能力を超えるフォーマットというのが存在します。その典型的な例が、XMLやJSONのように、入れ子になったデータフォーマットです。

  • ファクトリー ファクトリー ファクトリー API のユーザビリティテスト

    前に 欲しいと書いた API のユーザビリティテスト. 実際にやってみたぜという話を読んだ. "The Factory Pattern in API Design: A Usability Evaluation (PDF)" という記事がそれ. 俎上に載ったのは factory パターン. 素のコンストラクタとどちらが使いやすいかを比べてみたという. そんなの, Factory が腐ってるだなんて Joel...じゃなくて Joel の読者も言っている. 実際この調査でも "factory は使いにくい" という思ったとおりの結論. 面白さはユーザビリティテストをした事実そのものにある. 調査では 12 人の被験者をあつめ, 5 つの課題をこなしてもらう. コードはぜんぶ Java. 課題1: メールを送信する. ライブラリを使ってこんな風に書けたらいいなと思うコードを notepad で

    moro
    moro 2008/05/20
    ファクトリはともかく引数無しコンストラクタは意外だなぁ。引数付きコンストラクタで初期化して、セッタつけないほうが好き。