First one are method name, second one are status name.
def open_file_dialog(self):
self.dialog_file_open = True
pass
Yoda level preference war.
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
First one are method name, second one are status name.
def open_file_dialog(self):
self.dialog_file_open = True
pass
Yoda level preference war.
I tend to add is to booleans toreally differentiate between a method name and a status.
def open_file_dialog(self):
self.dialog_file_is_open = True
pass
That way, it's easier for my dumb brain to spot which is which at a glance.
is_dialog_file_open
fite me
No fiting. IS always goes at the start of names for booleans you are correct
In Elixir, we mark statuses by using a question mark at the end of the variable name. Something like this:
authorized? = user |> get_something() |> ensure_authorized?()
I like this better than the is_
prefix
does '?' have type definition in elixir or this is generally agreed design pattern?
If it's like Lisp, then ?
is just part of the symbol and doesn't have any special syntatic meaning. In different Lisps it's also convention to end predicate names with a ?
or with P
(p for predicate)
This is the way.
Command statement = an action
Question statement = a status
I'm truly torn with this. The first one seems sensible (action -> target) and easier to read and reason about (especially with long names), while the other one looks more organized, naturally sortable and works great with any autocompletion system.
We need a new framework, one that allows universal lookup, and makes life easier
x = _.dialog.file.open
y = _.open.file.dialog
z = _.file.open.dialog
a = _.file.dialog.open
Once done, the formatter simply changes everything to _.open.file.dialog
Let's get this done JS peeps
\s
Aahh you can't just make this problem object oriented!
C programmers don't like that.
There is a reason why little endian is preferred in virtually 100% of cases: sorting. Mentally or lexicographically, having the most important piece of information first will allow the correct item be found the fastest, or allow it to be discounted/ignored the quickest.
That's actually filtering not sorting.
That being said, it's more valuable (to me) to be able to find all my things for a topic quickly rather than type.
Foo_dialog
Foo_action
Foo_map
Bar_dialog
Bar_action
Bar_map
Is superior IMHO.
If you are looking for Bar
, it is highly likely that you are already looking specifically for a particular functionality - say, the action
- for Bar
. As such, it is irrelevant which method you use, both will get you to the function you need.
Conversely, while it is likely you will want to look up all items that implement a particular functionality, it is much less likely you are going to ever need a complete listing of all functionality that an item employs; you will be targeting only one functionality for that item and will have that one functionality as the primary and concrete focus. Ergo, functionality comes first, followed by what item has that functionality.
But also, sorting big endian automatically groups elements associated with common functions making search, completions, and snippets easier (if you use them). I'm torn
Where's file_dialogue_open
We're all trying our best to ignore the Americans and you bring up m/d/y... why!
This is the real big-endian way. So your things line-up when you have all of these:
file_dialogue_open
file_dialogue_close
file_dropdown_open
file_rename
directory_remove
If I were designing a natural language, I'd put adjectives after the nouns, so you start with the important things first:
car big red
instead of
big red car
literally spanish lol
To be fair, it's also missing open_dialog_file
, dialog_open_file
and most crucially file_open_dialog
I prefer everything to be how you would read it as text. So create_file_dialog
it is. Honorable mention is to have it namespaced in a class or something which I think is best. file_dialog.create
or dialog.create_file
or even dialog.file.create
I do one, the other senior dev does the other. We fight about it in pull requests.
Your team needs to have a coding standards meeting where you can describe the pros and cons of each approach. You guys shouldn't be wasting time during PR reviews on the same argument. When that happens to me, it just feels like such a waste of time.
Preachin to the choir, friend. I'd get worked up about it but I'm paid the same regardless of how upset I get.
Variety is the spice of life.
Mmmmmmmm... Lexicographical Endianness.
I used to like the action
followed by direct object
format, until some time ago when trying to find methods or variables related to a specific object. If the action comes first, scanning for the object without an IDE means first reading unnecessary information about the action. That convinced me to opt for $object-$action
in situations where it makes sense.
For example in CSS, I often scan for the element, then the action, so $element-$action
makes more sense. BEM kinda follows this. When dealing with the DOM in JS, that makes sense too button.fileDialogOpen()
, button.fileDialogSend()
, ... makes more sense when searching.
Of course one has to use it sensibly and where necessary. If you are writing a code that focuses more on actions than objects, putting the action first makes sense.
A similar thing is definition order.
def main(args):
result = do_something(args.input)
processed = process_result(result)
transformed = transform_object(processed)
return transformed.field
def do_something(some_input):
...
def process_result(result):
...
def transform_object(obj):
...
I find this much easier to follow than if main
were defined last, because main
is obviously the most important method and everything else is used by it. A flattened dependency tree is how these definitions make sense to me or how I would read them as newbie to a codebase.
the people who chose the first one...who hurt you?
I will
No one, it just makes sense.
You must be one of those "Throw your mother downstairs, the box of tissues" types.
Yoda sounded normal to you I bet.
It makes sense until you write 30 methods to manipulate the data layer.
I worked at a place where all the DB column names were like id_user
, id_project
. I hated it.
Powershell has a lint warning for functions that don't follow Verb-Noun format, and verbs here are a list of approved verbs lol
Whatever is more useful goes first.
For example, if this we're a list of UI text strings, finding all of the dialogue options together might be useful.
If, instead, this is a series of variables already around one dialogue, then finding the open or close bits together would be useful.
I personally prefer dialogs.FileDialog.open()
I just name my variables a, b, c etc. If I have more than 26 variables in any given function, I name them aa, ab, ac, etc.
Yes.
First of all, it's spelled dialogue
Two wars can exist simultaneously.
Both:
dialog_error = Dialog_plain.create_modal(error_text)
Variable and class names go from more general to more particular, functions begin with a verb.
Global functions are either "main", or start with one of "debug", "todo", or "shit".
The object/class/thing would normally be its own class file, the action would be a method/function of said class.
Ie:
fileDialog.open()
fileDialog = Class (Dialog), Subclass (FileDialog)
It’s referring to variable names. For example, you have a variable named fileDialog. I would prefer to have that named dialogFile.