I follow some simple, rigid rules and they serve me alright so far.
Firstly, I don't get anything that involves automatic ongoing costs. No subscriptions or anything. I want every time I spend money to be a conscious decision on my part.
Secondly, I have multiple accounts. One account is for in-person purchases, one is for online purchases, and then I have a few different kinds of savings accounts which all require going to the bank and talking to a teller to access. As soon as I get paid, I go to the bank and split my paycheck between in-person, online and savings. I only touch my savings for really big, important one-time purchases (I'm pregnant with my firstborn so I've had several of those recently) or if I'm totally desperate for money.
My in-person purchases money usually doesn't last very long - I spend it all on snacks and then I'm broke. But when I've spent it all, I still have savings and online purchase money, both of which I'm less likely to spend impulsively. I actually can spend my online purchase money in-person, but only do that if a) I'm out of in-person money and b) I know the payments for planned online purchases have already gone through.
Currently, I have my parents providing room and board, but if I didn't, I'd set aside a separate account for housing costs, and make a grocery run immediately after payday every month.