How should a Scripting Project Look?
There is no standard procedure that might guide new scripting learners to professionally structure their projects. But nowadays, everyone is managing their project files as they like. This creates chaos in terms of how content is displayed, (which is not necessarily bad at all). But, this makes it difficult for sharing projects with others and using other’s work in your own projects.
So, the bottom line is… things should be simple and easy enough for everyone – so that:
Other’s can admire your work,
And you can learn from other’s work.
The Basic Structure of a Script
This is not entirely my idea to have a basic structure for every scripting project. I have learned from many amazing Batch scripting programs that were following a standard structure, in order to separate their main script from the external tools (external exes – they are using to add functionality).
Above, you can see that all the external tools (aka External Plugins) that you are using to make the script functional are kept inside the “Files” folder. Here, I am taking the example of my BatCenter project. This really helps a lot in keeping the mess out of the way of the end-user. And, everyone easily gets to know your main script, and they can decide where should they focus.
Adjusting the Code
So, if you change the folder structure of your project, you need to make a slight adjustment in your code as well. This adjustment will help you out in understanding Dynamic Scripting. This means that your script will not be Path Dependent (we will make the path as relative as we can). If this above sentence just went above your head, no worries. Keep reading, I’ll try to break down the concept of a Relative Path.
The PATH variable is the most important variable in your Windows environment. It stores folder paths that programs (or you) use, so they can be easily accessed in a command-line environment. So, just modify it to get the current path of the tools you need, and call them as if they were in the same location as before.
Including the above line of code, your scripts can now call all plugins/external tools directly, without the need to mention their proper paths in the call. This is similar to how the command-line accesses external commands such as echo, since they are located in the System32 folder.
Image Previews / Video Demo
How you represent your work, makes it either the BEST or the WORST. You should know that your project is familiar to you but not to others. And, if you want others to appreciate your work, you must represent it in a way that is easy to understand for them.
If EASY is not what we are doing, then we can take the help of Images and Videos to make others understand the most important question – what is my project is all about? This will also develop your communication skills, so you will prevail to be the BEST version of yourself.
Coding is not about printing “Hello World!” on screen,Kvc
It is about improving yourself!
And that is the reason we always prefer a video demo of the project. It saves a lot of time for everyone. So, you should always answer the following questions in your Video Demo of the project:
Important Questions to answer
- What is the purpose of my project?
- Did I take the help of any other programmer or used their work? – Credits must be given where they are due! This doesn’t reduce your reputation.
- How do you use the Project? This is not a video game that people will learn on their own!
- Why did I create this project?
Life is Hard!
If you yourself do not care enough to share & explain about your own project,
then you should not expect anyone else to care about it as well.
With this, I want to sign off with this message that that life is not easy. Do not try to go looking for easy solutions. If you are doing something, do it properly. That is how you make your name in a particular field. I am trying to do the same here. You should be the source of the quality that you expect from the world!
An engineer with this crazy vision to make things easier for people with his hobby projects. Just don’t want to waste my life’s work without sharing it with others before death.