Slideshow transcript
Slide 1: Database Programming or Application Design with Databases or The Guest Lecture Dr. Shen Asked Me To Do Matthew Batchelder Web Application Engineer ITS
Slide 2: Ye Olde Overview • My Background • My Project Background • Application Design Process – Analysis – Language Selection – Database Design – Interface Design – Development – The Sweet Stuff • Industry – Where it was – Where it is – Where its going • Stuff I’ve Learned • Suggestions
Slide 3: Me
Slide 4: Background • PSU Graduate (PSC, actually) • PSU ITS – Help Desk – PHP/Java Programmer – Registrar PL/SQL Programmer – “Web Application Engineer” • Database Design • Front-end Design • Javascript • PHP • PL/SQL • I’m a Blogger (BorkWeb)
Slide 5: Project Background • As a Student – Database Class – Senior Project – On the Side (I’m a Geek) • Star Wars (Emperor’s Hammer) • Uber-Geeks Site • Random Database Projects • As an Employee – Lots of Misc. Apps – On the Side (I’m still a Geek) • BorkWeb • Uber-Geeks Site • MasterWish • Random Database Projects
Slide 6: Application Design Process
Slide 7: Application Design Process • Analysis – If you are beginning an application, there is undoubtedly a problem/inefficiency that needs a solution. – Compile a list of application needs – Build process maps: Map out • Uses of the application • Data flows – Analyze to root out inefficiencies
Slide 8: Application Design Process • Choosing Your Language – Use what is appropriate • Weigh: – Your development capabilities – Time constraints – Language suitability – Thus far, I’ve opted for PHP in most cases
Slide 9: Application Design Process • Database Design – This is the application’s foundation – Know your data – The Whiteboard is your friend
Slide 10: Application Design Process • Interface Design – Storyboard • The Whiteboard is still your friend • Oh, and paper too – Graphics/Colors/Document Structure – It is extremely important to know what your application should look like!
Slide 11: Application Design Process • Development – Develop in chunks – Database Abstraction • PHP: ADOdb & Pear – Modularization • OO is where its at – Templatization • SmartyTemplates & XTemplates • The Sweet Stuff – Javascript – XHR
Slide 12: The Industry
Slide 13: Industry • Where it was – Desktop Applications • Full featured • Updates difficult – Web-based Interfaces • Limited features – Well, Java Applets or ActiveX helped on the feature front…but both came with their own set of problems • Updates a cinch – Or…semi-cinch depending on your language of choice
Slide 14: Industry • Where it is – Desktop Applications • Full featured • Updates difficult – Web-based Applications • Full featured • Updates a cinch – Or…semi-cinch depending on your language of choice • Why the change? – Web 2.0 & AJAX & Ajax
Slide 15: Industry • Where its going – Who the *bleep* knows? – Keep an eye on • Ajax • Web 2.0 – Collaboration – RSS & Remixability – Usability • Accessibility
Slide 16: Stuff I’ve Learned
Slide 17: Stuff I’ve Learned • Do your own thing – If you run into an issue search for the answer online… • ask friends and/or instructors for answers only as a last resort…when you’re at a job…chances are, no one knows the answer near you. Get used to it. • Brainstorm DB Design on Paper – When you have an idea, jot it down on paper or the whiteboard then leave it. Come back later and look at it again, you’ll be sure to find inefficiencies.
Slide 18: Stuff I’ve Learned (cont.) • Design your Database…don’t just build it – Its one thing to accomplish a task…it’s a completely different thing to do it correctly – Where “correctly” means: • Re-usable • Sustainable • Versatile – I find it useful to throw a design on the board and critique it aloud and (if possible) with another designer in the room. • Ideas can be bounced back and forth and inefficiencies found before any coding has been done • Design your Interface…don’t just build it – A solid set of mockups saves time and code. Scratch it down on paper before coding. Get a general idea about how your pages should contain and manipulate your data.
Slide 19: Suggestions • Senior Projects and School Projects – These can be good…nice learning tools but they typically won’t get you very far – And 9 times out of 10 they won’t land you a job • Study on your own – Blog & Read Blogs • Jon Emmons is a Oracle Database Blogging success story! – Learn what is new and changing • Do your own projects – You aren’t going to know jack if you don’t play – Make mistakes and get pissed at yourself then learn from your errors • Do someone else’s projects – If you can’t come up with your own ideas, join a SourceForge project that interests you
Slide 20: More Specifically • Become great at Database Design • Pick a language and become an expert • Learn Javascript in depth • Learn to optimize your database • Learn to optimize your code • Like what you do and prove it by doing something
Slide 21: Success Stories • Example “side project” success stories – College Humor • 51% of college humor sold for ~$20 million – Flickr • Yahoo bought this for $30-$40 million – MySpace • Sold for $580 million – Facebook • Owners turn down $750 million offer – YouTube • Sold to Google for $1.65 billion • Sadly…I didn’t develop any of them
Slide 22: The end.




Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 2 (more)