preview

Personal Narrative: A Career In Architecture

Decent Essays

During my career I've seen many kinds of systems being written in diverse ways. Some showed little concern in scalability, maintanance and testing, which was a nightmare in terms of adding new stuff and fixing some old bugs. The code base was like those boxes that store fragile items. At the slightest possibility of touching the code was enough to make us uncomfortable. If you see spaghetti code every day, or you are developing new stuff on top of a really bad architecture, take the time to think how you could improve things. I want to share my experience with you about an old system which gave us headaches for quite some time, until one day we decided to put an end to it. The scenario The company I work for has a team of 11 developers that …show more content…

I recall my first day. I was barely introduced to the team because everyone was focused and notably under pressure. As you might expect, we were running against time because of the tight deadline. That horrific pace and the long hours we had to work, didn't allow us to concentrate on the system's architecture. Talking about architecture, we knew things were not going well when we could not define what kind of architecture we were working with. The problems Maintanance was like hell and new functionality had to be developed on top of a fragile code base. A feeling of regret and ethics, for not taking action before hand, struck us all. Something had to be done and it was all fault. We allowed that huge mess to happen. Boss, we need to talk about something... We talked to our manager and exposed to him what was going on. We showed to him our plan of action and received his blessing on our tormented journey to improved …show more content…

Still, it was only abstraction. 2. Naming convention and meaningful names It might look like we went far on this one, but it was necessary too. Why some folks write code in camelCase while others in PascalCase? Why the name of the operation has nothing to do with its coding? 3. Get rid of the tight coupling Once the modules were abstracted, we implemented inversion of control with SimpleInject because we found it easy to use and according to its benchmarkings, was quite fast. 4. From Dom traversal to two-way data binding We had Razor as our view engine. If we wanted to validate the view, we would resort to Dom Traversal. That, of course, wasn't much practical because the view models were aware of the view's elements. In order to improve abastraction and loose coupling, I suggested the adoption of a two-way data binding framework. It had to be lightweight and easy to use. In a previous project I worked with VueJs. It offered all the mechanisms for a robust two-way binding framework, without forcing you to implement everything. The future It's now easy to implement unit testing, which is the next phase of our plan. We are happy with the results and relieved that we achieved so much with determination and

Get Access