文章を見直す、って何を見直せばいいのかまとめてみた

同僚の資料を添削する機会があって、添削と議論の中でわかったことをまとめておく。 NOTE: ここで資料とは、要件を議論するたたき台資料とか設計の選択肢の検討資料を指す。 正直自分も同僚と同じ年代の頃に「これロジカルじゃないよ」とか言われても、いや…

継承か保有か

public class Price { private Long price; public Price(Long price) { this.price = price; }; public add(Price another) { return new Price(this.price + another.price); } } みたいな Price クラスがあった時に、 public class Yen { private Price p…

Clojure/conj 2017 上映会 #1 に参加してきた

NOTE ただの参加ログです。雑な情報の再生産なのでちゃんとしたやつとか本家を読んでください。 clj-nakano.connpass.com に参加してきた。 開催者様、会場の準備、ピザとコーラ、そしてそもそも開催自体していただいたこと、ありがとうございました! みた…

Node.jsの抽象構文木を操作してソースコードを生成する

「ソースコード生成してみたい!けど、そういや1年くらい前にASTって言葉を知ってから何もしてなかったな」、と思ってASTを書いてそいつを食わせてソースを生成してみた。 もともとはさいきょうのスタブサーバーを作りたいねって話から始まったからそういう…

3人チームで1日モブプロしたら、これはすごく圧縮された先行投資だとわかった

最近ペアプロの威力を実感する出来事があった。 2人の知識レベルが高まり合い、自分事感のあるソースコードが積み重ねられていくのを体験した。 そこで次はモブプロもやってみたいなぁと思っていたが、仕事で無理に導入しても自分事感の薄い対象を直す会にな…

「ドメイン駆動設計のためのオブジェクト指向プログラミングハンズオン」第2回に参加した結果、増田さんからPRにコメントをもらえた

お忙しいところ、増田さんのご厚意に甘えて図々しくPRを見てもらえないかお願いしたら、ちゃんとコメントをもらえた。 勉強になった。 対象のプルリクは以下。 github.com あらかじめ、書いていて疑問に思った箇所をこちらで注記してあって、それに対する返…

「ドメイン駆動設計のためのオブジェクト指向プログラミングハンズオン」第2回でユーザー定義型を自分で作ってみた

ちょうど弊社内の同僚と輪読会をしていた書籍の著者であるところの増田さんがやるハンズオンがあると聞いて行ってきた。 第一回はこちら。動画で見てもなかなかおもしろかった。 youtu.be アソビューについて www.asoview.com の運営会社。 椅子がキャンプ用…

オブジェクト指向言語で、自分のインスタンス変数に値をセット/更新するメソッドを許せるか

resultSet = /* どこから出てきたのかわからない値を使って処理をする */ } private function setupParameters() { $this->params = /* なんかやばい処理 */; } } みたいなコードを許せるか?という話である。 例示したコードは前処理的な役目が強調されてい…

『現場で役立つシステム設計の原則』の画面とドメインオブジェクトを一致させる章を読んだが異文化に衝撃を受けた

異文化すぎて理解に苦しむ箇所もいくつかあったが、もちろん面白い箇所もあった。 タスクベースの画面いいよね たしかに。しかも後の方で「とはいえなんでもできる画面の需要が尽きないのもわかるから、そういう時はドメインオブジェクトは分けつつもそれら…

今から購入を伴うメディアサイトを作るとしたら、どんなアーキテクチャを採用するか

> **NOTE** 思考実験なので想像に過ぎないが、より良いアイデアをお持ちの方は、ぜひご教授ください。 想像してみる。 今はだれもがスマホを持っていて、SNSを読み、バズった記事にアクセスが殺到する。 死にゆくサービスも多くある一方で、生き残ったサービ…

レガシーコードをなんとかして読み解く方法

レガシーコードをリプレイスするタスクで、レガシーコードが全然読めなくて時間を浪費しきってもまだ何もわからなくて詰んだ。 先輩エンジニアに相談したら即席コードリーディング会を開く声掛けをしてもらえて、どうレガシーコードを追うのか見ることができ…

読書会のスタイル別・メリット/デメリットを考える

自分でも読書会を開催する日が遠からず来た時に、自分ならどんなスタイルで運営するだろうか?と考えあぐねた。 今まで参加した読書会にはいくつかスタイルがあり、それぞれにメリデメがあると想像できたので、考えてみることにする。 今までに参加した読書…

現場で役立つシステム設計の原則のデータソース層とドメインモデルのつなぎこみに感動した

www.amazon.co.jp 会社の同僚と読み合わせをしているのだけど、面白い本。 Java(というかSpringBoot)を使って、ドメイン駆動設計の考えに従って変更に強いアプリケーションを設計・実装していく方法がまとめられている。 レイヤードアーキテクチャとドメイン…

ゴツいCSVファイルをなんとかしてINSERT文に書き換える

Spacemacsに取り込めない50万行くらいあるCSVを、SQLに書き換えてDBに適用する必要があった。 こういう時、毎回コマンドラインを調べてる気がするのでまとめる。 改行コードCRLF -> LF 元データがExcelのシートで来たので。 cat data.csv | sed -e 's/\r\n/\…

Spacemacsデビューした

