Refactoring - Improving the Design of Existing Code
I have recently finished the Java Programming for Beginners with Sau Saurav on my mobile, still working on the Software Testing book (halfway through), the Programming Pearls book is a great connector of the past and present with problems they solved and how our tools have shaped from those initial issues and have started the next book in my list of things to do - Refactoring. The book is very clear in any project setup with movie rentals in the beginning chapters. I enjoy this because during my crucial burn out in ASP.NET and navigation using the provided textbook, I got lost and the material was hard to follow because it jumped from examples that did not fluidly explain in detail what I should be looking for, how to manage the project properly, and the idea of refactoring was still fairly new. Provisional to concepts in design implementation, MVVM (Model-View-ViewModel pattern), and folder structure apart from Linux/Web style created an entirely new workstation for me. The Refactoring book includes State Patterns, Patterns that involve remodeling UML structures, and organizing each change effectively because they are tried and tested concepts that work.
Now, after beginning this book, I understand much more clearly the intentions of the platform and how it can effectively improve my code habits with utilizing refactoring as a base in any project I presume hereafter.
Pay attention to the transitions and the book does an awesome job of labeling these moving methodologies in the book - HIGHLY RECOMMEND reading this book if you ever wondered how refactoring is supposed to look, feel, and result as. EVERY process involved with moving methods, renaming conventions, and altering the appearance of code without losing the functionality is very important to follow! Reading this book is definitely going to improve my coding habits and understanding.
Tools that Helped
I have also begun to utilize Dendron with VS Code as a text extension to follow along with the project and document my notes, my reminders, and some key highlights of the project transitions. I also utilized the Snapshot Extension with VS Code and Paste Extension to save snippets of the code that transformed with refactoring - making it an ideal way to provide learner's step reminders when teaching this material later.
The other improvement I have been ingesting is watching YouTube videos of George with CoreDumped for enhancing the code and hardware connections in the low level programming concepts. This is definitely something I am going to need in the career I want and improves the expectations of software developers in the future to remain with the foundation we are building our processes (not programs) in our current OS infrastructures. I highly encourage doing these as you develop in your career if you have not already!
Highlights Outside Studies
Some key highlights I have noticed, reading other articles outside of study in my leisure is knowing that the improvements we make from a computer science background, is that the mathematics involved are much different than the core mathematical curriculum we learn in arithmetic studies. Do not confuse the results with processes used because those core fundamentals are still required and should not change. I noticed that yes, they do answer some answers, but they also create confusion. The answer is restricted to a computer science foundation with digital logic, electrical engineering, and each process involved following a basic binary result. These are not typically sentences for equations, they are flags and grouped as sequences of assignment.
I also picked up Branchless Coding through a YouTube channel and it was pretty interesting, but seemed congested also. I would limit this approach to specific examples of where I would be invested in the memory and datatype exchanges that occur to be in a setting class or method. I think that the more we use branchless coding, it is going to deteriorate the option to be less robust and more minimalized because of the need for speed. I could be wrong, but this would not be a long-term solution for optimal speed in programming. Still, pretty cool.
Arduino Project Update
The Mega2560 Arduino board I was working with in a pre-installed setup turned out to be flawed in the outputs of sub-outlets with the way it was constructed. This was a board provided through donation to the Elves Gifts in my local community that was going to be used for a Christmas Light Show hooked up to the local radio station for donations with the Salvation Army.
I have been investing my time and learning about Arduino IDE, Arduino Boards, Arduino Projects overall and got hooked! I already ordered a starter kit through Wal-Mart, which was less than $30 and I plan on continuing my research and project skills to incorporate with community members in learning how to program with Arduino. Since I have my Robotics Certificate, which dealt with FANUC produced robot arms in factory settings, I have yet to create a program with Arduino and cannot wait to implement this in my programming skillset.
As for the project, I have to halt the progressions with the Mega2560 and currently seeking an electrical engineer to assist with the wiring. Two of the SSR boards are not working with the power up default mode setting check, or the Arduino IDE blink program. It is also not reading on my laptop with the Port listing in my Device Manager, something that should be registering. I have been unsuccessful in trying to operate a simple blink program and I believe it has something to do with the Connection output.
Just a note when working with this and hooking up your laptop - there are different USB connections and this one happens to use a printer USB (not a USB-A, USB-C, etc. for other peripheral connections). I had ordered 2 different USB connections, each wrong, and I finally pulled my printer USB and I could finally get a connection. It was funny and just shows how different digital logic hardware and peripheral devices are separated yet connected. I had my suspicions as to why a printer USB (Parallel Binary) and if that mattered in how Arduino was set up, since it has improved these project spaces tremendously. Beforehand, it sounded brutal with creating those connections to the hardware and pricey. Thank you so much Arduino for making these project spaces a dream!
No comments:
Post a Comment
Thank You For Commenting!