marble log

Webエンジニアの技術ブログです

2023-01-01から1年間の記事一覧

WSL2(Ubuntu)上にIntellijをインストールする

概要 WSL2(Ubuntu 20.04)にIntellijをインストールするための手順。 もともとはWindows上にインストールしたIntellijから、WSL上のコードやJVMを利用していたが、Windows - WSL間のIO周りが非常に重くストレスがたまったため、IntellijもWSLにのせることにし…

「PythonでJavaのOptionalクラスを実装する」のユニットテスト

ユニットテストも書いたので載せておく。 Optionクラスはsrcディレクトリ配下のoption.pyに実装している。 from unittest import TestCase from src.option import Option class TestOption(TestCase): def test_値の存在チェックができる(self): for value,…

PythonでJavaのOptionalクラスを実装する

Pythonで型ヒントが使えるようになってから、mypyなどの型の静的解析の活用もあいまってPythonでプロダクションレベルの開発がしやすくなった。 ただ、JavaのOptionalクラスのような、Noneの扱う便利クラス/メソッドは言語レベルでは提供されていないため、…

Jest メモリリークと「heap out of memory」エラーの対処

Jestのメモリリーク JavaScriptのテスティングフレームワークであるJestは、長らくメモリリーク、過大なメモリ消費が問題となっている。メモリリークの影響により、テストを実行するCIが低速になったり、「heap out of memory」エラーが出て異常終了したりす…

【Kotlin】LocalDateにrangeToを実装

import java.time.LocalDate internal class LocalDateProgression( override val start: LocalDate, override val endInclusive: LocalDate, private val stepDays: Long = 1 ) : Iterable<LocalDate>, ClosedRange<LocalDate> { override fun iterator(): Iterator<LocalDate> = LocalDateIt</localdate></localdate></localdate>…

「コードは資産ではなく負債」である

「単体テストの考え方/使い方」と「Googleのソフトウェアエンジニアリング」にコードは負債であると明言されており、印象に残った。それぞれの本の文脈とともに残しておく。 単体テストの考え方/使い方 単体テストの考え方/使い方には、1.2.1 なぜ、単体テス…