Une forme négative est une chose toujours difficile à apprehender dans votre code, surtout quand elle se trouve dans des conditions.
La double négation suivante est d'autant plus déstabilisante et pourrait freiner, ne serait-ce que quelques secondes, votre lecture du code :
if (! Buffer::shouldNotCompact()) {}
Il est important d'éviter ce blocage, même s'il est de courte durée, car il interrompt votre réflexion et perturbe la fluidité de lecture ce qui est délétère à votre compréhension du code.
Préférez à la négation une forme affirmative qui sera toujours plus simple à comprendre et bien plus instinctive :
if (Buffer::shouldCompact()) {}