Tech Tips Digest: 10
Everything
must come to an end one day.. I guess you already know where I'm going with
this :)
But for
those who didn't get it.. This will be the last post digesting my Technology
Tips Tweets, hope you all had fun reading them and learnt new things.
Previous Tips: Tip No. 1 | Tip No. 2 | Tip No. 3 | Tip No. 4 | Tip No. 5 | Tip No. 6 | Tip No. 7 | Tip No. 8 | Tip No. 9
Previous Tips: Tip No. 1 | Tip No. 2 | Tip No. 3 | Tip No. 4 | Tip No. 5 | Tip No. 6 | Tip No. 7 | Tip No. 8 | Tip No. 9
Tech Tip No46: Don't over think your design and
don't under-think it either. Figure out as much as is needed to begin properly
Software
engineers with little experience might tend to think that they have to come up
with the ultimate design for each and every design problem they are trying to
solve. This will prove wrong, because as time passes, new approaches and ideas
will arise voiding some of the old design aspects.
You can
never design a system and not expect it to change in the future, so it's always
better to keep it simple, cater for the basics, leaving space for future
enhancements and changes.
Computer software you
create will evolve by time and you might wanna make
this evolution easy on yourself.
Tech
Tip No47: [#Java] Don't assume that the JVM is smart enough to cover for your
mistakes. It just won't happen!
Failing
to close an open file stream, the JVM won't close it for you cause
it's got a Garbage Collector. No
way, that won't happen. Creating a Map and using it as a cache while
failing to clear it from time to time, the JVM won't miraculously solve your
memory leak problem :)
Always
follow good programming practices, it's true that things are a bit easier in Java than they are in C++ for example. There you had to keep an eye on all
of the pointers you had created, you had to destroy
objects immediately when you were done with them. But the Garbage
Collector is as smart as your code is following those proper practices.
Tech
Tip No48: When creating software, keep an eye for common security flows, you
can't cover everything but at least try to
Especially
in enterprise level and web applications where there are probably more users
than you might anticipate. Having an application with a wide user base exposed
on the internet is a security challenge.
XSS, Session Hijacking, SQL Injection ... etc the list goes on and on. You have to think of all those
issues when you're creating your next web application (Don't forget to check on
the ones you've already delivered :p )
Cause when someone is
out to attack your system, they'll try all their best, so you might as well
make it a bit harder on them :)
Tech
Tip No49: When you create applications, keep the end user in mind. Think about
what you like in your best app
Most
software engineers will create applications disregarding the end user's point
of view, that's where user experience engineers come in. But you
might not have that luxury where you work.
A
simple solution to this would be for you to look at your application
with the eyes of an end user and not as an engineer. Think of your most
favorite applications and try to look at how they're UI design is, try to look
at the simple detail from using mnemonic for buttons and menu items to the
proper layout of the buttons and screen controls.
There's always a natural
flow to applications that you end up liking, and doesn't come from nowhere.
Tech
Tip No50: Read all of my previous tips ;)
So I
guess it's time for me to close the book on those tips, hope you all enjoyed
them. And I sure will enjoy your comments on my blog posts, feel free to
comment on any of the old posts as well as this last one.
Cheers :)
Comments