圧倒亭グランパのブログ

30年後の自分にもわかるように書くブログ

「依存性逆転の原則」の自分なりの解釈

「依存性逆転の原則(DIPDependency Inversion Principle)」に関して考える機会があり、自分なりに言語化できそうなのでまとめます。ご指摘は大歓迎です。

目次

  • 目次
  • TL;DR
  • 考えるきっかけ
  • 具体例から紐解いていく
    • べた書きのモジュールA
    • モジュール分割による依存性の出現
    • モジュールの安定性
    • 安定依存の原則 (SDP: Stable Dependencies Principle)
    • 間違った「依存方向の逆転」
    • DIPに基づいた「依存方向の逆転」
  • まとめ

 

TL;DR

  • より安定したモジュールの方向へ依存するよう設計し、ソフトウェアの安定性を高めることが重要
  • 不安定なモジュールが 依存されている と修正範囲が大きくなるため、 依存されない ようにしたい。そのために、依存方向を逆転させたい
  • DIPは「モジュールへの依存方向は逆転可能」ということを示し、「その方法」を解説している
続きを読む

プログラミング言語 Crystal の解説書同人誌「Introducing Crystal Programming Language」

この記事は Crystal Advent Calendar 2018 の15日目を埋める記事です。

Crystal言語を触ってみたい方に、技術書典5で頒布された同人誌「Introducing Crystal Programming Language」をおすすめします。日本語で書かれており、Crystalの基本的な文章から開発方法まで網羅しています。

crystal-jp.github.io

トップページの説明を抜粋します。

Crystal の基本的な文法から Web アプリーケション・ CLI 開発の方法まで解説したこの一冊があれば、Crystal での開発を今日から初めることができるでしょう。

Web上でも閲覧できますし、PDF版もダウンロードできます。Crystalに興味のある方はぜひご参考にしてください!

Crystalの自作CLIビルダーライブラリを使ってgitコマンド風のCLIツールを作ってみる

この記事は Crystal Advent Calendar 2018 の3日目の記事です。

 

自作のCrystalのCLIビルダーライブラリをアップデートしたので、AdventCalendarに便乗して紹介します。

githubは以下です。 clim と言います。簡潔に、直感的にCLIツールを書けることを目指しています。

github.com

過去に紹介したブログ記事はこちらです。

at-grandpa.hatenablog.jp

この記事が古くなったのでupdate記事です。

 

目次

  • 目次
  • gitコマンドっぽいものを作ってみる
    • 前準備
    • versionを表示する
    • helpを充実させる
    • オプションを追加する
    • サブコマンドを定義する
    • 全コード
  • その他の機能
  • たまにupdateします
続きを読む

技術書典5でチャレンジしたこと・うれしかったこと

おつかれさまでしたー!めちゃくちゃ楽しかったですね!

次回に向けてのメモと感想を書いていきます。ブログを書くまでが技術書典。

  • まとめたスライド
  • うれしかったこと
  • 「何事も早めに」
  • 締切駆動開発
  • Re:VIEW+CSS組版
  • ワンオペ
  • 印刷部数
  • 被チェック数の意味とは
  • 当日までの準備や運用
  • 初参加80部完売現象
  • みなさんとお会いできる
  • まだまだ続く技術書典
続きを読む

【技術書典5】執筆から入稿までをちょっとまとめておく

長かったーーーーー。

無事、入稿が終わって 10/08 には物理本を頒布できます。

台風25号さんには来場をご遠慮願いたいです。(来たら来たで「やっぱり技術書典だな」となりますが)

目次

  • 目次
  • 頒布情報
  • 締切駆動開発
  • Re:VIEW+CSS組版
  • 印刷部数
  • ちょっとしたこだわり
  • 楽しみましょう!
続きを読む

Re:VIEW+CSS組版の執筆環境を簡単に構築できるようにしました

Re:VIEW+CSS組版の環境は、わかめさんの vvakame/review-css-typesetting で整いつつあります。今回は、個人的に欲しい機能を追加した、という話です。いい感じに回っているのでブログにまとめることにしました。

 

目次

  • 目次
  • Re:VIEWとは
  • CSS組版とは
  • Re:VIEW+CSS組版
  • 環境構築
    • 使い方
    • やってること
  • デザインの変更
    • CSSを編集する
    • htmlを編集する
  • 完成したPDFは印刷所で印刷可能か(確認完了)
  • まとめ
続きを読む

crystal.tokyo #7 で Concurrency について話しました

2018/07/18 に crystal.tokyo #7 を開催しました。

crystal.connpass.com

前回の「Crystal勉強会」から名称を変えて「crystal.tokyo」としました。 crystal-jp.slack.com でご意見を募ったところ、「crystal.tokyo」が一番票を得たので変更しました。「登壇者&聴衆」という勉強会スタイルに縛られずに、もっといろんな形で交流できたら良いなと思っています。

続きを読む

Crystal 勉強会#6を開催しました!

2018/06/21 に行われた Crystal 勉強会が大変楽しかったのでレポートです。

crystal.connpass.com

 

目次

  • 目次
  • 開催経緯
  • 全体の流れ
  • Crystal in production
  • LT
    • Crystalでツールを作ってみた
    • Crystalに再びRailsの夢を見る Amber編
    • Macroについて
    • Rubyのライブラリを移植した話
    • Exhaustiveness Check in Crystal
  • 懇親会
  • 今後の勉強会
  • 最後に
続きを読む

どういった学習プロセスを辿ると技術力が身につくのか

この疑問は、以前から興味がありました。過去の記事でも少し触れています。

at-grandpa.hatenablog.jp

今回は、今までの自分の経験と、この疑問を考え続けた結果から、あるひとつのプロセスが浮かび上がってきたのでまとめます。

続きを読む

#技術書典4 のサークル参加詳細レポートと考察

昨日の 技術書典4 にて初めてのサークル参加をしたので、その経緯から終了までを、半年後の自分に向けてメモします。

頒布情報などは、ブログに記載してあります。

at-grandpa.hatenablog.jp

Twitterなどにもつぶやいています。

目次

  • 目次
  • 参加経緯
  • 執筆
  • 入稿
  • 準備
  • 前日
  • 当日
  • 販売実績
  • 考察
続きを読む