He estado leyendo " Clean Code " de Robert Martin para, con suerte, convertirse en un mejor programador. Aunque hasta ahora nada de eso ha sido realmente innovador, me ha hecho pensar de manera diferente sobre la forma en que diseño aplicaciones y escribo códigos.
Hay una parte del libro con la que no solo no estoy de acuerdo, sino que no tiene sentido para mí, específicamente en lo que respecta a las convenciones de nombres de interfaces. Aquí está el texto, tomado directamente del libro. Me he negado al aspecto de esto que me parece confuso y me gustaría aclararlo.
Prefiero dejar las interfaces sin adornos. El I anterior, tan común en los fajos heredados de hoy, es una distracción en el mejor de los casos y demasiada información en el peor. No quiero que mis usuarios sepan que les estoy entregando una interfaz .
Tal vez sea porque soy solo un estudiante, o tal vez porque nunca he hecho ninguna programación profesional o en equipo, pero quisiera que el usuario supiera que es una interfaz. Hay una gran diferencia entre implementar una interfaz y extender una clase.
Por lo tanto, mi pregunta se reduce a, "¿Por qué debemos ocultar el hecho de que alguna parte del código está esperando una interfaz?"
Editar
En respuesta a una respuesta:
Si su tipo es una interfaz o una clase es su negocio, no el negocio de alguien que usa su código. Por lo tanto, no debe filtrar detalles de su código en este código de terceros.
¿Por qué no debo "filtrar" los detalles de si un tipo dado es una interfaz o una clase a un código de terceros? ¿No es importante para el desarrollador externo que use mi código saber si implementarán una interfaz o ampliarán una clase? ¿Las diferencias simplemente no son tan importantes como lo estoy haciendo para que estén en mi mente?