Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I split local reasoning into horizontal or vertical.

Vertical reasoning is reasoning inside a module or function. Here information hiding and clear interfaces help.

Horizontal reasoning is reasoning across the codebase in a limited context; adding a new parameter to a public function is a good example. The compiler helps you find and fix all the use sites, and with good ability to reason vertically at each site, even a change like this is simple.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: