Is the [verb][noun][details] naming standard for Methods outdated within VS?
The longstanding standard for a method name is something like getEmployeeByName.

I've always abided by it but have never really had a good reason to question it ... but VS has now presented one and I'm wondering if other people find themselves moving away from it for similar reasons.

When viewing .cs files, VS always puts 2 drop downs at the top of the page ... one for selecting related namespaces and one for all the methods within the current class.  It's the method dropdown that has me questioning the age-old standard.

Let's consider some class to manage some Employee data - You could easily end up with something like this:

    getEmployeeById
    getEmployeesByLastName
    getEmployeesByFirstName
    getEmployeesByManager
    getEmployees
    getEmployeesByDepartment
    getManagersForEmployee
    getManagersForDepartment
    getManagerById
    getManagers
    getDepartmentForEmployee
    getDepartmentById
    getDepartments

As you scan through this list, your eyes are forced to focus on the character 4 spaces in ... and that's assuming you know what verb the person used for a particular function.  If all you know is that you're looking for a method that should validate and check for an Employee then it gets hairier ... would it be "validateAndCheckEmployee" ... just "validateEmployee", "checkEmployee", "existsEmployee" ... ?

I think it's actually more helpful to start with the name of the primary object your method is dealing with:

    departmentGetForEmployee
    departmentGetById
    departmentGetAll
    employeeGetById
    employeeGetByLastName
    employeeGetByFirstName
    employeeGetByManager
    employeeGetAll
    employeeGetByDepartment
    managerGetForEmployee
    managerGetForDepartment
    managerGetById
    managerGetAll

... which works well when other "verb" methods are introduced as the grouping becomes {Object}{Action}{Description} in the drop down list:

    employeeCreate
    employeeCreateWithDepartment
    employeeDelete
    employeeGetById
    employeeGetByFirstName
    employeeGetAll
    employeeUpdate
    employeeUpdateJustName

When you know you're looking for a method to create a new employee, it speeds up scanning (and prevents you from overlooking the right method because the author used "addEmployee" instead of "createEmployee" and you never scrolled up to see that method)

I know it's a small consideration ... but I've always been of the mindset that having a standard for the sake of having a standard has its uses but having a standard that also supplies some functionality or ease-of-use is even better.  And as someone in a group where we're currently working on defining coding standards, defining some standards that will be useful for years to come is a high priority for me right now.

Any examples of why people prefer this way or that way are welcomed and appreciated.
Is the [verb][noun][details] naming standard for Methods outdated within VS?
===

The longstanding standard for a method name is something like getEmployeeByName.

I've always abided by it but have never really had a good reason to question it ... but VS has now presented one and I'm wondering if other people find themselves moving away from it for similar reasons.

When viewing .cs files, VS always puts 2 drop downs at the top of the page ... one for selecting related namespaces and one for all the methods within the current class.  It's the method dropdown that has me questioning the age-old standard.

Let's consider some class to manage some Employee data - You could easily end up with something like this:

    getEmployeeById
    getEmployeesByLastName
    getEmployeesByFirstName
    getEmployeesByManager
    getEmployees
    getEmployeesByDepartment
    getManagersForEmployee
    getManagersForDepartment
    getManagerById
    getManagers
    getDepartmentForEmployee
    getDepartmentById
    getDepartments

As you scan through this list, your eyes are forced to focus on the character 4 spaces in ... and that's assuming you know what verb the person used for a particular function.  If all you know is that you're looking for a method that should validate and check for an Employee then it gets hairier ... would it be "validateAndCheckEmployee" ... just "validateEmployee", "checkEmployee", "existsEmployee" ... ?

I think it's actually more helpful to start with the name of the primary object your method is dealing with:

    departmentGetForEmployee
    departmentGetById
    departmentGetAll
    employeeGetById
    employeeGetByLastName
    employeeGetByFirstName
    employeeGetByManager
    employeeGetAll
    employeeGetByDepartment
    managerGetForEmployee
    managerGetForDepartment
    managerGetById
    managerGetAll

... which works well when other "verb" methods are introduced as the grouping becomes {Object}{Action}{Description} in the drop down list:

    employeeCreate
    employeeCreateWithDepartment
    employeeDelete
    employeeGetById
    employeeGetByFirstName
    employeeGetAll
    employeeUpdate
    employeeUpdateJustName

When you know you're looking for a method to create a new employee, it speeds up scanning (and prevents you from overlooking the right method because the author used "addEmployee" instead of "createEmployee" and you never scrolled up to see that method)

I know it's a small consideration ... but I've always been of the mindset that having a standard for the sake of having a standard has its uses but having a standard that also supplies some functionality or ease-of-use is even better.  And as someone in a group where we're currently working on defining coding standards, defining some standards that will be useful for years to come is a high priority for me right now.

Any examples of why people prefer this way or that way are welcomed and appreciated.