Une forme négative est toujours difficile à appréhender dans votre code, surtout lorsqu'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 la lecture ce qui est délétère pour 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()) {}