RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

ドメイン駆動設計を支えるアーキテクチャテスト

@kawanamiyuu です。この記事は「ドメイン駆動設計#1 Advent Calendar 2019」の 6 日目の記事です。

1. はじめに

最近、技術イベントやまた社内でも「ドメイン駆動設計」や「クリーンアーキテクチャ」についての話題をこれまでにも増してよく耳にするようになりました。

私も楽楽労務という実際のプロダクト開発で 1 年以上、ドメイン駆動設計に取り組んできました。ドメイン駆動設計 チョットデキル ような気がしてきたころ、このように思いました。

ドメイン駆動設計って、『オブジェクト指向設計をちゃんとやる』ってことだよね?」

ドメイン駆動設計もクリーンアーキテクチャも、オブジェクト指向設計原則のうえに成り立つ設計プラクティスであり、ただ、重要な視点として、オブジェクト指向設計原則の適用を検討する対象がクラスだけではありません。もう少し大きな単位、パッケージ・モジュール・レイヤー、まで視野を広げます。

  • 依存関係が注意深く設計され、単一の責任を持ったモジュールやパッケージが、ドメインをかたちづくります
  • レイヤーやパッケージの依存関係の逆転により、ドメインは自身の関心や責務を逸脱することなくビジネスロジックの実現に集中できます

ドメイン駆動設計がオブジェクト指向プログラミングによって実現されるということは、そのアーキテクチャも、私たちが慣れたいつもの方法 ─ ユニットテスト ─ で、テストすることができます。ソースコードアーキテクチャも、一度つくって終わりではありません。プロダクト開発が続くかぎり、常に見直され改善されるべき対象です。

......

前置きが長くなりましたが、この記事では依存関係という切り口から、アーキテクチャの品質を継続的に維持・改善していくための手法として、ArchUnit (Java) によるアーキテクチャテストを紹介します。

github.com

ArchUnit って何?については昨年のアドベントカレンダーに投稿しています。

qiita.com

続きを読む

JSConf JPで登壇してきました

こんにちは、@whiteFox_73です。東京で11/30~12/1に開催されたJSConf JPに登壇してきました。
また、株式会社ラクスはJSConf JPの BRONZE スポンサーとしてイベントに協賛いたしました。

イベント概要

  • 日時:2019年11月30日(土)~ 2019年12月1日(日)
  • 会場:アーツ千代田 3331
  • 公式 HP:https://jsconf.jp/2019/

jsconf.jp

登壇

正攻法はあるのか!?泥臭く戦ったNode.jsバージョンアップ一部始終(30分セッション)

speakerdeck.com

続きを読む

Linuxのパーミッション -不本意なファイル削除を防ぐための設定-

はじめに

はじめまして、新卒1年目エンジニアのthree_yagiです。

入社から早くも8か月が過ぎ、ようやく業務にも慣れてきました。業務においてLinuxを操作することが度々あり、はじめは何か操作しようとする度にコマンドなどを調べていましたが、最近は基本的な操作なら検索サイトを頼らなくても出来るようになってきました。

Linuxパーミッションについては入社後の研修でLinuxのマニュアルを読んで基礎から学習しました。最近、そのパーミッションを意識する機会があったので、自身の復習も兼ねて基本をまとめてみました。また、意外と見落としがちなファイル削除時のパーミッションの注意点について紹介します。

目次

パーミッションとは

Linuxではファイルとディレクトリに対して、誰がどういった操作ができるかの権限を設定することができます。この設定をパーミッションといいます。
パーミッションは、「ファイルの所有者」「所有グループ」「その他ユーザー」という3種のユーザータイプに対してそれぞれ「読み取り」「書き込み」「実行」の権限を割り当てることができます。

続きを読む

TechCafeができるまで〜コミュニティを育てる難しさ

id:radiocat です。先日ご紹介したとおり私たちは大阪オフィスで『Web×PHP TechCafe』という新しいイベントをスタートさせました。今回はこの流れに至るまでのコミュニティ運営についてご紹介します。

tech-blog.rakus.co.jp

もともとは『もくもく勉強会』としてスタートしたイベントでしたが、様々な試行錯誤や葛藤の末に今の形にたどり着きました。今回はその振り返りと新たなスタートの意味で 「 Web × PHP TechCafe Advent Calendar 2019 」の記事として書くことにしました。同じようなイベントやコミュニティに関わる方々の参考になれば幸いです。

チームの仲間に呼びかけてイベント立ち上げ

スタートは2018年のオフィス移転でした。このとき、念願がかなってオフィス内にセミナールームとして活用できるスペースを作ってもらうことができました。

tech-blog.rakus.co.jp

特に目指すべきゴールなどは設定せず、ただやってみたいという思いで当時のチームメンバーに声をかけてスタートしました。実際に運営側として取り組んでみると、それまで参加側では気づけなかったことに色々と気づきました。スタートした最初の数ヶ月で当時気づいたことをいくつかご紹介します。

続きを読む

reveal.jsを使って新しいスライド作り

はじめに

