BestPractices now advises against the use of lazy_build
Karen Etheridge [Fri, 30 Mar 2012 16:33:56 +0000 (09:33 -0700)]
lib/Moose/Manual/BestPractices.pod

index bdf5ffe..cccb3b0 100644 (file)
@@ -102,6 +102,13 @@ by default.
 Predicates are less problematic, but there's no reason to make your
 public API bigger than it has to be.
 
+=head2 Avoid C<lazy_build>
+
+As described above, you rarely actually need a clearer or a predicate.
+C<lazy_build> adds both to your public API, which exposes you to usecases that
+you must now test for. It's much better to avoid adding them until you really
+need them - use explicit C<lazy> and C<builder> options instead.
+
 =head2 Default to read-only, and consider keeping writers private
 
 Making attributes mutable just means more complexity to account for in