Enhanced методы


8 0

Я достаточно нормально отношусь к именованиям методов и классов. Имя просто должно быть понятным и отражать суть. Но вот что меня бесит, так это имена типа EnhancedMethod. Был раньше просто Method, а теперь стал EnhancedMethod. 

А через год, когда поймут что текущий метод не очень хороший будут создавать EnhancedMethod2 или может EnhancedEnhancedMethod? 

Слова паразиты типа Enhanced или New должны быть исключены при именовании. Нужно быть более креативным. 


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Дмитрий

17 Февраля 2018

Креативным как создатели Spring'а, в котором название класса меньше 20 букв это несерьзно, типа InternalResourceViewResolver


KastorDriver

17 Февраля 2018

Дмитрий, а что тебя смущает? Это ты еще не видел названия тестов, например как "whenDivideByZeroThenThrowException" =)


Dmitry Romanenko

17 Февраля 2018

Похожее название помогает с портированием. Амазон в своих библиотеках спокойно дописывает _v2 в новых версиях методов.


Михаил Фленов

17 Февраля 2018

Просто добавление 2 или v2 я еще могу понять, хотя тоже не очень люблю такое. Нумерация версий лучше, чем enhanced, поэтому практически все нумеруют классы и методы, когда это необходимо


KastorDriver

18 Февраля 2018

Амазон в своих библиотеках спокойно дописывает _v2

Дичь какая-то. Даже представить себе сложно. Т.е. допустим есть некий метод в либе, и оп, разрабочик улучшил его и запилил рядом theSameMethod_v2? А причина какая? Сигнатура изменилась? Так это нарушение принципа обратной совместимости.


Dmitry Romanenko

18 Февраля 2018

Либо изменение сигнатуры, либо поведение.
Встречал картину когда v2 метод появлялся, и при этом v1 моментально становился deprecated, с последующим уходом в следующей major версии. Тот факт что название похожее - легко заметить обновленный метод в документации и в нужный момент мигрировать.


KastorDriver

19 Февраля 2018

Либо изменение сигнатуры, либо поведение.

Изменение сигнатуры не приводит к необходимости изменения имени метода.

Если меняется поведение, а сигнатура остается, то зачем делать рядом methodName_v2() ?
Ну поменялась реализация и отлично! Пусть сигнатура остается прежней. Мне как пользователю (по большому счету) не нужно знать, что там под капотом улучшилось.
А то получается, что это все равно что программировать на уровне классов, а не интерфейсов.


maestro

19 Февраля 2018

WinApi видели? CreateWindow, CreateWindowA, CreateWindowW, CreateWindowEx...


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне