Choose names that clearly communicate purpose and align with established domain terminology. Prioritize semantic clarity over brevity, and ensure consistency with the codebase’s vocabulary.

Key principles:

Example of good semantic naming:

# Instead of inline complex logic:
if @report.account.local? && !@statuses.empty? && (@report.account.user.settings['web.expand_content_warnings'] || @report.account.user.settings['web.display_media'] == 'show_all')

# Extract to semantically named method:
if @report.account.local? && !@statuses.empty? && @report.account.user.all_content_visible?

# Method clearly communicates its purpose:
def all_content_visible?
  settings['web.expand_content_warnings'] || settings['web.display_media'] == 'show_all'
end

This approach reduces cognitive load, improves code maintainability, and makes the codebase more accessible to new developers.