作ったGifをFigmaで確認したい
ただ、貼り付けだけでは動かないのでプラグインを入れる必要があった
Gif画像そのものをFigmaで作りたい場合はGiffyCanvas
というのが良いみたい
今まで何でなかったのかが不思議だがGitで管理しているファイルを削除したときに、そのファイルをいつ消したのか、なぜ消したのかを調べるときにどうしたら良いのかがわからなかった
Gitコマンドでやる方法を知ったのでメモ
$ git log -- <ファイルPath>
単純にこれだけ
Lombokを使っていて、あるクラスに@Builder
をつけてBuilderパターンでインスタンス生成した
このインスタンスをcloneして、あるプロパティの値だけを上書きしたくなったので方法を調べた
@Builder
のアノテーションを@Builder(toBuilder = true)
にするだけでできるみたい
これによりtoBuilder()
が使えるので、再度Builderの形に戻して、値をセットして、build()
を実行する
@Builder(toBuilder = true) public class Hotel { private String name; }
Hotel hotel1 = Hotel.builder().name("ホテル1").build(); Hotel hotel2 = hotel1.toBuilder().name("ホテル2").build();
あるライブラリに対して<optional> true</optional>
と<scope>provided</scope>
を両方設定しているモジュールがあり、どちらもユーザーが任意に使用することを意味するものだと思っていたので、両方を設定する意味の違いがわらなかったので調べた
<optional> true</optional>
はあるモジュール内の任意の機能だけで使いたいモジュールがある場合、その機能を使用しない限りクラスパス上に存在しないようにする設定
例えば5つの異なるデータベースタイプでライブラリを使用できるようにしておくが、通常は1つだけが必要な場合に、ライブラリに依存する依存関係をoptional= trueとしてマークしておき、ユーザーが実際に使用する依存関係を指定できるようにする場合などに使用する
<scope>provided</scope>
はコンパイル時にクラスパスに追加されるもので<optional> true</optional>
とは似たような話だが意味的に違う
ランタイム環境ですでに提供されているためパッケージ化する必要がないことを意味する
例えば、Lombokなどはコンパイル時に使用したら、ランタイムでは必要ないライブラリである
こういうライブラリに対して設定を行う
つまり、以下の設定は「コンパイル時だけ必要だが、もし使ってないならクラスパスには追加しない」という設定ということがわかった
<optional>true</optional> <scope>provided</scope>
LombokとMapStructを同時に使う場合に注意が必要といのを知った
Lombokよりも後に動くAnnotation Processorから、Lombokで自動生成されたBuilderが見えなくなっているとのこと
なのでpom.xmlで先にmapstruct-processor
の依存を書いて、次にlombok
の依存を書くと動く
<dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <scope>provided</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> <optional>true</optional> </dependency>
pom.xmlの記載順番に依存関係があるのは知らなかった
<optional>true</optional>
と<scope>provided</scope>
の違いがわからなかったので後日調べる
次のようなグロナビをマークアップしている
このとき、ある理由でこのグロナビに対してword-break: break-all
とline-break: anywhere
のスタイルをあてたら
Safariのみ次のように表示崩れがおこった
幅が狭くなりsvgをposition: absolute
で右寄せにしているのが効かなくなって折り返している
Safariのみで起こる事象で、なんでこんなことになるかはわかっていないが
word-break: break-all
とline-break: anywhere
を同時にあてるとこうなってしまう
実装は以下のような感じ
<style> .wrap { margin-top: 120px; word-break: break-all; color: #495361; line-break: anywhere; } .globalNav { display: flex; width: 980px; margin: auto; border: 1px solid; } .item { padding: 0 30px 0 15px; position: relative; border-right: 1px solid; } .icon { width: 5px; height: 8px; top: 50%; right: 15px; transform: translateY(-50%) rotate(90deg); position: absolute; fill: #4b9dff; } </style> <div class="wrap"> <div class="globalNav"> <div class="item">色から探す <svg class="icon"> <use xlink:href="#icon_chevron"></use> </svg> </div> ... </div> </div>
とりあえずChromeでテストをしていると気づかないので注意が必要