Let me Share some light on a simple strategy, which will help you deal with your mistakes in a responsible and efficient way.
First and foremost, you should understand this fact:
There is no experience without failure.
Give it some time to settle in your head.
Now the next fact:
It is not a real problem if you have made a mistake.
It is a problem if you have not fixed the consequences.
Are you ok with that idea?
Then, here is the third one:
It is you who is in charge for fixing negative effects you have caused.
This is actually what distinguish a responsible person – she can deal with unforeseen events and respond to them in a sane way.
So what should I do?
Obviously, you should fix the problem.
Also, you should try to keep all the “involved parties” happy.
And here is a general overview of the things you need to do:
- Do not wait for a command to fix everything. Fix it!
Be proactive, but let everybody know that there is a problem.
- Inform all your involved colleagues that your are dealing with the problem. This will add some certainty and calm people down.
- Inform the affected users that there is a problem and you are solving it.
This helps to build good relationships with end users.
Do not be afraid to show the problem – people love openness and they tend to forgive soon.
- Ask others for help of guidance if you are in doubt!
Do not make things worse if you are not sure what to do.
- Escalate the problem, if you cannot make a decision!
If you manager will bark at you – then he is just a motherfucker (or simply had a bad mood). You will deal with that later.
The foremost target is to fix the problem, so that people do not suffer.
- Analyze the cause of the mistake.
Do you understand how does your system work?
Did you have all the necessary knowledge?
How to prevent the same issue from happening again?
If you are not building something really tiny and throw-away, then you need these things:
- Modular structure for your project.I personally would prefer Component-based architecture. It is applicable to various frameworks.Also, consider some extreme cases, like BOT or Elm Architecture or re-frame or CycleJS.
- Automated asset/compilation/build pipeline (grunt/gulp/brunch/broccoli).Because, you know, live is to short to do the same stuff again and again and again.
- CSS preprocessors (jss/stylus/sass/css-modules) and postprocessors (csso, autoprefixer, postcss)This tools will make CSS a bit better and remove some burden of managing cross-browser issues. Yes, I know that it is 2016, but anyway, its still pain in the ass.
- Markup framework (Bootstrap, Zurb Foundation, Elemental UI, Material Lite)This things incorporate tons of lnowledge and 1000 years of suffering of web developers. They would help you deal with basic markup and styles.Though, you may consider build your own solution, if you feel like markup hero and frontend expert. Or you need to establish a design dictionary for your company.In this case, I’d suggest you to pick up the methodology (BEM, OOCSS) as soon as possible. It would save your time.I personally prefer BEM naming scheme and custom workflow. You can find some thoughts behind this in the styleguide for Brainly.com which I help to build.
If you do not where to start building your custom markup methodology, have a look at HTML5 Boilerplate
- Test runner (jasmine, karma, mocha, tape, intern).Everyone need tests. No exceptions.
- Code quality assurance tools (eslint, husky, editorconfig).You do not want your code become a mess, do you?
- Any community to get help from (chats, IRC, meetups, twitter).
Also Read : Language Checklist
When you have answered those high-level questions, it’s a good time to talk to your teammates and pick up a language!
- Do you have a team of JS-developers?Consider using ES6 (with babel).
It will make your life a bit easier.
- Do you prefer typed languages? Are you fellows ok with types?Consider typescript.
- Are you all OK with functional programming?You can start small with ES6 and libraries like lo-dash or ramda. There is a couple of good tutorials and books to help you get started on this cool journey!
- Have you tried functional JS and wanna get more nice things?Try elm. It’s awesome!
- Are you more like a full stack guys?Try clojurescript. It’s awesome too!
- Do you like Scala already?Try scalaJs.
- Do you know and like Haskell?Try purescript. No idea how cool it is :)
Also Read : Framework Checklist