はじめまして。新卒一年目エンジニアのnr_1228です。 入社してから半年以上がたち、コードとにらめっこすることが多い日々を過ごしていますが、入社当初に比べると少し余裕をもって業務を行うことができるようになったと感じます。 そんなコードとにらめっこする日々の中で、自分が発表する機会や、人の発表を聞く機会も増えました。 KeynotePowerPointGoogleスライドでの発表を見ている中でふと、違う見た目で発表している方が・・・。
大学時代にもそんな発表をしていた人がいたことを思いだし、 気になったので調べるとreveal.jsを使っているらしく、実際に作ってみると思っていたよりも良かったので紹介します。

目次

reveal.js

reveal.jsとは

reveal.jsとは、JavaScriptのプレゼンテーション作成フレームワークで、HTMLやmarkdownでスライドを作成することができます。

これだけでできてしまうんです。

Visual Studio Codeで作成すると以下のようにプレビューを見ながら作成をすることができ、どのような見た目になっているのかすぐに確認することができます。

f:id:nr_1228:20191126153531j:plain
実際の画面

特徴

いろいろな特徴がありますが、良いなと思った点を以下に挙げます。

  • HTMLでスライドを作成してブラウザ上でプレゼンを実行できる
  • Markdownで作成可能
  • 4方向にスライド遷移
  • ESCボタンを押すとページの一覧も見れるので、ページを探すときに便利
  • PDFにするのもURLに?print-pdfを付けるだけでできてしまう
  • fragmentを使えば簡単なアニメーションも付けることができる

文字で説明されただけではわからないという方、 以下の公式サイトを見てみてください。 今までの説明が要らないくらい、いやそれ以上に理解することができると思います。 revealjs.com

書き方

書き方などど見出しを作っていますが、Markdownを書いたことがある方はすぐに作成できると思います。
覚えることは、一つだけ
ページの区切りに---を入れることだけです。
reveral.jsの特徴である、縦方向への切り替えは--を入れるだけ!

後はMarkdownでがっつり内容を書いていきましょう。
以下は試しに書いたものの1ページです。
f:id:nr_1228:20191126163944j:plain
このページのコードは

---
## シンタックスハイライト
 ```
function class{
    $number1 = 100;
    if ($number1 >= 50) {
        print("number1があります");
    }
}
 ```
highlight.jsによるハイライトが自動で行われる
---


たったこれだけ。 書き方に慣れたら、htmlを使い表現の幅を広げることができます。 例えば、

<span style="color:red">色</span>

<span style="font-size: 150%">サイズ</span>

<div style="text-align:left">左寄せ</div>

と書くだけで f:id:nr_1228:20191126164633j:plain 
このようなレイアウトになるのです。 詳しくは、公式のredmeを読んでみてください。

github.com

おわりに

reveal.jsを使ったスライド作りについてまとめてみました。
普段からMarkdownで文章を書く人からすると書くだけでスライドになってしまう便利なものだと思います。 Markdownでメモしているものをサクッとスライドにすることができてしまうので、 スライド作りに時間がかかってしまう人は日ごろMarkdownでまとめたりしていると、スライド作りにかける時間を大幅に短縮できるようになると思います。
私もこの方法でのスライド作りに慣れ、資料作成に費やしている時間を減らしていけたらと思います。

この記事を読んで少しでも興味がわいたという方がいらっしゃいましたら、 是非実際に作ってみてください。

新人エンジニアがはじめてのPHPで戸惑ったこと

はじめに

初めまして。新卒1年目エンジニアのdd_fortranです。
業務でPHPを使い始めて4ヶ月が経ちました。私は学生時代はC言語Fortran、新人研修ではJavaを使用しており、PHPに触れるのはこれが初めてでした。これまでコンパイラ言語に多く触れてきたため、はじめてインタプリンタ言語に触れ戸惑いが多くありました。

本記事では、PHP初心者の私が戸惑ったことについてまとめようと思います。

目次

戸惑ったこと

続きを読む

【10月】大阪開発ビアバッシュレポート

はじめに

こんにちは、strongWhiteです。今回は大阪オフィスで開催された10月ビアバッシュをご紹介いたします。 前回の記事はこちら↓ tech-blog.rakus.co.jp

  • はじめに
  • 発表一覧
  • 個人的に気になった発表
    • サービスの品質を考える
    • 異文化間の開発で感じたこと
    • my favorite UI
  • おわりに

発表一覧

前回に引き続き、今回もオンラインでつないで東京オフィスのエンジニアと合同で開催することとなりました。 以下が今回の発表一覧です。多くの方に発表していただきました!

  • 自由枠(質疑応答込みで13分)

    • サービスの品質を考える
    • 異文化間の開発で感じたこと
    • かみせんを通して見えたこと
    • akkaでたこ焼きを焼く
  • LT枠(5分厳守)

    • my favorite UI
    • 続・キャラ立ちのすゝめ
    • コピペにする?共通化にする?それとも抽象化?
    • 初めての育休
続きを読む
Copyright © RAKUS Co., Ltd. All rights reserved.