DevOps by day Doc Brown by night
<TODO>
Keeping up with software and technology is a moving target.
Todays standards include;
"cross platform" and "cloud"
Requirements not options.
- AI is showing up more and more with an unknown impact
- Opensource solutions have moved to the forefront and into the mainstream
- MongoDB, Node.js, JSON and Angular are forming the base for enterprise applications
So what's an engineer to do?
</TODO>
Step one was to choose a target. NoSQL was showing up more and more.
Microsoft, C# and T-SQL have been my world and I was mostly focused on Data.
Then a project came up to upgrade a production PostgreSQL database nine versions. The instance was on Gentoo Linux.
It was logical to dive into MongoDB. The free MongoDB University helped.
Each course presented alternate environments for setting up labs. I used VMs on Hyper-V to provision Windows 10 and Linux(Ubuntu) instances . MongoDB was installed locally on the instances and provisioned on MongoDB.Atlas.
JSON and Node.js are important parts of this environment. To get more out of the course work I added Node.js and Angular to my class load and changed my screen background.
It had been years since I used the command window beyond basics. Now I had at least two windows open to different worlds.
Installing on Ubuntu and Windows was straight forward and performed as advertised. The links above will take you to the install instructions (that's usually where I like to start before downloading the program). Installing before reading the details? Been there, done that and the results were not pretty.
It was time to set up my Angular environment. I'm a tad old school so I picked up a book or three for reference. I had exhausted the online tutorials and solved the basics. Console applications only get you so far. "Angular 6 for Enterprise-Ready Web Applications" By Doguhan Uluca covered;
- Setting up the environement
- Using Git and Visual Studio Code
- Installing and configuring Node.js
- Agile development
- How the framework matches up with design patterns
- Configuring Docker
The material is covered in a project first format using test driven development. All of the books code was available on GitHub. The author also presented a solid approach to using GitHub as Source Control Management. The complete lifecycle of the application process through continuous integration and deployment on AWS was covered.
Step 2 Hardware Time
It was time to open the door to opensource without the Windows overhead. Linux was the choice and I wanted to be "all in".
My "Doc Brown" side jumped at the chance to build a new computer and who could lose with a name like "Bionic Beaver".
Doc Brown was done, satisfied with the Led Lights on the inside and a good selection of music recording software on the hard drive.
With the Linux box up, it was back to the books and to put it all together. It was back to running through installing the supporting systems and a deeper dive into the "Mean Stack".
Step 3 Back to the story
"NODE.JS, MONGODB AND ANGULAR WEB DEVELOPMENT" presents a detailed approach to each of the systems. Node is addressed first, presenting topics focused on using events and data I/O. The MongoDB section covers what NoSQL and MongoDB are then incorporates it with Node.js. Angular is the final section of the book building on both Node.js and MongoDB.
Starting with Node.js;
- Events, listeners, timers and callbacks are followed by Data I/O
- Data transports, File System, HTTP and Socket Services
- MongoDB basics, interfacing and access
- Typescript primer
- Angular Components, Expressions, Data Binding and Built In Directives
Hardware and software complete it was time to investigate Angular further. Angular Design Patterns was added to cover Angular's implementation of the Gang of Four patterns. This material is focused on approaching the design pattern and explaining the patterns purpose.
Topics included;
- TypeScript Best Practices followed by Angular Architecture and the CLI
- Patterns addressed through Components, Singletons, Factory Method and Observer.
- MVC and Redux
- Stability, performance and operation patterns
Coming from a .NET/C#/MVC focus, it was nice to see that Angular lined up with that model but that Redux was newer and focused on the JavaScript ecosystem.
The "IMDB" application built throughout the book can be extended to the "Movies" database tutorial on MongoDB.
Summary
There is a wealth of "free" information and on line documentation on the web. For many situations, it is my go to for the problem at hand. Some platforms, like MongoDB, offer excellent training with certifications.
The book resources I chose viewed the Node.js, MongoDB and Angular environements from three perspectives.
- A project view
- Component details
- Implementing the Gang of Four design patterns.
This provided a good overall view of this part of the opensource ecosystem with JavaScript at it's core. All three books support a strong development model and the frameworks that are based on the Gang of Four design patterns.