pub struct HubLikeDependencyAnalyzer {
pub max_imports: usize,
}Expand description
Detect Hub-like modules with excessive fan-out (too many imports).
A module that imports too many other modules acts as a “hub” in the dependency graph, coupling itself to a large portion of the system.
§References
[1] F. Arcelli Fontana, I. Pigazzini, R. Roveda, and M. Zanoni, “Architectural Smells Detected by Tools: a Catalogue Proposal,” in Proc. 13th European Conf. Software Architecture (ECSA), 2019. doi: 10.1145/3344948.3344982.
[2] R. C. Martin, “Agile Software Development: Principles, Patterns, and Practices,” Prentice Hall, 2003. ISBN: 978-0135974445. Chapter 20: Stable Dependencies Principle.
Fields§
§max_imports: usizeTrait Implementations§
Source§impl Default for HubLikeDependencyAnalyzer
impl Default for HubLikeDependencyAnalyzer
Source§impl Plugin for HubLikeDependencyAnalyzer
impl Plugin for HubLikeDependencyAnalyzer
Source§fn description(&self) -> &str
fn description(&self) -> &str
Short description of what the plugin detects.
Source§fn analyze(&self, ctx: &AnalysisContext<'_>) -> Vec<Finding>
fn analyze(&self, ctx: &AnalysisContext<'_>) -> Vec<Finding>
Run analysis on a single file and return findings.
List of authors.
Auto Trait Implementations§
impl Freeze for HubLikeDependencyAnalyzer
impl RefUnwindSafe for HubLikeDependencyAnalyzer
impl Send for HubLikeDependencyAnalyzer
impl Sync for HubLikeDependencyAnalyzer
impl Unpin for HubLikeDependencyAnalyzer
impl UnsafeUnpin for HubLikeDependencyAnalyzer
impl UnwindSafe for HubLikeDependencyAnalyzer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
Query the “status” flags for the
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
Set the “status” flags for the
self file descriptor. Read moreSource§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more