際際滷

際際滷Share a Scribd company logo
Name
Stuff
Osvaldas Grigas
損 @ogrigas
損 ogrigas@gmail.com
Source:
https://commons.wikimedia.org/wiki/File:Atelier_Fantasticit%C3%A9_Cr%C3%A9ation_d%27une_Ville_en_l%C3
%A9go_%C3%A0_Lille_Gare_Saint-Sauveur,_en_mai_2016a_01.jpg
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.
Source: https://esolangs.org/wiki/Ook!
https://en.wikipedia.org/wiki/Orangutan
Source: https://www.rosettacode.org/wiki/Hello_world/Text
https://en.wikipedia.org/wiki/Electronic_delay_storage_automatic_calculator
T64K
GK
O13@
O14@
O15@
O16@
O17@
O18@
O19@
O20@
O21@
O22@
O23@
O24@
ZF
*F
HF
EF
LF
LF
OF
!F
WF
OF
RF
LF
DF
EZPF
Source: https://en.wikipedia.org/wiki/Assembly_language
Source: https://en.wikipedia.org/wiki/George_W._Bush
Name Stuff
Source: http://wiki.c2.com/?XpSimplicityRules
Source: http://martinfowler.com/bliki/TwoHardThings.html
Phil Karlton
There are only two hard things in Computer Science:
損 cache invalidation
損 and naming things
Length of name
Java: URL
.NET: SR
PHP: dl
Java: MemberSubmissionAddressingWSDLParserExtension
.NET: IDataGridColumnStyleEditingNotificationService
PHP: xml_set_processing_instruction_handler
"... when each routine you read
turns out to be
pretty much what you expected."
-- Ward Cunningham
Source: https://en.wikipedia.org/wiki/Ward_Cunningham
Noise
"Noise words are redundant.
How is NameString better than Name?"
Operation op = new OperationImpl();
op.setType(OperationType.DEBIT);
op.setAmount(50);
op.setCurrency("EUR");
balance = balanceService.process(balance, op);
return balance.getAmount() < 0;
Name Stuff
Operation op = new OperationImpl();
op.setType(OperationType.DEBIT);
op.setAmount(50);
op.setCurrency("EUR");
balance = balanceService.process(balance, op);
return balance.getAmount() < 0;
balance.after(Debit.of(50, "EUR")).isNegative()
Abstractions
{
Object process(Object input);
}
interface ObjectProcessingService
// This service is supposed to be used
// in the context of ........................
// ......................................
Name Stuff
SetRatingToZeroWhenNoOrdersInTheLastYear(product)
ResetOutdatedRating(product)
Object
VS.
UserService
VS.
UserAuthentication
VS.
LdapAuthentication
VS.
ActiveDirectoryAuthentication
Name the abstraction
after the role it fulfils for its consumers
Name the concretion
after its reason to change
"A class should have only one reason to change."
-- Uncle Bob
Source: https://en.wikipedia.org/wiki/Robert_Cecil_Martin
EierLegendeWollMilchSau
Source: https://commons.wikimedia.org/wiki/File:Wollmilchsau.png
FarmService
Source: https://en.wikipedia.org/wiki/Weasel_word
"... create an impression that something
specific and meaningful has been said,
when in fact only a vague or
ambiguous claim has been
communicated"
-- Wikipedia
AccountService
AccountManager
AccountHandler
AccountProcessor
AccountUtils
AccountHelper
AccountData
AccountDTO
AccountInfo
AccountItem
AccountDetails
AccountObject
CustomAccount
DefaultAccount
AbstractAccount
BaseAccount
SimpleAccount
SmartAccount
AccountWhatever
AccountWhatever
AccountWhatever
AccountWhatever
AccountWhatever
AccountWhatever
AccountWhatever
AccountWhatever
AccountWhatever
AccountWhatever
AccountWhatever
AccountWhatever
WhateverAccount
WhateverAccount
WhateverAccount
WhateverAccount
WhateverAccount
WhateverAccount
Yoda  A long time ago
Bad naming leads to bad choices.
Bad choices lead to bad design.
Bad design leads to bad naming.
Bad choices Bad design
Bad naming
Better choices Simple design
Good naming
SmsMessageSender.sendMessage(SmsMessage msg)
SmsChannel.send(SmsMessage msg)
a_function_is_all_you_need()
Domain modeling
"Describe scenarios out loud using the
elements and interactions of the model."
-- Eric Evans
"When user changes its username,
we SetUsername in UserData and Save it by UserDAO."
VS.
"When user changes its username,
we ChangeUsername in UserRepository."
VS.
"When user changes its username,
we Store a UsernameChanged event to EventQueue."
Name Stuff
"Listen to the language
the domain experts use."
"Use the same language in diagrams,
writing, and especially speech."
-- Eric Evans
AccountOperationsService
CreditAndDebitLog
Ledger
Name Stuff
"If a developer must consider the
implementation of a component
in order to use it,
the value of encapsulation is lost."
-- Eric Evans
get_result()
get_sum_of_debits_and_credits()
calculate_balance()
 AbstractInterceptorDrivenBeanDefinitionDecorator
 SimpleRemoteStatelessSessionProxyFactoryBean
 TransactionAwarePersistenceManagerFactoryProxy
 SimpleBeanFactoryAwareAspectInstanceFactory
" We prefer not to name classes or
interfaces after patterns;
what matters to us is their relationship
to other classes in the system."
To recap
Source: https://en.wikipedia.org/wiki/Herd
Osvaldas Grigas
損 @ogrigas
損 ogrigas@gmail.com
Q&A

More Related Content

Name Stuff