diff --git a/content/meta/index.json b/content/meta/index.json index 1bf431a51..53f32061e 100644 --- a/content/meta/index.json +++ b/content/meta/index.json @@ -6738,5 +6738,12 @@ ], "path_alias.33301c7f-3252-46b8-9f3c-87f8d6efb5e2": [ "node.add68937-4a3d-410d-a0d3-4510e3cb9e19" + ], + "node.ebad7a57-881a-470e-9ec0-84ec23ac0802": [ + "user.b8966985-d4b2-42a7-a319-2e94ccfbb849", + "node.9b4c39a3-702f-486c-a79b-4d7b96a4f3f6" + ], + "path_alias.ba5184ef-27f5-4f50-94f8-4bbecaa563b0": [ + "node.ebad7a57-881a-470e-9ec0-84ec23ac0802" ] } \ No newline at end of file diff --git a/content/node.ebad7a57-881a-470e-9ec0-84ec23ac0802.json b/content/node.ebad7a57-881a-470e-9ec0-84ec23ac0802.json new file mode 100644 index 000000000..d1e6cda74 --- /dev/null +++ b/content/node.ebad7a57-881a-470e-9ec0-84ec23ac0802.json @@ -0,0 +1,97 @@ +{ + "uuid": [ + { + "value": "ebad7a57-881a-470e-9ec0-84ec23ac0802" + } + ], + "langcode": [ + { + "value": "en" + } + ], + "type": [ + { + "target_id": "daily_email", + "target_type": "node_type", + "target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7" + } + ], + "revision_timestamp": [ + { + "value": "2025-07-06T22:48:02+00:00" + } + ], + "revision_uid": [ + { + "target_type": "user", + "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" + } + ], + "revision_log": [], + "status": [ + { + "value": true + } + ], + "uid": [ + { + "target_type": "user", + "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" + } + ], + "title": [ + { + "value": "Avoiding indentation" + } + ], + "created": [ + { + "value": "2025-07-04T22:46:00+00:00" + } + ], + "changed": [ + { + "value": "2025-07-06T22:48:02+00:00" + } + ], + "promote": [ + { + "value": false + } + ], + "sticky": [ + { + "value": false + } + ], + "default_langcode": [ + { + "value": true + } + ], + "revision_translation_affected": [ + { + "value": true + } + ], + "path": [ + { + "alias": "\/daily\/2025\/07\/04\/avoiding-indentation", + "langcode": "en" + } + ], + "body": [ + { + "value": "A guide that I use when writing or reviewing code is to avoid or minimise indentation.\r\n\r\nUsually, the nearer to the left of the file the text is, the better.\r\n\r\nIf you had this code:\r\n\r\n```php\r\n 3) {\r\n \/\/ Do something...\r\n }\r\n }\r\n }\r\n}\r\n```\r\n\r\nWhat if you refactored it to use early returns and remove some indentation?\r\n\r\n```php\r\nA guide that I use when writing or reviewing code is to avoid or minimise indentation.<\/p>\n
Usually, the nearer to the left of the file the text is, the better.<\/p>\n
If you had this code:<\/p>\n
<?php\n\nfunction doSomething() {\n if ($a === TRUE) {\n if ($b === 'banana') {\n if ($c > 3) {\n \/\/ Do something...\n }\n }\n }\n}\n<\/code><\/pre>What if you refactored it to use early returns and remove some indentation?<\/p>\n
<?php\n\nfunction doSomething() {\n if ($a !== TRUE) {\n return;\n }\n\n if ($b !== 'banana') {\n return;\n }\n\n if ($c <= 3) {\n return;\n }\n\n \/\/ Do something...\n}\n<\/code><\/pre>This is easier for me to read and review.<\/p>\n
I can keep track of there I am in the function as it is more linear. Especially if the code within each condition block is more complex.<\/p>\n
Indentation in CSS<\/h2>\n
CSS now supports nesting, similar to Sass and other preprocessors, so you can write CSS like this:<\/p>\n
.menu {\n ul {\n li {\n a {\n color: red;\n }\n }\n }\n}\n<\/code><\/pre>I usually find this harder to search, particularly if a pre-processor like Sass is being used, so I avoid it as much as possible.<\/p>\n
I only really use it to style pseudo-selectors like :hover<\/code> and :focus<\/code> to element.<\/p>\nIndentation in Nix<\/h2>\n
In Nix, these two examples achieve the same thing:<\/p>\n
services.gammastep = {\n enable = true;\n provider = \"geoclue2\";\n};\n\nservices.gammastep.enable = true;\nservices.gammastep.provider = \"geoclue2\";\n<\/code><\/pre>In long files, it can be hard to keep track of what service you're configuring once it has been indented.<\/p>\n
Whilst it adds some duplication, I've recently favoured the second approach in my code.<\/p>\n
Here's the thing<\/h2>\n
There needs to be some indentation in code to allow for functions, conditions, loops, etc.<\/p>\n
But, whichever language I'm writing, I usually aim for no more than two levels of indentation in a file.<\/p>\n
If code is indented further, I'll try or suggest an alternative approach to reduce the indentation - which usually results in cleaner code overall.<\/p>\n",
+ "summary": ""
+ }
+ ],
+ "field_daily_email_cta": [
+ {
+ "target_type": "node",
+ "target_uuid": "9b4c39a3-702f-486c-a79b-4d7b96a4f3f6"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/content/path_alias.ba5184ef-27f5-4f50-94f8-4bbecaa563b0.json b/content/path_alias.ba5184ef-27f5-4f50-94f8-4bbecaa563b0.json
new file mode 100644
index 000000000..f19e45c9e
--- /dev/null
+++ b/content/path_alias.ba5184ef-27f5-4f50-94f8-4bbecaa563b0.json
@@ -0,0 +1,27 @@
+{
+ "uuid": [
+ {
+ "value": "ba5184ef-27f5-4f50-94f8-4bbecaa563b0"
+ }
+ ],
+ "langcode": [
+ {
+ "value": "en"
+ }
+ ],
+ "path": [
+ {
+ "value": "\/node\/ebad7a57-881a-470e-9ec0-84ec23ac0802"
+ }
+ ],
+ "alias": [
+ {
+ "value": "\/daily\/2025\/07\/04\/avoiding-indentation"
+ }
+ ],
+ "status": [
+ {
+ "value": true
+ }
+ ]
+}
\ No newline at end of file