Software Engineer/Software Architect
www.DomainDrivenDesign.ir
www.MasodBahrami.Ir
Twitter: @masodbahrami
LinkedIn: @masoud-bahrami
GitHub: @masoud-bahrami
“Everything has been said before, but since nobody listens we have to keep going back and beginning all over again.”
--Andre Gide
What date was Eid al-Fitr this year?
Lunar Calendar
DDD Europe 2024
@masod-bahrami
Naming is Caring
the biggest fear of a Software Developer/Product Manager?
Deadline
What’s
DDD Europe 2024
@masod-bahrami
Naming is Caring
The deadline is approaching
We are getting close to the deadline
DDD Europe 2024
@masod-bahrami
Naming is Caring
The talk "DDD and LLMs" moved forward one hour.
DDD Europe 2024
@masod-bahrami
Naming is Caring
“Eric Evans' talk "DDD and LLMs" at DDD Europe 2024 moved forward one hour.”
16:45
17:45
15:45
16:45
17:45
18:45
Thursday
Sunday
Friday
31
30
01
DDD Europe 2024
@masod-bahrami
Naming is Caring
DDD Europe 2024
@masod-bahrami
Naming is Caring
Thursday
Sunday
Friday
31
30
01
Sunday
شنبه
Thursday
پنچشنبه
Friday
جمعه
31
01
30
DDD Europe 2024
@masod-bahrami
Naming is Caring
Point the South-West
DDD Europe 2024
@masod-bahrami
Naming is Caring
Kuuk Thaayorre language
https://www.youtube.com/watch?v=RKK7wGAYP6k
DDD Europe 2024
@masod-bahrami
Naming is Caring
Blue
goluboy
siniy
https://www.youtube.com/watch?v=RKK7wGAYP6k
DDD Europe 2024
@masod-bahrami
Naming is Caring
Which comes first, Language or Thought?
Can a language shape the way we think about things?
DDD Europe 2024
@masod-bahrami
Naming is Caring
When
Participating in a protest
Before leaving the house
Building a House
Before beginning construction
Writing a program
Before writing any code
@Leslie lamport
DDD Europe 2024
@masod-bahrami
Naming is Caring
“Writing is nature’s way of thinking of letting you know how sloppy your thinking is.”
--Guindon
To think, we have to write …
DDD Europe 2024
@masod-bahrami
Naming is Caring
What To Write
Participating in a protest
Building a House
Writing a program
DANGEROUS ACTIVITY!
Blueprints
Specification
Specification by Example
DDD Europe 2024
@masod-bahrami
Naming is Caring
Language
Thinking
Writing
DDD Europe 2024
@masod-bahrami
Naming is Caring
Programming Language!
PHP
C#
Java
Java Script
Clojure
Erlang
F#
DDD Europe 2024
@masod-bahrami
Naming is Caring
Cultivating the LANGUAGE
Cultivating the Driver of your Design
means
Of the domain being modelled
DDD Europe 2024
@masod-bahrami
Naming is Caring
Language-Driven Design
Yet-another *DD(ish) :(
www.LanguageDrivenDesign.Com
DDD Europe 2024
@masod-bahrami
Naming is Caring
What is the most common thing in any language evolution?
Naming things
DDD Europe 2024
@masod-bahrami
Naming is Caring
Naming in software development
(Re(Re(Re(Naming)))...)
git
repo
branch
folder
file
api
class
object
Method/function
property
namespace
service
entity
Value object
microservices
tables
Nodes/relations
Domain service
Application service
Domain event
Internal event
External event
Creational objects
Integration event
Event in EventSourcing
Columns
Db Entity
DBs
Store Procedure
Commands
Queries
DTOs
View Models
DDD Europe 2024
@masod-bahrami
Naming is Caring
Naming in software development
git
repo
branch
folder
file
api
class
object
Method/function
property
namespace
service
entity
Value object
microservices
tables
Nodes/relations
Domain service
Application service
Domain event
Internal event
External event
Creational objects
Integration event
Event in EventSourcing
Columns
Db Entity
DBs
Store Procedure
Commands
Queries
DTOs
View Models
DDD Europe 2024
@masod-bahrami
Naming is Caring
Is it easier to get a job if you're Adam or Mohamed?
What’s actually inside a name?
https://www.tandfonline.com/doi/abs/10.1080/00224545.1948.9918930
Resumes with black, white names
DDD Europe 2024
@masod-bahrami
Naming is Caring
Namicism
DDD Europe 2024
@masod-bahrami
Naming is Caring
Namicism
Scrum Master
Product Owner
Hexagonal Architecture
Clean Architecture
Even…
@SAFe
SAFe is not safe. Trust me ☹
DDD Europe 2024
@masod-bahrami
Naming is Caring
What date was Eid al-Fitr this year?
1367 - 1368 - 1369 - 1370
Born on:
1990-04-28�1369-02-07
DDD Europe 2024
@masod-bahrami
Naming is Caring
That’s Why …
Naming is Caring
Context
Context is King
because
because
DDD Europe 2024
@masod-bahrami
Naming is Caring
Masoud, have you forgotten that�“Talk is cheap, show me the code."
I understand what you are saying but I don’t realize
DDD Europe 2024
@masod-bahrami
Naming is Caring
Depth-First Exploration
Breadth-First Exploration
Wikipedia approach
DDD Europe 2024
@masod-bahrami
Naming is Caring
Just keep abstraction level of exploration
Exploration vs Discovery
Because
DDD Europe 2024
@masod-bahrami
Naming is Caring
Heuristics
ABSTRACTION
KEEP AWAY FROM WIKIPEDIA-APPROACH
NO “NUMBER” IN USER STORIES-EPICS
DDD Europe 2024
@masod-bahrami
Naming is Caring
Accounting
Create Accounts for different categories (e.g., assets, liabilities, income, expenses)
easily record income and expense transactions with proper categorization and dates
import bank statements and categorize transactions
reconcile bank statements with recorded transactions to ensure the accuracy of financial data
create group accounts to categorize related general ledger accounts
link specific general ledger accounts to subledgers
create and manage general ledger accounts
DDD Europe 2024
@masod-bahrami
Naming is Caring
Accounting
Show profit and loss statements
Show balance sheets
Show cash flow statements
view a hierarchical chart of accounts with standard categories
import a pre-defined chart of accounts template or upload a custom chart from a spreadsheet,
deactivate accounts that are no longer in use
create and manage general ledger accounts
DDD Europe 2024
@masod-bahrami
Naming is Caring
Accounting
define the financial year of the business, including start and end dates
Create opening balances for all general ledger accounts at the beginning of a new financial year
perform a year-end closing process at the end of the financial year
record all financial transactions in a chronological journal with detailed information, including dates, descriptions, accounts affected, and amounts
edit, delete, and reverse journal entries in the journal,
post journal entries from the journal to individual general ledger accounts
DDD Europe 2024
@masod-bahrami
Naming is Caring
Breadth-First Exploration
Where should we start to explore?
DDD Europe 2024
@masod-bahrami
Naming is Caring
Story Telling
99.99% is Context
Main Point
DDD Europe 2024
@masod-bahrami
Naming is Caring
(some!)Heuristics of BFE
DDD Europe 2024
@masod-bahrami
Naming is Caring
Clojure of Concepts
As less as possible concepts
DDD Europe 2024
@masod-bahrami
Naming is Caring
Accounting
define the financial year of the business, including start and end dates
Create opening balances for all general ledger accounts at the beginning of a new financial year
perform a year-end closing process at the end of the financial year
record all financial transactions in a chronological journal with detailed information, including dates, descriptions, accounts affected, and amounts
edit, delete, and reverse journal entries in the journal,
post journal entries from the journal to individual general ledger accounts
DDD Europe 2024
@masod-bahrami
Naming is Caring
Accounting
Financial year
Financial year
Financial year
opening
year-end
Journal
Journal Entry or Financial Transaction
DDD Europe 2024
@masod-bahrami
Naming is Caring
Journal
Financial Transaction
Entries
Debits or Credits a Sub-Ledger Account
Double Entry bookkeeping
At least 2 entries
DDD Europe 2024
@masod-bahrami
Naming is Caring
Be Careful
False pulse of the domain
DDD Europe 2024
@masod-bahrami
Naming is Caring
Product Landing Page
https://search.muz.li/OGFjZGM1NzY0
DDD Europe 2024
@masod-bahrami
Naming is Caring
Thank You Very Much
DDD Europe 2024
@masod-bahrami
Naming is Caring
Be careful
Besic info paradox
Let’s look at a Payroll system
DDD Europe 2024
@masod-bahrami
Naming is Caring
Metaphor
DDD Europe 2024
@masod-bahrami
Naming is Caring