My internship in Aeste has come to an end. It has been quite a unique experience. I started the internship with some rough scolding and was nearly fired on my first day because I did not finish the pre-internship studying materials. Luckily, I stayed on for another 16 weeks. In my last week, I did documentation on the codes which I have written. Looking back, I have really learned a lot of things and I can certainly say I have grown much smarter but at the same time I realise how little I really know. There are a ton of things you can learn in Aeste and you would get a supervisor who knows almost everything, if not everything. To the future applicants of the internship position in Aeste, I would tell you, be prepared to be a true engineer in the making!
Apart from documentation, I did some refinements on my last project, mostly on its internal structure. After spending months with Wt, I am getting the grasp of it and I can appreciate its value in Web Application development. One of the things I did was:-
Reducing the Entry Points
After looking at some sample applications, I realise that most of them have only one entry point in the WServer configuration. Thinking about it, I think that is how an application should work. I should not be able to enter the middle of the application without first starting it. I have created an entry point for each page of my application. What I have come to know is that a new WApplication is created when a new Entry point is accessed. You won’t be able to perform page handling on the server side (if the user presses back or forward in the browser). Although there is a internalPathChanged() function, it only works for the WApplication which you are currently in and you can not expect to navigate to the previous session.
In my opinion, there should be only one entry point, or one session for each user, but it was not possible on my application as I required browser redirection from a third-party after a successful authentication. Perhaps, I can perform the authentication in a popup and then handle it in my main WApplication.
Final code restructuring
I have reduced 800 lines of code in my main WApplication by segmenting them into separate project files. The project folder is much organized now, with different named folders for the UI, Storage services and the main program code. A good programmer should always plan ahead instead of only achieving the task at hand. We need to make sure the code is legible to other people as most application would at some time, need to change hands.
I sincerely thank Dr. Shawn for this opportunity to learn from the best. There is no other company that gives interns such challenging tasks to work on. There are a list of other things I am grateful of, so here I go, thanks for:-
- The movies you treated us interns! The great thing about it is we get to go during office hours.
- Welcome and farewell lunch which were delicious.
- Funny and inspiring stories you shared with us so generously.
- Answering my dumb questions the best you can.
- Teaching me to become better off than primary school kids.
- Scolding me so that I can improve.
- Not firing me and my friend on the first day.
Goodbye Aeste, thanks for the adventure!