久しぶりにEmacs触り始めたんだけど、ふと思い立ってSpacemacsデビューしてみた。 なんかあっても既存のEmacs用の.emacs.dはdotfileに残ってるし、と思って。 インストール github.com のREADME.mdを見るのが良さそう。 僕は今入ってるEmacsを一度アンインス…

JVMツールの簡単インストーラー、sdkmanのことを紹介させてくれ

SDKMAN! the Software Development Kit Manager この完全に他のツールとかぶりそうな名前、かつアメコミみたいなアイコンのツールが、まー便利。 わりと前からあるから、みんな知ってるかもしれないし、そもそもこのツールについて人と話したことがあんまり…

Overtone始めたらClojureのシーケンス操作の哲学にマッチしすぎててスゲー!ってなった話

とうとうライブができるプログラマーになることにしたので、Overtoneを始めた。 目標 (SHOULD)音作りを雰囲気だけかじる(ここは今回重要でない) ドラムで軽やかなリズムを奏でる ドラムに合わせてメロディが流れるようにする だんだん音を足していく (SHOULD…

Clojureを書く時についつい忘れがちなキーバインドまとめ

最近2ヶ月ぶりくらいにClojureを書き始めたら、手癖で覚えてるキーバインドもありつつ、なんかここらへん押せばいいって手が勝手に動くけどちょっと違うらしくて動かない、ってやつもあり。 毎回思い出すのつらいからまとめることにした。 キー 起こること <C-c><M-j> </m-j></c-c>…

archetypeをMaven Central Repositoryに登録する

作ったarchetypeをMaven Central Repositoryに登録した。 Railsくらいとはいかなくても、せっかくSpringはモジュールが揃ってるんだから、プロジェクト作成した瞬間に機能の雛形が手に入る世界を作りたい。 やったこと JIRAチケットを切る。 鍵生成する。 Ma…

自分用のスクラムツールを、自分のドメインにHTTPSで立てる

自分用のタスク管理ツールがHTTPSで立ってるってカッコイイなと思って、実際やってみた。 実は1年に1回くらい思ってて、毎回挫折してた。今回初めて成功したことになる。嬉しい。 やったこと https://taiga.io/)をblackawa.jpのサブドメインに立てて、HTTPS…

塩漬けだったblackawa.jpにS3とRoute53で自己紹介ページを置く

しばらく前に買って放置していた blackawa.jp を、とうとう使い始めることにした。 というのも自分用にスクラム管理ツールを立てたくなったからで、今回の話はオマケではある。 やったこと これまで「このドメインはお名前.comによって管理されています」と…

解くべき問題を探すには、優れた質問を探すのだ | アート・オブ・プロジェクトマネジメント

前章で、スケジュールについての理解は深まりました。 次はこのプロジェクトでどのような問題をどうやって解決するのか決めなければいけません。つまり計画フェーズです。本章では「計画」を、いわゆる要件定義と設計をセットにしたものとして扱っているよう…

スケジュールの役割 | アート・オブ・プロジェクトマネジメント

私たちは日々、スケジュールと共に生活しています。そして、頻繁に遅れます。 飲み会の開始時間、DVDの返却期限、クリスマスプレゼントの用意、そして仕事。 私などは自分が遅れることを知っていますし、遅れない計画の建て方もよくわからないので、ついスケ…

プロジェクトとは?マネジメントとは?そして、マネージャとは? | アート・オブ・プロジェクトマネジメント

平易な言葉で書かれたマネジメント全体を説明する書籍 WillCan面談で決めた目標を達成するために、上司であるところの @kawasima さんからいただいた書籍のひとつ、アート・オブ・プロジェクトマネジメントを読み始めました。 本著は、体系立っている一方で…

『アドレナリンジャンキー』を笑えなくなったらヤバい

『アドレナリンジャンキー』を読んだ。 『アドレナリンジャンキー』はソフトウェア開発あるあるネタ集 『アドレナリンジャンキー』は、他にもユーモラスな本をいくつも書いているトム・デマルコ氏の著作です。本著は彼が仲間と一緒に、ソフトウェア開発現場…

『ハッカーと画家』から、富について学んだ

ハッカーと画家を読みました。 『ハッカーと画家』はWebアプリの祖が書いたエッセイ ポール・グレアム氏が、ソフトウェア開発やサービス開発、ベンチャー企業などについて綴ったエッセイ…なんでしょうか。 刊行されたのはずいぶん前で、しかしもうWebベース…

SpringframeworkからはじめるSpringBoot Part.1 - 依存性注入

承前 SpringBootを触れるようになったけど仕組みが全然分からなくて応用できない!から、やっぱり内部が分からないとと思ってSpringframeworkから見直してみました。 誤った情報を広めたいわけではないのですが、それでも理解がおかしい部分はあるかもしれま…

SpringFrameworkから始めるSpringBoot Part.0

SpringBootってよく分からない? みなさん、SpringBoot、つかってますか? 使ったことがない方へ。 最低限Getting Started Guideをいくつかやったことがないと、この先は読み進めても面白くないです。今すぐコーヒーを淹れて、1時間ほどSpringの世界を楽しん…

SpringBoot x Thymeleafでページングのパーツを作る

Webアプリケーションにそこそこよくあるものの一つに一覧表示とページングがあります。 SpringBootでは、JPAなどを使用すれば簡単にページング処理を使用してレコードを取得することができます。 しかしそのページングの操作をUIとして提供してくれる機構は…