タグ

2017年8月3日のブックマーク (4件)

  • プログラマをクソコードで殴り続けると死ぬ - megamouthの葬列

    ここにクソコードがある。 誰が作ったかはわからぬ。それが、どのような経緯でクソコードとなったのか、 あるいは、最初からクソコードであったのか、それらは全てクソコード自身が知るのみである。 ファーストコンタクト ある日、営業からシステム案件を打診されたので見積もりして欲しい。というメールが来る。 とある企業の既存システムに機能を追加する簡単な案件ですが、なななんとソースや仕様書をご支給いただけます! と、それはサンタにプレゼントが貰えると信じて疑わぬ子供のような真っ直ぐなメールである。 ソースコードが入った圧縮ファイルを受け取ったプログラマは、早速、コードを読んでみる。 そのシステムが当にいいコードで書かれているかを判断するには時間がかかるが、 クソコードであるかはおおよそ30分でわかる。 インデントがタブとスペースどちらかに統一されていないとか、フレームワークの誤用があるとか、またはフレ

    プログラマをクソコードで殴り続けると死ぬ - megamouthの葬列
  • どこに何を書くのか?

    13. type User struct { Attack int //攻撃力 } func main() { u := User{ Attack: 100, } //攻撃力は int の Attack に乱数を加算したものになる rand.Seed(time.Now().UnixNano()) u.Attack = u.Attack + rand.Intn(10) fmt.Println(u.Attack) } 14. type User struct { Attack int //攻撃力 } func main() { u := User{ Attack: 100, } //攻撃力は int の Attack に乱数を加算したものになる rand.Seed(time.Now().UnixNano()) u.Attack = u.Attack + rand.Intn(10) fmt.Pr

    どこに何を書くのか?
  • 実践DDD本 第7章「ドメインサービス」~複数の物を扱うビジネスルール~

    第6章「値オブジェクト」~振る舞いを持つ不変オブジェクト~ DDDにおけるサービスとは DDDでは、エンティティ、値オブジェクト、集約といった「ドメインオブジェクト」だけではなく、それらの外に記述したほうがよいロジックも存在します。そのようなときに、状態を持たないステートレスな「サービス」を使用できます。サービスには、大きく分けて次の2つが存在します。 ドメインサービス:エンティティや値オブジェクトの責務ではないドメインモデルのロジック(複数のドメインオブジェクトを使って計算する処理やファサード) アプリケーションサービス(詳細は14章):非常に薄く、ドメインモデル上のタスクの調整に使うロジック(腐敗防止層の変換・アダプター等) DDDにおけるサービス ドメインサービスの特徴 ドメインサービスの特徴は、ドメイン層の中に含まれ、ビジネスロジックを持つことができる点にあります。章では、このド

    実践DDD本 第7章「ドメインサービス」~複数の物を扱うビジネスルール~
  • エンジニアが知っておきたい法知識。ソースコード著作権&開発契約を元エンジニア弁護士に聞く! - エンジニアHub|若手Webエンジニアのキャリアを考える!

    エンジニアが知っておきたい法知識。ソースコード著作権&開発契約を元エンジニア弁護士に聞く! 法律トラブルを回避するための、エンジニアが留意すべき法律知識とは、一体どのようなものでしょうか。エンジニアの経験を持つIT弁護士・河瀬季(かわせとき)さんに話をうかがいました。 昨今、“無断転載”の線引きや引用のあり方など、インターネットと著作権の関わり、ひいては法律との関わりが注目される機会が増えてきました。そんな中、エンジニアとして働く人々はいかに法律と向き合っていけばいいのでしょうか。 企業に在籍しているエンジニアの場合、社内に法務担当者がいるかもしれませんが、法律と無関係ではいられません。使用するツールやサービスの高機能化に伴い、無償で多くのコードに触れる機会が増えています。また、自作サービスのフレームワークなどに、オープンソースソフトウェア(OSS)を利用したい方もいるでしょう。 しかし、

    エンジニアが知っておきたい法知識。ソースコード著作権&開発契約を元エンジニア弁護士に聞く! - エンジニアHub|若手Webエンジニアのキャリアを考える!