Title: Database Programming v1'2
1Database Programming v1.2
- or Application Design with Databases
- or The Guest Lecture Dr. Shen Asked Me To Do
Matthew Batchelder Lead Developer ITS
2Ye Olde Overview
- My Background
- My Project Background
- Application Design Process
- Analysis
- Language Selection
- Database Design
- Interface Design
- Development
- The Sweet Stuff
- The Database Programming Industry
- Flavors of Developers
- Where Things Are Headed
- Stuff Ive Learned
- Suggestions
3Me
4Background
- PSU Graduate (PSC, actually)
- PSU ITS
- Help Desk
- PHP/Java Programmer
- Registrar PL/SQL Programmer
- Application Developer
- Database Design
- Front-end Design
- Javascript
- PHP
- PL/SQL
- Im a Blogger (BorkWeb)
5Project Background
- As a Student
- Database HCI Classes
- Senior Project
- On the Side (Im a Geek)
- Star Wars (Emperors Hammer Dark Jedi
Brotherhood) - Uber-Geeks Site
- Random Database Projects
- As an Employee
- Lots of Misc. Apps
- On the Side (Im still a Geek)
- BorkWeb
- Uber-Geeks Site (always in limbo)
- MasterWish
- Random Database Projects
- Consulting
- University of San Diego, Colby-Sawyer College,
Ferris State University, etc.
6Application Design Process
7Application 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
- Brain dump first, then sort, detail where needed,
then prioritize. - Build process maps Map it out!
- What are the uses of the application?
- How will data be passed around your application?
- Analyze your diagrams and needs to root out
inefficiencies
8Application Design Process
- Choosing Your Language
- Use what is appropriate
- Weigh
- Your development capabilities
- Time constraints
- Language suitability
- Thus far, Ive opted for PHP in most cases
9Application Design Process
- Database Design
- This is the applications foundation
- Know your data
- The Whiteboard is your friend
- Take your time and do this early on.
10Application 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!
11Application 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
12The Database Programming Industry
13Database Programming Industry
- Flavor of Developers
- Full Blown Database Developers
- Usually focused on Oracle or SQLServer or other
enterprise level database - Writing stored procedures and triggers
- Data warehousing
- Application Developers
- Not necessarily focused on any one database.
- Quite a bit of UI work (but not necessarily)
- Specialization in either desktop or web based
development - Many aspects of the Full Blown DB Dev but often
less expertise - Report Writers
- Not necessarily specialized in any one database
- Master of a reporting tool
- Focus on SQL optimization
14Database Programming Industry
- Where Things Are Headed
- Who the bleep knows?
- Keep an eye on
- Ajax
- Web 2.0
- Collaboration
- RSS Remixability
- Usability
- Accessibility
- Open Data
15Stuff Ive Learned
16Stuff Ive 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 resortwhen youre at a jobchances
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, youll be sure to find
inefficiencies.
17Stuff Ive Learned (cont.)
- Design your Databasedont just build it
- Its one thing to accomplish a taskits 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 Interfacedont 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.
18Stuff Ive Learned (cont.)
- Specific Things
- Spend a LOT of time on query optimization. This
is not only fun, it really speeds up your
applications. - Some complex queries are better left simple with
generic results broken up and manipulated with a
programming language such as PHP. - Dont forget about indexing your tablesand do it
intelligently! - Innovate. Dont needlessly recreate the wheel.
- Oracle Programming Consultants make a lot of
money. It really is pretty sick. - Corporate Jobs are no more difficult than
Education-based onesjust higher paid and higher
risk.
19Suggestions
- Senior Projects and School Projects
- These can be goodnice learning tools but they
typically wont get you very far - And 9 times out of 10 they wont 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 arent going to know jack if you dont play
- Make mistakes and get pissed at yourself then
learn from your errors - Find an OpenSource project and extend it
(WordPress for example!) - Do someone elses projects
- If you cant come up with your own ideas, join a
SourceForge project that interests you
20More Specifically
- Become great at database design
- Pick a language and become an expert
- Learn to optimize your database
- Learn to optimize your code
- Like what you do and prove it by doing something
- Oh, and if Web Applications are your thing, learn
JavaScript in depth
21The end.