This is definitely subjective, and at different times (working with different libraries and even different languages) I always used these prefixes and never used them. Mixing this convention with its use was often a mistake. Decide which one is most clear based on context, including what is already being done in this project / library, etc.
For example, obj.DataIsCopied() better for the native English speaker, but then you have !obj.DataIsCopied() (or not ). You should be faced with the fact that you are writing code and need conventions, and these conventions subjectively add meaning (in a descriptive sense).
In addition, I would expect that any method named Verify will do some “real” work for verification, and Is should either return a previously computed / already available value, or calculate it trivially. In languages where you have properties, it is much easier to express, because you can separate things that are “actions” from those that are not. For example. using if (obj.data_copied) whether this is a data element or a trivial function such as IsDataCopied is encapsulated.
Roger Pate
source share